Reconciliation
Description
After StraitsX/Card receives the clearing file from VISA, will trigger webhook notifications for the reconciliation result. Including reconciliation_success and reconciliation_manual_adjustment webhook.
After the live transactions got approved, will be combined into a clearing record to specify the success transaction from VISA perspective. The flow for notifying the reconciliation process is as follow:
- The merchants submit the capture requests to the card network.
- The card network combine all requests and sends a clearing record to StraitsX.
- For transactions that have matched amounts between the transaction clearing file and the live transaction, we'll send the transaction list you via
reconciliation_successwebhook. - For the transactions that have discrepancies between the Base 2 clearing file and the Base 1 live transaction records, StraitsX will validate each transaction.
- For each transaction with discrepancy, after it got verified we'll send you recommended action via
reconciliation_manual_adjustmentwebhook - You may need to adjust (either deduct or refund) based on the action recommended.
More detail
StraitsX system performing comparison between Base 2 clearing file and Base 1 live transaction by comparing these fields:
- visa_transaction_id
- auth_code
- acquirer_amount
- card_number (PAN)
- acquirer_currency
- account_amount
- account_currency
- transaction_type
There are multiple possible outcomes for these operation:
Matched transaction
If all those fields are matched, StraitsX will mark the transaction as matched and will send the transaction information as part of reconciliation_success webhook
Unmatched transaction
If there are discrepancy in acquirer_amount and account_amount fields, StraitsX will mark the transaction as unmatched and will send follow up reconciliation_manual_adjustment webhook which will run automatically from the StraitsX system. Here is the possible scenarios example of this webhook:
partial refund due to acquirer amount difference
- User purchase $5 SGD transaction in base 1.
- Card network send reconciliation transaction in $4.5 SGD in base 2.
- Transaction will marked as unmatched and StraitsX system send information as such:
recommended_action = refundamount = 0.5reason = BASE_2_ADJUSTMENT
partial_deduction due to acquirer amount difference
- User purchase $5 SGD transaction in base 1.
- Card network send reconciliation transaction in $5.5 SGD in base 2.
- Transaction will marked as unmatched and StraitsX system send information as such:
recommended_action = deductionaccount_amount = 0.5reason = BASE_2_ADJUSTMENT
partial refund / deduction due to equal acquirer amount, but different currency rate
- Card base currency is
USD - User purchase Rp 5.000 IDR transaction in base 1 or equivalent to $0.31 USD in 30th of May 2025.
- Card network send reconciliation transaction in Rp 5.000 IDR in base 2 or equivalent to $0.32 USD in 2nd of June 2025.
- Transaction will marked as unmatched and StraitsX system send information as such:
recommended_action = deductionamount = 0.1reason = FX_RATES_ADJUSTMENT
Not found transaction
For this specific case, there are no fields matched after perform comparison. On this case, StraitsX will send the full amount following the amount in reconciliation transaction in reconciliation_manual_adjustment webhook.
Updated 7 months ago
