requirement_unmet
The SII’s own user table does not yet grant this empresa’s sender what it needs.
The SII’s own user table does not yet grant this empresa’s sender what it needs.
| Code | requirement_unmet |
| Type | unprocessable_error — Well formed, but breaks a domain rule |
| HTTP | 422 |
| Retriable? | Yes |
What to do
blocked_reason.details.key names the permiso and details.missing lists them all — the code is not parameterised, because every code this API emits is one a caller can look up here. The step keeps running and we keep asking.
Retrying the same request may work. Respect Retry-After when it comes.
The envelope
{
"error": {
"type": "unprocessable_error",
"code": "requirement_unmet",
"message": "…",
"hint": "`blocked_reason.details.key` names the permiso and `details.missing` lists them all — the code is not parameterised, because every code this API emits is one a caller can look up here. The step keeps running and we keep asking.",
"retriable": true,
"doc_url": "https://docs.facturia.cl/errors/requirement_unmet",
"request_id": "req_01K2R7Q9M4T2VB"
}
}Program against code, never against message — the prose can be rewritten, the code cannot (§5.8).
hint and retriable arrive in the response with these exact values: they are a function of code and come from the same dictionary GET /v1/error_codes serves, so the envelope and the dictionary cannot disagree. Both are English on the wire by design — one registry, one language. More in The error envelope.
See also
Every code
The error envelope
The machine-readable copy of this page lives at GET /v1/error_codes, unauthenticated.