ThirdPartyTransfer
A third party transfer.
Operations
Every route this entity exposes. Each route links to its own reference on this page.
| Method | Route | SDK operation | Returns |
|---|---|---|---|
POST |
/profiles/{profileId}/third-party-transfers |
create |
Third party transfer successfully created |
GET |
/profiles/{profileId}/third-party-transfers/{transferId} |
load |
Returns the originator transfer object |
Examples
One example per SDK, generated from the API model. The argument names are the parameters and fields of this entity, and the values are placeholders. The examples are not compiled or executed.
Golang
Construct client as shown in the Golang setup, then call the operations:
third_party_transfer, err := client.ThirdPartyTransfer(nil).Load(map[string]any{"id": 1, "profile_id": 1}, nil)
if err != nil {
panic(err)
}
fmt.Println(third_party_transfer)
created, err := client.ThirdPartyTransfer(nil).Create(map[string]any{"profile_id": 1, "details": map[string]any{}, "originalTransferId": "example", "originator": map[string]any{}, "quote": "example", "targetAccount": 1}, nil)
if err != nil {
panic(err)
}
fmt.Println(created)
Lua
Construct client as shown in the Lua setup, then call the operations:
local third_party_transfer, err = client:ThirdPartyTransfer():load({ id = 1, profile_id = 1 })
local created, err = client:ThirdPartyTransfer():create({ profile_id = 1, details = {}, originalTransferId = "example", originator = {}, quote = "example", targetAccount = 1 })
PHP
Construct client as shown in the PHP setup, then call the operations:
$third_party_transfer = $client->ThirdPartyTransfer()->load(["id" => 1, "profile_id" => 1]);
$created = $client->ThirdPartyTransfer()->create(["profile_id" => 1, "details" => [], "originalTransferId" => "example", "originator" => [], "quote" => "example", "targetAccount" => 1]);
Python
Construct client as shown in the Python setup, then call the operations:
third_party_transfer = client.ThirdPartyTransfer().load({"id": 1, "profile_id": 1})
created = client.ThirdPartyTransfer().create({ "profile_id": 1, "details": {}, "originalTransferId": "example", "originator": {}, "quote": "example", "targetAccount": 1 })
Ruby
Construct client as shown in the Ruby setup, then call the operations:
third_party_transfer = client.ThirdPartyTransfer.load({ "id" => 1, "profile_id" => 1 })
created = client.ThirdPartyTransfer.create({ "profile_id" => 1, "details" => {}, "originalTransferId" => "example", "originator" => {}, "quote" => "example", "targetAccount" => 1 })
TypeScript
Construct client as shown in the TypeScript setup, then call the operations:
const third_party_transfer = await client.ThirdPartyTransfer().load({ id: 1, profile_id: 1 })
const created = await client.ThirdPartyTransfer().create({ profile_id: 1, details: {}, originalTransferId: "example", originator: {}, quote: "example", targetAccount: 1 })
Fields
| Field | Type | Required | Description |
|---|---|---|---|
created |
string |
No | Timestamp when transfer was created. |
details |
object |
No | Payment Details |
hasActiveIssues |
boolean |
No | Are there any pending issues which stop executing the transfer? |
id |
integer |
No | Transfer ID |
originalTransferId |
string |
No | Unique identifier randomly generated per transfer request by the calling client |
originator |
object |
No | Data block to capture payment originator details |
quote |
string |
No | Quote ID |
rate |
number |
No | Exchange rate value |
sourceAccount |
integer |
No | Refund recipient account ID |
sourceCurrency |
string |
No | Source currency code |
sourceValue |
number |
No | Transfer amount in source currency |
status |
string |
No | Transfer current status. |
targetAccount |
integer |
No | Recipient account ID |
targetCurrency |
string |
No | Target currency code |
targetValue |
number |
No | Transfer amount in target currency |
user |
integer |
No | Your user ID |
create
POST /profiles/{profileId}/third-party-transfers
Operation ID: createThirdPartyTransfer.
Authentication: bearer token (UserToken).
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
profileId |
path |
integer (int64) |
Yes | The profile ID. |
X-External-Correlation-Id |
header |
string (uuid) |
No | Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. Learn more. |
Request body
application/json
| Property | Type | Required | Description |
|---|---|---|---|
details |
object |
Yes | Data block to capture payment details. This is a map of key-value pairs and all values must be string. |
details.reference |
string |
No | Recipient will see this reference text in their bank statement. Maximum allowed characters depends on the currency route. Reference must be null or non-blank. Business Payments Tips for a full list |
originalTransferId |
string |
Yes | 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. |
originator |
object and object or object and object |
Yes | Data block to capture payment originator details. |
quote |
string |
Yes | Quote ID. You can only create one transfer per one quote. You cannot use same quote ID to create multiple transfers. |
sourceAccount |
integer (int64) |
No | Refund recipient account ID. |
targetAccount |
integer (int64) |
Yes | Recipient account ID. |
Responses
201: Third party transfer successfully created
application/json
| Property | Type | Required | Description |
|---|---|---|---|
created |
string (date-time) |
No | Timestamp when transfer was created. |
details |
object |
No | Payment Details |
details.reference |
string |
No | Recipient will see this reference text in their bank statement. Maximum allowed characters depends on the currency route. Business Payments Tips for a full list |
hasActiveIssues |
boolean |
No | Are there any pending issues which stop executing the transfer? |
id |
integer (int64) |
No | Transfer ID |
originalTransferId |
string |
No | Unique identifier randomly generated per transfer request by the calling client |
originator |
object |
No | Data block to capture payment originator details |
originator.accountDetails |
string |
No | Payment originator account number |
originator.address |
object |
No | Payment originator address |
originator.address.city |
string |
No | Payment originator address city |
originator.address.countryCode |
string |
No | Payment originator address country code ISO 3166-1 alpha-2 |
originator.address.firstLine |
string |
No | Payment originator address first line |
originator.address.postCode |
string |
No | Originator address zip code |
originator.address.stateCode |
string |
No | Payment originator address state code. Required if address country code in (US, CA, BR, AU) |
originator.businessRegistrationCode |
string |
No | Payment originator business registry number / incorporation number |
originator.businessRegistrationDate |
string (date) |
No | Payment originator business registration date. Required for certain routes (for example to UGX) |
originator.dateOfBirth |
string (date) |
No | Payment originator date of birth |
originator.legalEntityType |
enum: PRIVATE, BUSINESS |
No | Payment originator legal type |
originator.name |
object |
No | Data block to capture the originator name details |
originator.name.familyName |
string |
No | Payment originator family name |
originator.name.fullName |
string |
No | Payment originator full legal name |
originator.name.givenName |
string |
No | Payment originator first name |
originator.name.middleNames |
array of string |
No | Payment originator middle name(s) |
originator.name.patronymicName |
string |
No | Payment originator patronymic name |
originator.nationality |
string |
No | Payment originator nationality. Required for certain routes (for example to UGX) |
originator.reference |
string |
No | Unique customer ID in your system. This allows us to uniquely identify each originator |
quote |
string |
No | Quote ID |
rate |
number (decimal) |
No | Exchange rate value |
sourceAccount |
integer (int64) |
No | Refund recipient account ID |
sourceCurrency |
string |
No | Source currency code |
sourceValue |
number (decimal) |
No | Transfer amount in source currency |
status |
string |
No | Transfer current status. See Tracking Transfers for all possible statuses. |
targetAccount |
integer (int64) |
No | Recipient account ID |
targetCurrency |
string |
No | Target currency code |
targetValue |
number (decimal) |
No | Transfer amount in target currency |
user |
integer (int64) |
No | Your user ID |
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header
application/json
The response is object.
load
GET /profiles/{profileId}/third-party-transfers/{transferId}
Operation ID: getThirdPartyTransfer.
Authentication: bearer token (UserToken).
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
profileId |
path |
integer (int64) |
Yes | Profile Id |
transferId |
path |
integer (int64) |
Yes | Transfer Id |
X-External-Correlation-Id |
header |
string (uuid) |
No | Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. Learn more. |
Responses
200: Returns the originator transfer object
application/json
| Property | Type | Required | Description |
|---|---|---|---|
created |
string (date-time) |
No | Timestamp when transfer was created. |
details |
object |
No | Payment Details |
details.reference |
string |
No | Recipient will see this reference text in their bank statement. Maximum allowed characters depends on the currency route. Business Payments Tips for a full list |
hasActiveIssues |
boolean |
No | Are there any pending issues which stop executing the transfer? |
id |
integer (int64) |
No | Transfer ID |
originalTransferId |
string |
No | Unique identifier randomly generated per transfer request by the calling client |
originator |
object |
No | Data block to capture payment originator details |
originator.accountDetails |
string |
No | Payment originator account number |
originator.address |
object |
No | Payment originator address |
originator.address.city |
string |
No | Payment originator address city |
originator.address.countryCode |
string |
No | Payment originator address country code ISO 3166-1 alpha-2 |
originator.address.firstLine |
string |
No | Payment originator address first line |
originator.address.postCode |
string |
No | Originator address zip code |
originator.address.stateCode |
string |
No | Payment originator address state code. Required if address country code in (US, CA, BR, AU) |
originator.businessRegistrationCode |
string |
No | Payment originator business registry number / incorporation number |
originator.businessRegistrationDate |
string (date) |
No | Payment originator business registration date. Required for certain routes (for example to UGX) |
originator.dateOfBirth |
string (date) |
No | Payment originator date of birth |
originator.legalEntityType |
enum: PRIVATE, BUSINESS |
No | Payment originator legal type |
originator.name |
object |
No | Data block to capture the originator name details |
originator.name.familyName |
string |
No | Payment originator family name |
originator.name.fullName |
string |
No | Payment originator full legal name |
originator.name.givenName |
string |
No | Payment originator first name |
originator.name.middleNames |
array of string |
No | Payment originator middle name(s) |
originator.name.patronymicName |
string |
No | Payment originator patronymic name |
originator.nationality |
string |
No | Payment originator nationality. Required for certain routes (for example to UGX) |
originator.reference |
string |
No | Unique customer ID in your system. This allows us to uniquely identify each originator |
quote |
string |
No | Quote ID |
rate |
number (decimal) |
No | Exchange rate value |
sourceAccount |
integer (int64) |
No | Refund recipient account ID |
sourceCurrency |
string |
No | Source currency code |
sourceValue |
number (decimal) |
No | Transfer amount in source currency |
status |
string |
No | Transfer current status. See Tracking Transfers for all possible statuses. |
targetAccount |
integer (int64) |
No | Recipient account ID |
targetCurrency |
string |
No | Target currency code |
targetValue |
number (decimal) |
No | Transfer amount in target currency |
user |
integer (int64) |
No | Your user ID |
404: Transfer not found
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header
application/json
The response is object.