--- title: "View the custom payout schedule executions" description: "You can view all payout executions of a custom payout schedule on your balance account." url: "https://docs.adyen.com/marketplaces/custom-payouts/scheduled-payouts/view-custom-payout-executions" source_url: "https://docs.adyen.com/marketplaces/custom-payouts/scheduled-payouts/view-custom-payout-executions.md" canonical: "https://docs.adyen.com/marketplaces/custom-payouts/scheduled-payouts/view-custom-payout-executions" last_modified: "2026-05-19T18:02:48+02:00" language: "en" --- # View the custom payout schedule executions You can view all payout executions of a custom payout schedule on your balance account. [View source](/marketplaces/custom-payouts/scheduled-payouts/view-custom-payout-executions.md) 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](https://ca-test.adyen.com/), or by making a [Configuration API](https://docs.adyen.com/api-explorer/balanceplatform/latest/overview) request. ## Requirements Before you begin, take into account the following requirements, limitations, and preparations: | Requirement | Description | | ------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **[API credentials](/marketplaces/manage-access/api-credentials-web-service)** | To view payout executions through API requests, your credential for the [Configuration API](https://docs.adyen.com/api-explorer/balanceplatform/latest/overview) must have the following role:- **Bank Scheduled Payouts Merchant Role** | | **[Customer Area roles](/account/user-roles/)** | To view payout executions in your Customer Area, make sure that your user has the following roles:- **[Balance platform base role](/account/user-roles/#platforms)** - **[Configure scheduled payouts](/account/user-roles/#platforms)** | | **[Webhooks](/development-resources/webhooks)** | To track payout executions and the resulting funds movements, subscribe to the following webhooks:- **[Configuration webhooks](/marketplaces/webhook-types/#configuration-webhooks)** - **[Transfer webhooks](/marketplaces/webhook-types/#transfer-webhooks)** | ## View payout schedule executions in Customer Area To view the executions of a custom payout schedule in your [Customer Area](https://ca-test.adyen.com/): 1. Go to **Accounts & balances** > **Account holders**, and search for the account holder. 2. Open the **Balance accounts** tab and select the relevant balance account ID. 3. 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. 4. 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](/marketplaces/verification-overview). 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](https://docs.adyen.com/api-explorer/balanceplatform/latest/overview): 1. Make a GET  [/balanceAccounts/{balanceAccountId}/sweeps/{id}/executions](https://docs.adyen.com/api-explorer/balanceplatform/latest/get/balanceAccounts/\(balanceAccountId\)/sweeps/\(sweepId\)/executions) request, specifying the balance account ID in the path. 2. The response includes the [sweepExecutions](https://docs.adyen.com/api-explorer/balanceplatform/latest/het/balanceAccounts/\(balanceAccountId\)/sweeps/\(sweepId\)/executions#request-sweepExecutions) array, which contains all the executions of the payout schedule. **Payout schedule executions** ```json { "sweepExecutions": [ { "id": "SWPE12345678901234567890123456", "triggeredAt": "2026-05-16T08:00:00Z", "result": "succeeded", "resultDetails": { "transferId": "4VXLNP68FCFE5FQ1" } }, { "id": "SWPE12345678901234567890100000", "triggeredAt": "2026-05-16T08:00:00Z", "result": "skipped", "resultDetails": { "reasonCode": "noBalanceToPayOut", "reason": "No balance to pay out" } }, { "id": "SWPE12345678901234567890111111", "triggeredAt": "2026-05-16T08:00:00Z", "result": "skipped", "resultDetails": { "reasonCode": "disabledConfiguration", "reason": "Payout schedule / sweepConfiguration is already disabled" } }, { "id": "SWPE12345678901234567890122222", "triggeredAt": "2026-05-16T08:00:00Z", "result": "failed", "resultDetails": { "reasonCode": "counterpartyAccountBlocked", "reason": "Counterparty account blocked" }, "sweepDisabled": "true" } ] } ``` ## Execution results and reasons When a payout is supposed to be triggered according to the custom payout schedule, Adyen sends a [webhook](/marketplaces/webhook-types#custom-payouts) 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 the `transferId` of the resulting funds transfer. **Example webhook—Payout execution successful** ```json { "data": { "balancePlatform": "YOUR_BALANCE_PLATFORM_ID", "id": "SWPE12345678901234567890123456", "balanceAccountId": "BA00000000000000000000001", "balanceAccountSweepId": "SW1234567890123434535654234382", "triggeredAt": "2026-05-16T08:00:00Z", "result": "succeeded", "resultDetails": { "transferId": "4VXLNP68FCFE5FQ1" } }, "type":"balancePlatform.balanceAccountSweepExecution.succeeded", "timestamp": "2026-05-16T07:06:35.184Z", "environment": "test" } ``` ### Failed or skipped payout execution If the execution is skipped or failed, the [resultDetails](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.balanceAccountSweepExecution.failed#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. ### Tab: Payout execution skipped If an execution is skipped, Adyen sends a `balancePlatform.balanceAccountSweepExecution.skipped` 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 the `reason` and `reasonCode` of the skip. **Example webhook—Payout execution skipped** ```json { "data": { "balancePlatform": "YOUR_BALANCE_PLATFORM_ID", "id": "SWPE12345678901234567890100000", "balanceAccountSweepId": "SW1234567890123434535654234382", "balanceAccountId": "BA00000000000000000000001", "triggeredAt": "2026-05-18T08:00:00Z", "result": "skipped", "resultDetails": { "reason": "No balance to pay out", "reasonCode": "noBalanceToPayOut" } }, "type": "balancePlatform.balanceAccountSweepExecution.skipped", "timestamp": "2026-05-18T07:06:35.184Z", "environment": "test" } ``` ### Tab: Payout execution failed If an execution fails, Adyen sends a `balancePlatform.balanceAccountSweepExecution.failed` 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 the `reason` and `reasonCode` of the failure. * `sweepConfigurationDisabled`: A boolean value indicating whether the custom payout schedule was disabled. When an execution fails, the failure may be flagged as final by our system. This happens when, for example, we receive a notification that the counterparty account is permanently closed and can no longer be used. In this case, the custom payout schedule is disabled and `sweepConfigurationDisabled` is set to **true**. **Example webhook—Payout execution failed** ```json { "data": { "balancePlatform": "YOUR_BALANCE_PLATFORM_ID", "id": "SWPE12345678901234567890122222", "balanceAccountSweepId": "SW1234567890123434535654234382", "balanceAccountId": "BA00000000000000000000001", "triggeredAt": "2026-05-18T08:00:00Z", "result": "failed", "resultDetails": { "reason": "Counterparty account blocked", "reasonCode": "counterpartyBlocked" }, "sweepConfigurationDisabled": true }, "type": "balancePlatform.balanceAccountSweepExecution.failed", "timestamp": "2026-05-18T07:06:35.184Z", "environment": "test" } ``` ### 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](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/overview). 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. ## See also * [Scheduled payouts](/marketplaces/custom-payouts/scheduled-payouts) * [Payout transfer webhooks](/marketplaces/payout-webhooks)