Skip to main content

Webhooks

IdCanopy sends real-time updates about customer journeys to your webhook endpoint. This page covers how delivery works (configuration, security, retries) and the payload schema you’ll receive.

Configure

  • Webhook URL — Your HTTPS endpoint that accepts POST.
  • Events — Choose which journey events you want (e.g., journey completed, fraud alert).
  • Secret — We sign each request body with a shared secret so you can verify integrity.

Endpoint requirements

  • TLS: 1.2+
  • HTTP: POST
  • Body: application/json (default) or text/plain when an encrypted payload is used
  • Timeout/Response: Return HTTP 2xx within 10 seconds

Delivery & retries

If we don’t receive 2xx (or your endpoint times out), we retry for ~24 hours:
  • Up to 6 additional attempts
  • Increasing backoff (≈10s, 100s, 1000s, 10000s)

Security

We add a Signature header containing an HMAC-SHA256 of the raw request body, keyed with your Webhook Secret.
User-Agent: signteq.io API.
Use a constant-time comparison to prevent timing attacks.

Verify (PHP example)

Testing

  • Use webhook.site to inspect incoming requests.
  • Use ngrok (or similar) to forward callbacks to a local environment.

Example payload

Payload reference

Tips
  • Treat transactionId and artifact links as sensitive; avoid logging them on the client.
  • Consider adding your own idempotency handling on receipt to avoid double-processing retries.
  • If you consume payloads in multiple systems, keep a small payload changelog in this page to track field additions.