How the audit works
PayoutCheck reads your settlement file, rebuilds the path from what you sold to what arrived, and checks it against what the platform itself declared. Every figure is arithmetic on your rows.
From payout file to clear answers in 3 steps
- 1
Export your report
Download the payout CSV from Shopify, or the Flat File V2 settlement report from Amazon Seller Central.
- 2
Upload it here
Drop the file on PayoutCheck. No sign-up, no store access. We delete it within 25 hours.
- 3
See what's off
Get a free preview right away. Open the full report to see every finding and the amount at stake.
A payout is a sequence, not one number
A payout is not one number with an error in it. It is a sequence: gross sales, then shipping and tax collected, then platform fees, then refunds, then chargebacks, adjustments, and any reserve held back or released. Added in order, those account for the whole distance between the sale and the deposit.
Subtracting a payout total from a sales total and calling the difference an error would be the wrong tool. The difference is expected. What matters is whether every step of it can be named, and whether the steps add up to the figure the platform published.
- Gross sales
- Shipping and tax collected
- Platform fees
- Refunds
- Chargebacks and adjustments
- Reserve held or released
- Expected payout
Built for two kinds of reports
Two formats, chosen because they carry transactions rather than summaries.
Shopify payout transactions export
One row for every transaction, which is what the line-level checks need. For a date range: Settings, then Payments, then View payouts, then View Transactions, then Export, then select the range of transactions and the type of CSV file, and click Export balance transactions. To check one payout against a bank deposit, export that payout on its own: Finance, then Payouts, then click the date of the payout, then Export, then Export payout transactions.
Amazon settlement report, Flat File V2
In legacy Seller Central, go to the All Statements page of the Payments report, then click Download Flat File V2 in the Actions column for the settlement period. In new Seller Central, go to Finance Report. Amazon's help does not name the format of the download there, and PayoutCheck reads only Flat File V2. Downloads are not available for the current settlement period. These steps are from Amazon's help for selling in the United States, and menus differ by Seller Central version. Reading only Flat File V2 is deliberate: Amazon is removing the XML report and the V1 flat file on 11 November 2026, and V2 is the replacement.
The nine checks
Each runs on your rows. None of them consults an outside data source, and none of them estimates a value the file does not contain.
- 1
Payout totals
Amazon settlement reports carry a declared total in their header row. Where a total is stated, every row in the file is added up and compared against it. This is an exact arithmetic identity the platform published itself, so a mismatch is a real finding rather than an interpretation. Shopify's payout transactions export states no total, so each of its rows is checked instead: Shopify defines Net as the difference between the amount and the fee, and a row where it is not is reported.
Rules:BRIDGE_UNEXPLAINED_RESIDUALORPHAN_TRANSACTIONNET_NOT_AMOUNT_MINUS_FEE
- 2
Fee anomalies
The fee rate on each order is compared against the median rate across your own file, with outliers found by how far they sit from it. There is no published rate card anywhere in this tool, because the rate that applies to you depends on your country, your plan, your card mix and your product category. A hard-coded figure would flag every seller outside one market. For the same reason an order outside your usual rate is listed as worth a look, with the amount involved, and is not counted as a discrepancy: a product category, a card type or a fixed fee per order can explain it, and the file cannot say which. A fee description PayoutCheck has no name for is listed the same way.
Rules:FEE_RATE_OUTLIERUNKNOWN_FEE_TYPEFEE_WITHOUT_MATCHING_SALE
- 3
Duplicate transactions
Two rows are counted as possible duplicates only when nothing at all distinguishes them: same order, same amount, same description, same SKU, and no item code, shipment or adjustment id, or card brand separating them, and they are no more than 60 minutes apart. The same rows further apart than that, such as two equal partial refunds or two equal payments on one order days apart, are listed as worth a look and not counted. The 60 minutes is a judgement made for this report, not a platform rule. Even a counted duplicate can be legitimate, so the finding says that in plain words rather than asserting you were charged twice. When such rows are refunds on an order whose refunds already come to more than its sale, and that refund finding's amount covers theirs, they are described inside that finding instead of being shown a second time.
Rules:POTENTIAL_DUPLICATE_TXN
- 4
Refund mismatches
Refunds larger than the sale they refer to, and the fees the platform keeps when an order is refunded. Two or more refunds that together come to more than the sale in this file are counted. One refund larger than the whole sale in this file is listed as worth a look instead, because the rest of the order may have been paid in an earlier payout. The fees kept on refunded orders are shown for your information as a cost you carry, never counted as a discrepancy: Shopify's Help Center says it keeps the processing fee on a refund, and Amazon's fee schedule for selling in the United States says it refunds the referral fee less a refund administration fee.
Rules:REFUND_EXCEEDS_ORIGINALREFUND_WITHOUT_ORIGINALREFUND_FEE_NOT_RETURNED
- 5
Chargebacks
Disputes are totalled with their fees and netted against any reversal, so a dispute you won cancels out rather than counting twice. One that has not been reversed is listed under Needs action, not counted as a discrepancy: the platform has already taken the money and says so, and what is left is answering the dispute if it is still open.
Rules:CHARGEBACK_IMPACT
- 6
Reserves and holds
Money the platform withheld, and whether this file also shows it being released. A reserve is a delay rather than a loss, but it is one of the most common reasons a payout is smaller than expected.
Rules:RESERVE_NOT_RELEASED
- 7
Timing differences
The settlement window the payout actually covers, and any rows dated outside it, which are listed as worth a look rather than counted: if the settlement's own total includes them, they were paid in it. The window is usually the real answer: a seller comparing a calendar month of sales against a deposit is comparing two different sets of orders.
Rules:TXN_OUTSIDE_WINDOWPERIOD_BOUNDARY_TIMING
- 8
Currency conversion
Sales a customer paid in one currency and that settled to you in another, with the conversion rates the file itself implies. That is how cross-border sales work, so it is a note, never a discrepancy. PayoutCheck does not tell you what those conversions should have cost, because that needs a market rate the file does not contain and you could not check.
Rules:PRESENTMENT_SPREADMIXED_CURRENCY_IN_GROUP
- 9
Data quality
What the file did not contain and what that prevented the audit determining: unreadable amounts, dates it could not parse, rows whose column count did not match the header, and transaction types not in the mapping. An export that lacks columns the full audit uses, such as a payouts summary, is noted, not counted.
Rules:DATA_QUALITY
What it refuses to do
Invent a discrepancy
A file that reconciles is reported as reconciling. A clean settlement is a real result.
Guess past the edge of the file
A refund whose original sale falls outside the period you uploaded is reported as undetermined. That is a distinct state in this product, not a low-confidence finding.
Count what the file cannot settle
A pattern that may have an ordinary explanation this file cannot rule out, such as a fee rate that differs by product or two equal refunds on one order, is listed as worth a look, with the amount involved. It is never added to the count or to the amount at stake.
Call a documented policy an error
Shopify keeps the processing fee on a refunded order, and Amazon's fee schedule for selling in the United States says it refunds the referral fee less a refund administration fee. Either way the refund costs you something, and the report shows it as information, never counted as a discrepancy.
Use a language model for arithmetic
Every number is computed by deterministic code, reproducible from the same file, and stamped with the engine version that produced it.
Every report records the engine version, the parser version, and a SHA-256 hash of the exact bytes that were audited. The same file run again through the same engine version produces the same report, in the same order, down to the cent. If a figure is ever disputed, it can be recomputed rather than argued about.
No store access
No app to install and no login to your Shopify or Amazon account.
Deleted within 25 hours
Your uploaded file is removed automatically, every time. A free check is deleted, except a small audit-log record of it: the file's size, its SHA-256 fingerprint and counts such as how many findings it had. A paid report is kept 3 days after payment, and a report opened with a 3-Month Pass until the pass ends, and at least 3 days after it was opened. You can delete any report sooner. Backups can still hold a copy for a limited time; see the data retention page.
Your email, not kept forever
If you pay, your email is erased 120 days after payment.
Your payouts. Explained.
Upload one file and see in under a minute if anything is missing.
Check my payout for free