Fast-payout icon

Manage bank account details

Learn how to securely process the details of third-party bank accounts.

This page explains how to manage bank account details for third-party payouts. It covers how to securely store bank account details, allowing you to process bank account transfers efficiently.

Tokenization for payouts

Adyen's tokenization service lets you process payouts to your counterparties using tokenized bank account details. A token is a unique reference for a third party's bank account details, which helps you minimize security risks, simplify data management, and streamline recurring payouts to known recipients.

Requirements

Before you begin, take into account the following requirements, limitations, and preparations.

Requirement Description
Integration type An Adyen payout service integration and our Checkout API for tokenization.
API credentials Your company (ws@Company.[YourCompanyAccount]) has the following role to use with the Checkout API:
  • Checkout encrypted cardholder data
Webhooks Your server must be able to receive and accept webhooks.
Limitations Take the following limitations into account:
  • You cannot use local account details for cross-border transfers. When tokenizing bank details for cross-border payouts, you must use a format that supports them, such as NumberAndBicAccountIdentification.
  • The tokenization service does not validate bank accounts when creating a token. Invalid details may lead to failed payouts later.
Setup steps Reach out to your Adyen contact to enable the feature on your account.

Supported countries/regions

Adyen currently supports payouts to tokenized local bank account details in the following regions:

Europe

IBANs (SEPA Direct Debit)
UK Local (BACS)

North America

US Local (ACH)

Store bank account details

To tokenize and store bank account details:

  1. Make a POST /payments request, specifying the following parameters:

    Request parameter Required Description
    amount.currency -white_check_mark- Set to the currency that is applicable to the bank account.
    amount.value -white_check_mark- Set to 0 (zero) to combine with a zero-auth payment.
    paymentMethod -white_check_mark- Set to one of the following:
    • sepadirectdebit: SEPA Direct Debit
    • ukLocal: UK Local
    • usLocal: US Local
    billingAddress -white_check_mark- An object that contains the address details of the bank account.
    enablePayOut -white_check_mark- Set to true.
    merchantAccount -white_check_mark- The identifier of your merchant account.
    recurringProcessingModel -white_check_mark- Set to Subscription.
    reference -white_check_mark- Your unique reference to identify the payment request.
    returnUrl -white_check_mark- The return URL to redirect the bank account holder after the payment process.
    shopperReference -white_check_mark- Your unique reference to identify the bank account holder.
    storePaymentMethod -white_check_mark- Set to true.

    The following tab shows an example of a zero-auth payment request combined with creating a token for the bank account details.

    The token is created after a successful payment authorization. This ensures that the payment details are linked to an active, chargeable account.

  2. Find the token in the storedPaymentMethodId parameter. You can locate it in either of these places:

    • In the successful authorization response, under additionalData.tokenization.storedPaymentMethodId.
    • In the recurring.token.created webhook.

    The following tab shows an example for an authorized payment response that includes the token.

  3. In your system, store the following parameters together, so that the token is associated with the bank account holder:

    • additionalData.tokenization.shopperReference
    • additionalData.tokenization.storedPaymentMethodId

    You must provide these values when making a bank account payout request.

Next steps