Skip to main content
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.

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 transaction amount columns read zero, which is their real value rather than a placeholder, and the fee Reap charged for the occurrence is in its fee column. A TRANSACTION row with no eventId is a zero-value authorization: a merchant checking that the card is valid, for example when it is saved for later payments. The network charges for the check, but no money moves, so it raises no card transaction event. The card and merchant columns identify it. Every row has an id that stays the same in every statement that includes it. Use it to tell a row you have already imported from a new one when you request an overlapping period, since rows with no eventId have nothing else unique to match on.

Adjustments

An ADJUSTMENT row corrects a fee assessed on an earlier transaction, and they are extremely rare. The original row is never rewritten. The adjustment records the difference instead, and carries the transactionId of the transaction it corrects. Its occurredAt is when the correction was issued, and its event columns are empty.

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 you collected and interchange you earned are signed from your point of view: positive, and negative where they were given back. The fees Reap charged you are positive as charged, and negative only where one was credited back to you. 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 returns.
  • billAmountUsd is billAmount in US dollars.
The difference between amount and billAmount is exactly the fees you collected from your cardholder.

Fees Reap charged you

The columns from authorizationFeeUsd to atmNonFinancialFeeUsd carry what Reap charged you on each row, in US dollars. Each one corresponds to a line on your invoice, so summing it over the invoice period gives that line’s amount. A fee that your pricing does not charge separately reads zero.

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.

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 for the dialect every statement shares.