Marketplace icon

Pay out on demand

Initiate an on-demand payout to your user's verified bank account.

Send funds to third parties

Offer Adyen business accounts to your users so they can transfer funds to third-party bank accounts.

Additional verification requirements apply.

On-demand payouts give you the flexibility to trigger a payout off-schedule. When triggering an on-demand payout, consider the cutoff times for each bank transfer method in each region. Cutoff times affect the expected time for the account holders to receive the funds in their bank account.

This page explains how to pay out on-demand to your user's transfer instruments.

Requirements

Before you begin, take into account the following requirements:

Requirement Description

Integration type

You need an Adyen for Platforms integration.

API credentials

Your API credential for the Transfers API must have the following role:
  • TransferService Webservice Initiate role

Customer Area roles

You need the following role:
  • Initiate payouts to transfer instruments

Webhooks

  1. Make sure that your server receives and accepts webhooks.

  2. In your Customer Area, subscribe to Transfer webhooks

Capabilities

Make sure that the user is allowed to use the sendToTransferInstrument capability.
From LEM API v3, this capability is verified at the level of the transfer instrument, such as a bank account. This means that transfers are possible to a verified transfer instrument independently of the verification status of other transfer instruments that the legal entity has.

Setup steps

Before you begin your integration, contact our Support Team to:

Before submitting a transfer request, we recommend that you calculate the available transfer routes. This enables you to pay out funds faster and minimize the risk of payout failures.

Get transfer routes

Before submitting a transfer request, we recommend that you calculate the available transfer routes. This enables you to design a configuration that optimally aligns with your use case. It also minimizes the risk of transfer failures by identifying supported routes and highlighting any necessary parameters.

Initiate a payout request

To send on-demand payouts, use your Customer Area or make an API request. The following tabs explain both methods.

Get updates on the status of the transfer

You can view the status of funds transfers initiated by a payout in your Customer Area, or track them by listening to webhooks.

To track the status of funds transfers initiated by a payout:

  1. Listen to the following webhooks:
  2. Acknowledge the webhooks.
  3. In the payload of the balancePlatform.transfer.updated webhook, note that:
    • The event array includes all previous transfer events.
    • The sequenceNumber defines the number of webhooks sent for the transfer, including the current one.

For more details and examples, see Payout webhooks.

Troubleshooting

The following examples show some common issues you may encounter when attempting to make a transfer.

This error indicates that the user's bank returned a previous payout attempt. Some return codes indicate a temporary issue, and can be retried. Others indicate a permanent issue and result in this error message.

Solution

To avoid this error:

  1. Listen to transfer webhooks. These webhooks tell you when a user's bank returns a payout.
  2. Read the return reason. If the reason indicates a final status, do not retry the transfer. Only retry payouts that have return reason codes that are recommended to be retried.
  3. Communicate with your user. Let them know that subsequent payouts might fail if they do not update their bank account details.

To fix this error:

  1. Update the user's bank account details. Send the user a Hosted Onboarding link, or update the bank account manually with the /transferInstruments/{id} API. This removes the block that causes the error and ensures that the user's bank account is up to date.
  2. Retry the payout using the same on demand transfer process.

Transfer statement description character limits

The following limits apply to the length and the characters that you can use when setting a transfer statement description based on the location of the counterparty and the priority.

Character limits

The following tables show the character limits for each combination of currency and priority that Adyen supports.

See also