Build custom integrations with any system by receiving real-time webhook notifications for payment events.Documentation Index
Fetch the complete documentation index at: https://developer.quickei.io/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Whenever a payment event occurs (paid, expired, cancelled, refunded), Quickei sends an HTTP POST request to your configuredcallback_url with a JSON payload. The request includes an HMAC-SHA256 signature for verification.
Webhook Flow
Events
| Event | Trigger |
|---|---|
pos.order.paid | Customer completed payment |
pos.order.expired | Order expired before payment |
pos.order.cancelled | Order cancelled by merchant |
pos.order.refunded | Payment refunded to customer |
Payload Format
Headers
| Header | Description |
|---|---|
Content-Type | application/json |
X-Quickei-Event | Event name (e.g. pos.order.paid) |
X-Quickei-Signature | HMAC-SHA256 signature of the request body |
Signature Verification
Every webhook includes anX-Quickei-Signature header. Always verify the signature before processing the event.
- PHP
- Python
- Node.js
Retry Policy
If your endpoint does not return a200 status code, Quickei retries with exponential backoff:
| Attempt | Delay | Total Wait |
|---|---|---|
| 1st retry | 10 seconds | 10s |
| 2nd retry | 60 seconds | 1m 10s |
| 3rd retry | 300 seconds | 6m 10s |
Best Practices
Always verify signatures
Never process a webhook without verifying the
X-Quickei-Signature header. This prevents spoofed events.Return 200 quickly
Acknowledge the webhook immediately with a
200 response. Do heavy processing (email, inventory, etc.) asynchronously.Handle duplicates
Webhooks may be delivered more than once. Use the
order_id as an idempotency key to prevent double-processing.Use HTTPS only
Webhook URLs must use HTTPS. HTTP endpoints and private/localhost IPs are rejected.

