Free browser-local utility
Payment report checker
Does your existing sales report agree with Stripe? Compare complete transaction exports by exact payment ID, amount, currency, status and refunds. Inspect the source evidence for each difference.
Supported CSV format and comparison definitions
Use transaction-level Stripe payment exports, with headers id (or Payment ID / Charge ID), Amount, Currency, Status, Amount Refunded, and Created (UTC) (or Created date (UTC)). Extra columns are ignored. Refund totals must be present, including zero. Balance transactions, dispute exports, payouts and aggregate revenue reports are unsupported.
Normalize your customer report to payment_id,amount,currency,status,refunded_amount,created_at,livemode. Each order must carry its actual Stripe transaction ID; internal order IDs and customer emails cannot establish a payment match. No customer information is required.
Choose exact charge IDs (ch_) or PaymentIntent IDs (pi_). For a Stripe charge export compared with PaymentIntent IDs, include its explicit payment_intent or Payment Intent ID relationship column. A matching amount or timestamp never substitutes for that relationship. Multiple charges mapped to one PaymentIntent remain ambiguous duplicates.
Amounts are decimal major currency units, converted exactly to currency-specific minor units; no rounding or currency conversion. Gross is captured amount for succeeded/refunded payments. Refunds are cumulative captured refunds per payment. Net is gross minus refunds, before fees, taxes, disputes or FX. Failed, pending and canceled payments contribute zero captured gross. Supported statuses: paid/succeeded, failed, pending/processing, canceled/cancelled, refunded and partially_refunded. Paid with a partial refund is normalized to partially_refunded.
Dates must include an ISO timezone; the named Stripe UTC columns also accept YYYY-MM-DD HH:mm:ss. Scope uses the original payment creation date in UTC, including the entire end date. Use exports from the same Stripe account, period and snapshot, including all pages and statuses. We cannot independently prove file completeness. Missing livemode uses your explicit environment declaration; present values must be true or false.
Maximum 5 MB and 10,000 transactions per file, over at most 366 days. Limits reject the whole comparison and never silently sample it. Delay tolerance marks recent absent payments or pending-status differences as unresolved pending; it does not hide different amounts, currencies or refunds. Re-export after the tolerance to resolve pending rows. Source totals retain duplicate rows.
For ongoing traffic-to-payment attribution and evidence-backed revenue checks, start Metrivo’s 7-day trial. This local comparison remains free.