Capital icon

Renew a grant

Learn how to configure a subsequent grant that renews a partially repaid grant for your user.

View source

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:
  • Balance Platform Capital Configuration role
  • Balance Platform Capital Grant Initiation role
Capabilities Make sure that your user has the following capabilities:
  • getGrantOffers
  • receiveGrants
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:

  1. Get a notification of grant eligibility for grant renewal.
  2. Get offers for the account holder and present those that meet the renewal minimum.
  3. Present the user with the new Terms of Service.
  4. Configure a subsequent grant.
  5. 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: true
  • renewal.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.

  1. Get financing offers for the account holder. You can get either dynamic or static offers.
  2. In your user interface, present the offers that meet the renewal.minimumAmount from 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.

  1. Generate a Terms of Service document.
  2. In your user interface, present the Terms of Service for acceptance.

4. Configure a subsequent grant

To configure a subsequent grant:

  1. 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.

    If balanceAccountId is 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 Required The unique identifier of the grant account. Reach out to your Adyen contact to get this value.
    grantOfferId String Required The unique identifier of the grant offer that has been selected by the user.
    renewsGrantId String Required The unique identifier of the prior grant to renew.

    This is the required icon. Required
    This is the conditionally required icon. Conditionally required

    The following example shows how to configure a grant to renew a prior grant.

  2. 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.
    renewsGrantId The 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.

Next steps