Skip to main content
Liquidramp sends outbound HTTP POST requests to your configured URL when order lifecycle events occur. Payloads use the summary order shape wrapped in an event envelope.

Configure in the portal

Set your webhook URL and subscribed events in the partner portal.

Event types

See Callbacks.

Payload shape

Webhook data matches the list-order summary — it does not include payin or payout. Fetch GET /orders/:reference for full detail when needed.

Verify HMAC signatures

Every delivery includes: Build the canonical string (same algorithm as inbound API signing, but path is your endpoint path):
HMAC-SHA256 the canonical string with your enc_* encryption key. Compare to liquidramp-signature using a timing-safe comparison.
Read the raw request body before JSON parsing. Re-serializing parsed JSON can change key order and break verification.
Full guide: Webhook verification.

Handler requirements

  1. Respond 2xx quickly — process asynchronously if needed. Failed deliveries are retried with backoff.
  2. Verify signature before processing — reject requests with invalid or stale timestamps.
  3. Handle duplicates — use data.reference + event as an idempotency key.
  4. Fetch details on demand — webhook payloads are summaries; call GET /orders/:reference (optionally ?include=payout) for payin / payout.