Back to API Reference
Event Streaming
Webhooks & Settlement Callbacks
Listen for sub-second on-chain blockchain confirmations and real-time FedNow/RTP interbank credit transfers.
payout.settled.solana
Sub-Second Crypto Finality
Emitted the millisecond Solana slot confirmation (~400ms) or XRPL ledger closing validation (~3.5s) completes.
{
"event": "payout.settled.solana",
"id": "evt_99812401",
"timestamp": "2026-09-07T18:04:12.410Z",
"data": {
"payoutId": "pay_sol_001928",
"workerId": "wrk_982401",
"rail": "solana",
"amount": "85.50",
"currency": "USDC",
"txHash": "5KkL2...8VnZp9",
"slot": 284102941,
"finalityMs": 420,
"status": "confirmed"
}
}payout.settled.instant_bank
FedNow / RTP Network Acknowledgment
Emitted upon receiving the ISO 20022 pacs.002 acceptance confirmation from the Federal Reserve or TCH clearing house.
{
"event": "payout.settled.instant_bank",
"id": "evt_99812402",
"timestamp": "2026-09-07T18:04:15.120Z",
"data": {
"payoutId": "pay_fn_004910",
"workerId": "wrk_982401",
"rail": "instant_bank",
"amount": "150.00",
"currency": "USD",
"endToEndId": "IPX20260907FN881029",
"clearingNetwork": "FedNow",
"isoStatusCode": "ACCP", // pacs.002 Accepted Settlement Completed
"finalityMs": 2100,
"status": "cleared"
}
}Cryptographic Webhook Verification
Every webhook request includes an X-InstaPay-Signature header computed as an HMAC-SHA256 hash using your webhook endpoint signing secret.
// Node.js Verification Example
import crypto from "crypto";
function verifyWebhook(payloadRaw, signatureHeader, secret) {
const hmac = crypto.createHmac("sha256", secret);
const expected = hmac.update(payloadRaw).digest("hex");
return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(signatureHeader));
}