Webhook events for ramps
Grid sends webhooks for key events in the ramp lifecycle:Conversion events
- OUTGOING_PAYMENT
- ACCOUNT_STATUS
- KYC_STATUS
Sent when a conversion (on-ramp or off-ramp) changes status. Webhook types use the format
OUTGOING_PAYMENT.<STATUS> (e.g., OUTGOING_PAYMENT.COMPLETED, OUTGOING_PAYMENT.FAILED, OUTGOING_PAYMENT.REFUND_COMPLETED).Use this webhook to update your UI, credit customer accounts, and trigger post-conversion workflows. See the Transaction Lifecycle guide for all status transitions and refund handling.
Webhook configuration
Configure your webhook endpoint in the Grid dashboard or via API:Webhook verification
Always verify webhook signatures to ensure authenticity:Verification steps
Get public key
Retrieve the Grid public key from your dashboard (provided during onboarding).
javascript const publicKey = process.env.GRID_PUBLIC_KEY; The signature is created using secp256r1 (P-256) asymmetric cryptography with
SHA-256 hashing.
Handling ramp webhooks
On-ramp completion
Handle successful fiat-to-crypto conversions:Off-ramp completion
Handle successful crypto-to-fiat conversions:Balance updates
Track crypto deposits for off-ramp liquidity:Best practices
Process webhooks idempotently
Process webhooks idempotently
Handle duplicate webhooks gracefully using webhook IDs:
Use transaction IDs for deduplication
Use transaction IDs for deduplication
Transaction IDs are unique identifiers for conversions:
Implement retry logic
Implement retry logic
Grid retries failed webhooks with exponential backoff. Ensure your endpoint can handle retries:
Monitor webhook health
Monitor webhook health
Track webhook delivery and processing:
Testing webhooks
Test webhook handling using the test endpoint:Verify your endpoint receives the test webhook and responds with a 200 status
code.
Next steps
- Sandbox Testing - Test ramp flows end-to-end
- Platform Configuration - Configure webhook endpoint
- Fiat-to-Crypto Conversion - Implement conversion flows
- API Reference - Complete webhook documentation