Authorization process
Payment authorization is a process through which the amount to be paid on a payment method is verified.
In case of credit cards, authorization specifically involves contacting the payment system and blocking the required amount of funds against the credit card. Payment types may or may not require this authorization step. This is configurable in Sterling™ Order Management System in the sellers payment rule. If an order requires payment processing, the order is not picked up for scheduling or other processing until it is authorized.
The payment collection time-triggered transaction analyzes an order to create authorization requests. The payment execution time-triggered transaction monitors requests created for authorization and provides user exits to carry out the authorization. The user exit can process the authorization request in any one of the following ways:
- Perform synchronous processing to carry out the authorization immediately by interfacing to an accounts receivable database, and pass back the authorized amount.
- Place a request to try again later if the interface to the payment system is inoperable.
- Request asynchronous processing, which means that console never contacts the payment system for this order.
Depending on the response from the external payment system, different events can be raised to handle the response appropriately within Sterling Order Management System. For more details on the available events, see the payment processing APIs in the IBM Sterling® Order Management: Javadoc.
Once authorization is received, or the order is pre-authorized on the front end for the complete
order amount, the payment collection transaction changes the payment status to
AUTHORIZED.
A CHARGE record with an authorization of negative
OPEN_AUTHORIZED_AMOUNT is considered as authorization consumed. If this
CHARGE is failed and the charge transaction record has STATUS =
'ERROR', the system does not reuse this authorization.
ERROR is when
YFSExtnPaymentCollectionInputStruct.requestAmount and
YFSExtnPaymentCollectionOutputStruct.authorizationAmount are not matching and
YFSExtnPaymentCollectionOutputStruct.holdOrderAndRaiseEvent is true.- Avoiding this ERROR status
- If any issue happens at payment gateway and
YFSExtnPaymentCollectionOutputStruct.authorizationAmountis not populated, throw an exception from user exit and let charge transaction record inOPENstate and user exit status asINVOKED. Then useYFSValidateInvokedCollectionUEto process this record later.