# Folios y CAF

> Qué es un CAF, cómo se suben los folios autorizados por el SII a la API de Simplo y cómo evitar quedarte sin folios.

Los folios no los inventas tú ni Simplo — el SII pre-autoriza rangos por tipo
de documento mediante archivos **CAF** (Código de Autorización de Folios) que
descargas desde el portal del SII y subes una vez a Simplo. Ver el
[informativo oficial del SII sobre timbraje electrónico](https://www.sii.cl/factura_electronica/factura_mercado/timbraje_electronico.pdf)
para el detalle normativo, y
[Facturación electrónica en Chile](/referencia/facturacion-electronica/) para
el resto de los conceptos (certificado, certificación, ambientes).

## Endpoints

| Método | Path                  | Descripción                                                     |
| ------ | --------------------- | --------------------------------------------------------------- |
| `GET`  | `/api/v1/billing/caf` | Listar los rangos de folios (CAF) cargados y su disponibilidad. |
| `POST` | `/api/v1/billing/caf` | Subir un archivo CAF descargado del SII.                        |

Estos endpoints son **solo-sesión** (JWT de tu cuenta): una API key
`billing:dte` no puede llamarlos (`403 BILLING_API_KEY_ROUTE_NOT_ALLOWED`).
Los folios se administran desde tu cuenta en app.simplo.cl; tu integración
solo emite. En el **sandbox** no hay nada que subir: los folios sintéticos se
aprovisionan solos al crear tu key.

## Con el SDK

```ts
await simplo.folios.upload({ tipo_dte: 33, caf_xml: cafFileContents });

const cafs = await simplo.folios.list({ tipo_dte: 33, is_active: true });
console.log(cafs[0].folios_disponibles); // ej. quedan 158
```

Simplo asigna el siguiente folio automáticamente en cada `emit`. Vigila
`folios_disponibles` desde tu cuenta (el evento de webhook `caf.low_stock`
existe en el contrato, pero la entrega de webhooks aún no está activa) y
sube un CAF nuevo antes de quedarte sin folios — la emisión falla sin folios
disponibles.

Subir un CAF duplicado es seguro: devuelve un `ConflictError`, nunca duplica
el rango.

`folios.list()` devuelve un array plano (sin paginación): una empresa maneja
un puñado de CAFs por naturaleza.

## Relacionado

- [Emisión](/referencia/emision/) — cómo se consumen los folios
- [Webhooks](/referencia/webhooks/) — el evento `caf.low_stock`
- [Certificado digital](/referencia/certificado-digital/) — el otro requisito
  de configuración inicial
- [Facturación electrónica en Chile](/referencia/facturacion-electronica/) —
  el CAF en contexto, con las fuentes oficiales del SII

---

Versión HTML: https://docs.simplo.cl/referencia/folios-caf/ · Índice para agentes: https://docs.simplo.cl/llms.txt
