API

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.