Skip to main content
Webhooks let Thiqwave push event notifications to your server the moment something happens — a transaction completes, a KYB check passes, or a new account is created. Instead of repeatedly polling the API for status updates, you receive an HTTP POST to your endpoint with the event payload.

Available events

Transfer events

Granular endpoint events

Account & compliance events

Set up a webhook endpoint

1

Create a public HTTPS endpoint

Your endpoint must:
  • Accept POST requests
  • Be reachable over the public internet via HTTPS
  • Return a 2xx status code within 10 seconds to acknowledge receipt
Any response outside the 2xx range — or no response within 10 seconds — is treated as a delivery failure and triggers the retry policy.
During development, use a tool like ngrok or Hookdeck to expose a local server for testing.
2

Register your endpoint in the dashboard

  1. Log in to the Thiqwave Dashboard.
  2. Navigate to Settings → Webhooks.
  3. Click Add endpoint.
  4. Enter your endpoint URL.
  5. Select the events you want to receive (or choose All events).
  6. Click Save.
Thiqwave generates a webhook secret for the endpoint. Copy and store it securely — you use it to verify incoming payloads.
3

Verify webhook signatures

Every webhook request includes a X-Thiqwave-Signature header. Verify this signature before processing the payload to ensure it came from Thiqwave and was not tampered with.The signature is an HMAC-SHA256 hex digest of the raw request body, computed using your webhook secret as the key.
Always parse the raw request body before parsing as JSON when computing the signature. If you parse JSON first and re-serialise, byte-level differences will cause signature verification to fail.
4

Process the event payload

After verifying the signature, parse the JSON body and handle the event based on the event field:
Respond with a 2xx status as quickly as possible. Move any slow processing (database writes, downstream API calls) to a background job to avoid timeouts.

Retry policy

If your endpoint does not return a 2xx response within 10 seconds, Thiqwave retries the delivery with exponential backoff: After 3 failed retries, the delivery is marked as failed. You can view failed deliveries and manually replay them in the dashboard under Settings → Webhooks → Delivery logs.
Make your webhook handler idempotent. Because retries can deliver the same event more than once, use the id field to deduplicate events before processing them.

Testing webhooks

Use the Send test event button in the dashboard to fire a sample payload to your endpoint at any time. This lets you verify your handler logic without waiting for a real transaction. You can also replay any past delivery from Settings → Webhooks → Delivery logs, which is useful for debugging failed handlers.

Next steps