# Sample scheme chargeback files (simulation)

Five example files, one per card scheme: Mastercard, Visa, JCB, American Express, UnionPay.

## Read this first — what these are, and are not

- **They are simulated.** They show *what the portal can read and what a chargeback looks like once it is in the portal.*
- **They are not any scheme's real file format.** Each scheme sends disputes in its own format over its own channel. Those formats, and the connection details (API, SFTP, or a scheme web tool), come from the scheme during onboarding. When Mercury has a real sample from a scheme, a reader for that exact format is built and tested against it.
- **Reason codes:** Mastercard and Visa codes are the real ones already loaded in the portal's reference data. The **JCB, Amex and UnionPay codes are illustrative placeholders** (marked "illustrative" in the files).
- **The merchants and transactions** in the files are test data from the development environment.

## The files

| File | Scheme | Rows |
|---|---|---|
| `sample_mastercard_chargebacks.csv` | Mastercard | 3 |
| `sample_visa_chargebacks.csv` | Visa | 3 |
| `sample_jcb_chargebacks.csv` | JCB | 2 |
| `sample_amex_chargebacks.csv` | American Express | 2 |
| `sample_unionpay_chargebacks.csv` | UnionPay | 2 |

## The columns

| Column | Meaning |
|---|---|
| `case_number` | Our case reference (samples start `SAMPLE-`) |
| `merchant_mid`, `rrn`, `auth_number` | Identify the original transaction |
| `transaction_amount`, `transaction_currency` | The amount being charged back |
| `transaction_date` | When the original sale happened |
| `scheme_name`, `card_type_code` | Which scheme and card type |
| `reason_code`, `reason_description` | Why the cardholder's bank disputed it |
| `scheme_case_reference` | The scheme's own reference for the chargeback |
| `chargeback_date`, `response_due_date` | When it arrived, and the deadline to respond |

## How to use them

- **Show a file:** open the CSV, or download it from **Disputes → Scheme Simulator**.
- **Load one into the portal:** **Disputes → Dispute Dashboard → Import CSV**. Importing the same file twice is safe: cases that already exist are skipped.
- **Regenerate them:** `mix disputes.sample_files` (optionally `--out=<folder>`).
- **Make fresh ones from real transactions:** use the **Scheme Simulator** page (see `../SIMULATION_DEMO.md`).
