Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Nexo Retail Module Library now supports two reconciliation types:

  • SaleReconciliation

  • AcquirerSynchronisation

Sale Reconciliation

A sale reconciliation is simply an exchange of totals between the POI terminal and the Sale terminal.

...

Example of request message:

Code Block
languagexml
<?xml version="1.0"?>
<SaleToPOIRequest>
    <MessageHeader ProtocolVersion="3.0" MessageClass="Service" MessageCategory="Reconciliation" MessageType="Request" ServiceID="617" SaleID="ArkosSales" POIID="PreCertificationAmadis1" />
    <ReconciliationRequest  ReconciliationType="SaleReconciliation"/>
</SaleToPOIRequest>


Acquirer Synchronisation

An acquirer synchronisation is a reconciliation and closure of the current period with synchronisation between POI terminal and Acquirers.

...

Example of request message:

Code Block
languagexml
<?xml version="1.0"?>
<SaleToPOIRequest>
    <MessageHeader ProtocolVersion="3.0" MessageClass="Service" MessageCategory="Reconciliation" MessageType="Request" ServiceID="617" SaleID="ArkosSales" POIID="PreCertificationAmadis1" />
    <ReconciliationRequest  ReconciliationType="AcquirerSynchronisation"/>
</SaleToPOIRequest>


Upon sending the request, you can refer in RetailHandler.java class in ArkosPay on how the events are managed for a reconciliation request.


A wrapper function has been made available in ASL to get the reconciliation type from the requests.

Depending on the request, we execute the following steps.

Expand
titleRetailReconciliaitonFragment.java
Code Block
if(request.wrap().getReconciliationType() == ReconciliationType.SaleReconciliation)
{
    MaintenanceStartAsync(doGetTotals);
}
else if(request.wrap().getReconciliationType() == ReconciliationType.AcquirerSynchronisation)
{

    navigate(R.id.toChooseReconciliationType);
}

Once the result is obtained, the data is sent back to the Nexo Retail Module to be constructed using SendReconciliationResponse() function.

Code Block
languagejava
  ReconciliationRequest request = (ReconciliationRequest) PaymentSystem.getRetailHandler().getEvent();
        TransactionTotals transactionTotals = new TransactionTotals(receiptData);
        List<TransactionTotal> getTotalList = transactionTotals.getTotalList();

        PaymentSystem.getRetailHandler().SendReconciliationResponse(ReconciliationResponseBody.reconciliationResponseBody(request.wrap().getReconciliationType(),getTotalList,0));

An example of a reconciliation response body can be found below. The SDK builds the response with all your schemes supported.

You can also use the third parameter to choose which acquirer result you want to send to the nexo retail module if you have multiple acquirers configured.

Note: The first acquirer starts at 0, the second acquirer at 1, etc;

