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:

  1. The merchants submit the capture requests to the card network.
  2. The card network combine all requests and sends a clearing record to StraitsX.
  3. For transactions that have matched amounts between the transaction clearing file and the live transaction, we'll send the transaction list you via reconciliation_success webhook.
  4. For the transactions that have discrepancies between the Base 2 clearing file and the Base 1 live transaction records, StraitsX will validate each transaction.
  5. For each transaction with discrepancy, after it got verified we'll send you recommended action via reconciliation_manual_adjustment webhook
  6. 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 = refund
    • amount = 0.5
    • reason = 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 = deduction
    • account_amount = 0.5
    • reason = 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 = deduction
    • amount = 0.1
    • reason = 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.