Issuin icon

Add and manage funds

Add and manage funds on the balance accounts.

Before a cardholder can use their card to make a payment, the balance account associated with the card needs to have funds.

You can get funds into 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

After you have deposited funds in your liable account, you can move funds to balance accounts within your platform by initiating internal funds transfers. As a platform, you can also initiate internal funds transfers between two balance accounts of the same account holder, or between the balance accounts of two different account holders within your platform.

The funds can be pushed or pulled from one balance account to the other:

  • When you push funds to the target balance account, that account is credited.
  • When you pull funds from the target balance account, that account is debited.

To fund a cardholder's balance account, you need to make a push transfer from your liable balance account to the cardholder's balance account.

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

To move funds between balance accounts:

  1. Make a POST /transfers request specifying:

    Parameter Required Description
    amount -white_check_mark- An object containing the currency and value of the transfer.
    balanceAccountId -white_check_mark- The unique identifier of the source balance account: the balance account where the transfer request is initiated.
    counterparty.balanceAccountId -white_check_mark- The unique identifier of the target balance account: the balance account where the transfer request is received.

    For a push transfer, funds are credited to this balance account.
    For a pull transfer, funds are debited from this balance account.
    category -white_check_mark- Set to internal.
    type
    Only use this parameter when pulling funds from the counterparty balance account.
    Set to internalDirectDebit to pull funds from the counterparty balance account.
    description Your description of the transfer. You can use this to identify the transfer in the webhooks that you receive.
    reference Your unique reference for the transfer. You can use this to identify the transfer in the webhooks that you receive.
    referenceForBeneficiary Text to inform the recipient about the push or pull transfer. This reference is also included in all webhooks. Supported characters: a-z, A-Z, 0-9.

    The following example shows how to push EUR 100 from your liable balance account to another balance account.

  2. In the response, note the following:

    • id: the unique ID of the transfer.
    • status: the result of the transfer.
    • reason: an explanation of the status. Check this field if the status is not authorised.
      For example, the reason for a refused status can be notEnoughBalance.
  3. To know if the transfer has been completed, keep track of 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 USD 150.00 payment such that:

    • USD 3.00 goes to your liable balance account as commission.
    • USD 147.00 goes to your user's balance account with id BAA1B2C3D4E5F6G7H8I9J0.

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