Delivery & retries
One request per event per subscription
Section titled “One request per event per subscription”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.
Retries
Section titled “Retries”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.