---
title: "Transfer funds"
method: POST
path: "/transfers"
tags: ["Transfers"]
---

# Transfer funds

`POST /transfers`

>Versions 1 and 2 of the Transfers API are deprecated. If you are just starting your implementation, use the latest version.

Starts a request to transfer funds to [balance accounts](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts), [transfer instruments](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments), or third-party bank accounts. Adyen sends the outcome of the transfer request through webhooks.

To use this endpoint, you need an additional role for your API credential and transfers must be enabled for the source balance account. Your Adyen contact will set these up for you.

## Headers

- `WWW-Authenticate` string

## Request body

- TransferInfo
  - `amount` Amount, required
    - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes).
    - `value` integer, required — The amount of the transaction, in [minor units](https://docs.adyen.com/development-resources/currency-codes).
  - `balanceAccountId` string — The unique identifier of the source [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id).
  - `bank` Bank
    - `priority` 'crossBorder' | 'fast' | 'instant' | 'internal' | 'regular' | 'wire' — The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. If you don't provide this in the request, Adyen sets the optimal priority. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN).
  - `counterparty` CounterpartyInfo, required
    - `balanceAccountId` string — Unique identifier of the [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id).
    - `bankAccount` BankAccountInfo
      - `address` Address
        - `city` string, required — The name of the city. Maximum length: 3000 characters.
        - `country` string, required — The two-character ISO-3166-1 alpha-2 country code. For example, **US**. > If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`.
        - `houseNumberOrName` string, required — The number or name of the house. Maximum length: 3000 characters.
        - `postalCode` string, required — A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.
        - `stateOrProvince` string — The two-character ISO 3166-2 state or province code. For example, **CA** in the US or **ON** in Canada. > Required for the US and Canada.
        - `street` string, required — The name of the street. Maximum length: 3000 characters. > The house number should not be included in this field; it should be separately provided via `houseNumberOrName`.
      - `iban` string — The international bank account number as defined in the [ISO-13616](https://www.iso.org/standard/81090.html) standard.
      - `ownerName` Name
        - `firstName` string — The first name.
        - `fullName` string — The full name.
        - `infix` string — The infix in the name, if any.
        - `lastName` string — The last name.
    - `transferInstrumentId` string — Unique identifier of the [transfer instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/transferInstruments__resParam_id).
  - `description` string — Your description for the transfer. It is used by most banks as the transfer description. We recommend sending a maximum of 140 characters, otherwise the description may be truncated. Supported characters: **[a-z] [A-Z] [0-9] / - ?** **: ( ) . , ' + Space** Supported characters for **regular** and **fast** transfers to a US counterparty: **[a-z] [A-Z] [0-9] & $ % # @** **~ = + - _ ' " ! ?**
  - `paymentInstrumentId` string — The unique identifier of the source [payment instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/paymentInstruments__resParam_id).
  - `reference` string — Your reference for the transfer, used internally within your platform. If you don't provide this in the request, Adyen generates a unique reference.
  - `referenceForBeneficiary` string — A reference that is sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses for both the source and recipient of funds. Supported characters: **a-z**, **A-Z**, **0-9**. Maximum length: 80 characters.

## Response `200`

OK - the request has succeeded.

- Transfer
  - `amount` Amount, required
    - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes).
    - `value` integer, required — The amount of the transaction, in [minor units](https://docs.adyen.com/development-resources/currency-codes).
  - `balanceAccountId` string — The unique identifier of the source [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id).
  - `bank` Bank
    - `priority` 'crossBorder' | 'fast' | 'instant' | 'internal' | 'regular' | 'wire' — The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. If you don't provide this in the request, Adyen sets the optimal priority. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN).
  - `counterparty` Counterparty, required
    - `balanceAccountId` string — Unique identifier of the [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id).
    - `bankAccount` BankAccountInfo
      - `address` Address
        - `city` string, required — The name of the city. Maximum length: 3000 characters.
        - `country` string, required — The two-character ISO-3166-1 alpha-2 country code. For example, **US**. > If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`.
        - `houseNumberOrName` string, required — The number or name of the house. Maximum length: 3000 characters.
        - `postalCode` string, required — A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.
        - `stateOrProvince` string — The two-character ISO 3166-2 state or province code. For example, **CA** in the US or **ON** in Canada. > Required for the US and Canada.
        - `street` string, required — The name of the street. Maximum length: 3000 characters. > The house number should not be included in this field; it should be separately provided via `houseNumberOrName`.
      - `iban` string — The international bank account number as defined in the [ISO-13616](https://www.iso.org/standard/81090.html) standard.
      - `ownerName` Name
        - `firstName` string — The first name.
        - `fullName` string — The full name.
        - `infix` string — The infix in the name, if any.
        - `lastName` string — The last name.
    - `merchant` MerchantData
      - `acquirerId` string — The unique identifier of the merchant's acquirer.
      - `mcc` string — The merchant category code.
      - `merchantId` string — The merchant identifier.
      - `nameLocation` NameLocation
        - `city` string — The city where the merchant is located.
        - `country` string — The country where the merchant is located in [three-letter country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) format.
        - `countryOfOrigin` string — The home country in [three-digit country code](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) format, used for government-controlled merchants such as embassies.
        - `name` string — The name of the merchant's shop or service.
        - `rawData` string — The raw data.
        - `state` string — The state where the merchant is located.
      - `postalCode` string — The merchant postal code.
    - `transferInstrumentId` string — Unique identifier of the [transfer instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/transferInstruments__resParam_id).
  - `description` string — Your description for the transfer. It is used by most banks as the transfer description. We recommend sending a maximum of 140 characters, otherwise the description may be truncated. Supported characters: **[a-z] [A-Z] [0-9] / - ?** **: ( ) . , ' + Space** Supported characters for **regular** and **fast** transfers to a US counterparty: **[a-z] [A-Z] [0-9] & $ % # @** **~ = + - _ ' " ! ?**
  - `direction` 'incoming' | 'outgoing' — The direction of the transfer. Possible values: **incoming**, **outgoing**.
  - `id` string — The ID of the resource.
  - `paymentInstrumentId` string — The unique identifier of the [payment instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) used in the transfer.
  - `reason` 'amountLimitExceeded' | 'approved' | 'balanceAccountTemporarilyBlockedByTransactionRule' | 'counterpartyAccountBlocked' | 'counterpartyAccountClosed' | 'counterpartyAccountNotFound' | 'counterpartyAddressRequired' | 'counterpartyBankTimedOut' | 'counterpartyBankUnavailable' | 'declinedByTransactionRule' | 'error' | 'notEnoughBalance' | 'refusedByCounterpartyBank' | 'routeNotFound' | 'scaFailed' | 'unknown' — Additional information about the status of the transfer.
  - `reference` string — Your reference for the transfer, used internally within your platform. If you don't provide this in the request, Adyen generates a unique reference.
  - `referenceForBeneficiary` string — A reference that is sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses for both the source and recipient of funds. Supported characters: **a-z**, **A-Z**, **0-9**. Maximum length: 80 characters.
  - `status` 'approvalPending' | 'atmWithdrawal' | 'atmWithdrawalReversalPending' | 'atmWithdrawalReversed' | 'authAdjustmentAuthorised' | 'authAdjustmentError' | 'authAdjustmentRefused' | 'authorised' | 'bankTransfer' | 'bankTransferPending' | 'booked' | 'bookingPending' | 'cancelled' | 'capturePending' | 'captureReversalPending' | 'captureReversed' | 'captured' | 'capturedExternally' | 'chargeback' | 'chargebackExternally' | 'chargebackPending' | 'chargebackReversalPending' | 'chargebackReversed' | 'credited' | 'depositCorrection' | 'depositCorrectionPending' | 'dispute' | 'disputeClosed' | 'disputeExpired' | 'disputeNeedsReview' | 'error' | 'expired' | 'failed' | 'fee' | 'feePending' | 'internalTransfer' | 'internalTransferPending' | 'invoiceDeduction' | 'invoiceDeductionPending' | 'manualCorrectionPending' | 'manuallyCorrected' | 'matchedStatement' | 'matchedStatementPending' | 'merchantPayin' | 'merchantPayinPending' | 'merchantPayinReversed' | 'merchantPayinReversedPending' | 'miscCost' | 'miscCostPending' | 'paymentCost' | 'paymentCostPending' | 'received' | 'refundPending' | 'refundReversalPending' | 'refundReversed' | 'refunded' | 'refundedExternally' | 'refused' | 'reserveAdjustment' | 'reserveAdjustmentPending' | 'returned' | 'secondChargeback' | 'secondChargebackPending' | 'undefined', required — The result of the transfer. For example, **authorised**, **refused**, or **error**.

## Other responses

- `202` — Accepted - the request has been accepted for processing, but the processing has not been completed.
- `401` — Unauthorized - authentication required.
- `403` — Forbidden - insufficient permissions to process the request.
- `422` — Unprocessable Entity - a request validation error.
- `500` — Internal Server Error - the server could not process the request.

## Changes

- **2023-10-27** (v2) `30c8bdbc715c` — 1 breaking, 6 warning, 2 info
  - removed the enum value `directDebit` of the request property `bank/priority`
  - removed the optional property `response/paths` from the response with the `403` status
  - removed the optional property `response/paths` from the response with the `422` status
  - removed the optional property `response/paths` from the response with the `500` status
  - …5 more
- **2023-09-27** (v2) `3c462dec1ac1` — 5 breaking, 11 warning, 14 info
  - the response property `errorCode` became optional for the status `401`
  - the response property `status` became optional for the status `401`
  - removed the required property `detail` from the response with the `401` status
  - removed the required property `title` from the response with the `401` status
  - …26 more
- **2023-08-09** (v2) `0720e3f1a2c8` — 8 warning
  - added the new `operationAuthorized` enum value to the `status` response property for the response status `200`
  - added the new `operationAuthorized` enum value to the `status` response property for the response status `202`
  - added the new `operationBooked` enum value to the `status` response property for the response status `200`
  - added the new `operationBooked` enum value to the `status` response property for the response status `202`
  - …4 more
- …earlier changes not shown

[Full history](https://skmtc.dev/adyen/apis/transferservice/changes/transfers/post.md)

---

[API](https://skmtc.dev/adyen/apis/transferservice.md) · [All operations](https://skmtc.dev/adyen/apis/transferservice/llms.txt) · [OpenAPI document](https://skmtc.dev/adyen/apis/transferservice/revisions/586a66408d68?raw)
