# 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 /v2/profiles/{profileId}/third-party-transfers
Security: UserToken

## Path parameters:

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

## 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.
    Example: "f47ac10b-58cc-4372-a567-0e02b2c3d479"

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

  - `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.
         [Business Payments Tips](https://wise.com/help/articles/2932870/tips-for-paying-invoices) for a full list
    Example: "T12789649"

  - `originator` (any, required)

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

  - `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)

  - `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?

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

  - `sourceValue` (number)
    Transfer amount in source currency

  - `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"


