Incremental Authorization
Incremental Authorization lets you increase the funds held on a customer's card after an initial Pre-Authorization - without needing to cancel and start over. It's perfect for situations where the final charge isn't known upfront.
Here's how it works:
- The terminal performs the original Pre-Authorization to hold an initial amount from the cardholders credit card account.
- If you need more funds, send an Incremental Authorization referencing the original Approved Pre-Authroization.
- You can send multiple Incremental Authorizations if needed to increase the amount held (no more than 99 incremental authorizations)
- When the final amount is known, send a single Completion/Capture to charge referencing the original approved Pre-Authorization.
Important:
- Please confirm with your TNS Account Manager if Incremental Authorization is supported with your chosen acquirer by TNS.
- The final capture amount should not exceed the total authorized amount (original Pre-Auth + any approved incremental authorizations).
- If an incremental authorization declines (e.g. Insufficient funds available from the cardholder), then you can only complete for the authorized amount.
- Incremental Authorizations should be performed as early as possible within the transaction lifecycle. In most cases, they need to be completed within 7 days, otherwise incurring risk of a chargeback. Please confirm with your acquirer the acceptable time limit on when the incremental authorization and final completion needs to be completed.
- An incremental authorization is not guaranteed to be approved. If it is declined, you can only process the final completion amount for the approved amount. Providing a product or service prior to the incremental authorization being approved is at your own risk.
Common Use Cases
Incremental Authorization is can be used in industries where the final bill isn't known at checkout:
- Parking - Session duration isn't known upfront
- EV charging - An initial pre-authorization may not cover the full charge of an EV car. As charing approaches the pre-authorization amount, you can then process an incremental authorization to allow the charging to continue. If the incremental authroization declines, you can stop charging and perform the final capture.
- Vending - Where an original Pre-Authorization is charged, but additional goods are requested.
Visa | Supported Globally where TNS has added support with your acquirer |
|---|---|
Mastercard | Supported Globally where TNS has added support with your acquirer |
Amex | Supported Globally where TNS has added support with your acquirer |
Discover/Diners | Limited - Support (specific to certain industries and issuers) |
UnionPay | Not Supported |
JCB | Not Supported |
Local Debit Cards | Not supported |
- Multiple increments allowed - You can send more than one Incremental Authorization
- Single capture only - Only one Completion/Capture is performed at the end. This will show a single final amount on the cardholders online banking & bank statements.
- Always reference the original - Both Incremental Authorizations and the Completion must include the original Pre-Auth transaction ID
- No over-capture - The final amount cannot exceed what's been authorized
Integration Options
1 - Hybrid - Terminal & Payment Orchestration REST API
Best for: Merchants with a centralized system that manages charges across multiple terminals or locations
- Terminal performs the original Pre-Authorization and the equipment integration/POS sends this back to the merchants backend server.
- Merchants central server/cloud environment records those sends Incremental Authorization(s) directly to the Payment Orchestration REST API
- Merchants central server sends the final Completion via the REST API
2 - Terminal BYOA Only
Merchants who want full control over authorization amounts and timing at the point of sale and do not have a centralized server
- Terminal performs the original Pre-Authorization
- Terminal sends one or more Incremental Authorizations as needed
- Terminal sends the final Completion for up to the approved amount
3 - Automatic (Payment Orchestration Handles It)
Merchants who want a simpler integration with no additional message types to manage.
- Terminal performs the original Pre-Authorization
- Terminal sends the final Completion with the actual amount
- If the Completion amount exceeds the Pre-Auth, Payment Orchestration automatically generates an Incremental Authorization for the difference.
- If the Incremental Authroization is approved, the full completion will be processed. If the incremental authorization is declined, the completion will only be processed for the approved amount of prior incremental authoizations - resulting in a loss of funds for the merchant.
If the auto-generated Incremental Authorization is declined by the card issuer, acquirer or TNS Payment Orchestration, this will result in Payment Orchestration only being able to complete the transaction for the originally approved Pre-Authorization amount — not the full requested completion amount.
Sample Transactions
Please refer to the below sample Payment Orchestration REST API Messages (Option 1)
Incremental Authorization Transaction
{
"clientTransactionId": "123415678",
"transactionDate": "20261022122370",
"tenderType": "CREDIT",
"paymentChannel": "CREDITCARD",
"orderInformation": {
"amount": {
"currencyCode": "036",
"transactionAmount": "1000"
},
"metadata": [
{ "name": "exampleKey1", "value": "exampleValue1" },
{ "name": "exampleKey2", "value": "exampleValue2" }
]
},
"paymentInformation": {
"storedCredentialAgreementType": "INCREMENTAL",
"transactionInitiator": "MERCHANT",
},
"originalTransaction": {
"originalTransactionId": "341b4b1b-8164-4d0c-a4d5-77db2e5b33c6"
},
"merchant": {
"id": "M12000000000783"
}
}
Capture (Completion) Transaction
{
"clientTransactionId": "123405678",
"transactionDate": "20261022122340",
"tenderType": "CREDIT",
"paymentChannel": "CREDITCARD",
"agreementId": "INC123",
"orderInformation": {
"amount": {
"currencyCode": "036",
"transactionAmount": "4500"
},
"metadata": [
{ "name": "exampleKey1", "value": "exampleValue1" },
{ "name": "exampleKey2", "value": "exampleValue2" }
]
},
"originalTransaction": {
"originalTransactionId": "341b4b1b-8164-4d0c-a4d5-77db2e5b33c6"
},
"merchant": {
"id": "M12000000000783"
}
}
On this page
- Incremental Authorization