Synthetic website-integration exercise. No merchant account or financial export has been accessed. This is a report-scope check, not accounting, tax or missing-money advice.
Ask what a report covers before adding its numbers
When commissioning a shop integration or reporting feature, define which processor, payout currency, period and complete-through date a supplied report represents. Two totals can disagree because the inputs cover different things. A website supplier should surface those differences rather than silently joining them into a claimed all-payments result.
A merchant described a sales-versus-bank discrepancy in a 19 September 2023 Shopify question. Its original post is historical problem evidence; the page's AI summary and later replies do not diagnose a current store. We do not reuse its amounts as a new customer case.
A filled scope matrix
The fictional request covers AUD, 1–7 October 2026, and two independently confirmed processing routes: Shopify Payments and an external provider. The external route is an assumption of this exercise, not a claim that every payment-method brand is always outside Shopify Payments. All report labels and completeness observations are synthetic.
| Required input | Broken record | Corrected record |
|---|---|---|
| Shopify Payments, AUD, 1–7 October | Document selected for period, but complete only through 5 October | Supplied document records completeness through 7 October |
| External provider, same currency and period | No matching report supplied | Separate report and evidence reference supplied |
| Scope result | INCOMPLETE: freshness gap and missing processor | SUPPLIED_SCOPE_COMPLETE, not reconciled money |
The correction is additional matching evidence, not a guessed fee or an amount inserted to force agreement. A complete-through label is still only an input; the program does not authenticate the source. A report covering the requested dates also does not prove that its activity has reached a bank.
Run the finite scope check
Download the checker, incomplete example and completed scope example. Keep the files together, using Node 22.13 or newer:
node payment-scope-check.mjs --test node payment-scope-check.mjs broken.json node payment-scope-check.mjs corrected.json
Eight tests exercise missing processors, wrong currency, shortened periods, incomplete freshness, missing evidence and malformed scope. BLOCKED means the requested scope is absent or invalid. INCOMPLETE means the required supplied reports do not cover it. SUPPLIED_SCOPE_COMPLETE says nothing about the correctness of amounts, exchange rates, revenue or tax. The CLI prints a state; it is not a production CI gate or a financial reconciliation engine.
Official report boundaries
Shopify's activity-report documentation, checked 15 October 2026, describes Shopify Payments balance activity, not accounting revenue. It separates payout currencies, excludes processing outside Shopify Payments, and notes a three-day data delay. Selected periods, report timing and bank-deposit timing need not agree.
Do not infer the underlying processor just from a checkout logo. Confirm the actual merchant configuration and reporting route. The two-provider map, completeness dates and JSON rules here are original teaching choices. A fixed three-day subtraction is not an authenticated completeness record, and the example cannot decide accounting treatment or what a merchant is owed.
Prepare the integration acceptance brief
- Agree the processors, currency, period and who is authorised to supply each record.
- Keep document selection, complete-through observation and source reference separate. Missing data remains unknown.
- Require the integration to expose an incomplete scope rather than generating a confident combined total.
- Once scope is established, a different task is checking one settlement against bank evidence; the worked settlement example illustrates that separate decision.
For a website reporting discussion, provide a redacted field dictionary and fictional test records first. Send actual financial exports only through the accountant's or merchant's authorised secure process. No bank account, payment credentials or customer transaction file is required by this public teaching resource.