Idempotency
Writes may be retried. Send Idempotency-Key so Safra returns the original JSON instead of creating a second booking or webhook.
The header is optional. If omitted, each request runs normally. If present on POST, PATCH, PUT, or DELETE, Safra stores the JSON body and status for that key + API key pair.
Header
Idempotency-Key: crm-booking-123
Replays
- A matching key returns the stored JSON with the stored status.
- The response includes Idempotency-Replayed: true.
- 5xx responses are not stored, so a later retry can succeed.
- Use a stable id from your CRM (order id, ticket id), not a random value per attempt.