settlematic
Guides··11 min read·By Keshav Sharma

How to Reconcile Crypto Payments at Month-End

Month-end crypto payment reconciliation: match invoices to on-chain txs, USDC wallet balances, QuickBooks/Xero exports, and IRS recordkeeping with Settlematic.

Do this next

Create a crypto invoice

  1. Quote the invoice in fiat.
  2. Client pays USDC, USDT, or EURC.
  3. Funds settle to a wallet you already control.

TL;DR

Reconcile crypto payments at month-end by matching three sources: your invoicing platform's paid invoice list, on-chain wallet transaction history, and accounting system entries (QuickBooks/Xero). Investigate discrepancies for missing exports, wrong-chain deposits, partial payments, and internal transfers. Settlematic's per-invoice tx hashes make matching tractable for non-custodial workflows.

Settlematic invoice INV-1042 for Alex Chen with consulting line items, $80 balance due, and sent timeline in the Collect dashboard

Month-end crypto payment reconciliation is the finance process of proving that every invoice marked paid in your billing system corresponds to a verified on-chain transaction, that every wallet deposit is attributed to revenue or explained as non-invoice flow, and that your general ledger cash and income accounts agree with blockchain reality—satisfying internal controls and IRS/EU substantiation standards before you close the books.

Why Crypto Reconciliation Differs From Bank Reconciliation

Bank statements arrive as single institution-curated PDFs. Crypto wallets generate permissionless transaction streams across potentially multiple chains, tokens, and addresses. Non-custodial invoicing adds unique addresses per invoice—excellent for attribution, but multiplying addresses to monitor.

Challenges:

  • No single statement — aggregate across Solana, Base, Ethereum
  • Token diversity — USDC, USDT, ETH in same period
  • Internal transfers — treasury moves look like income if unfiltered
  • Timing — invoice paid date vs block timestamp vs export lag
  • Wrong-chain deposits — funds received but not on expected network

Structured month-end process eliminates surprise adjustments during tax prep.

The Three-Way Match

Source ASource BSource C
Settlematic paid invoicesOn-chain wallet txsQuickBooks/Xero GL

Every paid invoice should appear in all three with consistent amounts (within tolerance). Discrepancies trigger investigation worksheet.

Pre-Close Preparation (T-3 Days)

Freeze informal wallet movements

Pause discretionary transfers from invoice-receiving wallets during close week. Treasury sweeps to cold storage should follow documented schedule after reconciliation sign-off.

Confirm export completeness

Run Settlematic paid report for [month_start, month_end]. Compare count to webhook payment_confirmed log if automated—see webhook-patterns-crypto-billing.

Pull accounting draft

QuickBooks/Xero trial balance for USDC asset accounts and revenue. Unmatched bank lines in Xero reconciliation queue should be zero before close.

Step 1: Invoice-to-Transaction Matching

From Settlematic dashboard or CSV export per export-crypto-invoice-data-quickbooks-xero:

For each paid invoice, verify:

  • tx_hash exists on stated network
  • On-chain to_address matches invoice payment address
  • token and amount match within tolerance (0.01% for stables)
  • confirmations met platform threshold at time of paid status

Mark matched rows green in reconciliation spreadsheet. Unmatched invoices (marked paid but tx not found) escalate to engineering—possible indexer false positive.

Step 2: Transaction-to-Invoice Matching (Reverse Direction)

Pull wallet transaction list from:

  • Block explorer address history (manual, low volume)
  • Indexer API (Alchemy, Helius, Solscan Pro)
  • Settlematic aggregate deposit report

Each inbound transfer during period must be:

  • Matched to invoice (expected)
  • Identified as wrong-chain payment per crypto-invoice-paid-wrong-chain
  • Classified as internal transfer (exclude from revenue)
  • Flagged as unknown (investigate before close)

Unknown inbound txs are the highest-risk reconciliation gap—could be unrecorded revenue or client error.

Step 3: Accounting System Alignment

Compare sum of matched invoice USD amounts to QuickBooks/Xero payment imports:

