Shopify Payments transactions export explained (2026): every column and type

Updated · 7 min read

The Shopify Payments transactions export is a CSV with one row per balance movement: charges, refunds, disputes, reserves, adjustments and payouts. Current exports carry 16 columns plus a Payout ID column added on 8 January 2026, amounts are in the payout currency, and the identity Net = Amount − Fee holds on every row. This page documents each column, each Type value, how deductions look, and how to join the file to the orders export.

How to get the file

Two routes, same schema (View payout details):

  • One payout: Finance > Payouts > click the payout date > Export icon > Export payout transactions.
  • A date range, all payouts: Settings > Payments > View payouts > View Transactions > Export > choose date range and CSV type > Export balance transactions.

Both are emailed to you and the store owner, not downloaded. Filters before export: transaction type, payout status, payment method, card type, transaction date, payout date, currency.

The columns

Header line as observed on 2026 exports: Transaction Date,Type,Order,Card Brand,Card Source,Payout Status,Payout Date,Available On,Amount,Fee,Net,Checkout,Payment Method Name,Presentment Amount,Presentment Currency,Currency

Shopify's help page lists only the first 11; the remaining five and Payout ID are present in real exports. Parse by header name, not by position.

ColumnFormatMeaningNotes
Transaction DateYYYY-MM-DD HH:MM:SS ±HHMMWhen the balance movement was created (capture, refund, dispute)Includes timezone offset
Typelowercase stringKind of movementSee list below
Order#1001Order nameEmpty on adjustments, reserves, payouts
Card BrandVisa, Mastercard, …Card networkEmpty on non-card rows
Card Sourcecredit, debit, …Funding type
Payout Statuspaid, pending, scheduled, in_transit, failedState of the payout this row belongs toCase varies between exports; normalise
Payout DateYYYY-MM-DDDate the payout containing this row was/will be sentEmpty while unscheduled
Available OnYYYY-MM-DDDate funds finished settlingSettlement is 2 to 7 business days by country
Amountdecimal, - for negativeGross amount in payout currencyNo symbol, no thousands separator
FeedecimalFee on this rowPositive on charges
NetdecimalAmount − FeeΣ Net per payout = payout total
CheckoutstringCheckout token
Payment Method Namestringe.g. Shopify Payments, Shop Pay
Presentment AmountdecimalWhat the customer paid, in their currency
Presentment CurrencyISO codeCustomer currency
CurrencyISO codePayout currency for Amount/Fee/NetOne payout per currency
Payout IDidentifierAdded 8 Jan 2026Matches the payout export; position not fixed

The 2026 change: "Bank Reference" was added to payout exports and "Payout ID" to order transactions exports so merchants can "match Shopify Payments payouts with bank deposits" (Shopify changelog). Older exports and third-party templates built before January 2026 will not have the column.

Type values and their sign

The set is open; new values appear without notice. Treat unknown values as "Other" and flag them.

TypeAmount signFeeOrder filledWhat it is
charge++yesCard capture
capture++yesCapture of a prior authorisation (some exports)
refund−0 (occasionally −)yesRefund; original fee is not returned
dispute / chargeback−+ (chargeback fee)yes, original orderDisputed amount withdrawn
dispute_reversal+− (fee returned)yesDispute won
reserve− then +0noFunds held, later released
adjustment±±noTax on fees, Protect, corrections, Capital
payout−0noThe transfer to your bank
payout_failure+0noFailed payout returned to balance
transfer, credit, debit, advance±0noInternal movements, Capital advances

Fee policy references: refunds do not return the original fee (Refunds); dispute amount and fee are "withdrawn immediately" and returned on a win (Chargeback process); reserves show as negative then positive transactions (Reserves).

The arithmetic to assert

Three checks catch almost every parsing error:

  1. Row level: Net == Amount − Fee for every row. If it fails, the file was opened and re-saved by a spreadsheet that rounded or re-formatted numbers. Re-download.
  2. Payout level: Σ Net grouped by (Payout Date, Currency) equals the payout Total on the Payouts page and in the payout export.
  3. Fee level: on charge rows, Fee / Amount should sit near your plan rate, plus 1.5% (US) or 2% (elsewhere) on rows where Presentment Currency ≠ Currency (Currency conversion fees). The conversion fee is inside Fee; there is no rate column.

Parse amounts as exact decimals, never floats. A 4,820.00 payout summed as floats across 31 rows can drift by a cent, and a cent is enough to fail a bank match.

How refunds, disputes and adjustments look in practice

A refund on order #1042 sold on 2026-02-03 and refunded on 2026-03-09 produces a charge row dated 2026-02-03 (Amount 120.00, Fee 3.78, Net 116.22, Payout Date 2026-02-06) and a refund row dated 2026-03-09 (Amount −120.00, Fee 0.00, Net −120.00, Payout Date 2026-03-12). Same order, two payouts, five weeks apart. The orders export shows only Refunded Amount = 120.00 with no date. Any reconciliation that groups by order date instead of payout date will put the refund in February and the payout will not balance.

A dispute looks like a refund with a positive Fee (the chargeback fee) and references the original order. A later dispute_reversal repeats the order number with the opposite signs.

Adjustments and reserves have an empty Order. They are payout-level lines; do not try to allocate them to orders.

Joining with the orders export

Orders > Export > Orders by date > CSV (Export orders). Exports over 50 orders are emailed.

Join key: transactions.Order ↔ orders.Name. Strip the #, trim whitespace, compare as strings (order names can carry prefixes or suffixes set in Settings > General).

Pitfalls:

  • Multi-line orders: the orders CSV writes order-level fields on the first line only; following lines have an empty Name. Forward-fill Name before joining.
  • Orders with no transaction rows: paid by PayPal, Klarna, manual, or 100% gift card. Check orders.Payment Method (shopify_payments, paypal, manual, gift_card, combined with + ). Report them as "settled outside Shopify Payments".
  • Many rows per order: charge + one or more refunds + dispute + reversal, spread across several payouts. Join is one-to-many.
  • Partial gift card: Amount on the charge is the order total minus the gift card portion. Don't expect it to equal orders.Total.
  • Tips: the orders export has no tip column. Total − Subtotal − Shipping − Taxes − Duties approximates tips.
  • Test orders and exchanges: filter them out of both files before summing.
  • Payment ID is not in the transactions export, so you cannot join on it even though the orders CSV has a Payment ID column.

The payout statement tool at Shopify payout statements applies these rules in the browser (forward-fill, strip #, decimal arithmetic, the three assertions) and lists non-matched orders by payment method on the last page of each statement.

FAQ

Why does my export have more columns than Shopify's documentation lists? The help page lists 11 columns; exports in 2026 contain 16 plus Payout ID. Shopify adds columns without updating the list. Read by header name.

What is the difference between Available On and Payout Date? Available On is the date settlement finished (2 to 7 business days after capture depending on country). Payout Date is the date the containing payout is sent, which depends on your daily, weekly or monthly schedule.

Is the Fee column the full cost of the transaction? Yes for Shopify Payments: card rate plus any currency-conversion fee plus, in some regions, tax on the fee. The export does not split these.

Can I get the exchange rate used? Not from this export. Divide Amount by Presentment Amount for an implied rate, keeping in mind the conversion fee is embedded.

Why does Σ Net for a date range not equal my bank deposits? A date-range export includes rows whose Payout Status is pending, scheduled or in_transit. Filter to paid and group by Payout Date before comparing to the bank.

Shopify payout statements

  • CSV
  • PDF
  • Excel

Preview first · $4.99 for 24 h

Build payout statements