API Schema Optimisations
Overview
We're making a number of small changes to the API 2.0 specification to bring it up to industry best practises. These changes, whilst extensive, are all fairly minor and have no material impact on how the API is used.
Version Impacted: V2.0
Date Effective: 26 of July 2024
Updates to endpoint paths
We have updated all our endpoint names to make collections pluralised as is industry best practise in addition to hyphenating path names where multiple words exist. This has no impact on the functionality of each endpoint but helps to ensure clarity when reading the specification.
Updates to nested GET responses
We are updating how our GET endpoints response where nested objects existing (for example, payinAddresses
are nested underneath wallets
and paymentAddresses
are nested underneath recipients
). Since there are use cases where a wallet
or recipient
has a large number of nested sub-objects, we will be removing the sub-objects from the GET endpoint of the parent object (ie removing payinAddresses
from GET/wallets/{walletId}
). This is to prevent issues with payload size and unnecessary data transmission when the sub-objects are not required. These sub-objects can still be obtained using the relevant GET endpoints (for example, to get payinAddresses you can use GET/wallets/{walletId}/payin-Addresses
).
Impacted Objects:
wallets
and nestedpayinAddresses
recipients
and nestedpaymentAddresses
trades
and nestedpayouts
Updates to sensitive information in GET responses
In many instances, sensitive information is required to be given to Send through our POST endpoints in order to onboard a new account, or verify a new recipient. This sensitive information is handled with the upmost care once within Sends systems. In order to prevent any possibility of sensitive information leaks, Send will be removing this information from our GET endpoints. Send will however, still provide critical operational information in the GET responses, including: status, contact information and other non-sensitive data.
Impacted Endpoints:
- All Accounts Endpoints
- All Recipient Endpoints
Other minor changes
Along with the above updates, we've made a bunch of other minor quality of life improvements to our API2.0 spec. They are detailed below.
- Added the ability to assign a
payout
anexternalReference
when creating it throughPOST/Trades
. - Updated GET request pagination metadata naming (functionality remains the same).
- Updated
birthDate
inPOST/accounts/individual
todateOfBirth
. - Made the
physicalAddress.postCode
field withinPOST/recipients
to now be optional. - Fixed a typo on the description of
POST/sandbox/payins
. - Added the
trust.registrationNumber
andtrust.physicalAddress
fields to ourPOST/Accounts
endpoints. - Updated the description on
GET/rate-sheets/{rateSheetId}
. - Updated the description on
GET/payment
. - Removed the need to supply a
walletId
andcurrency
in thepayinAddress
object when you are creating awallet
andpayinAddress
together. - Removed
trust.trustTrustees
from ourPOST/Accounts
endpoints. - Added a new list endpoint for fetching
paymentAddresses
-GET/recipients/{recipientId}/paymentAddresses
. - Updated the
DELETE/Webhooks
204 success response to include no response body. - Updated the payment status list to include the full list of possible payment statuses and to bring it into line with our payment status guide.
- Added the optional field
accountName
within thepaymentAddress
object. - Made
reference
options in thepost/payment/payout
endpoint. -
Got Questions?
Got questions or concerns about this change? Head over to our Discussion Board and leave us a note.