CheckPass criteria
Row countInvoice export count = QB payment count ± documented exceptions
Total amountΣ invoice fiat = Σ GL deposits ± rounding
Tx hash coverage100% paid invoices have hash in GL memo
Open ARNo invoice both "open" in QB and "paid" in Settlematic

Post adjusting journal entries for:

  • Missing imports (understated cash)
  • Duplicate imports (overstated cash)
  • Period cutoff (paid last day of month, imported first day next month)

Reconciliation Worksheet Template

Columns:

  • Invoice #
  • Client
  • Invoice date
  • Paid date (platform)
  • Fiat amount
  • Crypto amount + token
  • Network
  • Tx hash
  • On-chain verified (Y/N)
  • QB/Xero posted (Y/N)
  • Variance
  • Notes

Sort by Variance ≠ 0 for investigation queue.

Handling Common Discrepancies

Partial payments

Invoice open in Settlematic, deposit in wallet. Do not recognize full revenue. AR aging should show balance due.

Overpayments

Record unapplied payment or issue credit note. Client communication per policy.

Wrong-chain EVM deposits

USDC on Ethereum when invoice expected Base—funds exist, attribution delayed. Suspense account until resolved per recover-wrong-chain-crypto-invoice-payment.

Gas and fees

Merchant-paid sweep gas is expense, not revenue reduction. Client withdrawal fees causing underpayment are invoice-level partial payment.

Stale unpaid invoices

Expire in Settlematic; no GL impact. Write off per bad debt policy if uncollectible.

Multi-Chain Consolidation

CFO question: total USDC equivalent received?

Method:

  • Reconcile each network wallet separately (chain-specific explorers)
  • Convert to functional currency at month-end rate if reporting EUR consolidated statements
  • USDC ≈ USD 1:1 for management reporting; document FX policy

Solana USDC + Base USDC + Ethereum USDC = sum only after each chain reconciled independently—never assume cross-chain balance without per-chain tx review.

IRS and EU Recordkeeping

IRS Publication 583 and general requirements: maintain books showing income and expenses. Month-end reconciliation worksheet + tx hashes + exported CSVs form substantiation package.

EU VAT: reconciliation confirms payment received for cash-basis VAT schemes where applicable; accrual VAT entities may have recognized VAT on invoice date regardless of crypto payment timing.

MiCA does not directly govern merchant reconciliation but CASP partners would—non-custodial Settlematic Collect keeps reconciliation in your control.

Automation Opportunities

Reduce manual close from days to hours:

  • Webhook → QuickBooks real-time posting
  • Nightly indexer sync comparing wallet to platform
  • Alert on unmatched inbound > $1,000
  • Settlematic MCP queries for exception triage per settlematic-mcp-vs-dashboard-workflows

Retain human sign-off on reconciliation worksheet for SOX or investor audit contexts.

Close Sign-Off Checklist

  • [ ] All paid invoices matched to on-chain txs
  • [ ] All inbound wallet txs explained
  • [ ] QB/Xero USDC accounts reconciled to platform totals
  • [ ] Wrong-chain items in suspense with recovery plan
  • [ ] AR aging matches Settlematic outstanding
  • [ ] Reconciliation worksheet saved to immutable storage
  • [ ] Controller/CFO approval documented

Timeline: Typical Close Calendar

DayActivity
Last day of monthCutoff; no backdated invoice edits without disclosure
+1Pull reports; begin matching
+2Resolve exceptions; post adjustments
+3Sign-off; treasury sweeps allowed
+5Management reporting with crypto revenue breakout

Tools Stack Reference

  • Invoicing: Settlematic dashboard
  • Explorers: Solscan, Basescan, Etherscan
  • Accounting: QuickBooks Online or Xero
  • Spreadsheet: Google Sheets reconciliation template
  • Storage: S3/Google Drive audit folder by period

Scaling Month-End Close

VolumeApproach
<50 invoices/monthManual CSV + spreadsheet
50-200Semi-automated webhook import
200+Dedicated crypto sub-ledger + API sync

Controller and Auditor Collaboration

