Adyen sends webhooks for the following grant lifecycle-related events:
- Offer created
- Grant requested
- Grant assessed
- Grant reviewing
The next sections show code samples for some of these events.
Offer created
When a new offer is created for an account holder, Adyen sends a balancePlatform.balanceAccountHolder.capitalOffer.created webhook to notify your server. The webhook includes information about the offer, such as:
accountHolderId: The user for which an offer has been created.id: The unique identifier assigned to the offer.amount.valueandamount.currency: The offer amount.expiresAt: The date by which an offer must be accepted; otherwise, the offer will expire.
Grant requested
When a user selects an offer using either the capital components or your custom interface built with our APIs, Adyen sends a balancePlatform.grants.created webhook to your server. This webhook includes information about the grant, such as:
counterparty.accountHolderId: The user for which a grant has been requested.counterparty.balanceAccountId: The balance account details where the grant amount should be disbursed.id: The unique identifier assigned to the grant.amount.valueandamount.currency: The grant amount that has been requested.status.code: Requested
Grant reviewing
In specific situations, Adyen may require your users to provide additional information about their businesses, such as when the total user's exposure meets or exceeds the threshold, typically EUR 25,000 or the equivalent amount in another supported currency. You then need to collect additional data from your user and submit it to Adyen.
Adyen sends a balancePlatform.grants.updated webhook to notify your server about this event, including the following information:
counterparty.accountHolderId: The user for which a grant has been requested.counterparty.balanceAccountId: The balance account details where the grant amount should be disbursed.id: The unique identifier assigned to the grant.actions.code: AnaCreditCapabilityRuleactions.resolved: falsestatus.code: Reviewing
Grant approved
After a thorough secondary review confirms the grant request meets all criteria, Adyen sends a balancePlatform.grants.updated webhook to notify your server of final approval. The webhook includes information about the grant, such as:
counterparty.accountHolderId: The user for which a grant has been approved.counterparty.balanceAccountId: The balance account details where the grant amount should be disbursed.id: The unique identifier assigned to the grant.amount.valueandamount.currency: The grant amount that has been approved.status.code: Approved
Grant pending
After Adyen approves the grant, the user must complete required actions, such as signing the Terms of Service.
The grant remains pending until:
- All required actions are completed on the user's side.
- The grant transaction is booked to the user's balance account.
- The security cooldown period ends. For example, if a user updates their bank account details (transfer instrument), Adyen waits 72 hours before processing transactions to the new account.
Adyen notifies you of this stage by sending a balancePlatform.grants.updated webhook, which includes information about the grant, such as:
counterparty.accountHolderId: The user for which a grant has been approved.counterparty.balanceAccountId: The balance account details where the grant amount should be disbursed.id: The unique identifier assigned to the grant.status.code: Pending
After the user completes the required actions, Adyen disburses the grant amount to the specified balance account. At this point, Adyen also sends webhooks about the corresponding fund transfer.
Grant active
After the grant is disbursed, Adyen sends a balancePlatform.grants.updated webhook, including the following information about the grant:
accountHolderId: The user for which a grant has been provided.balanceAccountId: The balance account details where the grant amount is disbursed.id: The unique identifier assigned to the grant.status.code: Activebalances.principal: The amount that has been disbursed to the user.balances.fee: The one-time fee for business financing.balances.total: The total amount that the user must repay. It is the sum of the fee amount and the principal amount.balances.currency: The currency of the grant amount.
Grant repaid
After the user has made their last repayment towards the grant and the corresponding transfer has been booked, Adyen sends a balancePlatform.grants.updated webhook which includes the following information:
accountHolderId: The user for which a grant has been provided.balanceAccountId: The balance account details where the grant amount is disbursed.id: The unique identifier assigned to the grant.status.code: Repaidbalances.principal: 0balances.fee: 0balances.total: 0balances.currency: The currency of the grant amount.