Are you looking for test card numbers?

Would you like to contact support?

Issuin icon

Manage funds within your platform

Fund your liable account and move funds between balance accounts.

Before a cardholder can use their card to make a payment, the balance account a card is associated with must have funds. You can add funds to balance accounts by:

Deposit funds to your liable account

You can fund your liable balance account, and from there you can transfer funds to your users' balance accounts.
To find out how you can deposit funds into your liable balance account, reach out to your Adyen contact.

Transfer funds between balance accounts

When you have funds in your liable account, you can make internal fund transfers within your platform. Depending on your use cases, there might also be scenarios that require you to make internal transfers. For example, sending a bonus to an account holder, or when an account holder has multiple balance accounts and they want to move funds.

Before you can make internal transfer funds, reach out to your Adyen contact to:

To transfer funds between balance accounts in your platform:

  1. Make a POST /transfers request specifying:
    Parameter Required Description
    amount -white_check_mark- Object containing the currency and value of the transfer.
    balanceAccountId -white_check_mark- Unique identifier of the source balance account.
    category -white_check_mark- Set to internal.
    counterparty.balanceAccountId -white_check_mark- Unique identifier of the recipient balance account.
    description Your description for the transfer.
    reference Your unique reference for the transfer.
    Here is an example of how you can transfer 100 EUR from your liable balance account to another balance account.
    Transfer funds between balance accounts
    curl https://balanceplatform-api-test.adyen.com/btl/v3/transfers \
    -H "x-api-key: YOUR_BALANCE_PLATFORM_API_KEY" \
    -H "content-type: application/json" \
    -X POST \
    -d '{
        "amount": {
            "currency": "EUR",
            "value": 10000
        },
        "balanceAccountId": "BA32272223211C78CZ3T52DKZ",
        "category" : "internal",
        "counterparty": {
            "balanceAccountId": "BA32272223222B5LPRFDW7J9G"
        },
        "description": "YOUR_DESCRIPTION_FOR_THE_TRANSFER",
        "reference": "YOUR_UNIQUE_REFERENCE_FOR_THE_TRANSFER"
    }'
    The response contains a unique id for the transfer request.
    Response
    {
      "id": "48NJIB9TWQJ6L7U7",
      "amount": {
        "currency": "EUR",
        "value": 10000
      },
      "balanceAccountId": "BA32272223211C78CZ3T52DKZ",
      "category" : "internal",
      "description": "YOUR_DESCRIPTION_FOR_THE_TRANSFER",
      "reference": "YOUR_UNIQUE_REFERENCE_FOR_THE_TRANSFER",
      "counterparty": {
        "balanceAccountId": "BA32272223222B5LPRFDW7J9G"
      },
      "direction": "outgoing",
      "reason": "approved",
      "status": "authorised"
    }
  1. To know if the transfer has been completed, keep track of notification webhooks. You can also make GET /balanceAccounts{id} request.

Split payments

If you are acquiring payments with Adyen, you can also fund balance accounts by distributing the payment amount in any number of ways among any number of balance accounts.

To make a split payment:

  1. Make a POST /payments request, specifying the splits array.

    For each split object in the array, specify the following fields:

    Parameter Required Description
    type -white_check_mark- Set to BalanceAccount.
    account -white_check_mark- The unique identifier of the balance account where you want to send the funds to.
    amount -white_check_mark- The amount to be sent to the balance account.
    reference -white_check_mark- Your unique identifier for the split.

    Check that the balance account IDs in your request are correct. The API only validates the format of the split data. See validating split information.

    For example, you can split a 150.00 USD payment such that:

    • 3.00 USD goes to your liable balance account as commission.
    • 147.00 USD goes to your user's balance account with id BAA1B2C3D4E5F6G7H8I9J0.
    Make a split payment request
    curl https://checkout-test.adyen.com/v68/payments \
    -H "x-API-key: YOUR_X-API-KEY" \
    -H "content-type: application/json" \
    -X POST \
    -d '{
       "paymentMethod":{
          "type":"scheme",
          "number":"4400 0000 0000 0008",
          "expiryMonth":"10",
          "expiryYear":"2020",
          "holderName":"John Smith",
          "cvc":"737"
       },
       "amount":{
          "value":15000,
          "currency":"USD"
       },
       "reference":"YOUR_REFERENCE_NUMBER",
       "merchantAccount":"YOUR_MERCHANT_ACCOUNT",
       "splits":[
          {
             "amount":{
                 "value":14700
             },
             "type":"BalanceAccount",
             "account":"BAA1B2C3D4E5F6G7H8I9J0",
             "reference":"YOUR_IDENTIFIER_FOR_THIS_PAYMENT"
          },
          {
             "amount":{
                 "value":300
             },
             "type":"Commission",
             "reference":"YOUR_IDENTIFIER_FOR_THIS_COMMISSION"
          }
       ]
    }'

    The response informs you if the payment was successful.

  2. To know if the split has been settled to the balance account in the request, keep track of notification webhooks. You can also make GET /balanceAccounts{id} request.

Validating split information

Adyen front-end systems only validate the format of the split data, and not the statuses of the balance accounts. This means that payments may succeed, but splits are not applied if the balance account specified in the request does not exist or is linked to an account holder with a closed status. When this happens, the full amount is sent to your platform's liable balance account.

To correct balances, you can transfer funds between balance accounts.

Next steps