Search

Are you looking for test card numbers?

Would you like to contact support?

Default icon

Manage funds

Add funds to your balance accounts.

Before your users can use their cards, they need to have funds in their balanceAccounts.

You can get funds into their account by:

Split payments

When processing payments, you can split them any number of ways to any number of balance accounts.

To split a payment, provide split data along with the payment request:

  • splits: Array of split objects.

    • amount: The amount to be added to the balance account.
    • type: Specify if the split is for VAT, Commission, or BalanceAccount.
    • account: The balanceAccounts.Id you want to send the funds to. Only required when type is BalanceAccount.
    • reference: Your unique identifier for the split. You will need this reference when performing refunds.

For example, split a 10.00 USD payment with a 2.00 USD going to your liable balance account and 8 USD going to your user's balance account, BAA1B2C3D4E5F6G7H8I9J0.

{
   "paymentMethod":{
      "type":"scheme",
      "number":"4400 0000 0000 0008",
      "expiryMonth":"10",
      "expiryYear":"2020",
      "holderName":"John Smith",
      "cvc":"737"
   },
   "amount":{
      "value":1000,
      "currency":"USD"
   },
   "reference":"YOUR_REFERENCE_NUMBER",
   "merchantAccount":"YOUR_MERCHANT_ACCOUNT",
   "splits":[
      {
         "amount":{
             "value":800
         },
         "type":"BalanceAccount",
         "account":"BAA1B2C3D4E5F6G7H8I9J0",
         "reference":"YOUR_IDENTIFIER_FOR_THIS_SPLIT"
      },
      {
         "amount":{
             "value":200
         },
         "type":"Commission",
         "reference":"YOUR_IDENTIFIER_FOR_THIS_COMMISSION_SPLIT"
      }
   ]
}

Funding your liable account

You can fund your liable account, and from there you can transfer funds to your users' balance accounts.

Reach out to your Adyen contact on how to deposit funds into your liable account.

Dynamic balance account funding

By default, the balanceAccount associated with a paymentInstrument needs to have enough balance to be able to process a payment attempt. In some cases, you may not want to have a separate balance for each payment instrument, but instead have a common pool of funds for all transactions. You can enable a common fund with dynamic balance account funding.

To use dynamic balance account funding, specify in the balanceAccount resource:

  • fundingBalanceAccount: ID of another balanceAccount, often this is your liable balance account.

The original balance account can then maintain a zero balance; each transaction dynamically pulls funds from the specified fundingBalanceAccount.

If a balance account has available funds, these funds will be used first before deducting from the fundingBalanceAccount.

Here is an example of updating a balanceAccount to use a fundingBalanceAccount:

{
  "fundingBalanceAccountId":"[BA1234567]"
}

The balanceAccount resource associated with the paymentInstrument will still have a transaction history, but each payment will also show the debiting of the fundingBalanceAccount.

Transfer funds between balance accounts

You have the option to transfer funds between different balance accounts. You can transfer funds between your different users, or between your users and your own liable balance account.

To transfer funds, create a transfer object by providing:

  • sourceId: The balanceAccounts.id to transfer funds out of.
  • destinationId: The balanceAccount to transfer fund to.
  • amount
{
  "sourceId":"BA6534654365436534",
  "destinationId":"BA1234154322431514",
  "amount":{
    "value":10000,
    "currency":"EUR"
  },
  "reference":"{hint:Your unique identifier for this resource}myTransfer_12345{/hint}"
}

The response contains the new transfer object, and the fund transfer will be performed.

{
  "id":"TR1234123412341234",
  "sourceId":"BA6534654365436534",
  "destinationId":"BA1234154322431514",
  "amount":{
    "value":10000,
    "currency":"EUR"
  },
  "reference":"{hint:Your unique identifier for this resource}myTransfer_12345{/hint}"
}