A payout initiated by a payout schedule is called an execution. You can view all executions of a custom payout schedule on your balance account in your Customer Area, or by making a Configuration API request.
Requirements
Before you begin, take into account the following requirements, limitations, and preparations:
| Requirement | Description |
|---|---|
| API credentials | To view payout executions through API requests, your credential for the Configuration API must have the following role:
|
| Customer Area roles | To view payout executions in your Customer Area, make sure that your user has the following roles: |
| Webhooks | To track payout executions and the resulting funds movements, subscribe to the following webhooks: |
View payout schedule executions in Customer Area
To view the executions of a custom payout schedule in your Customer Area:
- Go to Accounts & balances > Account holders, and search for the account holder.
- Open the Balance accounts tab and select the relevant balance account ID.
- Under Scheduled transfers, select the custom payout schedule.
A managed payout schedule specifies the estimated arrival time of the payout, while a custom schedule specifies the transfer schedule. - Open the Events tab to view the payout timeline, where you can:
- View the date of the next payout.
- Review past payout events, including execution dates and statuses.
Execution event statuses and reasons
The table below explains the statuses you may see in the Events tab for each pre-configured payout schedule:
| Status | Description | Possible reasons |
|---|---|---|
| Sent | The payout was successfully created and sent. | n/a |
| Not sent | The payout was not triggered as expected. | The payout conditions were not met, for example, the balance was too low to pay out. No action is required. |
| Failed | The payout schedule could not be sent because an error occurred. | The payout failed due to an error. The external bank account may be closed or suspended, or the capability to send funds to the transfer instrument may be disabled due to missing Know Your Customer (KYC) checks. Payouts will continue to fail until the root cause is resolved. |
View payout schedule executions using the API
To view the executions of a custom payout schedule applied to a balance account using the Configuration API:
-
Make a GET /balanceAccounts/{balanceAccountId}/sweeps/{id}/executions request, specifying the balance account ID in the path.
-
The response includes the sweepExecutions array, which contains all the executions of the payout schedule.
Execution results and reasons
When a payout is supposed to be triggered according to the custom payout schedule, Adyen sends a webhook to notify you of the success or failure of the execution.
The webhook payload includes a result which corresponds to the webhook type.
Successful payout execution
If the execution is successful, Adyen sends a balancePlatform.balanceAccountSweepExecution.succeeded webhook. The payload of the webhook contains:
balanceAccountSweepId: The unique identifier of the custom payout schedule (sweep).id: The unique identifier of the execution.resultDetails: An object containing thetransferIdof the resulting funds transfer.
Failed or skipped payout execution
If the execution is skipped or failed, the resultDetails object contains a reasonCode and a reason.
The following table contains all possible combinations of result and reasonCode values.
| Result | Reason code | Reason |
|---|---|---|
| skipped | noBalanceToPayOut | No balance to pay out |
| skipped | balanceBelowMinThreshold | Payout amount is less than the configured minimum threshold |
| skipped | disabledConfiguration | Payout schedule / sweepConfiguration is already disabled |
| skipped | manuallySkippedByAdyen | Adyen blocked the payout |
| failed | insufficientFundsToCoverPayout | Insufficient funds in reserve account to cover collateralized payout |
| failed | routeNotFound | Routing failures during transfer initiation process |
| failed | counterpartyAccountBlocked | Counterparty account blocked |
| failed | counterpartyAccountInvalid | Counterparty account invalid |
| failed | accountHierarchyNotActive | Account hierarchy not active |
| failed | transferInstrumentDoesNotExist | Transfer instrument does not exist |
| failed | missingCapabilities | Missing capabilities |
| failed | amountExceedsRouteLimits | Amount exceeds route limits |
| failed | amountFallsShortOfRouteLimits | Amount falls short of route limits |
| failed | amountInvalid | Amount invalid |
| failed | addressInvalid | Address invalid |
| failed | balanceAboveMaxThreshold | Payout amount is more than configured maximum threshold |
The following tabs show example webhooks for both skipped and failed executions.
Track fund movements
When a custom payout execution is successful, it triggers a funds transfer. To track the lifecycle of the funds as they move from the balance account to the bank account (transfer instrument) of your user, you can monitor the Transfer webhooks.
These webhooks provide real-time updates on the status of the funds movement, such as when the transfer is authorized, captured, or if it is eventually returned by the bank.