Dispute / Chargeback Reconciliation Guide
OverviewThis guide walks through pulling chargeback cases and tracing each disputed transaction back to its original sale in the batch reports — the core reconciliation loop for resolving disputes. It covers two paths: reconciling at the Merchant Account level, or at the Agent/Partner level across multiple merchants. By the end, you'll be able to match a disputed transaction from a chargeback case to the actual sale record, with the fields needed to build a dispute response.
Prerequisites
Before you begin, make sure you have:
- A valid Bearer token for either Merchants or Agents/Partners
- For Agent/Partner reconciliation: an Agent/Partner-level secret key
- The date range you want to reconcile (chargeback report dates and batch settlement dates)
Step 1: Export Chargeback Data
Pull the chargeback cases for a given reporting window. This gives you the disputed transactions you'll later match against original sales.
To get a list of disputes, see the API Reference: here
What you get back: A list of chargeback cases filtered by report_date, which you'll reconcile against batch transaction records in the following steps.
Tip: Note that the date format for this endpoint is
YYYY/MM/DD.
From here, follow Step 2: Option 1 if reconciling a single Merchant Account, or Step 2: Option 2 if reconciling at the Agent/Partner level.
Step 2: Retrieve Corresponding Information
The method of reconciliation determines the next steps.
Option 1: Retrieve Transaction Details
If you are looking to reconcile at the Merchant Account level, you must retrieve Transaction Details. Pull the batch transaction details for a specific date to find the original sale. Refer to the curl statement below to accomplish this.
What you get back: Individual transaction batch details for that merchant, which you match against the disputed transactions from Step 1.
curl --location 'https://api.payarc.net/v1/batch/reports/details?date=2025-04-03' \
--header 'accept: application/json' \
--header 'authorization: Bearer YOUR_SECRET_KEY'Tip: This endpoint uses the batch date, which may differ from the transaction date by a few days. Skip this step if you're reconciling at the Agent/Partner level.
Option 2: Retrieve Batch Reports by Date Range (Agent / Partner)
Step 2A: List Batches Within Desired Date Range
If you are looking to reconcile at the Agent/Partner level across multiple merchants, list the batches within a date range. This gives you the identifiers needed to drill into individual transactions.
To get a list of agent batches within a date range, see the API Reference: here
What you get back: Batch records including Batch_Reference_Number and Merchant_Account_Number — both required to retrieve the full transaction breakdown in Step 2B.
Tip: This endpoint uses a different date format than that in Step 1. The format is
YYYY-MM-DD.
Tip: The reporting window spans three calendar months — the month of
to_dateplus the two months before it.from_datemust be on or after the first day of the month two months beforeto_date. For example, ifto_dateis2025-08-26, thenfrom_datemust be2025-06-01or later; ifto_dateis2025-03-15, thenfrom_datemust be2025-01-01or later. Whento_dateis the last day of a month, the boundary may land one month later than that. Iffrom_datefalls outside the window, the API returns a422naming the earliest date it will accept.
Step 2B: Get Detailed Transaction Record by Batch & Merchant (Agent / Partner)
Using the Batch_Reference_Number and Merchant_Account_Number from Step 2A, query the full breakdown of every transaction in that batch to locate the disputed sale.
To retrieve detailed transaction information for a batch report, see the API Reference: here
What you get back: Full transaction records for every sale in the batch. The fields you'll use to match against a chargeback are amount, transaction_date, auth_code, card_number (masked), and acquirer_reference_number.
Tip:
acquirer_reference_numberis the strongest link between a chargeback and its original sale. Compare it against theacquirer_reference_numberon the/casesrecord from Step 1, then confirm the match withauth_codeandtransaction_date. Note that the chargeback returns the card ascard_number_prefixandcard_last4, while the batch record returns a single maskedcard_number.
Tip: Batch records for payfac accounts do not include
acquirer_reference_number. For those merchants, match onauth_code,transaction_date, and amount instead.
Tip: Amounts use different units on each side. Batch
amountis in cents; the chargeback'scase_amountandmerchant_amountare in dollars.
What's Next
Now that you can reconcile chargebacks to their original sales, you can:
Updated 9 days ago
