Receiving events
There are two ways to receive events:Per-payment
Set a
webhook_url when you create a payment intent or checkout. That payment’s events
are delivered there.Project endpoints
Register webhook endpoints in the dashboard to receive events
for the whole project.
Delivery
- Orqex sends an HTTP
POSTwith a JSON body to your URL. - Headers include
X-Payment-Event(the event name) andX-Payment-Id(the payment id). - Your endpoint should return a 2xx quickly; do slow work asynchronously.
Reliability
- Retries — failed deliveries are retried automatically, up to 5 attempts.
- At-least-once — the same event may arrive more than once. Make handling idempotent
by keying on
payment.id+event. - Ordering is not guaranteed — rely on the payment’s current
status, not on event order.
Verifying authenticity
Project webhook endpoints (registered in the dashboard) are signed. Each endpoint has its own signing secret; every delivery carries anx-orqex-signature header containing the
HMAC-SHA256 of the raw request body, computed with that secret. Recompute it and compare
before trusting the payload: