---
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 transfer request to move funds within your balance platform, or send funds to a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/v1/post/transferInstruments). 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

- TransferInfoOld
  - `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).
  - `description` string — A human-readable description for the transfer. You can use alphanumeric characters and hyphens. We recommend sending a maximum of 140 characters, otherwise the description will be truncated in the webhooks that you receive about the transfer.
  - `destination` PartyIdentification, required
    - `balanceAccountId` string — Unique identifier of the [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id).
    - `paymentInstrumentId` string — Unique identifier of the [payment instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/paymentInstruments__resParam_id).
  - `reference` string — Your unique reference for the transfer. You can use alphanumeric characters and hyphens. Maximum length: 80 characters.
  - `source` InternalPartyIdentification, required
    - `balanceAccountId` string — Unique identifier of the [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id).
    - `paymentInstrumentId` string — Unique identifier of the [payment instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/paymentInstruments__resParam_id).

## Response `200`

OK - the request has succeeded.

- TransferOld
  - `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).
  - `description` string — A human-readable description for the transfer. You can use alphanumeric characters and hyphens. We recommend sending a maximum of 140 characters, otherwise the description will be truncated in the webhooks that you receive about the transfer.
  - `destination` PartyIdentification, required
    - `balanceAccountId` string — Unique identifier of the [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id).
    - `paymentInstrumentId` string — Unique identifier of the [payment instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/paymentInstruments__resParam_id).
  - `id` string, required — Unique identifier of the transfer.
  - `reference` string — Your unique reference for the transfer. You can use alphanumeric characters and hyphens. Maximum length: 80 characters.
  - `refusalReason` string — Additional information about the result of the transfer request.
  - `resultCode` string, required — The result of the transfer request. Possible values: **Authorised**, **Refused**.
  - `source` InternalPartyIdentification, required
    - `balanceAccountId` string — Unique identifier of the [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id).
    - `paymentInstrumentId` string — Unique identifier of the [payment instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/paymentInstruments__resParam_id).

## Other responses

- `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** (v1) `6a461735ce65` — 6 warning
  - 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
  - removed the optional property `response/rootPath` from the response with the `403` status
  - …2 more
- **2023-09-27** (v1) `e8d0f4dc4d40` — 5 breaking, 4 warning, 4 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
  - …9 more
- **2023-06-20** (v1) `27fc86f6c350` — 1 info
  - the endpoint scheme security `BasicAuth` was added to the API
- **2023-02-21** (v1) `a241130043aa` — 28 breaking
  - the request's body type changed from no type to `object`
  - the `amount` request property type changed from no type to `object`
  - the `destination` request property type changed from no type to `object`
  - the `source` request property type changed from no type to `object`
  - …24 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/e99633faec27?raw)
