Reconcile payments with on-chain data
Webhooks tell you an invoice settled; the chain is the source of truth. Pull the transfer history for each pay-to address and match it against your settled invoices to catch any gaps before they hit your books.
- Your settled invoice records with pay-to addresses
- A live API key with a positive credit balance
1List transfers for the pay-to address
Fetch the on-chain transfer history for the invoice's pay-to address on its chain. Reads accept limit and offset so you can page deterministically.
curl https://api.1st-node.com/v1/data/tron/address/T.../transfers \ -H "Authorization: Bearer sk_live_..."
2Match transfers to settled invoices
Join each inbound transfer to the invoice by pay-to address and amount. Confirmed deposits should reconcile one-to-one with settled webhooks.
> { "transfers": [
> { "hash": "0x...", "to": "T...", "amount_usd": 49, "confirmations": 41 }
> ] }3Flag mismatches
Any settled invoice with no matching transfer, or any inbound transfer with no invoice, is an exception to investigate. Because webhook delivery is idempotent, a duplicate event is never the cause of a double credit — the chain history is your independent check.
Frequently asked
Why reconcile if I already trust verified webhooks?
Webhooks are convenient but the chain is authoritative. Matching against transfer history catches missed deliveries and confirms funds actually arrived.
How do I avoid double-counting a redelivered webhook?
Delivery is idempotent and you dedupe on invoice id, so redeliveries never add a credit. Reconciliation then confirms each credit maps to one on-chain transfer.
Keep reading
Top up, get a key, ship.
Self-serve. Pay in crypto or card. Metered by credits — heavy primitives cost more, simple ones are cheap.
Get API key