third-party-transfer

Create a third party transfer

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.
post/v2/profiles/{profileId}/third-party-transfers

Path parameters

profileIdinteger required

The profile ID.

Example:123456789

The profile ID.

Headers

X-External-Correlation-Idstring uuid

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

Request body

originalTransferIdstring required

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.

targetAccountinteger required

Recipient account ID.

sourceAccountinteger

Refund recipient account ID.

quotestring required

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

Example request

{
  "originalTransferId": "4711",
  "targetAccount": 7839323,
  "sourceAccount": 1527389,
  "quote": "3522e360-356a-4e37-9f99-94a21898d8fa",
  "details": {
    "reference": "T12789649"
  },
  "originator": {
    "reference": "CST-2991992",
    "name": {
      "givenName": "John",
      "familyName": "Godspeed",
      "patronymicName": "Fitz",
      "fullName": "John Godspeed"
    },
    "dateOfBirth": "1977-07-01",
    "nationality": "EE",
    "accountDetails": "23456789",
    "address": {
      "firstLine": "Salu tee 14",
      "city": "Tallinn",
      "stateCode": "NY",
      "countryCode": "EE",
      "postCode": "12112"
    }
  }
}

Response

Third party transfer successfully created.

idinteger

Transfer ID

userinteger

Your user ID

targetAccountinteger

Recipient account ID

sourceAccountinteger

Refund recipient account ID

quotestring

Quote ID

statusstring

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

ratenumber

Exchange rate value

hasActiveIssuesboolean

Are there any pending issues which stop executing the transfer?

sourceCurrencystring

Source currency code

sourceValuenumber

Transfer amount in source currency

targetCurrencystring

Target currency code

targetValuenumber

Transfer amount in target currency

originalTransferIdstring

Unique identifier randomly generated per transfer request by the calling client

createdstring date-time

Timestamp when transfer was created.

Example response

{
  "id": 16521632,
  "user": 4342275,
  "targetAccount": 8692237,
  "sourceAccount": 1527389,
  "quote": "8fa9be20-ba43-4b15-abbb-9424e1481050",
  "status": "cancelled",
  "rate": 0.89,
  "details": {
    "reference": "T12789649"
  },
  "originator": {
    "reference": "CST-2991992",
    "name": {
      "givenName": "John",
      "middleNames": [
        "Fitz",
        "John"
      ],
      "familyName": "Godspeed",
      "patronymicName": "Fitz",
      "fullName": "John Godspeed"
    },
    "dateOfBirth": "1977-07-01",
    "nationality": "EE",
    "accountDetails": "23456789",
    "address": {
      "firstLine": "Salu tee 14",
      "city": "Tallinn",
      "stateCode": "NY",
      "countryCode": "EE",
      "postCode": "12112"
    },
    "businessRegistrationCode": "83920-546",
    "businessRegistrationDate": "2020-01-15"
  },
  "sourceCurrency": "EUR",
  "targetCurrency": "GBP",
  "targetValue": 150,
  "originalTransferId": "54a6bc09-cef9-49a8-9041-f1f0c654cd88",
  "created": "2025-10-29T12:28:16.000Z"
}

Changes

