Limited availability
Grant renewal is currently in a pilot phase. To request access, reach out to your Adyen contact.
Users do not have to wait until the prior grant is fully repaid to receive additional financing. When a grant is partially paid off and meets eligibility requirements for grant renewal, you can configure a subsequent grant. Adyen disburses the full subsequent grant amount and reserves the outstanding principal of the prior grant for repayment.
This page covers the process of renewing a grant.
Throughout this page, prior grant refers to the active grant that is being renewed, and subsequent grant refers to the new grant that renews it.
Requirements
Before you begin, take into account the following requirements, limitations, and preparations.
| Requirement | Description |
|---|---|
| Integration type | You must have an Adyen for Platforms integration that supports Capital. |
| API credentials | You must have a Balance Platform API key (for example, ws[_123456]@BalancePlatform.[YourBalancePlatform]) to access the Capital API. Your API credential must have the following roles:
|
| Capabilities | Make sure that your user has the following capabilities:
|
| Webhooks | Subscribe to the following webhooks: |
| Limitations | Currently, only one disbursement per grant is allowed. We are working on enabling multiple disbursements to different balance accounts. |
| Setup steps | Before you begin, make sure:
|
How it works
The grant renewal process includes the following steps:
- Get a notification of grant eligibility for grant renewal.
- Get offers for the account holder and present those that meet the renewal minimum.
- Present the user with the new Terms of Service.
- Configure a subsequent grant.
- Get updates about the grant status.
1. Get a notification of grant eligibility for grant renewal
Listen to the balancePlatform.grants.updated webhook. When a grant becomes eligible for grant renewal, Adyen sends a webhook with the following key fields:
renewal.eligible: truerenewal.minimumAmount: The minimum financing amount the user must accept to renew the grant.id: The unique identifier of the grant that is eligible for renewal.
Alternatively, you can get this information by making the GET /grants request.
The following example shows a webhook for a grant eligible for grant renewal.
2. Get financing offers
The renewal offer must be at least 150% of the outstanding balance of the prior grant. Available offers are recalculated weekly and expire after seven days.
- Get financing offers for the account holder. You can get either dynamic or static offers.
- In your user interface, present the offers that meet the
renewal.minimumAmountfrom the webhook.
3. Present the user with the new Terms of Service
After the user selects a renewal offer, the receiveGrants capability is disallowed until the Terms of Service are accepted again.
For grant renewal, underwriting follows specific credit assessment rules to determine the new repayment percentage, fee, and maximum amount. The new terms can differ from the prior grant. The user must re-accept the Terms of Service before the subsequent grant can be disbursed.
- Generate a Terms of Service document.
- In your user interface, present the Terms of Service for acceptance.
4. Configure a subsequent grant
To configure a subsequent grant:
-
Make a POST /grants request, specifying the following parameters:
Parameter Type Required Description counterparty.balanceAccountId String The unique identifier of the balance account that belongs to the receiving account holder. Pass this parameter if you choose to pay out to the balance account of the user.
IfbalanceAccountIdis not provided in the request, the grant is paid out to the account holder's primaryBalanceAccount.counterparty.transferInstrumentId String The unique identifier of the transfer instrument that belongs to the legal entity of the account holder. Pass this parameter if you choose to pay out to the transfer instrument of the user. grantAccountId String The unique identifier of the grant account. Reach out to your Adyen contact to get this value. grantOfferId String The unique identifier of the grant offer that has been selected by the user. renewsGrantIdString The unique identifier of the prior grant to renew. Required
Conditionally required
The following example shows how to configure a grant to renew a prior grant.
-
In the response, note the following parameters:
Parameter Description id The unique identifier of the grant. grantAccountId The identifier of the grant account used to account for the grant. grantOfferId The unique identifier for the related grant offer, which determines the grant conditions. counterparty An object that contains the details of the receiving account holder. status The status of the grant. renewsGrantIdThe unique identifier of the prior grant that the current grant renews.
Adyen processes POST /grants requests asynchronously. You receive a response to your API request, but you must wait for the webhook to know the final result.
5. Get updates
Adyen sends the webhook messages for the following event types to your server to update you about the grant and fund transfer status.
| Event type | Description |
|---|---|
| balancePlatform.grants.created | The grant has been configured. |
| balancePlatform.grants.updated | The grant has been fully repaid, reconfigured, or written off in case the user did not pay back all outstanding funds. |
| balancePlatform.transfer.created | The outgoing or incoming grant transfer request has been received. |
| balancePlatform.transfer.updated | The outgoing or incoming grant transfer request has been authorized and/or booked. |
| balancePlatform.transaction.created | The funds have been paid out to the balance account or the payment instrument. |
To keep track of webhooks, make sure that your server can receive and accept webhooks.