An Incremental Authorization can be used to increase the total amount authorized for a transaction if the amount of the estimate or initial authorization (pre-authorization) is insufficient. An Incremental Authorization request can also be based on a revised estimate of what the cardholder might spend.
Consider these factors when using incremental authorizations:
The Incremental Authorization workflow is supported for Visa, Mastercard, Diners, UPI, and JCB. American Express does not support this workflow.
Incremental authorizations do not replace the original authorizations, they are issued in addition to the previously authorized amount.
The sum of all linked estimated and incremental authorizations represents the total amount authorized for a given transaction.
Incremental authorizations do not extend the validity of the initial pre-authorization amount.
Performing an Incremental Authorization
To perform an incremental authorization, create
, which contains the
of the initial pre-authorization transaction, the amount to be incremented, and the currency of the increment. Incremental Authorization transaction parameters are shown below:
TransactionParameters transactionParameters = new TransactionParameters.Builder()
.amountAndCurrency(new BigDecimal ("<incrementedAmount>"), <io.mpos.transactions.Currency>)
// incremental authorization is created with the transaction identifier of the Pre-Authorization. The amount to be incremented and the currency need to be added
Intent intent = ui.createTransactionIntent(paramters);
startActivityForResult(intent, MposUi . REQUEST_CODE_PAYMENT);
As a result, you will receive one of these status messages on the Summary screen:
An approval, confirming the correct processing of the incremental authorization (top-up payment).
An error, indicating why the incremental authorization failed.
These examples show the Summary screen after a top-up (incremental authorization) payment. Note the "Topped Up" or "Preauthorized" status message shown under the transaction amount in each example.