Changed in 2 of the 5 revisions of this API.19135

  • 4907a1d269ab19134See the full diff
    • the request property originator/oneOf[OriginatorBUSINESS]/allOf[BusinessOriginator]/address/countryCode became required

      request-property-became-required

    • the request property originator/oneOf[OriginatorBUSINESS]/allOf[BusinessOriginator]/address/firstLine became required

      request-property-became-required

    • the request property originator/oneOf[OriginatorBUSINESS]/allOf[BusinessOriginator]/reference became required

      request-property-became-required

    • the request property originator/oneOf[OriginatorPRIVATE]/allOf[PrivateOriginator]/address/countryCode became required

      request-property-became-required

    • the request property originator/oneOf[OriginatorPRIVATE]/allOf[PrivateOriginator]/address/firstLine became required

      request-property-became-required

    • the originalTransferId request property's minLength was increased from 0 to 1

      request-property-min-length-increased

    • the originator/oneOf[OriginatorBUSINESS]/allOf[BusinessOriginator]/address/countryCode request property's minLength was increased from 0 to 1

      request-property-min-length-increased

    • the originator/oneOf[OriginatorBUSINESS]/allOf[BusinessOriginator]/address/firstLine request property's minLength was increased from 0 to 1

      request-property-min-length-increased

    • the originator/oneOf[OriginatorBUSINESS]/allOf[BusinessOriginator]/reference request property's minLength was increased from 0 to 1

      request-property-min-length-increased

    • the originator/oneOf[OriginatorPRIVATE]/allOf[PrivateOriginator]/address/countryCode request property's minLength was increased from 0 to 1

      request-property-min-length-increased

    • the originator/oneOf[OriginatorPRIVATE]/allOf[PrivateOriginator]/address/firstLine request property's minLength was increased from 0 to 1

      request-property-min-length-increased

    • the originator/oneOf[OriginatorPRIVATE]/allOf[PrivateOriginator]/reference request property's minLength was increased from 0 to 1

      request-property-min-length-increased

    • the quote request property's minLength was increased from 0 to 1

      request-property-min-length-increased

    • added the pattern \S to the request property originalTransferId

      request-property-pattern-added

    • added the pattern \S to the request property originator/oneOf[OriginatorBUSINESS]/allOf[BusinessOriginator]/address/firstLine

      request-property-pattern-added

    • added the pattern \S to the request property originator/oneOf[OriginatorBUSINESS]/allOf[BusinessOriginator]/reference

      request-property-pattern-added

    • added the pattern \S to the request property originator/oneOf[OriginatorPRIVATE]/allOf[PrivateOriginator]/address/firstLine

      request-property-pattern-added

    • added the pattern \S to the request property originator/oneOf[OriginatorPRIVATE]/allOf[PrivateOriginator]/reference

      request-property-pattern-added

    • added the pattern \S to the request property quote

      request-property-pattern-added

    • the details/reference request property's maxLength was set to 250

      request-property-max-length-set

    • the originalTransferId request property's maxLength was set to 250

      request-property-max-length-set

    • the originator/oneOf[OriginatorBUSINESS]/allOf[BusinessOriginator]/address/city request property's maxLength was set to 250

      request-property-max-length-set

    • the originator/oneOf[OriginatorBUSINESS]/allOf[BusinessOriginator]/address/countryCode request property's maxLength was set to 2

      request-property-max-length-set

    • the originator/oneOf[OriginatorBUSINESS]/allOf[BusinessOriginator]/address/firstLine request property's maxLength was set to 250

      request-property-max-length-set

    • the originator/oneOf[OriginatorBUSINESS]/allOf[BusinessOriginator]/address/postCode request property's maxLength was set to 250

      request-property-max-length-set

    • the originator/oneOf[OriginatorBUSINESS]/allOf[BusinessOriginator]/businessRegistrationCode request property's maxLength was set to 150

      request-property-max-length-set

    • the originator/oneOf[OriginatorPRIVATE]/allOf[PrivateOriginator]/address/city request property's maxLength was set to 250

      request-property-max-length-set

    • the originator/oneOf[OriginatorPRIVATE]/allOf[PrivateOriginator]/address/countryCode request property's maxLength was set to 2

      request-property-max-length-set

    • the originator/oneOf[OriginatorPRIVATE]/allOf[PrivateOriginator]/address/firstLine request property's maxLength was set to 250

      request-property-max-length-set

    • the originator/oneOf[OriginatorPRIVATE]/allOf[PrivateOriginator]/address/postCode request property's maxLength was set to 250

      request-property-max-length-set

    • changed the pattern of the request property originator/oneOf[OriginatorBUSINESS]/allOf[BusinessOriginator]/address/countryCode from ^[A-Z]{2}$ to \S

      request-property-pattern-changed

    • changed the pattern of the request property originator/oneOf[OriginatorPRIVATE]/allOf[PrivateOriginator]/address/countryCode from ^[A-Z]{2}$ to \S

      request-property-pattern-changed

    • the request property originator/oneOf[OriginatorBUSINESS]/allOf[BusinessOriginator]/businessRegistrationCode became optional

      request-property-became-optional

    • the request property originator/oneOf[OriginatorBUSINESS]/allOf[BusinessOriginator]/businessRegistrationDate became optional

      request-property-became-optional

    • the sourceCurrency response's property pattern ^[A-Z]{3}$ was added for the status 201

      response-property-pattern-added

    • the targetCurrency response's property pattern ^[A-Z]{3}$ was added for the status 201

      response-property-pattern-added

    • api operation id CreateThirdPartyTransfer removed and replaced with createthirdpartytransfer

      api-operation-id-removed

    This revision also has 3 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog