---
title: "Calculate transfer routes"
method: POST
path: "/transferRoutes/calculate"
tags: ["Transfer routes"]
---

# Calculate transfer routes

`POST /transferRoutes/calculate`

Returns available transfer routes based on a combination of transfer `country`, `currency`, `counterparty`, and `priorities`. Use this endpoint to find optimal transfer priorities and associated requirements before you [make a transfer](https://docs.adyen.com/api-explorer/transfers/latest/post/transfers).

## Request body

- TransferRouteRequest
  - `balanceAccountId` string — The unique identifier of the source [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id). Required if `counterparty` is **transferInstrumentId**.
  - `balancePlatform` string, required — The unique identifier assigned to the balance platform associated with the account holder.
  - `category` 'bank', required — The type of transfer. Possible values: - **bank**: Transfer to a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account.
  - `counterparty` Counterparty
    - `bankAccount` BankAccount
      - `accountIdentification` union, required — Contains the bank account details. The fields required in this object depend on the country of the bank account and the currency of the transfer.
        - AULocalAccountIdentification
          - `accountNumber` string, required — The bank account number, without separators or whitespace.
          - `bsbCode` string, required — The 6-digit [Bank State Branch (BSB) code](https://en.wikipedia.org/wiki/Bank_state_branch), without separators or whitespace.
          - `type` 'auLocal', required — **auLocal**
        - BRLocalAccountIdentification
          - `accountNumber` string, required — The bank account number, without separators or whitespace.
          - `bankCode` string, required — The 3-digit bank code, with leading zeros.
          - `branchNumber` string, required — The bank account branch number, without separators or whitespace.
          - `ispb` string — The 8-digit ISPB, with leading zeros.
          - `type` 'brLocal', required — **brLocal**
        - CALocalAccountIdentification
          - `accountNumber` string, required — The 5- to 12-digit bank account number, without separators or whitespace.
          - `accountType` 'checking' | 'savings' — The bank account type. Possible values: **checking** or **savings**. Defaults to **checking**.
          - `institutionNumber` string, required — The 3-digit institution number, without separators or whitespace.
          - `transitNumber` string, required — The 5-digit transit number, without separators or whitespace.
          - `type` 'caLocal', required — **caLocal**
        - CZLocalAccountIdentification
          - `accountNumber` string, required — The 2- to 16-digit bank account number (Číslo účtu) in the following format: - The optional prefix (předčíslí). - The required second part (základní část) which must be at least two non-zero digits. Examples: - **19-123457** (with prefix) - **123457** (without prefix) - **000019-0000123457** (with prefix, normalized) - **000000-0000123457** (without prefix, normalized)
          - `bankCode` string, required — The 4-digit bank code (Kód banky), without separators or whitespace.
          - `type` 'czLocal', required — **czLocal**
        - DKLocalAccountIdentification
          - `accountNumber` string, required — The 4-10 digits bank account number (Kontonummer) (without separators or whitespace).
          - `bankCode` string, required — The 4-digit bank code (Registreringsnummer) (without separators or whitespace).
          - `type` 'dkLocal', required — **dkLocal**
        - HKLocalAccountIdentification
          - `accountNumber` string, required — The 9- to 17-digit bank account number, without separators or whitespace. Starts with the 3-digit branch code.
          - `clearingCode` string, required — The 3-digit clearing code, without separators or whitespace.
          - `type` 'hkLocal', required — **hkLocal**
        - HULocalAccountIdentification
          - `accountNumber` string, required — The 24-digit bank account number, without separators or whitespace.
          - `type` 'huLocal', required — **huLocal**
        - IbanAccountIdentification
          - `bic` string — The bank's 8- or 11-character BIC or SWIFT code.
          - `iban` string, required — The international bank account number as defined in the [ISO-13616](https://www.iso.org/standard/81090.html) standard.
          - `type` 'iban', required — **iban**
        - NOLocalAccountIdentification
          - `accountNumber` string, required — The 11-digit bank account number, without separators or whitespace.
          - `type` 'noLocal', required — **noLocal**
        - NZLocalAccountIdentification
          - `accountNumber` string, required — The 15-16 digit bank account number. The first 2 digits are the bank number, the next 4 digits are the branch number, the next 7 digits are the account number, and the final 2-3 digits are the suffix.
          - `type` 'nzLocal', required — **nzLocal**
        - NumberAndBicAccountIdentification
          - `accountNumber` string, required — The bank account number, without separators or whitespace. The length and format depends on the bank or country.
          - `additionalBankIdentification` AdditionalBankIdentification
            - `code` string — The value of the additional bank identification.
            - `type` 'auBsbCode' | 'caRoutingNumber' | 'gbSortCode' | 'usRoutingNumber' — The type of additional bank identification, depending on the country. Possible values: * **auBsbCode**: The 6-digit [Australian Bank State Branch (BSB) code](https://en.wikipedia.org/wiki/Bank_state_branch), without separators or spaces. * **caRoutingNumber**: The 9-digit [Canadian routing number](https://en.wikipedia.org/wiki/Routing_number_(Canada)), in EFT format, without separators or spaces. * **gbSortCode**: The 6-digit [UK sort code](https://en.wikipedia.org/wiki/Sort_code), without separators or spaces * **usRoutingNumber**: The 9-digit [routing number](https://en.wikipedia.org/wiki/ABA_routing_transit_number), without separators or spaces.
          - `bic` string, required — The bank's 8- or 11-character BIC or SWIFT code.
          - `type` 'numberAndBic', required — **numberAndBic**
        - PLLocalAccountIdentification
          - `accountNumber` string, required — The 26-digit bank account number ([Numer rachunku](https://pl.wikipedia.org/wiki/Numer_Rachunku_Bankowego)), without separators or whitespace.
          - `type` 'plLocal', required — **plLocal**
        - SELocalAccountIdentification
          - `accountNumber` string, required — The 7- to 10-digit bank account number ([Bankkontonummer](https://sv.wikipedia.org/wiki/Bankkonto)), without the clearing number, separators, or whitespace.
          - `clearingNumber` string, required — The 4- to 5-digit clearing number ([Clearingnummer](https://sv.wikipedia.org/wiki/Clearingnummer)), without separators or whitespace.
          - `type` 'seLocal', required — **seLocal**
        - SGLocalAccountIdentification
          - `accountNumber` string, required — The 4- to 19-digit bank account number, without separators or whitespace.
          - `bic` string, required — The bank's 8- or 11-character BIC or SWIFT code.
          - `type` 'sgLocal' — **sgLocal**
        - UKLocalAccountIdentification
          - `accountNumber` string, required — The 8-digit bank account number, without separators or whitespace.
          - `sortCode` string, required — The 6-digit [sort code](https://en.wikipedia.org/wiki/Sort_code), without separators or whitespace.
          - `type` 'ukLocal', required — **ukLocal**
        - USLocalAccountIdentification
          - `accountNumber` string, required — The bank account number, without separators or whitespace.
          - `accountType` 'checking' | 'savings' — The bank account type. Possible values: **checking** or **savings**. Defaults to **checking**.
          - `routingNumber` string, required — The 9-digit [routing number](https://en.wikipedia.org/wiki/ABA_routing_transit_number), without separators or whitespace.
          - `type` 'usLocal', required — **usLocal**
    - `transferInstrumentId` string — The unique identifier of the [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id).
  - `country` string — The two-character ISO-3166-1 alpha-2 country code of the counterparty. For example, **US** or **NL**. > Either `counterparty` or `country` field must be provided in a transfer route request.
  - `currency` string, required — The three-character ISO currency code of transfer. For example, **USD** or **EUR**.
  - `priorities` string[] — The list of priorities for the bank transfer. Priorities set the speed at which the transfer is sent and the fees that you have to pay. Multiple values can be provided. 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 within the United States and in [SEPA locations](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).

## Response `200`

OK - the request has succeeded.

- TransferRouteResponse
  - `transferRoutes` TransferRoute[] — List of available priorities for a transfer, along with requirements. Use this information to initiate a transfer.
    - `category` 'bank' | 'card' | 'grants' | 'interest' | 'internal' | 'issuedCard' | 'migration' | 'platformPayment' | 'topUp' | 'upgrade' — The type of transfer. Possible values: - **bank**: Transfer to a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account.
    - `country` string — The two-character ISO-3166-1 alpha-2 country code of the counterparty. For example, **US** or **NL**.
    - `currency` string — The three-character ISO currency code of transfer. For example, **USD** or **EUR**.
    - `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. 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 within the United States and in [SEPA locations](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).
    - `requirements` union[] — A set of rules defined by clearing houses and banking partners. Your transfer request must adhere to these rules to ensure successful initiation of transfer. Based on the priority, one or more requirements may be returned. Each requirement is defined with a `type` and `description`.
      - union
        - AdditionalBankIdentificationRequirement
          - `additionalBankIdentificationType` 'auBsbCode' | 'caRoutingNumber' | 'gbSortCode' | 'usRoutingNumber' — The type of additional bank identification, depending on the country. Possible values: * **auBsbCode**: The 6-digit [Australian Bank State Branch (BSB) code](https://en.wikipedia.org/wiki/Bank_state_branch), without separators or spaces. * **caRoutingNumber**: The 9-digit [Canadian routing number](https://en.wikipedia.org/wiki/Routing_number_(Canada)), in EFT format, without separators or spaces. * **gbSortCode**: The 6-digit [UK sort code](https://en.wikipedia.org/wiki/Sort_code), without separators or spaces * **usRoutingNumber**: The 9-digit [routing number](https://en.wikipedia.org/wiki/ABA_routing_transit_number), without separators or spaces.
          - `description` string — The description of the additional bank identification requirement.
          - `type` 'additionalBankIdentificationRequirement', required — **additionalBankIdentificationRequirement**
        - AddressRequirement
          - `description` string — Specifies the required address related fields for a particular route.
          - `requiredAddressFields` string[] — List of address fields.
          - `type` 'addressRequirement', required — **addressRequirement**
        - AmountMinMaxRequirement
          - `description` string — Specifies the eligible amounts for a particular route.
          - `max` integer — Maximum amount.
          - `min` integer — Minimum amount.
          - `type` 'amountMinMaxRequirement', required — **amountMinMaxRequirement**
        - AmountNonZeroDecimalsRequirement
          - `description` string — Specifies for which routes the amount in a transfer request must have no non-zero decimal places, so the transfer can only be processed if the amount consists of round numbers.
          - `type` 'amountNonZeroDecimalsRequirement', required — **amountNonZeroDecimalsRequirement**
        - BankAccountIdentificationTypeRequirement
          - `bankAccountIdentificationTypes` string[] — List of bank account identification types: eg.; [iban , numberAndBic]
          - `description` string — Specifies the bank account details for a particular route per required field in this object depending on the country of the bank account and the currency of the transfer.
          - `type` 'bankAccountIdentificationTypeRequirement', required — **bankAccountIdentificationTypeRequirement**
        - IbanAccountIdentificationRequirement
          - `description` string — Specifies the allowed prefixes for the international bank account number as defined in the ISO-13616 standard.
          - `ibanPrefixes` string[] — Contains the list of allowed prefixes for international bank accounts. For example: NL, US, UK.
          - `type` 'ibanAccountIdentificationRequirement', required — **ibanAccountIdentificationRequirement**
        - PaymentInstrumentRequirement
          - `description` string — Specifies the requirements for the payment instrument that need to be included in the request for a particular route.
          - `issuingCountryCode` string — The two-character [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code where the payment instrument is issued. For example, **NL** or **US**.
          - `issuingCountryCodes` string[] — The two-character ISO-3166-1 alpha-2 country code list for payment instruments.
          - `onlyForCrossBalancePlatform` boolean — Specifies if the requirement only applies to transfers to another balance platform.
          - `paymentInstrumentType` 'BankAccount' | 'Card' — The type of the payment instrument. For example, "BankAccount" or "Card".
          - `type` 'paymentInstrumentRequirement', required — **paymentInstrumentRequirement**
        - USInstantPayoutAddressRequirement
          - `description` string — Specifies that you must provide complete street addresses for the party and counterParty for transactions greater than USD 3000.
          - `type` 'usInstantPayoutAddressRequirement', required — **usInstantPayoutAddressRequirement**
        - USInternationalAchAddressRequirement
          - `description` string — Specifies that you must provide a complete street address for International ACH (IAT) transactions.
          - `type` 'usInternationalAchAddressRequirement', required — **usInternationalAchAddressRequirement**
        - USInternationalAchPriorityRequirement
          - `description` string — Specifies that transactions deemed to be International ACH (IAT) per OFAC/NACHA rules cannot have fast priority.
          - `type` 'usInternationalAchPriorityRequirement', required — **usInternationalAchPriorityRequirement**

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

---

[API](https://skmtc.net/adyen/apis/balanceplatformservice.md) · [All operations](https://skmtc.net/adyen/apis/balanceplatformservice/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/adyen/balanceplatformservice/revisions/8761ac1a9aab/schema)
