Facturiadocs
Autenticación

Llaves de API

Un solo bearer token. Qué carga una llave, qué prefijo elige el modo y por qué no hay llave publicable.

La autenticación es un solo bearer token.

curl https://api.facturia.cl/v1/documents \
  -H "Authorization: Bearer sk_live_9lQpV3fA2mKcRt7wZxYb1Nde"
PrefijoModo¿Habla con el SII?Costo
sk_test_test — sandbox completamente simuladoNuncaGratis para siempre
sk_live_live — emisión realSí (certificación o producción del SII, según la empresa)Medido

Las llaves tienen alcance de cuenta, se muestran una sola vez, se guardan hasheadas y se revocan individualmente. Puedes crearlas en el panel o por API.

Una llave carga tres cosas:

  • un modo (test / live) — inmutable, codificado en el prefijo;
  • un conjunto de scopes — ver Scopes;
  • una lista blanca de empresas["*"] (toda empresa de la cuenta, incluidas las que se creen después) o una lista explícita de RUT.

Trampa

No hay llave publicable en la v1

La API es servidor a servidor. Nunca pongas una llave secreta en un navegador, una app móvil ni el prompt de un agente que un tercero pueda leer. Si una llave se filtra, revócala: la revocación es inmediata e irrecuperable.

Para darle un artefacto a alguien sin llave — el receptor, su contador, un hilo de WhatsApp — existen los enlaces públicos, que son firmados, inadivinables, con vencimiento y revocables, y no pueden escalarse a una credencial de API.

Quién soy

curl https://api.facturia.cl/v1/account \
  -H "Authorization: Bearer $FACTURIA_KEY"
{
  "object": "account",
  "id": "acct_01K2QW8V6ZR3T5NM",
  "name": "Connect Core",
  "key": {
    "id": "key_01K2QWA3F2",
    "name": "production-backend",
    "mode": "live",
    "last4": "1Nde",
    "scopes": ["documents:read", "documents:write", "tax:read"],
    "empresas": ["77928532-4", "78281439-7"],
    "created_at": "2026-08-01T17:22:04Z",
    "last_used_at": "2026-08-14T13:04:10Z"
  },
  "limits": { "requests_per_minute": 300, "emissions_per_second": 10 }
}

Es la llamada barata para un health check: te dice qué llave estás usando, con qué scopes, sobre qué empresas y con qué límites.

Token de empresa

Una llave cuya lista blanca tiene exactamente una empresa es un token de empresa: el header Facturia-Empresa pasa a ser opcional, y si lo mandas debe coincidir o recibes 400 empresa_mismatch.

Es la forma recomendada cuando integras una sola compañía o cuando le entregas una llave al sistema de tu cliente: la llave no puede direccionar nada más que ese RUT.

Verificación de correo

Registrarte no exige probar tu dirección, y tampoco lo exige iniciar sesión, leer nada, ni usar el producto completo en modo test. La verificación bloquea exactamente una cosa: crear una credencial live.

# Confirmar — el token viene del enlace del correo. No necesita sesión:
# quien hace clic tiene un enlace, posiblemente en otro dispositivo.
curl -sS https://api.facturia.cl/account/verify \
  -H "Content-Type: application/json" -d '{"token":"..."}'

# Reenviar — este sí necesita la sesión, para que no nos puedan usar para mandarle correo a nadie.
curl -sS -X POST https://api.facturia.cl/account/verification/resend \
  -H "Authorization: Bearer $TOKEN"

El enlace es de un solo uso, vive 24 horas y está ligado a la dirección a la que se envió: si el correo de la cuenta cambia en el intertanto, el token se rechaza en vez de confirmar una dirección a la que nunca se entregó. Hacer clic dos veces es un éxito, no un error. Los reenvíos tienen límite de tasa y responden 429 con Retry-After.

Mintear una llave sk_live_ desde una cuenta sin verificar devuelve 403 email_verification_required.

En esta página