> ## Documentation Index
> Fetch the complete documentation index at: https://docs.reap.global/llms.txt
> Use this file to discover all available pages before exploring further.

# Card transaction fees

> One row per fee event on a card transaction.

`CARD_TRANSACTION_FEES` itemises what Reap billed you for that arose from card use: purchases, ATM withdrawals, refunds, wallet provisioning, and 3DS authentication. Request it as described on the [statements overview](/statements/overview).

## What a row is

A row is one fee event, not one transaction. A single transaction produces several rows when it is authorized, captured in parts, refunded, or later corrected. Join them on `transactionId`.

Some rows carry no transaction at all, because the fee is priced per occurrence: provisioning a card into Apple Pay or Google Pay, a 3DS authentication, and non-financial ATM actions such as a PIN change or a balance enquiry. Those rows leave the event columns empty, and `feeType` says what happened. Their amount columns read zero, which is their real value rather than a placeholder.

### Signs

Amounts follow the cardholder's money. Spend is positive, refunds and reversals are negative, so summing a column over a period gives you a net figure with no sign handling of your own.

Fees and interchange are signed from your point of view: what you collected or earned is positive, and what was given back is negative. `ADJUSTMENT` rows are corrections issued against a fee assessed earlier, and they carry whichever sign undoes the original. Include them in every total.

### Currencies

Two denominations coexist in one file.

`currency` is your card program currency, and governs `amount`, `billAmount`, `originalAmount`, `fxFee`, `atmVariableFee`, and `atmFixedFee`.

Columns whose names end in `Usd` are US dollars on every program, whatever your program currency. `billAmountUsd` is `billAmount` converted at the rate for the day the transaction happened.

### Amounts

Three amount columns describe the same transaction from different angles:

* `billAmount` is the transaction before the fees you applied.
* `amount` is what the cardholder was charged, so it equals `billAmount` plus `fxFee`, `atmVariableFee`, and `atmFixedFee`. It matches what [the transactions API](/transactions/overview) returns.
* `billAmountUsd` is `billAmount` in US dollars.

The difference between `amount` and `billAmount` is exactly the fees you collected from your cardholder.

### Interchange

Interchange is reported in full, as earned on the transaction. `grossInterchangeUsd` is before scheme deductions and `netInterchangeUsd` is after them. Neither is your share of it: the share is a percentage set out in your pricing schedule, which the file does not carry.

## Columns

Request a subset with `fields` and you get exactly these names, in the order you asked for.

| Column                | Description                                                                                                                                                                                                                                                              |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `occurredAt`          | When the network event occurred, UTC. Statement periods are bucketed on this column. On an ADJUSTMENT row it is when the correction was issued.                                                                                                                          |
| `eventType`           | Lifecycle event the fee was assessed on. Empty on rows with no card transaction event, which feeType explains.                                                                                                                                                           |
| `eventId`             | Card transaction event this fee was assessed on, as returned by the API.                                                                                                                                                                                                 |
| `transactionId`       | Card transaction the event belongs to. Several rows share one transaction: multiple captures, refunds and adjustments.                                                                                                                                                   |
| `cardId`              | Card the fee is attributed to. Reserved; always empty.                                                                                                                                                                                                                   |
| `cardLast4`           | Last four digits of the card number. Reserved; always empty.                                                                                                                                                                                                             |
| `accountId`           | Account the card belongs to. Reserved; always empty.                                                                                                                                                                                                                     |
| `channel`             | How the transaction was initiated. ATM invoice lines filter on this column.                                                                                                                                                                                              |
| `feeType`             | Fee category the row was assessed under. Explains rows with no transaction event, and carries the per-occurrence lines such as ATM non-financial actions and 3DS authentication. ADJUSTMENT rows are corrections to a fee assessed earlier; include them in every total. |
| `locality`            | Whether the merchant sits in your card program market. The international transaction fee and the ATM rates split on this column.                                                                                                                                         |
| `hasFx`               | Whether the transaction involved a currency conversion. The FX fee line sums the volume of these rows.                                                                                                                                                                   |
| `currency`            | Currency of amount, billAmount, fxFee, atmVariableFee and atmFixedFee: your card program currency, as an ISO 4217 alphabetic code.                                                                                                                                       |
| `amount`              | What the cardholder was charged, in the card currency. Equals billAmount plus fxFee, atmVariableFee and atmFixedFee, and matches the transaction amount the API returns. Zero on a row that carries a fee but no transaction.                                            |
| `billAmount`          | Transaction amount before the fees you applied, in the card currency. The difference between this and amount is exactly the fees you collected.                                                                                                                          |
| `billAmountUsd`       | billAmount - not amount - converted to US dollars at the transaction-day rate. Every percentage line on your invoice is computed on this column, whatever your card program currency.                                                                                    |
| `originalAmount`      | Amount in the currency the merchant charged. Empty on rows with no merchant.                                                                                                                                                                                             |
| `originalCurrency`    | Currency the merchant charged in.                                                                                                                                                                                                                                        |
| `fxFee`               | Foreign exchange fee you collected from the cardholder, in the card currency.                                                                                                                                                                                            |
| `atmVariableFee`      | Percentage-based ATM fee you collected from the cardholder, in the card currency.                                                                                                                                                                                        |
| `atmFixedFee`         | Per-withdrawal ATM fee you collected from the cardholder, in the card currency.                                                                                                                                                                                          |
| `grossInterchangeUsd` | Interchange earned on this settlement before scheme deductions, in US dollars. This is the full figure, not your share of it.                                                                                                                                            |
| `netInterchangeUsd`   | Gross interchange less the scheme settlement fees attributable to it, in US dollars. This is the full figure; your revenue share is the percentage set out in your pricing schedule.                                                                                     |
| `merchantName`        | Merchant as named in the network message.                                                                                                                                                                                                                                |
| `merchantCountry`     | Two-letter ISO 3166 country code of the merchant.                                                                                                                                                                                                                        |
| `mcc`                 | Merchant category code of the merchant's business.                                                                                                                                                                                                                       |
| `settlementDate`      | Day the transaction settled, UTC. Empty while it is still authorized.                                                                                                                                                                                                    |

## Scale and ordering

Card-currency columns carry two decimal places. `Usd` columns carry seven, which is the scale Reap computes and bills at, so round once at the end rather than per row.

Rows are ordered by `occurredAt`, oldest first. See the [file format](/statements/overview#file-format) for the dialect every statement shares.
