- If the validations are successful and the ledger approves the authorisation request, the purchase is finalised. A successful authorisation results in an authorisation hold, where the approved amount is reserved and made unavailable for the cardholder to use.
- If the request fails any of the checks or if the ledger declines the request, the authorisation is declined; the merchants either stops the purchase or requests for an alternative payment method.
Authorisation Workflow
The authorisation process is a part of the transaction lifecycle, and typically consists of the following steps:- The card Scheme sends an authorisation request to Enfuce.
- Enfuce performs initial validations and applies relevant controls.
- If valid, the request is forwarded to the ledger for further decisioning.
- The ledger evaluates the request and returns an approval or decline response.
- Enfuce processes the ledger’s response and determines the final outcome.
- Enfuce sends the authorisation response back to the card scheme.
Validations
Depending on the setup, Enfuce, as the processor, performs some or all of the following validations when an authorisation request is received:Technical Validation
Technical Validation
Card Present Technical Validation
Card Present Technical Validation
Card Not Present Technical Validation
Card Not Present Technical Validation
Business Validation
Business Validation
Fraud Validation
Fraud Validation
Authorisation Hold
If an authorisation is approved, the ledger must place the authorised amount on an authorisation hold, ensuring the funds are reserved and unavailable to the cardholder. This hold must remain in place until a matching financial transaction (clearing) is received, a reversal is processed, or the authorisation expires.
In addition, an authorisation amount is also kept on hold in case of cumulative spend controls — if the configured limit exceeds, the authorisation request is declined and the funds are released back to the cardholder’s account.
Authorisation Validity
Card schemes have specific requirements regarding how long an authorisation amount can be held depending on the transaction type and the merchant category. Usually, for standard retail transactions, authorisation holds are valid for 7 days.
Extended authorisation validity periods (typically up to 30 days) are permitted for specific merchant categories (MCCs), where delayed clearing or variable amounts are allowed, such as hospitality (for example, hotels, car rentals), travel services (for example, airlines), automated fuel dispensers, and transit or parking.
Please note that this parameter is only for information and displays the Scheme provided value. If an authorisation request is purged, we will send a transaction event webhook with
PURGE_AUTHORIZATION message category. For more information, see, Transaction Event Webhook. Authorisation Expiry and Release
The ledger is expected to purge (that is, release) an authorisation hold when it is no longer valid, usually occurs when no matching clearing transaction or reversal is received within the scheme-defined validity period. Once this period expires, the ledger must release the funds back to the cardholder’s available balance. We send a transaction event webhook withPURGE_AUTHORIZATION message category. For more information, see, Transaction Event Webhook.
Stand-In Processing (STIP)
When a ledger or Enfuce is unavailable to respond to an authorisation request, the card Scheme approves/declines the request, based on the STIP parameters and limits that are defined for your business. The parameters and limits depend on the card type (debit, credit, prepaid).- Enfuce/Ledger’s system is unavailable.
- Enfuce/Ledger’s response has timed out.
- Invalid response received from the Enfuce/ledger.
ADVICE message to Enfuce — this informs us about the transactions (both approved and declined) processed in the STIP mode.
- We process the data and accordingly adjust the cardholder’s account balance (if we are managing the cardholder’s account balance in our system).
-
Or, if the cardholder’s balance is handled in an external ledger, we send a transaction event webhook:
- If the authorisation was approved, we send the
INITIAL_AUTHORIZATIONmessage category withADVICEfunction. - If the authorisation was declined, we send the
DECLINED_AUTHORIZATIONmessage category withADVICEfunction.
- If the authorisation was approved, we send the

