Send Money
Wise Send Money partner account API documentation is focused on integrations where the partner is the end customer and possess a profile ID of their own. First Party Partners would follow the standard Send Money flow. However, Third Party Partners would need to follow the steps highlighted below for creating transfers using the API that will include originator information.
Please refer to the flowchart below for the overview of the process.
Please follow the standard Send Money API flow.
The standard Send Money API flow is applicable to Third Party transfers, with exception of the Create Transfer endpoint detailed below.
POST /v2/profiles/{{profileId}}/third-party-transfers
This is very similar to Create transfers endpoint, but please note these differences:
- Originator datablock is additionally required
- Depending on the legal entity type of the originator (PRIVATE or BUSINESS), the required fields vary. Please refer the two sample request examples on the right.
- OriginalTransferId field is being used instead of customerTransactionId
Recipient account ID. You can create multiple transfers to same recipient account.
V2 quote ID. You can only create one transfer per one quote.
You cannot use same quote ID to create multiple transfers.
Unique transfer ID in your system. We use this field also to perform idempotency check to avoid duplicate transfers in case of network failures or timeouts. You can only submit one transfer with same originalTransferId.
Recipient will see this reference text in their bank statement. Maximum allowed characters depends on the currency route. Business Payments Tips article has a full list.
Data block to capture payment originator details.
PRIVATE or BUSINESS. Payment originator legal type.
Unique customer ID in your system. This allows us to uniquely identify each originator. Required.
Data block to capture the originator name details.
Depends on the type of legal entity (PRIVATE or BUSINESS), the required fields and inputs are different.
Payment originator first name. Required if legalEntityType = PRIVATE
.
Payment originator middle name(s). Used only if legalEntityType = PRIVATE
.
Payment originator family name. Required if legalEntityType = PRIVATE
.
Payment originator patronymic name. Used only if legalEntityType = PRIVATE
.
Payment originator full legal name. Required if legalEntityType = BUSINESS
.
Payment originator date of birth. Required if legalEntityType = PRIVATE
.
Payment originator business registry number / incorporation number. Required if legalEntityType = BUSINESS
.
Payment originator address first line. Required
Payment originator address city. Required
Payment originator address state code. Required if address country code in (US, CA, BR, AU). See Countries and states
Payment originator address first line. Required
Originator address zip code.
Response
Returns an originator transfer object.
You need to save the transfer ID for tracking its status later via webhooks.
Avoiding duplicate transfers
We use originalTransferId field to avoid duplicate transfer requests. When your first call fails (error or timeout) then you should use the same value in originalTransferId field that you used in the original call when you are submitting a retry message. This way we can treat subsequent retry messages as repeat messages and will not create duplicate transfers to your account.
curl -X POST https://api.sandbox.transferwise.tech/v2/profiles/{{profileId}}/third-party-transfers \-H 'Authorization: Bearer <your api token>' \-H 'Content-Type: application/json' \-d '{"targetAccount": <recipient account ID>,"quote": "<quote ID>","originalTransferId": "<unique transfer ID in your system>","details" : {"reference" : "Ski trip"},"originator" : {"legalEntityType" : "PRIVATE","reference" : "<unique customer ID in your system>","name" : {"givenName": "John","middleNames": ["Ryan"],"familyName": "Godspeed"},"dateOfBirth": "1977-07-01","address" : {"firstLine": "Salu tee 100, Apt 4B","city": "Tallinn","countryCode": "EE","postCode": "12112"}}}'
curl -X POST https://api.sandbox.transferwise.tech/v2/profiles/{{profileId}}/third-party-transfers \-H 'Authorization: Bearer <your api token>' \-H 'Content-Type: application/json' \-d '{"targetAccount": <recipient account ID>,"quote": "<quote ID>","originalTransferId": "<unique transfer ID in your system>","details" : {"reference" : "Payment for invoice 22092"},"originator" : {"legalEntityType" : "BUSINESS","reference" : "<originator customer ID in your system>","name" : {"fullName": "Hot Air Balloon Services Ltd"},"businessRegistrationCode": "1999212","address" : {"firstLine": "Aiandi tee 1431","city": "Tallinn","countryCode": "EE","postCode": "12112"}}}'
Fund
Please refer to Send Money - Funding to fund the transaction.