Partial Authorization
Introduction
Partial authorization is a process of authorization (payment) in which there are insufficient funds in the client's bank account to cover the authorization amount, but the available amount in the client's account can be authorized. This functionality may help you, for example, to replenish a wallet, take an advance payment or prepayment.
This functionality works for Visa and Mastercard payment systems only.
To use this functionality, you need an appropriate permission. To activate it, contact technical support.
Initiating partial authorization
To initiate partial authorization, you should pass the value features=PARTIAL_AUTHORIZATION
on the order registration or payment initiation request. This value can be passed in the following API requests:
- instantPayment.do
- register.do
- registerpreauth.do
- token/payment.do
- applepay/paymentDirect.do
- google/paymentDirect.do
- installmentPayment.do
- recurrentPayment.do
- industryPractice/paymentOrder.do
- samsung/payment.do
In this case, if partial authorization is enabled, the available amount in the client's account is debited.
Example of a request with partial authorization initiation:
curl --location 'https://dev.bpcbt.com/payment/rest/instantPayment.do' \
--header 'Content-Type: application/json' \
--data '{
"userName": "test_user",
"password": "test_user_password",
"pan": "5555555555555599",
"cvc": "123",
"amount": 10001,
"expiry": "203412",
"backUrl": "https://mybestmerchantreturnurl.com",
"cardHolderName": "TEST CARDHOLDER",
"language": "en",
"failUrl": "https://mybestmerchantbackurl.com",
"features": "PARTIAL_AUTHORIZATION"
}'
Viewing partial authorization result
To make sure that partial authorization was successful, you can send getOrderStatusExtended.do request (starting from version 41). It will return partialAuthorization
parameter that can take the following values:
-
REQUESTED
- merchant requested partial authorization, but the authorization has not completed yet; -
PARTIAL_AMOUNT
- merchant requested partial authorization, and a partial amount was authorized from the client's account with insufficient funds; -
FULL_AMOUNT
- merchant requested partial authorization, but the client's balance was sufficient and partial authorization was not required, so full amount was authorized.
Example:
{
...
"partialAuthorization": "PARTIAL_AMOUNT",
...
}
You can also view the result of partial authorization in transaction details in the Merchant Portal. Read more here.