Skip to content

Delivery & retries

CIQRA sends POST with Content-Type: application/json; charset=utf-8 and the signed headers. Deliveries are queued durably and sent by a background worker, usually within seconds.

Success any 2xx status
Timeout 15 seconds per attempt (10 s to connect)
Redirects followed
Ordering not guaranteed — use occurredAt and Ciqra-Event-Id
Guarantee at least once — deduplicate on Ciqra-Event-Id

Respond quickly: acknowledge with 200 and do the work afterwards. A handler that takes longer than 15 seconds is recorded as failed and retried, even if it eventually succeeded.

A failed attempt — non-2xx, timeout or connection error — is retried with exponential backoff, 8 attempts in total:

Attempt Sent after the previous one fails by
1 — (immediately)
2 30 s
3 1 min
4 2 min
5 4 min
6 8 min
7 16 min
8 32 min

About 64 minutes after the first attempt, a delivery that never succeeded is dead-lettered and not retried again. The merchant can see failed deliveries in the admin and redeliver them manually. A delivery is also abandoned if it is still unsent 30 days after the event.

Ciqra-Event-Age-Seconds tells you how old an event is when it reaches you — after several retries it can be close to an hour.

A subscription is never switched off automatically because deliveries fail. If your endpoint will be down for longer than an hour, events in that window will be dead-lettered: reconcile from the API when you come back.