--- title: "Reporting and reconciliation" description: "Learn how to reconcile Capital repayments using webhooks or your Balance Platform reports." url: "https://docs.adyen.com/capital/reporting-and-reconciliation" source_url: "https://docs.adyen.com/capital/reporting-and-reconciliation.md" canonical: "https://docs.adyen.com/capital/reporting-and-reconciliation" last_modified: "2026-07-31T12:57:01+02:00" language: "en" --- # Reporting and reconciliation Learn how to reconcile Capital repayments using webhooks or your Balance Platform reports. [View source](/capital/reporting-and-reconciliation.md) Capital repayments and disbursements are booked as accounting events on your balance platform. They appear in the same [webhooks and reports](/platforms/reports-and-fees) as your other money movements, so you can reconcile them in two ways: * Consume webhooks * Use your Balance Platform reports This page explains when repayments appear in your webhooks and reports and how to reconcile the principal and fee amounts of each repayment. ## Requirements Before you begin, review the following requirements and limitations. | Requirement | Description | | ----------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Integration type** | You must have an [Adyen for Platforms](/platforms) integration that supports Capital. | | **[Customer Area roles](/account/user-roles)** | To configure report columns, you must have one of the following roles:- **Merchant admin** - **Merchant report role** - **Merchant financial** - **Merchant POS Report role**To generate and download reports, you must have the following roles:- **Generate Balance Platform reports** - **Download Balance Platform reports** | | **[Webhooks](/development-resources/webhooks)** | To reconcile using webhooks, subscribe to:- [Transfer webhooks](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/overview) - [Transaction webhooks](https://docs.adyen.com/api-explorer/transaction-webhooks/latest/overview) | | **Limitations** | If your payout is scheduled at or very close to the sales day closing time, Adyen cannot always book the repayment before the payout. As a result, the repayment does not always appear in the same payout report. Schedule payouts at least one hour after the sales day closes. | ## How Adyen books repayments Adyen books repayments based on the sales-day settlement schedule: 1. For a user with an active grant, Adyen reserves a fixed percentage of their net captured volume for each repayment. For more information about scheduled and unscheduled repayments, see [Repayment](/capital/repayment). 2. Adyen aligns the repayment to the sales date of the payments it is reserved from and books it approximately one hour after the [sales day](/platforms/settle-funds#sales-day-settlement) closes, before it books the payout. The repayment appears on the same [Balance Platform Accounting Report](/platforms/reports-and-fees/balance-platform-accounting-report) and [Balance Platform Payout Report](/platforms/reports-and-fees/payout-report) as the related sales and payout. 3. Adyen processes repayments daily based on when funds settle, regardless of the payout schedule. Whether you use daily, weekly, or manual (on-demand) payouts, each repayment aligns to the correct sales date. [![Settlement diagram](/user/pages/docs/07.capital/09.reporting-and-reconciliation/settlement-diagram.svg)](/user/pages/docs/07.capital/09.reporting-and-reconciliation/settlement-diagram.svg) ### Adjustments to the reserved amount Before Adyen books a repayment, it holds the reserved amount on the balance account. This reserved amount can change before the repayment is booked: * **Over-reservation**: When the repayment process runs, Adyen checks whether the reserved amount exceeds what is owed. Adyen releases any excess back to the available balance when it books the repayment. The freed-up funds are then included in the same payout for that day. * **Chargebacks**: If a chargeback is settled before the sales day closes, Adyen partially releases the reserved balance and adjusts the repayment amount accordingly. If the chargeback arrives after the repayment is booked, Adyen makes no adjustment. * **Refunds**: Refunds follow the same schedule as sales and adjust the reserved amount, similar to chargebacks. Because refunds are less time-critical, Adyen does not always apply the adjustment before it books the repayment for that day. ### Settlement delay changes When a user changes their [settlement delay](/platforms/settle-funds) (for example, from T+1 to T+2) during a sales day, Adyen splits that day's repayment into two bookings. Sales before the change follow the original settlement schedule, and sales after the change follow the new one. Two separate repayment entries can appear for the transition day, but both align to the sales dates from which the funds were withheld. ### Scheduled and unscheduled repayments A [scheduled repayment](/capital/repayment#scheduled-repayments) creates a single outgoing transfer of type **repayment**. An [unscheduled repayment](/capital/repayment#unscheduled-repayments) creates two transfers on the user's balance account. First, Adyen creates an incoming transfer from its internal [Capital fund collection account](/capital/manage-disbursements#unscheduled-repayments) of type **capitalFundsCollection**. Then, Adyen creates an outgoing transfer of type **repayment**. Both transfers post to the balance account. Expect two lines when you reconcile an unscheduled repayment. Each disbursement has dedicated bank account details for unscheduled repayments. When a user receives a new disbursement, retrieve and share the bank account details for that disbursement. Do not reuse the bank account details from an earlier disbursement. ## Reconcile using webhooks Capital money movements appear in the [Transfer webhooks](/capital/webhook-types#transfer-webhooks) and [Transaction webhooks](/capital/webhook-types#transaction-webhook) that you consume for your balance platform. To reconcile repayments using webhooks: 1. In the transfer webhook, identify a repayment when all of the following fields apply: | Parameter | Description | Value | | -------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [category](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.created#request-data-category) | The category of the transfer. | **grants** | | [type](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.created#request-data-type) | The type of the transfer. | * Repayment: **repayment** * Related non-repayment transfers: grant disbursement **grant** and unscheduled repayment collection **capitalFundsCollection** | | [direction](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.created#request-data-direction) | The direction of the transfer from the balance account's perspective. | - Repayment: **outgoing** - Related non-repayment transfers: **incoming** | | [reference](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.created#request-data-reference) | The reference of the transfer. | For an outgoing repayment, the ID of the related grant. For example, **GR00000000000000000000001**. A **capitalFundsCollection** transfer has its own internal reference. | | [amount](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.created#request-data-amount) | The amount of an outgoing repayment transfer, in minor units. | For example, **7720** for USD 77.20. | | [status](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.created#request-data-status) | The status of the transfer. | A repayment progresses through **received**, **authorized**, and **booked**. | 2. To confirm that a repayment is booked in the balance account, use the [balancePlatform.transaction.created](https://docs.adyen.com/api-explorer/transaction-webhooks/latest/post/balancePlatform.transaction.created) webhook. Match the [transfer.id](https://docs.adyen.com/api-explorer/transaction-webhooks/latest/post/balancePlatform.transaction.created#request-data-transfer-id) to the transfer created for the repayment. For an outgoing repayment, match the [transfer.reference](https://docs.adyen.com/api-explorer/transaction-webhooks/latest/post/balancePlatform.transaction.created#request-data-transfer-reference) to the related grant ID. A **capitalFundsCollection** transfer has its own internal reference. To trigger reconciliation only for completed repayments, run it when you receive the [balancePlatform.transaction.created](https://docs.adyen.com/api-explorer/transaction-webhooks/latest/post/balancePlatform.transaction.created) webhook, rather than on a timer. For the full webhook structures and example payloads, see [Webhook structures and types for Capital](/capital/webhook-types) and [Fund transfer-related events](/capital/webhook-types/fund-transfers-webhooks). ## Reconcile using reports ### Balance Platform Accounting Report The [Balance Platform Accounting Report](/platforms/reports-and-fees/balance-platform-accounting-report) contains all repayment bookings by **Booking Date**. To match a booking back to a webhook or another report, use the **Transfer Id**, **Transaction Id**, and **Reference** columns. To reconcile repayments using the Balance Platform Accounting Report: 1. Filter on the following columns to identify grant-related entries: | Column | Description | Value | | ------------ | -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | | **Category** | The category of the transaction. | **grants** | | **Type** | The type of the transaction. | * Grant disbursement: **grant** * Regular repayment: **repayment** * Unscheduled repayment: **capitalFundsCollection** and **repayment** | 2. In the **Value Date** column, verify that the repayments align to the correct sales date. #### Split a repayment into principal and fee Each loan has a principal (the funded amount) and a fee (the fixed cost). Adyen splits every repayment proportionally into a principal amount and a fee amount. To view this split, you need to add the Capital columns to your Balance Platform Accounting Report in your [Customer Area](https://ca-test.adyen.com/): 1. Go to **Settings**, scroll down to the **Product settings** > **Balances** section and select **Report columns**. 2. On the **Configure report columns for** page, find **Balance Platform Accounting Report** in the report list and select **Configure**. 3. Add the following columns to your Balance Platform Accounting Report and select **Save configuration**: | Column | Description | | ---------------------------- | ---------------------------------------------------------------------------------------------------------- | | **Capital Principal Amount** | The amount of principal debited or credited on the balance account for financing received through Capital. | | **Capital Fee Amount** | The amount of fees debited or credited on the balance account for financing received through Capital. | 4. Check for the latest reports under **Reports** > **Reports overview** and reconcile the principal and fee amounts of each repayment against your loan records. For the full list of Capital columns, see the [Balance Platform Accounting Report structure](/platforms/reports-and-fees/balance-platform-accounting-report). ### Balance Platform Payout Report The [Balance Platform Payout Report](/platforms/reports-and-fees/payout-report) contains repayments grouped with the related sales and payout for the same day. Repayments appear as standard transfer line items, not as dedicated columns. Each repayment is a line with Category set to **grants** and Type set to **repayment**. To match it, use the **Transfer Id** and **Reference** columns. To reconcile repayments using the payout report: 1. Open the payout report for the relevant payout date. 2. Confirm the net payout amount after Adyen deducts the repayment line items. ### Example In this example, a user has the following configuration: * Sales day closing time: **6:00:00** * Payout time: **13:00:00** * Sales day payout: **T+1** * Repayment rate: **6%** * Net captured sales volume for the sales day: **USD 1,286.76** **Repayment calculation** USD 1,286.76 × 6% = **USD 77.20** The sale is booked on 2026-02-25, while the repayment and payout are booked on 2026-02-26. Even so, all three share the same payout report date (2026-02-26), so they appear together on the Balance Platform Payout Report for that day. The following table shows how these records line up across the reports: | Accounting Report Date | Payout Report Date | Category | Type | Booking Date | Value Date | Currency | Amount | | ---------------------- | ------------------ | --------------- | ------------ | ------------------- | ------------------- | -------- | --------- | | 2026-02-25 | 2026-02-26 | platformPayment | capture | 2026-02-25 22:12:42 | 2026-02-26 6:00:00 | USD | 1,286.76 | | 2026-02-26 | 2026-02-26 | grants | repayment | 2026-02-26 6:30:58 | 2026-02-26 6:30:18 | USD | -77.20 | | 2026-02-26 | 2026-02-26 | bank | bankTransfer | 2026-02-26 13:00:57 | 2026-02-26 13:00:12 | USD | -1,209.56 | ## Confirm the outstanding balance The reports and webhooks show individual repayment bookings. To confirm the remaining balance or that a grant is fully repaid, check the grant balances instead of adding up the report lines. To check the outstanding balance: 1. Make a GET [/grants/{grantId}](https://docs.adyen.com/api-explorer/capital/latest/get/grants/\(grantId\)) request, or consume the [Capital grant webhook](/capital/webhook-types#capital-grant-webhook). 2. In the response, check the [balances](https://docs.adyen.com/api-explorer/capital/latest/get/grants/\(grantId\)#responses-200-balances) object (`principal`, `fee`, and `total`) and the [status](https://docs.adyen.com/api-explorer/capital/latest/get/grants/\(grantId\)#responses-200-status). A fully repaid grant has a `total` of **0** and the status **Repaid**. For the full flow, see [Get grant details](/capital/get-grant-balances). ## Repayment identifiers in webhooks and reports A repayment carries the same identifiers in webhooks and in reports, so you can match a record from one source to another. | Identifier | In webhooks | In reports | | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------- | | Grant ID | The transfer [reference](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.created#request-data-reference) (for example, **GR00000000000000000000001**) | The **Reference** column | | Transfer ID | The transfer [id](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.created#request-data-id) | The **Transfer Id** column | | Transaction ID | The [id](https://docs.adyen.com/api-explorer/transaction-webhooks/latest/post/balancePlatform.transaction.created#request-data-id) | The **Transaction Id** column | Amounts appear in [minor units](/development-resources/currency-codes#minor-units) in webhooks (for example, **7720** for USD 77.20) and in the payment currency in reports (for example, **77.20**). An outgoing repayment shows as a negative amount in the reports. ## See also * [Webhook structures and types for Capital](/capital/webhook-types) * [Balance Platform Accounting Report](/platforms/reports-and-fees/balance-platform-accounting-report) * [Balance Platform Payout Report](/platforms/reports-and-fees/payout-report)