This interface is used to verify and synchronize transaction data, ensuring consistency of transaction records across different systems.
Typically performed at the end of the day or at specific intervals, its main functions include:
1.Transaction Verification: Check whether transactions are consistent across systems, including transaction status, amount, and number of transactions.
2.Trigger Settlement: Can be used to trigger settlement on the payment terminal.
Key notes:
1.The reconciliation result may include multiple transactions; developers should handle exceptions based on the returned status.
2.The frequency and implementation details of reconciliation depend on the acquirer and terminal configuration.
Type of Reconciliation requested by the Sale to the POI.
Identification of the Acquirer.
Identification of the reconciliation period between Sale and POI.
Merchant identification.
Merchant name.
Identification of the POI.
Additional information associated with the sale transaction.
Copy from Request. The default value is ASYN.
Unique identification of the partner that is the recipient of the message exchange.
For example, the POS SN
Result of the requested transaction.
Detail of the response. This field will be gradually replaced by respReason in future versions.
Additional information to be logged for further examination.
Custom status field returned in the transaction result.
When you receive the terminal result through the SDK callback interface and ReconciliationResult.response = SUCC, you can obtain additional transaction details.
The following fields are defined, and the availability of each field depends on the capabilities provided by the payment application.
A list of transaction totals sets.
Payment Transaction totals during the reconciliation period, for a certain type of transaction.
Payment Transaction totals during the reconciliation period, for a certain type of transaction.
Identification of an Acquirer.
Total number of transactions during a reconciliation period.
Total amount of a collection of transactions.
Currency associated with the transaction.
Three-letter ISO currency code.
Cash-back amount.
Fees amount.
Detailed amounts associated with the total amount of transaction.
Amount value.
Short description of the amount to display or print.
A list of value added tax amounts.
Detailed amounts associated with the total amount of transaction.
Amount value.
Short description of the amount to display or print.
Additional charge paid by the cardholder. For example airline credit card surcharge.
Detailed amounts associated with the total amount of transaction.
Amount value.
Short description of the amount to display or print.
Identifier assigned by the merchant identifying a set of POI terminals performing some categories of transactions.
Category of cards related the acceptance processing rules defined by the acquirer.
Type of payment instrument
Identification of an Acquirer.
Identifier of a host reconciliation period: acquirer for a payment or server for loyalty.
Identifier of a reconciliation period on the sale system.
Brand of payment card or loyalty system.
Identification of the POI performing the transaction.
Identification of the sale terminal (electronic cash register or point of sale terminal) or the sale system.
Identification of the cashier who carried out the transactions.
Identifies the shift of the cashier.
Identification of the reconciliation period between Sale and POI.
Merchant identification.
Merchant name.
Identification of the POI.
Identification of the cashier who carried out the transaction.
Identifies the shift of the cashier.
Identification of the invoice.
Additional information associated with the sale transaction.
ReconciliationParam reconciliationParam = ReconciliationParam.newBuilder()
.build();
RetailerManager.provideFinancialService()
.newReconciliationExchange(reconciliationParam)
.startAsyncExchange(new Exchange.RetailerSDKCallback<ReconciliationResult>() {
@Override
public void onError(int code, String msg) {
Logger.e(TAG,"failed" + code + "," + msg);
}
@Override
public void onResult(ReconciliationResult result) {
Logger.d(TAG,"result:" + GsonUtils.toJson(result));
}
});using System;
using PayExplorerConnect;
public void HandleReconciliationError(int code, string message)
{
Console.WriteLine($"Error: {code}, Message: {message}");
}
public void HandleReconciliationResult(ReconciliationResult result)
{
Console.WriteLine($"Response: {result.Response}");
}
public string StartReconciliation()
{
ReconciliationParam param = new ReconciliationParam.Builder()
.Build();
string exchangeId = RetailerManager
.ProvideFinancialService()
.NewReconciliationExchange(param)
.StartAsyncExchange(
HandleReconciliationResult,
HandleReconciliationError);
return exchangeId;
}#import <PayExplorerConnect/RetailerManager.h>
#import <PayExplorerConnect/ReconciliationParam+Builder.h>
ReconciliationParam *params = [ReconciliationParam makeWithBuilder:^(ReconciliationParamBuilder *builder) {
builder.reconciliationType(ReconciliationTypeCodeASYN);
}];
[[RetailerManager sharedManager] reconciliation:params block:^(NSString *exchangeId) {
// Save the exchange ID to track this request.
} result:^(id result, NSInteger errcode, NSString *msg) {
if (errcode != 0 && result == nil) {
// Handle request error.
return;
}
ReconciliationResult *reconciliationResult = (ReconciliationResult *)result;
// Handle reconciliation result.
}];