# 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.

Endpoint: POST /profiles/{profileId}/third-party-transfers
Version: 2026Q4
Security: UserToken

## Description:

  - `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` (unknown)
    http bearer JWT

## Path parameters:

  - `profileId` (integer, required)
    The profile ID.

## Header parameters:

  - `X-External-Correlation-Id` (string)
    Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. [Learn more](/guides/developer/headers/correlation-id).

## Request fields (application/json):

  - `originalTransferId` (string, 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.
    Example: 4711

  - `targetAccount` (integer, required)
    Recipient account ID.
    Example: 7839323

  - `sourceAccount` (integer)
    Refund recipient account ID.
    Example: 1527389

  - `quote` (string, required)
    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

  - `details` (object, required)

  - `details.reference` (string)
    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](https://wise.com/help/articles/2932870/tips-for-paying-invoices) for a full list
    Example: T12789649

  - `originator` (any, required)

  - `originator.reference` (string, required)
    Unique customer ID in your system. This allows us to uniquely identify each originator
    Example: CST-2991992

  - `originator.name` (object, required)
    Data block to capture the originator name details

  - `originator.name.givenName` (string)
    Payment originator first name
    Example: John

  - `originator.name.middleNames` (array)
    Payment originator middle name(s)

  - `originator.name.familyName` (string)
    Payment originator family name
    Example: Godspeed

  - `originator.name.patronymicName` (string)
    Payment originator patronymic name
    Example: Fitz

  - `originator.name.fullName` (string)
    Payment originator full legal name
    Example: John Godspeed

  - `originator.dateOfBirth` (string, required)
    Payment originator date of birth
    Example: 1977-07-01

  - `originator.nationality` (string)
    Payment originator nationality. Required for certain routes (e.g. to UGX)
    Example: EE

  - `originator.accountDetails` (string)
    Payment originator account number
    Example: 23456789

  - `originator.address` (object, required)

  - `originator.address.firstLine` (string, required)
    Payment originator address first line
    Example: Salu tee 14

  - `originator.address.city` (string)
    Payment originator address city
    Example: Tallinn

  - `originator.address.stateCode` (string)
    Payment originator address state code. Required if address country code in (US, CA, BR, AU)
    Example: NY

  - `originator.address.countryCode` (string, required)
    Payment originator address country code ISO 3166-1 alpha-2
    Example: EE

  - `originator.address.postCode` (string)
    Originator address zip code
    Example: 12112

  - `originator.legalEntityType` (string, required)

  - `originator.businessRegistrationCode` (string)
    Payment originator business registry number / incorporation number
    Example: 83920-546

  - `originator.businessRegistrationDate` (string)
    Payment originator business registration date. Required for certain routes (e.g. to UGX)
    Example: 2020-01-15

## Request examples:

  - `PRIVATE Originator` (unknown)

  - `BUSINESS Originator` (unknown)

## Response 201:

  - `201` (unknown)
    Third party transfer successfully created.

## Response 201 fields (application/json):

  - `id` (integer)
    Transfer ID
    Example: 16521632

  - `user` (integer)
    Your user ID
    Example: 4342275

  - `targetAccount` (integer)
    Recipient account ID
    Example: 8692237

  - `sourceAccount` (integer)
    Refund recipient account ID
    Example: 1527389

  - `quote` (string)
    Quote ID
    Example: 8fa9be20-ba43-4b15-abbb-9424e1481050

  - `status` (string)
    Transfer current status. See [Tracking Transfers](https://docs.wise.com/guides/product/send-money/tracking-transfers) for all possible statuses.
    Example: cancelled

  - `rate` (number)
    Exchange rate value
    Example: 0.89

  - `details` (object)

  - `details.reference` (string)
    Recipient will see this reference text in their bank statement. Maximum allowed characters depends on the currency route.
[Business Payments Tips](https://wise.com/help/articles/2932870/tips-for-paying-invoices) for a full list
    Example: T12789649

  - `originator` (object)

  - `originator.legalEntityType` (string)
    Enum: "PRIVATE", "BUSINESS"

  - `originator.reference` (string)
    Unique customer ID in your system. This allows us to uniquely identify each originator
    Example: CST-2991992

  - `originator.name` (object)
    Data block to capture the originator name details

  - `originator.name.givenName` (string)
    Payment originator first name
    Example: John

  - `originator.name.middleNames` (array)
    Payment originator middle name(s)
    Example: ["Fitz","John"]

  - `originator.name.familyName` (string)
    Payment originator family name
    Example: Godspeed

  - `originator.name.patronymicName` (string)
    Payment originator patronymic name
    Example: Fitz

  - `originator.name.fullName` (string)
    Payment originator full legal name
    Example: John Godspeed

  - `originator.dateOfBirth` (string)
    Payment originator date of birth
    Example: 1977-07-01

  - `originator.nationality` (string)
    Payment originator nationality. Required for certain routes (e.g. to UGX)
    Example: EE

  - `originator.accountDetails` (string)
    Payment originator account number
    Example: 23456789

  - `originator.address` (object)

  - `originator.address.firstLine` (string)
    Payment originator address first line
    Example: Salu tee 14

  - `originator.address.city` (string)
    Payment originator address city
    Example: Tallinn

  - `originator.address.stateCode` (string)
    Payment originator address state code. Required if address country code in (US, CA, BR, AU)
    Example: NY

  - `originator.address.countryCode` (string)
    Payment originator address country code ISO 3166-1 alpha-2
    Example: EE

  - `originator.address.postCode` (string)
    Originator address zip code
    Example: 12112

  - `originator.businessRegistrationCode` (string)
    Payment originator business registry number / incorporation number
    Example: 83920-546

  - `originator.businessRegistrationDate` (string)
    Payment originator business registration date. Required for certain routes (e.g. to UGX)
    Example: 2020-01-15

  - `hasActiveIssues` (boolean)
    Are there any pending issues which stop executing the transfer?
    Example: false

  - `sourceCurrency` (string)
    Source currency code
    Example: EUR

  - `sourceValue` (number)
    Transfer amount in source currency
    Example: 0

  - `targetCurrency` (string)
    Target currency code
    Example: GBP

  - `targetValue` (number)
    Transfer amount in target currency
    Example: 150

  - `originalTransferId` (string)
    Unique identifier randomly generated per transfer request by the calling client
    Example: 54a6bc09-cef9-49a8-9041-f1f0c654cd88

  - `created` (string)
    Timestamp when transfer was created.
    Example: 2025-10-29T12:28:16.000Z

## Response 201 headers (application/json):

  - `Location` (string)
    Path to the created transfer
    Example: /public/v2/profiles/123/third-party-transfers/16521632

  - `X-External-Correlation-Id` (string)
    Echoed back when `X-External-Correlation-Id` was included in the request. [Learn more](/guides/developer/headers/correlation-id).
    Example: f47ac10b-58cc-4372-a567-0e02b2c3d479

  - `x-trace-id` (string)
    Unique trace identifier assigned by Wise. Useful when contacting support about a specific request.
    Example: fba501b6d453b96789f52338f019341f

## Response 429:

  - `429` (unknown)
    Rate limit exceeded. Retry after the number of seconds specified in the `Retry-After` header.

## Response 429 headers (application/json):

  - `Retry-After` (integer)
    Number of seconds to wait before retrying the request.
    Example: 5

  - `X-Rate-Limited-By` (string)
    Identifies the rate limiter that triggered the 429 response.
    Example: wise-public-api

  - `X-External-Correlation-Id` (string)
    Echoed back when `X-External-Correlation-Id` was included in the request. [Learn more](/guides/developer/headers/correlation-id).
    Example: f47ac10b-58cc-4372-a567-0e02b2c3d479

  - `x-trace-id` (string)
    Unique trace identifier assigned by Wise. Useful when contacting support about a specific request.
    Example: fba501b6d453b96789f52338f019341f

## Response 201 examples:

  - `BUSINESS Originator Response` (unknown)

  - `PRIVATE Originator Response` (unknown)

