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

# Transfer funds

`POST /transfers`

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.

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

- **2022-09-02** (v1) `a6fcc469131a` — 4 breaking, 4 info
  - removed the required property `errorType` from the response with the `401` status
  - removed the required property `errorType` from the response with the `403` status
  - removed the required property `errorType` from the response with the `422` status
  - removed the required property `errorType` from the response with the `500` status
  - …4 more
- **2022-06-02** (v1) `140c9570ac9c` — 2 info
  - api tag `Transfers` added
  - api tag `General` removed
- **2022-02-15** (v1) `247843f3d3dc` — 1 warning, 4 info
  - the `reference` request property's maxLength was set to `80`
  - added the optional property `response` to the response with the `401` status
  - added the optional property `response` to the response with the `403` status
  - added the optional property `response` to the response with the `422` status
  - …1 more
- **2021-11-01** (v1) `cceb5575f239` — 19 breaking, 13 warning, 15 info
  - the request's body type changed from `object` to no type
  - the `amount` request property type changed from `object` to no type
  - the `destination` request property type changed from `object` to no type
  - the `source` request property type changed from `object` to no type
  - …43 more

[Change 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/71b6c9eee9e9?raw)
