Skip to content

Third Party Transfers

Create and manage transfers over API on behalf of your customers, under your own financial license.

Create a third party transfer

Request

When creating a transfer on behalf of a third party, you must take note that:

  • The originator datablock is required. This details the ultimate sender of funds in the transfer.
  • Depending on the legal entity type of the originator (PRIVATE or BUSINESS), the required fields vary. Please refer the sample request examples.
  • OriginalTransferId field must be used. This is your own ID for the transfer.

You need to save the transfer ID for tracking its status later via webhooks.

Avoiding duplicate transfers

The originalTransferId field is used to avoid duplicate transfer requests. If your initial call fails (error or timeout), retry the call using the same originalTransferId value. Subsequent retry messages are treated as repeat messages and will not create duplicate transfers.

Security
UserToken
Path
profileIdinteger, (int64)required

The profile ID.

Example:123456789
Headers
X-External-Correlation-Idstring, (uuid), <= 36 characters

Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. Learn more.

Example:f47ac10b-58cc-4372-a567-0e02b2c3d479
Bodyapplication/json
originalTransferIdstring, [ 1 .. 250 ] characters\Srequired

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.

Example:"4711"
targetAccountinteger, (int64)required

Recipient account ID.

Example:7839323
sourceAccountinteger, (int64)

Refund recipient account ID.

Example:1527389
quotestring, non-empty\Srequired

Quote ID. You can only create one transfer per one quote. You cannot use same quote ID to create multiple transfers.

Example:"3522e360-356a-4e37-9f99-94a21898d8fa"
detailsobjectrequired

Data block to capture payment details.

originatoranyrequired
curl -i -X POST \
  https://api.wise.com/2026Q3/profiles/123456789/third-party-transfers \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-External-Correlation-Id: f47ac10b-58cc-4372-a567-0e02b2c3d479' \
  -d '{
    "profileId": 123456789,
    "targetAccount": 7839323,
    "quote": "3522e360-356a-4e37-9f99-94a21898d8fa",
    "originalTransferId": "4711",
    "details": {
      "reference": "Ski trip"
    },
    "originator": {
      "legalEntityType": "PRIVATE",
      "accountDetails": "123456789",
      "reference": "CST-2991992",
      "name": {
        "givenName": "John",
        "middleNames": [
          "Ryan"
        ],
        "familyName": "Godspeed",
        "patronymicName": "Fitz"
      },
      "dateOfBirth": "1977-07-01",
      "nationality": "EE",
      "address": {
        "firstLine": "Salu tee 100, Apt 4B",
        "city": "Tallinn",
        "countryCode": "EE",
        "postCode": "12112"
      }
    }
  }'

Responses

Third party transfer successfully created.

Headers
Locationstring

Path to the created transfer

Example:"/public/v2/profiles/123/third-party-transfers/16521632"
X-External-Correlation-Idstring, (uuid), <= 36 characters

Echoed back when X-External-Correlation-Id was included in the request. Learn more.

Example:"f47ac10b-58cc-4372-a567-0e02b2c3d479"
x-trace-idstring

Unique trace identifier assigned by Wise. Useful when contacting support about a specific request.

Example:"fba501b6d453b96789f52338f019341f"
Bodyapplication/json
idinteger, (int64)

Transfer ID

Example:16521632
userinteger, (int64)

Your user ID

Example:4342275
targetAccountinteger, (int64)

Recipient account ID

Example:8692237
sourceAccountinteger, (int64)

Refund recipient account ID

Example:1527389
quotestring

Quote ID

Example:"8fa9be20-ba43-4b15-abbb-9424e1481050"
statusstring

Transfer current status. See Tracking Transfers for all possible statuses.

Example:"cancelled"
ratenumber, (decimal)

Exchange rate value

Example:0.89
detailsobject

Payment Details

originatorobject

Data block to capture payment originator details

hasActiveIssuesboolean

Are there any pending issues which stop executing the transfer?

Example:false
sourceCurrencystring, = 3 characters^[A-Z]{3}$

Source currency code

Example:"EUR"
sourceValuenumber, (decimal), > 0

Transfer amount in source currency

Example:0
targetCurrencystring, = 3 characters^[A-Z]{3}$

Target currency code

Example:"GBP"
targetValuenumber, (decimal), > 0

Transfer amount in target currency

Example:150
originalTransferIdstring

Unique identifier randomly generated per transfer request by the calling client

Example:"54a6bc09-cef9-49a8-9041-f1f0c654cd88"
createdstring, (date-time)

Timestamp when transfer was created.

Example:"2025-10-29T12:28:16.000Z"
Response
{ "id": 16521632, "originalTransferId": "54a6bc09-cef9-49a8-9041-f1f0c654cd88", "user": 4342275, "targetAccount": 8692237, "sourceAccount": 1527389, "quote": "8fa9be20-ba43-4b15-abbb-9424e1481050", "status": "cancelled", "rate": 0.89, "details": { "reference": "T475890" }, "hasActiveIssues": false, "sourceCurrency": "EUR", "sourceValue": 0, "targetCurrency": "GBP", "targetValue": 150, "originator": { "legalEntityType": "BUSINESS", "name": { "fullName": "Hot Air Balloon Services Ltd" }, "reference": "CST-2991992", "businessRegistrationCode": "83920-546", "businessRegistrationDate": "2020-01-15", "address": { "firstLine": "Salu tee 14", "city": "Tallinn", "stateCode": "", "countryCode": "EE", "postCode": "12112" }, "accountDetails": "23456789" }, "created": "2025-10-29T12:28:16.000Z" }