Idempotency and errors
Every POST, PATCH, and DELETE under /public/v1 requires a 16–100 character Idempotency-Key.
The key is scoped to the API client and binds the method, path, body, content type, and relevant control headers. Repeating the same request returns the stored response with Idempotent-Replayed: true. Reusing the key for different input returns 409 IIPROXY_IDEMPOTENCY_KEY_REUSED.
Error envelope
{"error":{"code":"IIPROXY_TENANT_MISMATCH","message":"The UBL supplier OIB does not belong to this API client."}}
| HTTP | Meaning |
|---|---|
400 | Invalid syntax or OAuth request |
401 | Invalid credentials or bearer token |
403 | Missing permission or organization mismatch |
404 | Missing resource or resource owned by another client |
409 | Version, chain, idempotency, or workflow conflict |
413 | Request body is too large |
415 | Unsupported content type |
422 | Business, UBL, fiscalization, or settlement validation failed |
429 | Rate limit exceeded |
503 | External outcome is unknown or a dependency is unavailable |
Do not blindly retry a 503
Read the operation first. If it is ACTION_REQUIRED, another transmission could create a duplicate and remains blocked until reconciliation.