PayPal activity / settlement (transaction reconciliation) report
PayPal's record of money movement, either the Activity CSV a merchant downloads or the fixed-format Settlement/Transaction Reconciliation report pulled from Reports/SFTP. People assume one transaction is one row; it is frequently several.
The shape, how the file is really laid out
The Activity CSV carries Date, Time, TimeZone, Type, Status, Currency, Gross,
Fee, Net, Balance, Transaction ID and Reference Txn ID. Gross is signed, Fee
is negative, and Net = Gross + Fee. The Balance column is a RUNNING balance
kept per currency, so reading it straight down a multi-currency file is
meaningless. A single foreign-currency sale explodes into multiple rows: the
payment itself plus a "General Currency Conversion" debit/credit pair, and
sometimes a separate fee row, all linked by Reference Txn ID back to the
parent Transaction ID. The Settlement/TRR report is instead a structured file
with a header record, a column-header record, body rows, and a trailer/footer
record that states row counts and control totals; each row carries a
Transaction Event Code (e.g. T0006 checkout payment, T1107 refund, T1105
currency conversion, T0400 withdrawal) rather than a plain type word.
The traps
Row multiplication: counting rows overcounts transactions, and summing Gross across the currency-conversion pair double-counts the sale in two currencies.
- Every trap in this export, worked through
- The reconciliation anchor, the total the file asserts about itself
- The refusal cases, when to stop and ask instead of guess
Reference: PayPal Docs, Transaction detail / Activity download field reference (Gross, Fee, Net, Reference Txn ID) · PayPal Reports, Settlement / Transaction Reconciliation report layout and Transaction Event Codes