Key behavior
http
Idempotency-Key: order-8493-shot-1A key is 1–255 visible ASCII characters and unique inside one API project. Generate it for one logical generation and persist it with your own job record.
| Retry | Result |
|---|---|
| Same key + same body | The original response is replayed with Idempotent-Replayed: true |
| Same key + different body | 409 idempotency_conflict |
| No key | Every POST intentionally creates a new paid generation and hold |
Retry decisions
- After a
202, save the ID and poll it; do not create a replacement. - If the POST response is lost, resend the exact body with the exact same key.
- If the original POST had no key, do not retry automatically. Reconciliation is safer than a duplicate charge.
- GET requests are safe to retry with exponential backoff and jitter after network or 5xx errors.
Provider ambiguity
If Gensta cannot tell whether the provider accepted a create call, the generation becomes submission_unknown. Do not submit a replacement with a new key: the first provider task may already be billable.