Logo

Reconciling On-Chain Payments With Your Ledger

Three sets of numbers that must agree: the chain, the platform and your books. When they do not, the order you check them in decides how long it takes.

August 22, 20265 min readAIO Research Team
Reconciling On-Chain Payments With Your Ledger

Reconciliation is dull and it is where the real errors surface. In crypto you have three records that must agree, and one of them is incapable of lying.

The three records

  1. The chain. What actually moved. Public, permanent, not open to interpretation.
  2. The platform. What your provider recorded, credited and converted.
  3. Your ledger. What your own system believes about orders and invoices.

Reconcile in that order. The chain is ground truth, so a disagreement between two and three is a systems question, while a disagreement with one is a real problem.

Why they differ, and it is usually not an error

  • Timing at period boundaries. Confirmed at 23:58 on the last day of the month, credited at 00:02 on the first day of the next. Both records are right.
  • Fees recorded separately. The transfer and the network fee are distinct events. Match the gross, then account for the fee.
  • Partial payments. One invoice, three deposits. Your ledger expects one line.
  • A missed callback. The payment is on-chain and in the platform but never reached your system. This is the one worth catching quickly.

What to record on every payment

If you take nothing else from this: capture these at the moment of settlement, because reconstructing them later is painful.

  • The transaction hash and the chain.
  • The asset and the exact quantity.
  • The fiat value at settlement, not at the time you looked it up afterwards.
  • Your own order or invoice reference.
  • The network fee, separately.

The fiat value is the one people forget, and it is the one accounting will ask for.

The daily job

Pull the platform's payments for the last 48 hours, with an overlap so boundary cases are seen twice. Compare to your orders. Flag anything on one side and not the other. Do not auto-correct: surface it for a human.

Daily matters because a gap found the next morning is traceable, and the same gap found at month end is archaeology.

The month-end job

Totals rather than individual payments. Gross received, fees, net settled, refunds. Compare against the platform's own statement, and spot-check a handful of transaction hashes on the chain itself. If the totals agree and the samples verify, the month is sound.

The habit worth building

Store the hash on every transaction, in your system and not only in the provider's. It is the one identifier that outlives your provider relationship, your database migration and your accounting software, and it is checkable by anyone at any time.

Frequently Asked Questions

How do you reconcile crypto payments?

Compare three records: what the blockchain shows, what the payment platform recorded, and what your own ledger says. Reconcile in that order, because the chain is the only one of the three that cannot be wrong.

Why do crypto payment records not match?

Usually timing rather than error. A payment confirmed on-chain near a period boundary may be credited the next day, network fees may be recorded separately from the transfer, and partial payments can appear as several deposits against one invoice.

Should I reconcile against the crypto amount or the fiat value?

Both, for different purposes. The crypto quantity proves the transfer happened; the fiat value at settlement is what your accounts need. Record both against every payment or you will not be able to answer either question later.

How often should reconciliation run?

Automatically every day, with a fuller review at month end. Daily catches the missed callback while it is still easy to trace; monthly-only reconciliation means finding a gap weeks after the context has gone.

Related News

Continue exploring the latest updates and insights from our blog.