Idempotency
Make Partner API case creation safe to retry with the Idempotency-Key header and the per-invoice duplicate guard.
Retries are always safe — two independent mechanisms stop a retried request creating duplicate cases.
Idempotency-Key
POST /api/v1/cases accepts an Idempotency-Key header. Re-using a key returns 409 (the
batch was already accepted), so a network retry of the same request never creates a second batch.
POST /api/v1/cases
Idempotency-Key: 2026-06-28-acme-batch-01Use a unique key per logical batch (for example, a hash of the payload or a job ID).
The per-invoice duplicate guard
Independently of the header, RobinReturn enforces a companyId + invoiceRef duplicate guard: an
invoice reference already being chased is rejected per-case as DUPLICATE (with the existing
reference in the message) rather than creating a second case.
Together these mean: if you are unsure whether a request succeeded, simply send it again. You will
get either the original result (same Idempotency-Key) or per-case DUPLICATE rejections — never
duplicate cases.