You can create recurring top-ups to automatically pull funds into your balance accounts when needed. This ensures that your balance accounts are adequately funded and have sufficient balance for day-to-day activities.
A recurring top-up triggers outgoing direct debit requests to a bank account, based on the settings you configure. These settings determine the amount, frequency, and source of funds for the direct debit requests. Adyen then books the funds from the top-up to your balance account.
Requirements
| Requirement | Description |
|---|---|
| Integration type | Adyen enterprise payouts integration. |
| API credential roles | To configure top-up schedules using the API, make sure that you have the credentials for the Configuration API with the following role:
|
| Customer Area roles | To configure top-up schedules using the Customer Area, make sure that you have the following roles:
|
| Webhooks | Subscribe to the following webhooks: |
| Capabilities | Make sure that the account holder has the following capability:
Before attempting a transfer, verify that this capability is active and has a valid verificationStatus. You can check this via the verificationStatus.Note, if you need to enable this capability see Request a capability. |
| Limitations |
|
| Setup steps |
|
Create a recurring top-up
You can create a recurring top-up using the API or your Customer Area.
Processing and cut-off times
If you set a time-based schedule (such as weekly or monthly), the trigger timestamp defaults to 7:00 AM in the timezone of your account. Settle times depend on how this trigger time interacts with currency-specific cut-offs:
- USD (T+2 settlement): Because the automatic 7:00 AM trigger occurs after the 01:45 ET cut-off, funds settle on T+2 (after 08:30 ET).
- EUR (next business day settlement): Because the automatic 7:00 AM trigger occurs before the 14:00 CET cut-off, funds settle on the next business day.
Error messages and failure reasons
When you create top-up schedules using the API, if the request fails, the reason for the failure is provided in the API response. The following table shows how to identify and troubleshoot some of the most common errors that can occur during top-up creation.
| Status | Error codeerrorCode |
Error summarytitle |
Reasondetail |
|---|---|---|---|
| 400 | 29_001 |
The request is missing required fields or contains invalid data. | trigger.threshold.currency: missing or invalid currency code. |
| 400 | 29_001 |
The request is missing required fields or contains invalid data. | Currencies must match threshold currency.
|
| 400 | 29_001 |
The request is missing required fields or contains invalid data. | description: invalid placeholders or invalid format. |
| 404 | 1082_105 |
Recurring top-up not found. | Top-up ID does not exist. (Applies to GET, PATCH, DELETE requests). |
| 422 | 30_013 |
Balance account not found. | Could not find balance account with ID {id}. |
| 422 | 1082_101 |
Account top-up currency mismatch. | Currency of the top-up does not match the balance account. |
| 422 | 1082_102 |
Invalid BAP configuration provided. | BAP property DirectDebitTopUp is not active for this balance account. |
| 422 | 1082_103 |
Invalid recurring top-up request. | Generic invalid request rejected by banksweep. |
| 422 | 1082_104 |
Account is missing required capabilities. | Missing receiveFromTransferInstrument on the account holder. |
| 422 | 1082_107 |
Failed to resolve payment instrument. | Payment instrument could not be resolved. |
| 422 | 1082_108 |
Failed to resolve transfer instrument. | Invalid transfer instrument with id {id}. |
| 422 | 1082_112 |
No valid routes found. | No routes are available for the provided configuration. |
| 422 | 1082_113 |
No PPA route assigned. | No PPA route found. |
| 422 | 1082_114 |
Terms of service not signed. | A terms of service needs to be signed before having a recurring top-up configured. |
| 422 | 1082_115 |
Direct debit amount threshold exceeded. | Top-up amount exceeds the configured maximum threshold for direct debit top-ups on balance account {id}. |
| 422 | 1011_001 |
An account has an invalid status. | BalanceAccountHolder {id} has invalid account status inactive. |
| 422 | 1011_003 |
Invalid counterparty provided. | Validation failed for one of the following reasons:
|
| 422 | 1011_013 |
A sweep with this configuration already exists. | A ({direction}) sweep with currency ({cur}), counterparty ({cp}) and schedule ({sched}) already exists: ({id}). |