Skip to main content
Adyen is a global payment technology company founded in 2006 in Amsterdam, Netherlands. The company provides a single platform for accepting payments across online, mobile, and in-store channels for major enterprises worldwide including Uber, Spotify, and Microsoft. Adyen’s bank connector enables you to process ACH, SEPA, and BACS bank payments through Adyen’s payment platform. This connector supports two payment flows:
  • Plaid Link—Customers link their bank account through Plaid, and the resulting token is used to process the payment. Adyen only processes Plaid-linked payments for ACH Direct Debit accounts.
  • Direct bank details—You provide raw bank account details directly via the API. This flow supports ACH, SEPA, and BACS schemes. See Direct bank payments for details.

Setup

Please follow the common Adyen instructions to get set up with Adyen. Next, make sure to enable the relevant bank payment methods (ACH, SEPA, or BACS) on your configured Adyen account. The following additional settings are available.
  • Force direct bank details—When enabled, the system skips attempting to exchange a Plaid processor token with Adyen and instead fetches raw bank details (account number, routing number, IBAN, or sort code) from Plaid directly. This saves an API call per payment and is useful when you prefer to always process with raw bank details. This setting has no effect on transactions that already use the direct bank payment method.

Prerequisites

To use bank payments via Adyen, you must have:
  1. Adyen bank payments enabled: The relevant bank payment method (ACH, SEPA, or BACS) must be enabled in your Adyen account
  2. Plaid configured: For Plaid-linked payments, set up Plaid in your Gr4vy dashboard to handle bank account linking
For Plaid-linked payments, the integration flow requires customers to first link their bank account through Plaid Link, then use the resulting public token to create a transaction that is processed through Adyen. For direct bank payments, you submit raw bank account details via the API without requiring Plaid.

Supported countries

Adyen supports transactions from buyers in the following countries:
Country codeCountry codeCountry codeCountry codeCountry codeCountry codeCountry codeCountry code
ATBEBGCYCZDEDKEE
ESFIFRGBGRHRHUIE
ITLTLULVMTNLPLPT
ROSESISKUS

Supported currencies

Adyen supports processing payments in EUR, GBP, and USD.

Limitations

Refunds

Partial refunds are not supported for unsettled bank transactions. If you need to refund a bank transaction before it has settled, you must refund the full transaction amount. Once a transaction has settled, partial refunds become available.

Payment methods

This connector supports bank accounts linked through Plaid (ACH, SEPA, and BACS) and direct bank account details submitted via the API. See Direct bank payments for the direct integration flow.

Usage

You can create bank payments via Adyen using either Plaid Link or direct bank details. First, use Plaid Link to securely connect the customer’s bank account. See the Plaid integration guide for detailed instructions on implementing Plaid Link. When the customer successfully links their account, you’ll receive a publicToken and account metadata from Plaid. Use the publicToken from Plaid to create a transaction that is processed through the Adyen bank connector.
var transaction = await client.Transactions.CreateAsync(
    transactionCreate: new TransactionCreate()
    {
        Amount = 1299,
        Currency = "USD",
        Country = "US",
        Intent = TransactionCreate.IntentEnum.Capture,
        PaymentMethod = TransactionCreatePaymentMethod.CreatePlaidPaymentMethodCreate(
            new PlaidPaymentMethodCreate()
            {
                Method = PlaidPaymentMethodCreate.MethodEnum.Plaid,
                Token = "public-sandbox-xxxxx",
                AccountId = "account-id-from-metadata"
            }
        ),
        Buyer = new BuyerCreate()
        {
            BillingAddress = new AddressCreate()
            {
                FirstName = "John",
                LastName = "Doe"
            }
        },
        PaymentServiceId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    }
);
Key parameters:
  • method - Set to plaid to indicate a Plaid-linked bank account
  • token - The public token received from Plaid Link
  • account_id - Optional. The specific account ID from Plaid metadata if the customer linked multiple accounts
  • payment_service_id - The UUID of your Adyen bank connection (found in Gr4vy dashboard)
The transaction is processed through Adyen as an ACH Direct Debit payment using the bank account details securely retrieved from Plaid.

Option 2: Direct bank details

Submit raw bank account details directly via the API. Set method to bank and scheme to the appropriate value (ach, sepa, or bacs). The following example uses the ach scheme. For SEPA, replace the scheme with sepa and provide the IBAN as the account_number. For BACS, replace the scheme with bacs and provide the sort code as the routing_number.
var transaction = await client.Transactions.CreateAsync(
    transactionCreate: new TransactionCreate()
    {
        Amount = 1299,
        Currency = "USD",
        Country = "US",
        Intent = TransactionCreate.IntentEnum.Capture,
        PaymentMethod = TransactionCreatePaymentMethod.CreateACHBankPaymentMethodCreate(
            new ACHBankPaymentMethodCreate()
            {
                Method = ACHBankPaymentMethodCreate.MethodEnum.Bank,
                Scheme = ACHBankPaymentMethodCreate.SchemeEnum.Ach,
                AccountNumber = "1234567890",
                RoutingNumber = "011000138",
                AccountType = ACHBankPaymentMethodCreate.AccountTypeEnum.Checking,
                AccountHolder = new BankAccountHolder()
                {
                    FirstName = "John",
                    LastName = "Doe"
                }
            }
        ),
        PaymentServiceId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    }
);
For vaulting, recurring payments, and additional details, see the Direct bank payments guide.

Testing

In a test environment, you can use Plaid’s sandbox mode along with Adyen’s test environment:
  1. Configure Plaid with sandbox credentials
  2. Use Plaid’s test credentials to link a test bank account
  3. Process test transactions through Adyen’s sandbox
For direct bank details, use Adyen’s test account numbers for ACH, SEPA, or BACS as documented in Adyen’s testing guides. Refer to Plaid’s testing documentation for available test credentials and scenarios.