To reduce the number of declined transactions due to insufficient funds, you can integrate partial authorizations (or "partial approvals"). This feature allows an issuing bank to return an authorization for the available amount when the requested amount is higher than the shopper's balance, instead of declining the transaction. You can decide how to follow up, such as prompting the shopper for a second payment method to collect the outstanding balance or canceling the transaction to remove the hold on funds.
Requirements
Before you begin, take into account the following requirements, limitations, and preparations
| Requirement | Description |
|---|---|
| Integration type | An online payments integration that uses the /payments endpoint, with Checkout API v69 or later:
|
| Limitations |
|
| Setup steps | Before you begin, ask our Support Team to enable partial authorizations. |
How it works
Partial authorization allows you to authorize a portion of the payment when the shopper has insufficient funds, and then collect the remaining balance.
- You make a payment request with
allowPartialAuthto indicate you accept partial amounts. - If the shopper does not have sufficient funds, the issuer only authorizes the amount available on the card.
- You receive a response with the authorized amount.
- You follow up the partial authorization by prompting the shopper for the remaining balance, canceling the transaction, or taking no further action.
- If you choose to collect the remaining balance, you connect multiple partial authorizations to the same transaction using the
referencefield.
Make the initial payment
-
Send a /payments request specifying:
additionalData.allowPartialAuth: set to true. When the requested amount is higher than the amount available in the account, this parameter asks the issuing bank to return an authorization for the available amount, instead of declining the transaction.reference: your order reference. If you need to follow up a partial authorization with another payment method for the outstanding balance, thereferencevalues must be the same to let you connect the payments for reconciliation.
-
In the response, check the following fields:
resultCode: the value PartiallyAuthorised indicates that there were insufficient funds to authorize the full amount.additionalData.authorisedAmountValue: the authorized amount. Use this to calculate the outstanding balance.
-
If only a partial amount was authorized, see what you can do to follow up a partial authorization.
Follow up a partial authorization
If the initial payment didn't cover the full amount, you can start a new transaction to authorize the outstanding amount. You have the following options:
-
Prompt the shopper to pay for the outstanding amount with another payment method:
- Make a /payments request, and include the same fields you included in the initial payment.
- Calculate the outstanding amount to send it in amount.
- In the response, check if the full amount was authorized.
For example, to follow up the transaction in the example above, you would make the following request
-
Cancel the transaction.
This is possible if you use delayed capture or manual capture. Canceling the transaction removes the hold for the partially authorized amount. -
Capture the partially authorized amount and take no further action*.
-
For tokenized payments, you can retry the original payment method at a later time to collect the outstanding balance*.
You can also combine these options. For example, you can set a minimum amount for a partial authorization and cancel the transaction if the shopper does not have sufficient funds to cover that minimum amount.
Testing
The test environment simulates a partially authorized amount by deducting 100 (in minor units) from the original amount. For example, if the request amount is 1139, the authorisedAmountValue in the response is 1039.
To verify that you can process partial authorizations correctly:
-
Send a /payments request with:
- Any
amountthat ends with 139 - The
additionalData.allowPartialAuthparameter set to true, and details from one of the following cards:
Test card Expiry date CVC 4166 6766 6766 6746 (Visa) 03/2030 737 2222 4000 1000 0008 (Mastercard) 03/2030 737 - Any
-
Check that the response shows:
- An
authorisedAmountValuethat is 100 (in minor units) less than the original amount. - The PartiallyAuthorised result code.
- An