GateReconcile — settlement reconciliation
Ledger, processor and on-chain amounts compared per deposit; a mismatch opens a case and fires a webhook.
On this page
What it does
GateReconcile compares three legs of one deposit: what your ledger credited, what your processor says it settled, and the canonical USDT/USDC transfer amount read from the on-chain receipt. Any pair further apart than the tolerance (0.5%) or a wrong on-chain recipient is a MISMATCH.
A mismatch annotates or opens the case on that deposit's screening and emits a reconciliation.mismatch webhook. Legs you did not give, or that could not be observed, make the result INCOMPLETE — never a silent match.
Why a broker needs it
Three numbers that should agree and often do not: a fee taken silently, a wrong recipient, a double credit, a transaction hash reused for two deposits. Reconciling per transaction turns a monthly accounting surprise into a same-day case with the evidence already attached.
How it works
POST /api/v1/reconcile with any of ledgerEventRef (your credited deposit event), processor + processorTxId (a processor signal whose payload carries a settlement block) and chain + txHash (plus an optional expectedRecipient). KYTGate reads the transfer from the chain, matches the legs, applies the tolerance and stores the outcome with the deposit. Outcomes also appear in the monthly compliance report.
What it does not do
GateReconcile checks amounts and recipients; it does not move funds, reverse credits or contact the processor. It can only compare legs it was given — without a processor settlement block the processor leg is INCOMPLETE, and non-stablecoin transfers are not amount-verified.
API
POST /api/v1/reconcile
{
"ledgerEventRef": "dep-10293",
"processor": "acme-pay", "processorTxId": "abc-123",
"chain": "ethereum", "txHash": "0x…", "expectedRecipient": "0x…"
}
→ { "status": "MISMATCH" | "MATCHED" | "INCOMPLETE",
"legs": { "ledgerUsd": 25000, "processorUsd": 24750, "onchain": { "amount": "…", "token": "USDT", "recipient": "0x…" } },
"findings": [ … ], "caseId": "…", "tolerance": 0.005 }Full reference: /docs#reconcile · OpenAPI 3.1