SII Connect en 2 minutos
REST sobre HTTPS. JSON. OAuth2 client credentials. Cuatro tipos de DTE: 33, 52, 56 y 61.
curl -X POST $BASE/v1/emisores/{id}/documentos \
-H "Authorization: Bearer $TOKEN" \
-d @factura.json
202 Accepted ← Accepted, no Created: la emisión es asíncrona
{ "documentoId": "…", "folio": 4521,
"estadoTributario": "EMITIDO", "estadoEnvio": "PENDIENTE" }Lo que NO hacemos: inventario, contabilidad, cobranza. Somos la capa tributaria y nada más.
Prerrequisitos
Antes de emitir en certificación o producción necesitas dos cosas quesolo el contribuyente puede obtener:
- 1 · Certificado digital
- De una CA acreditada en Chile. Lo obtiene el representante legal o alguien autorizado ante el SII.
- 2 · CAF
- Folios autorizados por el SII, por tipo de documento. Se solicitan en el sitio del SII con clave tributaria. Requiere actividad iniciada.
El ciclo de vida de un documento
Un documento tiene DOS estados. No son lo mismo y no se combinan. Es lo primero que conviene entender, y lo que más se malinterpreta.
Estado tributario
qué dice el SII del documento
- ○ EMITIDO generado y firmado. Aún sin respuesta del SII
- ● ACEPTADO el SII lo aceptó
- ◐ CON REPAROS aceptado, con observaciones
- ✕ RECHAZADO el SII lo rechazó. El folio queda consumido
- ⊘ ANULADO POR NC anulado por una nota de crédito
Estado del envío
cómo va nuestra entrega al SII
- ○ PENDIENTE en cola. Se despacha en el próximo ciclo
- ◔ EN CURSO enviándose ahora
- ● ACUSADO el SII lo recibió. Hay TrackID
- ✕ FALLIDO el intento falló. Se reintenta solo
- ⊘ ABANDONADO se agotaron los reintentos. Requiere acción
Combinaciones y qué significan
| Combinación | Qué significa |
|---|---|
EMITIDO + PENDIENTE | Normal, recién emitido |
EMITIDO + ACUSADO | El SII lo tiene, aún no resuelve. Normal |
ACEPTADO + ACUSADO | Éxito. Estado final |
RECHAZADO + ACUSADO | Llegó bien, el SII lo rechazó → problema en tu dato |
EMITIDO + ABANDONADO | No logramos entregarlo → POST /reenviar |
EMITIDO + FALLIDO | Fallo transitorio, se reintenta solo. No hagas nada |
La emisión es asíncrona. El documento nace
EMITIDO + PENDIENTE y el despacho ocurre en el siguiente ciclo del planificador. Un test que espere ACEPTADO en la respuesta de emisión fallará siempre.Errores
Toda respuesta de error usa RFC 9457(application/problem+json):
{
"type": "https://api.sii-connect.cl/errores/folios-agotados",
"title": "Regla de negocio incumplida",
"status": 409,
"detail": "…",
"codigo": "FOLIOS_AGOTADOS"
}Ramifica por
codigo, no por el estado HTTP.El estado se deriva del sufijo del código, así que un código nuevo puede cambiar de estado sin cambiar de significado. codigo es lo único estable dentro de v1.Paginación
Los listados usan limite (máximo 200, por defecto 50) ydesplazamiento. No hay paginación por cursor.
Glosas del SII. Cuando el SII rechaza un documento devuelve una glosa propia. Esta documentación todavía no las cataloga porqueaún no hemos recibido rechazos reales. Inventarlas te enseñaría a interpretar textos que no existen.