External auditors sampling Q4 revenue will request proof of crypto receipts matching recognized income. Provide reconciliation worksheet signed by controller, Settlematic paid invoice export, matching QuickBooks deposit report, and block explorer printouts for sampled tx hashes. Explain non-custodial model—funds never commingled in processor omnibus wallet—so auditor understands why bank statements show wallet transfers not merchant processor deposits. SOC 2 Type II clients extend sampling to webhook processing logs per webhook patterns.

Segregation of Duties

Best practice: invoice creation (sales/ops) separate from reconciliation sign-off (controller). Same person creating and approving reconciliation weakens internal controls investors expect pre-Series B. Settlematic dashboard RBAC supports role separation—creators cannot void paid invoices without admin role. Document who holds wallet keys vs who marks invoices paid in system; key holder should not be sole reconciler without secondary review for payments above materiality threshold.

Prior Period Adjustments and Restatements

Discovering Q2 invoice never exported in Q4 close requires prior period adjustment, not silent Q4 lump sum. Post correcting journal entry with disclosure memo; attach late-discovered tx hash. Material misstatements may require restatement—crypto's transparency ironically makes omissions harder to hide because chain history persists. Run "full year re-reconcile" project if first year accepting crypto; do not assume first-pass exports were complete.

Software Tools Beyond Spreadsheets

At scale, consider: Cryptio, Tres Finance, or Koinly for sub-ledger automation (verify Settlematic export compatibility); Bitwave for enterprise treasury; custom Postgres reconciliation DB fed by webhooks. Spreadsheet suffices under 100 monthly invoices; graduate before close takes three full days. Evaluate tool cost against controller overtime during tax season.

Intercompany and Partner Revenue Splits

Agencies splitting revenue with partners after client crypto payment need clear policy: recognize gross then allocate per contract, or recognize net. On-chain payment arrives gross to agency wallet—partner split is off-chain second transfer with separate journal entry. Do not commingle partner-split transfers with invoice receipts in same wallet without tagging; reconciliation becomes intractable. Document partner payment tx hashes separately from client invoice tx hashes.

First-Month Reconciliation Bootcamp

Teams new to crypto should block four hours for first month-end close:

  • Hour 1: Pull Settlematic paid report and wallet explorer history
  • Hour 2: Build reconciliation spreadsheet template (reuse monthly)
  • Hour 3: Match rows; flag exceptions
  • Hour 4: Post QB/Xero adjustments; document open items

Second month typically halves duration. By month six, mature webhook automation reduces close to under one hour for sub-100 invoice volumes. Pair finance lead with engineer for first close—engineer explains tx hashes; finance owns GL impact. Record Loom walkthrough for future hires.

Reconciliation is not optional because crypto is "too new" for auditors—IRS and EU tax authorities expect substantiation regardless of payment rail. A single documented month-end close process converts crypto from finance team anxiety into routine operational overhead comparable to reconciling PayPal or Stripe payouts.

Annual Close and Crypto

Year-end close adds steps beyond monthly: verify no December invoices paid in January were recognized in wrong year (cutoff policy); confirm all suspense accounts (wrong-chain, partial payments) are zero or explained in footnotes; provide auditor with annual sum of crypto revenue by chain for disclosure schedules if material. Public companies may need crypto asset footnote under ASC 350/intangibles or fair value guidance depending on treasury policy—consult SEC reporting advisor if applicable.

Reconciliation Metrics for Management

Track and report monthly: total crypto revenue, average time invoice-to-payment, reconciliation exception count, wrong-chain rate, export automation percentage. Board slides showing improving metrics demonstrate finance ops maturity as crypto volume grows—justifies continued Settlematic Collect investment vs ad hoc wallet monitoring.

Assign a named reconciliation owner each month—even in two-person startups—to prevent "someone will do it" drift that leaves Q3 unreconciled until CPA panic in March. Ownership matters more than tooling sophistication for reliable month-end close.

Compare reconciliation duration month-over-month in your finance team retrospective—target 20% reduction quarter-over-quarter as automation matures from manual CSV to webhook-driven QuickBooks posting. Stagnant close times signal process debt requiring dedicated improvement sprint before invoice volume doubles.

Frozen reconciliation templates—pre-built spreadsheet formulas, explorer bookmark folders, Settlematic saved filters—reduce month-end setup from 45 minutes to 5. Invest one hour documenting your template after second successful close; amortize across every future month.