Code Block
<?xml version="1.0" encoding="UTF-8"?>
<SaleToPOIResponse>
	<MessageHeader ServiceID="617" POIID="PreCertificationAmadis1" ProtocolVersion="3.0" SaleID="ArkosSales" MessageCategory="Reconciliation" MessageClass="Service" MessageType="Response"/>
	<ReconciliationResponse ReconciliationType="SaleReconciliation">
		<Response Result="Success"/>
		<TransactionTotals PaymentInstrumentType="Card" AcquirerID="123456" CardBrand="VISA">
			<PaymentTotals TransactionCount="0" TransactionAmount="0.00" TransactionType="Debit"/>
			<PaymentTotals TransactionType="ReverseDebit" TransactionCount="0" TransactionAmount="0.00"/>
			<PaymentTotals TransactionCount="0" TransactionType="Credit" TransactionAmount="0.00"/>
			<PaymentTotals TransactionAmount="0.00" TransactionType="ReverseCredit" TransactionCount="0"/>
			<PaymentTotals TransactionAmount="0.00" TransactionCount="0" TransactionType="Declined"/>
			<PaymentTotals TransactionCount="0" TransactionType="Failed" TransactionAmount="0.00"/>
			<PaymentTotals TransactionCount="0" TransactionType="OneTimeReservation" TransactionAmount="0.00"/>
		</TransactionTotals>
		<TransactionTotals CardBrand="MasterCard" PaymentInstrumentType="Card" AcquirerID="123456">
			<PaymentTotals TransactionType="Debit" TransactionAmount="50.00" TransactionCount="1"/>
			<PaymentTotals TransactionAmount="0.00" TransactionType="ReverseDebit" TransactionCount="0"/>
			<PaymentTotals TransactionCount="0" TransactionAmount="0.00" TransactionType="Credit"/>
			<PaymentTotals TransactionAmount="0.00" TransactionCount="0" TransactionType="ReverseCredit"/>
			<PaymentTotals TransactionAmount="0.00" TransactionType="Declined" TransactionCount="0"/>
			<PaymentTotals TransactionAmount="0.00" TransactionType="Failed" TransactionCount="0"/>
			<PaymentTotals TransactionCount="0" TransactionAmount="0.00" TransactionType="OneTimeReservation"/>
		</TransactionTotals>
		<TransactionTotals PaymentInstrumentType="Card" AcquirerID="123456" CardBrand="MAESTRO">
			<PaymentTotals TransactionType="Debit" TransactionCount="0" TransactionAmount="0.00"/>
			<PaymentTotals TransactionType="ReverseDebit" TransactionCount="0" TransactionAmount="0.00"/>
			<PaymentTotals TransactionCount="0" TransactionType="Credit" TransactionAmount="0.00"/>
			<PaymentTotals TransactionAmount="0.00" TransactionCount="0" TransactionType="ReverseCredit"/>
			<PaymentTotals TransactionType="Declined" TransactionCount="0" TransactionAmount="0.00"/>
			<PaymentTotals TransactionCount="0" TransactionAmount="0.00" TransactionType="Failed"/>
			<PaymentTotals TransactionAmount="0.00" TransactionType="OneTimeReservation" TransactionCount="0"/>
		</TransactionTotals>
		<TransactionTotals PaymentInstrumentType="Card" AcquirerID="123456" CardBrand="AMEX">
			<PaymentTotals TransactionAmount="0.00" TransactionCount="0" TransactionType="Debit"/>
			<PaymentTotals TransactionCount="0" TransactionAmount="0.00" TransactionType="ReverseDebit"/>
			<PaymentTotals TransactionType="Credit" TransactionAmount="0.00" TransactionCount="0"/>
			<PaymentTotals TransactionCount="0" TransactionAmount="0.00" TransactionType="ReverseCredit"/>
			<PaymentTotals TransactionCount="0" TransactionType="Declined" TransactionAmount="0.00"/>
			<PaymentTotals TransactionCount="0" TransactionAmount="0.00" TransactionType="Failed"/>
			<PaymentTotals TransactionType="OneTimeReservation" TransactionCount="0" TransactionAmount="0.00"/>
		</TransactionTotals>
		<TransactionTotals PaymentInstrumentType="Card" AcquirerID="123456" CardBrand="Discover">
			<PaymentTotals TransactionCount="0" TransactionAmount="0.00" TransactionType="Debit"/>
			<PaymentTotals TransactionAmount="0.00" TransactionType="ReverseDebit" TransactionCount="0"/>
			<PaymentTotals TransactionType="Credit" TransactionCount="0" TransactionAmount="0.00"/>
			<PaymentTotals TransactionType="ReverseCredit" TransactionCount="0" TransactionAmount="0.00"/>
			<PaymentTotals TransactionCount="0" TransactionAmount="0.00" TransactionType="Declined"/>
			<PaymentTotals TransactionCount="0" TransactionAmount="0.00" TransactionType="Failed"/>
			<PaymentTotals TransactionType="OneTimeReservation" TransactionAmount="0.00" TransactionCount="0"/>
		</TransactionTotals>
		<TransactionTotals CardBrand="JCB" PaymentInstrumentType="Card" AcquirerID="123456">
			<PaymentTotals TransactionCount="0" TransactionType="Debit" TransactionAmount="0.00"/>
			<PaymentTotals TransactionCount="0" TransactionType="ReverseDebit" TransactionAmount="0.00"/>
			<PaymentTotals TransactionAmount="0.00" TransactionType="Credit" TransactionCount="0"/>
			<PaymentTotals TransactionCount="0" TransactionType="ReverseCredit" TransactionAmount="0.00"/>
			<PaymentTotals TransactionCount="0" TransactionType="Declined" TransactionAmount="0.00"/>
			<PaymentTotals TransactionType="Failed" TransactionCount="0" TransactionAmount="0.00"/>
			<PaymentTotals TransactionAmount="0.00" TransactionCount="0" TransactionType="OneTimeReservation"/>
		</TransactionTotals>
		<TransactionTotals AcquirerID="123456" CardBrand="CUP/UPI" PaymentInstrumentType="Card">
			<PaymentTotals TransactionType="Debit" TransactionCount="0" TransactionAmount="0.00"/>
			<PaymentTotals TransactionType="ReverseDebit" TransactionCount="0" TransactionAmount="0.00"/>
			<PaymentTotals TransactionCount="0" TransactionAmount="0.00" TransactionType="Credit"/>
			<PaymentTotals TransactionCount="0" TransactionAmount="0.00" TransactionType="ReverseCredit"/>
			<PaymentTotals TransactionType="Declined" TransactionCount="0" TransactionAmount="0.00"/>
			<PaymentTotals TransactionCount="0" TransactionAmount="0.00" TransactionType="Failed"/>
			<PaymentTotals TransactionCount="0" TransactionType="OneTimeReservation" TransactionAmount="0.00"/>
		</TransactionTotals>
		<TransactionTotals CardBrand="Carte a Piste" AcquirerID="123456" PaymentInstrumentType="Card">
			<PaymentTotals TransactionType="Debit" TransactionCount="0" TransactionAmount="0.00"/>
			<PaymentTotals TransactionCount="0" TransactionType="ReverseDebit" TransactionAmount="0.00"/>
			<PaymentTotals TransactionAmount="0.00" TransactionType="Credit" TransactionCount="0"/>
			<PaymentTotals TransactionAmount="0.00" TransactionType="ReverseCredit" TransactionCount="0"/>
			<PaymentTotals TransactionAmount="0.00" TransactionCount="0" TransactionType="Declined"/>
			<PaymentTotals TransactionCount="0" TransactionAmount="0.00" TransactionType="Failed"/>
			<PaymentTotals TransactionType="OneTimeReservation" TransactionCount="0" TransactionAmount="0.00"/>
		</TransactionTotals>
		<TransactionTotals AcquirerID="123456" PaymentInstrumentType="Card" CardBrand="STANDARD">
			<PaymentTotals TransactionType="Debit" TransactionCount="0" TransactionAmount="0.00"/>
			<PaymentTotals TransactionCount="0" TransactionAmount="0.00" TransactionType="ReverseDebit"/>
			<PaymentTotals TransactionCount="0" TransactionType="Credit" TransactionAmount="0.00"/>
			<PaymentTotals TransactionCount="0" TransactionType="ReverseCredit" TransactionAmount="0.00"/>
			<PaymentTotals TransactionCount="0" TransactionAmount="0.00" TransactionType="Declined"/>
			<PaymentTotals TransactionCount="0" TransactionAmount="0.00" TransactionType="Failed"/>
			<PaymentTotals TransactionCount="0" TransactionType="OneTimeReservation" TransactionAmount="0.00"/>
		</TransactionTotals>
	</ReconciliationResponse>
</SaleToPOIResponse>