In Nexo Retail protocol, a Deferred sale payment is used to separate the payment in two steps:
Before the service consumption or the goods delivery, to get the payment authorisation for a
maximum amount.At the end of the consumption or delivery, to complete the payment transaction with the actual
amount card.
Step 1 : Get a payment authorisation for a maximum amount
The Request message includes:
RequestedAmount: this data could be absent or is the maximum amount of the purchase,
PaymentType: must be “OneTimeReservation”.
Example:
<?xml version="1.0" encoding="UTF-8"?> <SaleToPOIRequest> <MessageHeader MessageClass="Service" MessageCategory="Payment" MessageType="Request" ServiceID="400" SaleID="SaleID20022" POIID="DEMO0001"/> <PaymentRequest> <SaleData SaleReferenceID="ABCD1234"> <SaleTransactionID TransactionID="4" TimeStamp="2020-05-21T14:48:05+05:00" /> </SaleData> <PaymentTransaction> <AmountsReq Currency="USD" RequestedAmount="80.00" /> <TransactionConditions CustomerLanguage="en" /> <SaleItem ItemID="1" ProductCode="101" ItemAmount="5.00"> <Quantity>1</Quantity> <UnitPrice>5.00</UnitPrice> <ProductLabel>"Regular Unleaded"</ProductLabel> </SaleItem> </PaymentTransaction> <PaymentData PaymentType="OneTimeReservation" /> </PaymentRequest> </SaleToPOIRequest>
The Response message includes:
AuthorizedAmount: the maximum amount of the purchase.
Example:
<?xml version="1.0"?> <SaleToPOIResponse> <MessageHeader MessageClass="Service" MessageCategory="Payment" MessageType="Request" ServiceID="400" SaleID="SaleID20022" POIID="DEMO0001"/> <PaymentResponse> <Response Result="Success"/> <SaleData> <SaleTransactionID TransactionID="4" TimeStamp="2020-05-21T14:48:05+05:00" /> </SaleData> <POIData> <POITransactionID TransactionID="123456" TimeStamp="2020-05-21T14:48:06+05:00"/> </POIData> <PaymentResult> <AmountsResp Currency="USD" AuthorizedAmount="80.00"> <PaymentAcquirerData AcquirerID="497867" MerchantID="mer77-130209" AcquirerPOIID="456"> <ApprovalCode>032983</ApprovalCode> </PaymentAcquirerData> </PaymentResult> </PaymentResponse> </SaleToPOIResponse>
Step 2 : Complete the payment authorisation with the actual amount
The Request message includes:
RequestedAmount: this is the actual amount of the purchase,
PaymentType: must be “Completion”,
OriginalPOITransaction: this is a mandatory component of the Payment request containing the
POITransactionID component of the first Payment response with “OneTimeReservation”
PaymentType.
<?xml version="1.0" encoding="UTF-8"?> <SaleToPOIRequest> <MessageHeader MessageClass="Service" MessageCategory="Payment" MessageType="Request" ServiceID="401" SaleID="SaleID20022" POIID="DEMO0001" /> <PaymentRequest> <SaleData SaleReferenceID="ABCD1234"> <SaleTransactionID TransactionID="5" TimeStamp="2020-05-21T14:52:05+05:00" /> </SaleData> <OriginalPOITransaction SaleID="SaleID20022" POIID="DEMO0001"> <POITransactionID TransactionID="ABCD1234" TimeStamp="2020-05-21T14:48:05+05:00" /> </OriginalPOITransaction> <PaymentTransaction> <AmountsReq Currency="USD" RequestedAmount="64.99" /> </PaymentTransaction> <PaymentData PaymentType="Completion" /> </PaymentRequest> </SaleToPOIRequest>
The Response message includes:
AuthorizedAmount: the actual amount of the purchase, as in RequestedAmount.
Example:
<?xml version="1.0"?> <SaleToPOIResponse> <MessageHeader MessageClass="Service" MessageCategory="Payment" MessageType="Request" ServiceID="401" SaleID="SaleID20022" POIID="DEMO0001"/> <PaymentResponse> <Response Result="Success"/> <SaleData> <SaleTransactionID TransactionID="5" TimeStamp="2020-05-21T14:52:05+05:00" /> </SaleData> <POIData> <POITransactionID TransactionID="123457" TimeStamp="2020-05-21T14:48:06+05:00"/> </POIData> <PaymentResult> <AmountsResp Currency="USD" AuthorizedAmount="64.99"> </PaymentResult> </PaymentResponse> </SaleToPOIResponse>