Reconciliation is the control that proves your crypto revenue is real, complete, and accurately recorded—without it, accepting crypto creates more audit risk than accepting wires. Treat month-end reconcile as non-negotiable as payroll—skip it only if you intend to stop accepting crypto entirely.

Building a reconciliation standard operating procedure

Document your month-end crypto reconciliation as a formal SOP that any finance hire can execute without tribal knowledge. The SOP should reference: report pull locations in Settlematic, wallet explorer bookmarks per chain, spreadsheet template version, exception escalation contacts (engineering for indexer issues, support for wrong-chain), and sign-off authority matrix. Include screenshots of each step for the first edition, then replace with links once the team is trained. Store the SOP alongside your reconciliation worksheets in immutable storage — auditors request process documentation, not just outputs.

Version the SOP when you add chains, change webhook integrations, or migrate accounting software. A reconciliation SOP that still references manual QuickBooks entry after you deployed webhook automation creates compliance gaps during personnel transitions. Quarterly SOP review takes thirty minutes and prevents month-end surprises when the controller is on vacation.

Automating exception detection before month-end

Proactive exception detection reduces close from reactive firefighting to structured review. Configure alerts during the month for: inbound transfers to invoice wallets without matching open invoice, invoices marked paid without tx hash in export, webhook delivery failures to accounting integration, and partial payments open longer than seven days. Address exceptions when they occur — month-end becomes verification of clean data rather than discovery of three-month-old problems.

Set materiality thresholds for auto-escalation: payments above $10,000 with any status ambiguity page finance lead same day; below threshold queue for weekly review. Materiality should reflect your revenue scale — a $500 exception matters for a solo freelancer; a $5,000 exception may be routine for a mid-market agency. Document thresholds in the SOP and apply consistently so auditors see systematic controls.

Cross-functional reconciliation meetings

Month-end close improves when finance, engineering, and client success participate in a thirty-minute reconciliation standup during exception-heavy months. Finance brings unmatched rows; engineering explains indexer lag or webhook retries; client success confirms client-reported payments awaiting on-chain confirmation. This meeting prevents finance from marking invoices unpaid when clients sent funds hours before close cutoff, and prevents engineering from dismissing finance concerns as "blockchain is slow" without specific tx hash investigation.

For low-volume months, async Slack updates suffice. For first crypto year or after adding a new chain, schedule synchronous review until exception rate stabilizes below five percent of invoice count. Meeting notes become audit evidence of management oversight.

Reconciliation tooling maturity model

StageCharacteristicsTypical invoice volume
1 — ManualCSV export + spreadsheet + explorerUnder 50/month
2 — Semi-automatedWebhooks to DB + monthly tie-out50–200/month
3 — IntegratedReal-time GL posting + exception dashboard200–500/month
4 — Sub-ledgerDedicated crypto accounting tool + API sync500+/month

Assess your stage honestly. Stage 1 is appropriate for startups; staying at stage 1 with 300 monthly invoices guarantees controller burnout. Budget tooling upgrades when reconciliation labor exceeds four hours monthly — ROI typically positive within one quarter for B2B agencies at scale.

Frequently asked questions

How long should crypto reconciliation take?
Manual: 2-4 hours for <50 invoices. Automated: under 1 hour with mature pipeline.
Do I reconcile per wallet or per chain?
Per chain minimum; per wallet if multiple addresses per chain beyond invoice-derived addresses.
What confirmation count is authoritative?
Platform paid status uses configured threshold; reconciliation uses same tx regardless of later confirmations.
Can I skip reconciliation for stablecoins only?
No—stablecoins still require invoice matching and GL alignment.
What if Settlematic and explorer disagree?
Trust on-chain explorer; escalate indexer lag to support. Do not close with unresolved discrepancy.
Where do I start if never reconciled before?
Begin current month; prior periods as separate project. Book demo for reconciliation workshop. See pricing for export features.

Continue reading

Start invoicing and accepting crypto payments

Collect and Gateway on one non-custodial platform - funds always sweep to wallets you control.