Facturiadocs

insufficient_scope

The key is missing a scope this endpoint requires.

The key is missing a scope this endpoint requires.

Codeinsufficient_scope
Typepermission_error — Valid credential, not allowed
HTTP403
Retriable?No

What to do

error.details.required_scope names the missing scope and error.details.mint is the call that produces a key carrying it — POST /v1/api_keys from a root key, POST /dashboard/api_keys from an account session. A human can also mint one at https://app.facturia.cl/llaves. Scopes are fixed at mint time: a key is replaced, never widened.

Retrying the same request will fail the same way. Change the request, not the frequency.

The envelope

{
  "error": {
    "type": "permission_error",
    "code": "insufficient_scope",
    "message": "…",
    "hint": "`error.details.required_scope` names the missing scope and `error.details.mint` is the call that produces a key carrying it — `POST /v1/api_keys` from a root key, `POST /dashboard/api_keys` from an account session. A human can also mint one at https://app.facturia.cl/llaves. Scopes are fixed at mint time: a key is replaced, never widened.",
    "retriable": false,
    "doc_url": "https://docs.facturia.cl/errors/insufficient_scope",
    "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

The machine-readable copy of this page lives at GET /v1/error_codes, unauthenticated.

On this page