openapi: 3.1.0 servers: - url: https://balanceplatform-api-test.adyen.com/btl/v2 info: version: '2' x-publicVersion: true title: Transfers API description: ">Versions 1 and 2 of the Transfers API are deprecated. If you are\ \ just starting your implementation, use the latest version.\n\nThe Transfers\ \ API provides endpoints that you can use to transfer funds, whether when paying\ \ out to a transfer instrument for [marketplaces](https://docs.adyen.com/marketplaces/payout-to-users/on-demand-payouts)\ \ or [platforms](https://docs.adyen.com/platforms/payout-to-users/on-demand-payouts),\ \ [sending funds to third parties](https://docs.adyen.com/platforms/business-accounts/send-receive-funds)\ \ for users with business bank accounts, or to [request a payout for a grant offer](https://docs.adyen.com/platforms/capital).\ \ The API also supports use cases for [getting transactions for business bank\ \ accounts](https://docs.adyen.com/platforms/business-accounts/transactions-api)\ \ and getting [outstanding balances](https://docs.adyen.com/platforms/capital#get-balances)\ \ for one or more grants on your platform. \n\n## Authentication\nEach request\ \ to the Transfers API must be signed with an API key. Generate an API key in\ \ your Customer Area if you have a [platform setup](https://docs.adyen.com/platforms/manage-access/api-credentials-web-service/#generate-api-key)\ \ or [marketplace setup](https://docs.adyen.com/marketplaces/manage-access/api-credentials-web-service/#generate-api-key).\n\ \nIf you have an Adyen Issuing integration, [generate an API key](https://docs.adyen.com/issuing/manage-access/api-credentials-web-service/#generate-api-key)\ \ in your Balance Platform Customer Area.\n\nTo connect to the API, add an `X-API-Key`\ \ header with the API key as the value, for example:\n\n ```\ncurl\n-H \"Content-Type:\ \ application/json\" \\\n-H \"X-API-Key: YOUR_API_KEY\" \\\n...\n```\n\n## Roles\ \ and permissions\nTo use the Transfers API, you need an additional role for your\ \ API credential. Transfers must also be enabled for the source balance account.\ \ Your Adyen contact will set up the roles and permissions for you.\n## Versioning\n\ The Transfers API supports [versioning](https://docs.adyen.com/development-resources/versioning)\ \ using a version suffix in the endpoint URL. This suffix has the following format:\ \ \"vXX\", where XX is the version number.\n\nFor example:\n```\nhttps://balanceplatform-api-test.adyen.com/btl/v2/transfers\n\ ```\n## Going live\nWhen going live, generate an API key in your [live Customer\ \ Area](https://ca-live.adyen.com/ca/) if you have an Adyen for Platforms integration\ \ or [live Balance Platform Customer Area](https://balanceplatform-live.adyen.com/balanceplatform/)\ \ if you have an Adyen Issuing integration. You can then use the API key to send\ \ requests to `https://balanceplatform-api-live.adyen.com/btl/v2`.\n\n" termsOfService: https://www.adyen.com/legal/terms-and-conditions contact: name: Adyen Developer Experience team url: https://github.com/Adyen/adyen-openapi tags: - name: Transfers - name: Transactions - name: Capital paths: /transactions: get: tags: - Transactions summary: Get all transactions description: '>Versions 1 and 2 of the Transfers API are deprecated. If you are just starting your implementation, use the latest version. Returns all the transactions related to a balance account, account holder, or balance platform. When making this request, you must include at least one of the following: - `balanceAccountId` - `accountHolderId` - `balancePlatform`. This endpoint supports cursor-based pagination. The response returns the first page of results, and returns links to the next and previous pages when applicable. You can use the links to page through the results. ' x-addedInVersion: '1' operationId: get-transactions x-sortIndex: 1 x-methodName: getAllTransactions security: - clientKey: [] - BasicAuth: [] - ApiKeyAuth: [] parameters: - description: 'The unique identifier of the [balance platform](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/get/balancePlatforms/{id}__queryParam_id). Required if you don''t provide a `balanceAccountId` or `accountHolderId`.' name: balancePlatform in: query required: false schema: type: string - description: 'The unique identifier of the [payment instrument](https://docs.adyen.com/api-explorer/balanceplatform/latest/get/paymentInstruments/_id_). To use this parameter, you must also provide a `balanceAccountId`, `accountHolderId`, or `balancePlatform`. The `paymentInstrumentId` must be related to the `balanceAccountId` or `accountHolderId` that you provide.' name: paymentInstrumentId in: query required: false schema: type: string - description: 'The unique identifier of the [account holder](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/get/accountHolders/{id}__queryParam_id). Required if you don''t provide a `balanceAccountId` or `balancePlatform`. If you provide a `balanceAccountId`, the `accountHolderId` must be related to the `balanceAccountId`.' name: accountHolderId in: query required: false schema: type: string - description: 'The unique identifier of the [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/get/balanceAccounts/{id}__queryParam_id). Required if you don''t provide an `accountHolderId` or `balancePlatform`. If you provide an `accountHolderId`, the `balanceAccountId` must be related to the `accountHolderId`.' name: balanceAccountId in: query required: false schema: type: string - description: The `cursor` returned in the links of the previous response. name: cursor in: query required: false schema: type: string - description: Only include transactions that have been created on or after this point in time. The value must be in ISO 8601 format. For example, **2021-05-30T15:07:40Z**. name: createdSince in: query required: true schema: format: date-time type: string - description: Only include transactions that have been created on or before this point in time. The value must be in ISO 8601 format. For example, **2021-05-30T15:07:40Z**. name: createdUntil in: query required: true schema: format: date-time type: string - description: The number of items returned per page, maximum of 100 items. By default, the response returns 10 items per page. name: limit in: query required: false schema: format: int32 type: integer responses: '200': content: application/json: examples: success: $ref: '#/components/examples/get-transactions-success-200' schema: $ref: '#/components/schemas/TransactionSearchResponse' description: OK - the request has succeeded. '401': content: application/json: schema: $ref: '#/components/schemas/RestServiceError' description: Unauthorized - authentication required. '403': content: application/json: schema: $ref: '#/components/schemas/RestServiceError' description: Forbidden - insufficient permissions to process the request. '422': content: application/json: schema: $ref: '#/components/schemas/RestServiceError' description: Unprocessable Entity - a request validation error. '500': content: application/json: schema: $ref: '#/components/schemas/RestServiceError' description: Internal Server Error - the server could not process the request. /transactions/{id}: get: tags: - Transactions summary: Get a transaction description: '>Versions 1 and 2 of the Transfers API are deprecated. If you are just starting your implementation, use the latest version. Returns a transaction.' x-addedInVersion: '1' operationId: get-transactions-id x-sortIndex: 2 x-methodName: getTransaction security: - clientKey: [] - BasicAuth: [] - ApiKeyAuth: [] parameters: - description: The unique identifier of the transaction. name: id in: path required: true schema: type: string responses: '200': content: application/json: examples: success: $ref: '#/components/examples/get-transactions-id-success-200' schema: $ref: '#/components/schemas/Transaction' description: OK - the request has succeeded. '401': content: application/json: schema: $ref: '#/components/schemas/RestServiceError' description: Unauthorized - authentication required. '403': content: application/json: schema: $ref: '#/components/schemas/RestServiceError' description: Forbidden - insufficient permissions to process the request. '422': content: application/json: schema: $ref: '#/components/schemas/RestServiceError' description: Unprocessable Entity - a request validation error. '500': content: application/json: schema: $ref: '#/components/schemas/RestServiceError' description: Internal Server Error - the server could not process the request. /transfers: post: tags: - Transfers summary: Transfer funds description: '>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) - [Third-party bank accounts](https://docs.adyen.com/payouts/payout-service/pay-out-to-bank-accounts) - [Third-party cards](https://docs.adyen.com/payouts/payout-service/pay-out-to-cards) Adyen sends the outcome of the transfer request through webhooks. To use this endpoint: - Your API credential must have the **TransferService Webservice Initiate** [role](https://docs.adyen.com/platforms/manage-access/webservice-roles/?tab=transfers_3). - The account holder must have the required [capabilities](https://docs.adyen.com/platforms/verification-overview/capabilities). Reach out to your Adyen contact to set up these permissions.' x-addedInVersion: '2' operationId: post-transfers x-sortIndex: 1 x-methodName: transferFunds security: - clientKey: [] - BasicAuth: [] - ApiKeyAuth: [] requestBody: content: application/json: examples: payout-local-transfer-sepa: $ref: '#/components/examples/post-transfers-payout-local-transfer-sepa' payout-to-balance-account: $ref: '#/components/examples/post-transfers-payout-to-balance-account' payout-to-transfer-instrument: $ref: '#/components/examples/post-transfers-payout-to-transfer-instrument' schema: $ref: '#/components/schemas/TransferInfo' parameters: - $ref: '#/components/parameters/Idempotency-Key' - description: Header for authenticating through SCA example: SCA realm="Transfer" auth-param1="eyJjaGFsbGVuZ2UiOiJiVlV6ZW5wek0waFNl..." name: WWW-Authenticate in: header schema: type: string responses: '202': content: application/json: examples: payout-local-transfer-sepa: $ref: '#/components/examples/post-transfers-payout-local-transfer-sepa-202' payout-to-balance-account: $ref: '#/components/examples/post-transfers-payout-to-balance-account-202' payout-to-transfer-instrument: $ref: '#/components/examples/post-transfers-payout-to-transfer-instrument-202' schema: $ref: '#/components/schemas/Transfer' description: Accepted - the request has been accepted for processing, but the processing has not been completed. headers: Idempotency-Key: $ref: '#/components/headers/Idempotency-Key' '401': content: application/json: schema: $ref: '#/components/schemas/ServiceError' description: Unauthorized - authentication required. headers: auth-param1: $ref: '#/components/headers/auth-param1' '403': content: application/json: schema: $ref: '#/components/schemas/TransferServiceRestServiceError' description: Forbidden - insufficient permissions to process the request. '422': content: application/json: schema: $ref: '#/components/schemas/TransferServiceRestServiceError' description: Unprocessable Entity - a request validation error. headers: Idempotency-Key: $ref: '#/components/headers/Idempotency-Key' '500': content: application/json: schema: $ref: '#/components/schemas/TransferServiceRestServiceError' description: Internal Server Error - the server could not process the request. components: schemas: Address: additionalProperties: false properties: city: description: 'The name of the city. Maximum length: 3000 characters.' maxLength: 3000 type: string country: description: '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`.' type: string houseNumberOrName: description: 'The number or name of the house. Maximum length: 3000 characters.' maxLength: 3000 type: string postalCode: description: A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries. type: string stateOrProvince: description: '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.' type: string street: description: '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`.' maxLength: 3000 type: string required: - street - houseNumberOrName - city - postalCode - country type: object Amount: additionalProperties: false properties: currency: description: The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes). maxLength: 3 minLength: 3 type: string value: description: The amount of the transaction, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units). format: int64 type: integer required: - value - currency type: object Bank: additionalProperties: false properties: priority: x-addedInVersion: '1' description: '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**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN).' enum: - crossBorder - fast - instant - internal - regular - wire type: string type: object BankAccountInfo: additionalProperties: false properties: address: description: The address of the bank account owner. $ref: '#/components/schemas/Address' iban: description: The international bank account number as defined in the [ISO-13616](https://www.iso.org/standard/81090.html) standard. type: string ownerName: description: The name of the bank account owner. $ref: '#/components/schemas/Name' type: object Counterparty: additionalProperties: false properties: balanceAccountId: description: The unique identifier of the [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id). type: string bankAccount: description: Contains information about the bank account. $ref: '#/components/schemas/BankAccountInfo' merchant: description: Contains information about the merchant. $ref: '#/components/schemas/MerchantData' transferInstrumentId: description: The unique identifier of the [transfer instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/transferInstruments__resParam_id). type: string type: object CounterpartyInfo: additionalProperties: false properties: balanceAccountId: description: The unique identifier of the [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id). type: string bankAccount: description: Contains information about the bank account. $ref: '#/components/schemas/BankAccountInfo' transferInstrumentId: description: The unique identifier of the [transfer instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/transferInstruments__resParam_id). type: string type: object InvalidField: additionalProperties: false properties: message: description: Description of the validation error. type: string name: description: The field that has an invalid value. type: string value: description: The invalid value. type: string required: - name - value - message type: object JSONObject: type: object Link: additionalProperties: false properties: href: description: The link to the resource. type: string type: object Links: additionalProperties: false properties: next: description: Contains a link to the next page. $ref: '#/components/schemas/Link' prev: description: Contains a link to the previous page. $ref: '#/components/schemas/Link' type: object MerchantData: additionalProperties: false properties: acquirerId: description: The unique identifier of the merchant's acquirer. type: string mcc: description: The merchant category code. type: string merchantId: description: The unique identifier of the merchant. type: string nameLocation: description: Contains the name and location of the merchant. $ref: '#/components/schemas/NameLocation' postalCode: description: The postal code of the merchant. type: string type: object Name: additionalProperties: false properties: firstName: description: The first name. type: string fullName: description: The full name. type: string infix: description: The infix in the name, if any. type: string lastName: description: The last name. type: string type: object NameLocation: additionalProperties: false properties: city: description: The city where the merchant is located. type: string country: description: The country where the merchant is located in [three-letter country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) format. type: string countryOfOrigin: description: 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. type: string name: description: The name of the merchant's shop or service. type: string rawData: description: The raw data. type: string state: description: The state where the merchant is located. type: string type: object RestServiceError: additionalProperties: false properties: detail: description: A human-readable explanation specific to this occurrence of the problem. type: string errorCode: description: A code that identifies the problem type. type: string instance: description: A unique URI that identifies the specific occurrence of the problem. type: string invalidFields: description: Detailed explanation of each validation error, when applicable. items: $ref: '#/components/schemas/InvalidField' type: array requestId: description: A unique reference for the request, essentially the same as `pspReference`. type: string response: description: JSON response payload. $ref: '#/components/schemas/JSONObject' status: description: The HTTP status code. format: int32 type: integer title: description: A short, human-readable summary of the problem type. type: string type: description: A URI that identifies the problem type, pointing to human-readable documentation on this problem type. type: string required: - type - errorCode - title - detail - status type: object RoutingDetails: additionalProperties: false properties: detail: description: A human-readable explanation specific to this occurrence of the problem. type: string errorCode: description: A code that identifies the problem type. type: string priority: description: 'The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN).' enum: - crossBorder - fast - instant - internal - regular - wire type: string title: description: A short, human-readable summary of the problem type. type: string type: object ServiceError: additionalProperties: false properties: errorCode: description: The error code mapped to the error message. type: string errorType: description: The category of the error. type: string message: description: A short explanation of the issue. type: string pspReference: description: The PSP reference of the payment. type: string status: description: The HTTP response status. format: int32 type: integer type: object Transaction: additionalProperties: false properties: accountHolderId: x-addedInVersion: '1' description: Unique identifier of the account holder. type: string amount: x-addedInVersion: '1' description: Contains information about the amount of the transaction. $ref: '#/components/schemas/Amount' balanceAccountId: x-addedInVersion: '1' description: Unique identifier of the balance account. type: string balancePlatform: x-addedInVersion: '1' description: The unique identifier of the balance platform. type: string bookingDate: x-addedInVersion: '1' description: The date the transaction was booked into the balance account. format: date-time type: string category: x-addedInVersion: '1' description: "The category of the transaction indicating the type of activity.\n\ \n Possible values:\n\n* **platformPayment**: The transaction is a payment\ \ or payment modification made with an Adyen merchant account.\n\n* **internal**:\ \ The transaction resulted from an internal adjustment such as a deposit\ \ correction or invoice deduction.\n\n* **bank**: The transaction is a\ \ bank-related activity, such as sending a payout or receiving funds.\n\ \n* **issuedCard**: The transaction is a card-related activity, such as\ \ using an Adyen-issued card to pay online.\n\n" enum: - bank - card - grants - internal - issuedCard - migration - platformPayment - topUp - upgrade type: string counterparty: x-addedInVersion: '1' description: Contains information about the other party in the transaction. $ref: '#/components/schemas/Counterparty' createdAt: x-addedInVersion: '1' description: The date the transaction was created. format: date-time type: string creationDate: description: The date and time when the event was triggered, in ISO 8601 extended format. For example, **2020-12-18T10:15:30+01:00**. format: date-time type: string description: x-addedInVersion: '1' description: The `description` from the `/transfers` request. type: string id: x-addedInVersion: '1' description: The unique identifier of the transaction. type: string instructedAmount: x-addedInVersion: '1' description: The amount that the sender instructed their bank to send. This can be higher than `amount.value` when their bank deducts costs for the transfer. $ref: '#/components/schemas/Amount' paymentInstrumentId: x-addedInVersion: '1' description: The unique identifier of the payment instrument that was used for the transaction. type: string reference: x-addedInVersion: '1' description: The [`reference`](https://docs.adyen.com/api-explorer/#/transfers/latest/post/transfers__reqParam_reference) from the `/transfers` request. If you haven't provided any, Adyen generates a unique reference. type: string referenceForBeneficiary: x-addedInVersion: '1' description: "The reference sent to or received from the counterparty.\n\ \n* For outgoing funds, this is the [`referenceForBeneficiary`](https://docs.adyen.com/api-explorer/#/transfers/latest/post/transfers__resParam_referenceForBeneficiary)\ \ from the [`/transfers`](https://docs.adyen.com/api-explorer/#/transfers/latest/post/transfers__reqParam_referenceForBeneficiary)\ \ request.\n\n * For incoming funds, this is the reference from the sender." type: string status: x-addedInVersion: '1' description: "The status of the transaction.\n\n Possible values:\n\n* **pending**:\ \ The transaction is still pending.\n\n* **booked**: The transaction has\ \ been booked to the balance account.\n\n" enum: - booked - pending type: string transferId: x-addedInVersion: '1' description: Unique identifier of the related transfer. type: string type: x-addedInVersion: '1' description: "The type of the transaction.\n\n Possible values: **payment**,\ \ **capture**, **captureReversal**, **refund** **refundReversal**, **chargeback**,\ \ **chargebackReversal**, **secondChargeback**, **atmWithdrawal**, **atmWithdrawalReversal**,\ \ **internalTransfer**, **manualCorrection**, **invoiceDeduction**, **depositCorrection**,\ \ **bankTransfer**, **miscCost**, **paymentCost**, **fee**" enum: - atmWithdrawal - atmWithdrawalReversal - balanceAdjustment - balanceMigration - balanceRollover - bankDirectDebit - bankTransfer - capitalFundsCollection - capture - captureReversal - cardTransfer - cashOutFee - cashOutFunding - cashOutInstruction - cashoutFee - cashoutFunding - cashoutRepayment - chargeback - chargebackCorrection - chargebackReversal - chargebackReversalCorrection - depositCorrection - fee - grant - installment - installmentReversal - internalDirectDebit - internalTransfer - invoiceDeduction - leftover - manualCorrection - miscCost - payment - paymentCost - refund - refundReversal - repayment - reserveAdjustment - secondChargeback - secondChargebackCorrection type: string valueDate: x-addedInVersion: '1' description: The date the transfer amount becomes available in the balance account. format: date-time type: string required: - id - accountHolderId - balanceAccountId - amount - reference - status - createdAt - bookingDate - valueDate - counterparty - balancePlatform type: object TransactionSearchResponse: additionalProperties: false properties: _links: description: Contains links to the next and previous page whenever applicable. $ref: '#/components/schemas/Links' data: description: Contains the transactions that match the query parameters. items: $ref: '#/components/schemas/Transaction' type: array type: object Transfer: additionalProperties: false properties: amount: x-addedInVersion: '1' description: The amount of the transfer. $ref: '#/components/schemas/Amount' balanceAccountId: x-addedInVersion: '2' description: The unique identifier of the source [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id). type: string bank: x-addedInVersion: '1' description: Contains settings for bank transfers. If you are transferring funds to bank accounts and you don't provide this object, Adyen applies default settings. $ref: '#/components/schemas/Bank' counterparty: description: The other party in the transfer. $ref: '#/components/schemas/Counterparty' description: x-addedInVersion: '1' description: '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] & $ % # @** **~ = + - _ '' " ! ?**' type: string direction: x-addedInVersion: '2' description: 'The direction of the transfer. Possible values: **incoming**, **outgoing**.' enum: - incoming - outgoing type: string id: description: The ID of the resource. type: string paymentInstrumentId: x-addedInVersion: '2' description: The unique identifier of the [payment instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) used in the transfer. type: string reason: x-addedInVersion: '2' description: Additional information about the status of the transfer. enum: - accountHierarchyNotActive - amountLimitExceeded - approved - balanceAccountTemporarilyBlockedByTransactionRule - counterpartyAccountBlocked - counterpartyAccountClosed - counterpartyAccountNotFound - counterpartyAddressRequired - counterpartyBankTimedOut - counterpartyBankUnavailable - declined - declinedByTransactionRule - directDebitNotSupported - error - notEnoughBalance - pending - pendingApproval - pendingExecution - refusedByCounterpartyBank - refusedByCustomer - routeNotFound - scaFailed - transferInstrumentDoesNotExist - unknown type: string reference: x-addedInVersion: '2' description: Your reference for the transfer, used internally within your platform. If you don't provide this in the request, Adyen generates a unique reference. maxLength: 80 type: string referenceForBeneficiary: x-addedInVersion: '2' description: " 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 parties involved in the funds movement.\n\ \n Supported characters: **a-z**, **A-Z**, **0-9**." maxLength: 80 type: string status: x-addedInVersion: '2' description: "The result of the transfer.\n\n For example, **authorised**,\ \ **refused**, or **error**." enum: - 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 - pendingApproval - pendingExecution - received - refundPending - refundReversalPending - refundReversed - refunded - refundedExternally - refused - rejected - reserveAdjustment - reserveAdjustmentPending - returned - secondChargeback - secondChargebackPending - undefined type: string required: - counterparty - status - amount type: object TransferInfo: additionalProperties: false properties: amount: x-addedInVersion: '1' description: The amount of the transfer. $ref: '#/components/schemas/Amount' balanceAccountId: description: 'The unique identifier of the source [balance account](https://docs.adyen.com/api-explorer/balanceplatform/latest/post/balanceAccounts#responses-200-id). If you want to make a transfer using a **virtual** **bankAccount** assigned to the balance account, you must specify the [payment instrument ID](https://docs.adyen.com/api-explorer/balanceplatform/latest/post/paymentInstruments#responses-200-id) of the **virtual** **bankAccount**. If you only specify a balance account ID, Adyen uses the default **physical** **bankAccount** payment instrument assigned to the balance account.' type: string bank: x-addedInVersion: '1' description: Contains settings for bank transfers. If you are transferring funds to bank accounts and you don't provide this object, Adyen applies default settings. $ref: '#/components/schemas/Bank' counterparty: description: The other party involved in the funds transfer. A bank account, a balance account, or a transfer instrument is required. $ref: '#/components/schemas/CounterpartyInfo' description: x-addedInVersion: '1' description: '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] & $ % # @** **~ = + - _ '' " ! ?**' maxLength: 140 type: string paymentInstrumentId: description: 'The unique identifier of the source [payment instrument](https://docs.adyen.com/api-explorer/balanceplatform/latest/post/paymentInstruments#responses-200-id). If you want to make a transfer using a **virtual** **bankAccount**, you must specify the payment instrument ID of the **virtual** **bankAccount**. If you only specify a balance account ID, Adyen uses the default **physical** **bankAccount** payment instrument assigned to the balance account.' type: string reference: x-addedInVersion: '2' description: Your reference for the transfer, used internally within your platform. If you don't provide this in the request, Adyen generates a unique reference. maxLength: 80 type: string referenceForBeneficiary: x-addedInVersion: '2' description: " 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 parties involved in the funds movement.\n\ \n Supported characters: **a-z**, **A-Z**, **0-9**." maxLength: 80 type: string required: - amount - counterparty type: object TransferServiceRestServiceError: additionalProperties: false properties: detail: description: A human-readable explanation specific to this occurrence of the problem. type: string errorCode: description: A code that identifies the problem type. type: string instance: description: A unique URI that identifies the specific occurrence of the problem. type: string invalidFields: description: Detailed explanation of each validation error, when applicable. items: $ref: '#/components/schemas/InvalidField' type: array requestId: description: A unique reference for the request, essentially the same as `pspReference`. type: string response: description: JSON response payload. $ref: '#/components/schemas/JSONObject' routingDetails: description: Detailed explanation of each attempt to route the transfer with the priorities from the request. items: $ref: '#/components/schemas/RoutingDetails' type: array status: description: The HTTP status code. format: int32 type: integer title: description: A short, human-readable summary of the problem type. type: string type: description: A URI that identifies the problem type, pointing to human-readable documentation on this problem type. type: string required: - type - errorCode - title - detail - status type: object securitySchemes: ApiKeyAuth: in: header name: X-API-Key type: apiKey BasicAuth: scheme: basic type: http clientKey: in: query name: clientKey type: apiKey headers: Idempotency-Key: description: The idempotency key used for processing the request. Present if the key was provided in the request. schema: type: string auth-param1: description: Base64-encoded blob of data. You will need auth-param1 when authenticating your user using the SDK. schema: type: string parameters: Idempotency-Key: description: A unique identifier for the message with a maximum of 64 characters (we recommend a UUID). example: 37ca9c97-d1d1-4c62-89e8-706891a563ed name: Idempotency-Key in: header schema: type: string examples: get-transactions-id-success-200: summary: Response code - 200 OK description: Example response for a transaction value: accountHolderId: AHA1B2C3D4E5F6G7H8I9J0 amount: currency: EUR value: 9887 balanceAccountId: BAB8B2C3D4E5F6G7H8D9J6GD4 balancePlatform: YOUR_BALANCE_PLATFORM bookingDate: '2022-03-14T12:01:00+01:00' category: bank counterparty: balanceAccountId: BA00000000000000000000001 createdAt: '2022-03-14T12:01:00+01:00' description: YOUR_DESCRIPTION id: IZK7C25U7DYVX03Y instructedAmount: currency: EUR value: 9887 reference: 2L6C6B5U7DYULLXC referenceForBeneficiary: YOUR_REFERENCE_FOR_BENEFICIARY status: booked transferId: 2QP32A5U7IWC5WKG type: bankTransfer valueDate: '2022-03-14T12:01:00+01:00' get-transactions-success-200: summary: Response code - 200 OK description: Example response for a list of transactions value: data: - accountHolderId: AHA1B2C3D4E5F6G7H8I9J0 amount: currency: EUR value: -9 balanceAccountId: BAB8B2C3D4E5F6G7H8D9J6GD4 balancePlatform: YOUR_BALANCE_PLATFORM bookingDate: '2022-03-11T11:21:24+01:00' category: internal counterparty: balanceAccountId: BA00000000000000000000001 createdAt: '2022-03-11T11:21:24+01:00' id: 1VVF0D5U66PIUIVP instructedAmount: currency: EUR value: -9 reference: REFERENCE_46e8c40e status: booked transferId: 1VVF0D5U66PIUIVP type: fee valueDate: '2022-03-11T11:21:24+01:00' - accountHolderId: AHA1B2C3D4E5F6G7H8I9J0 amount: currency: EUR value: -46 balanceAccountId: BAB8B2C3D4E5F6G7H8D9J6GD4 balancePlatform: YOUR_BALANCE_PLATFORM bookingDate: '2022-03-12T14:22:52+01:00' category: internal counterparty: balanceAccountId: BA00000000000000000000001 createdAt: '2022-03-12T14:22:52+01:00' id: 1WEPGD5U6MS1CFK3 instructedAmount: currency: EUR value: -46 reference: YOUR_REFERENCE status: booked transferId: 1WEPGD5U6MS1CFK3 type: fee valueDate: '2022-03-12T14:22:52+01:00' - accountHolderId: AHA1B2C3D4E5F6G7H8I9J0 amount: currency: EUR value: -8 counterparty: balanceAccountId: BA00000000000000000000001 reference: REFERENCE_46e8c40e balanceAccountId: BAB8B2C3D4E5F6G7H8D9J6GD4 balancePlatform: YOUR_BALANCE_PLATFORM bookingDate: '2022-03-14T21:00:48+01:00' createdAt: '2022-03-14T15:00:00+01:00' description: YOUR_DESCRIPTION_2 id: 2QP32A5U7IWC5WKG instructedAmount: currency: EUR value: -8 status: booked valueDate: '2022-03-14T21:00:48+01:00' _links: next: href: https://balanceplatform-api-test.adyen.com/btl/v2/transactions?balancePlatform=Bastronaut&createdUntil=2022-03-21T00%3A00%3A00Z&createdSince=2022-03-11T00%3A00%3A00Z&limit=3&cursor=S2B-TSAjOkIrYlIlbjdqe0RreHRyM32lKRSxubXBHRkhHL2E32XitQQz5SfzpucD5HbHwpM1p6NDR1eXVQLFF6MmY33J32sobDxQYT90MHIud1hwLnd6JitcX32xJ post-transfers-payout-local-transfer-sepa: summary: Make a SEPA funds transfer description: Example request to make a US local funds transfer value: amount: value: 110000 currency: EUR balanceAccountId: BAB8B2C3D4E5F6G7H8D9J6GD4 counterparty: bankAccount: iban: NL13TEST0123456789 ownerName: fullName: A. Klaassen bank: priority: regular referenceForBeneficiary: Your reference sent to the beneficiary reference: Your internal reference for the transfer description: Your description post-transfers-payout-local-transfer-sepa-202: summary: Response code - 202 Accepted description: Example response for a transfers request value: id: 1W1UG35U8A9J5ZLG amount: value: 110000 currency: EUR balanceAccountId: BAB8B2C3D4E5F6G7H8D9J6GD4 counterparty: bankAccount: iban: NL13TEST0123456789 ownerName: fullName: A. Klaassen bank: priority: regular referenceForBeneficiary: Your reference sent to the beneficiary reference: Your internal reference for the transfer description: Your description direction: outgoing reason: approved status: authorised post-transfers-payout-to-balance-account: summary: Transfer funds to another balance account description: Example request to transfer funds to another balance account value: balanceAccountId: BAB8B2C3D4E5F6G7H8D9J6GD4 counterparty: balanceAccountId: BAB1234567890ABC123456789 amount: value: 10000 currency: EUR reference: Your internal reference for the transfer description: Your description post-transfers-payout-to-balance-account-202: summary: Response code - 202 Accepted description: Example response for a transfers request value: id: 1W1UG35U8A9J5ZLG amount: currency: EUR value: 10000 balanceAccountId: BAB8B2C3D4E5F6G7H8D9J6GD4 counterparty: balanceAccountId: BA32272223222B5LPRFDW7J9G referenceForBeneficiary: Your reference sent to the beneficiary reference: Your internal reference for the transfer description: Your description direction: outgoing reason: approved status: authorised post-transfers-payout-to-transfer-instrument: summary: Pay out to a transfer instrument description: Example request to pay out to a transfer instrument value: amount: value: 80000 currency: EUR balanceAccountId: BAB8B2C3D4E5F6G7H8D9J6GD4 counterparty: transferInstrumentId: SE1234567890ABC1234567890 bank: priority: regular referenceForBeneficiary: Your reference sent to the beneficiary reference: Your internal reference for the transfer description: Your description post-transfers-payout-to-transfer-instrument-202: summary: Response code - 202 Accepted description: Example response for a transfers request value: id: 1W1UG35U8A9J5ZLG amount: value: 80000 currency: EUR balanceAccountId: BAB8B2C3D4E5F6G7H8D9J6GD4 counterparty: transferInstrumentId: SE1234567890ABC1234567890 bank: priority: regular referenceForBeneficiary: Your reference sent to the beneficiary reference: Your internal reference for the transfer description: Your description direction: outgoing reason: approved status: authorised