Listar CAF
Listar los CAF que el SII tiene autorizados para la empresa y el tipo de documento, en el ambiente pedido
Probar contra el mock: responde los ejemplos del contrato, no guarda nada y nunca llega a producción.
El mock no es la API. Replica las validaciones que no dependen del SII (rango de folios, boletas en producción, folioInicial, mesesVentana y el RUT 1-9), con el mismo código y mensaje. Es más estricto en esto: un ambiente que no es 0 ni 1 da 400 (la API no da error: corre en producción, o en homologación si es otro número en las operaciones que lo dicen), la falta de un parámetro de query obligatorio da 400 (la API da 404), un body sin Content-Type da 400 (la API da 415), un body sin Data o sin Contrasenna da 400 (la API da CERT_REQUERIDO) y un mesesVentana que no es entero da 400 (la API lo ignora). Y más permisivo en esto: sin body responde el ejemplo, donde la API da CERT_REQUERIDO salvo con el RUT 1-9.
cURL equivalente
curl -X POST 'https://developers.enrolamiento.cl/mock/v1/caf/11111111-1/listar/33?ambiente=0' \
-H 'x-mock-authorization: Basic <base64 de usuario:apikey>' \
-H 'Content-Type: application/json' \
-H 'x-amz-content-sha256: <sha256 del body>' \
--data-raw '{
"Contrasenna": "********",
"Data": "MIIC"
}'Lista los CAF que el SII autorizó para la empresa y el tipo de documento, en el ambiente que
indique ambiente: todos los que el SII lista, también los ya usados o anulados enteros. Para
saber cuántos folios quedan en uno de ellos, consulte caf_v1_estado_folios con su rango. Es una
lectura: no timbra ni anula nada, y repetirla no cambia nada en el SII.
Cuál usar. Reemplaza a caf_v1_anulacion_masiva_listar para listar CAF: el mismo modelo de
respuesta, pero en el ambiente pedido y verificando el permiso del certificado. Para bajar uno de
estos CAF, use caf_v1_reobtener con folioInicial, si está en la primera página del listado de
reobtención del SII (ver folioInicial en caf_v1_reobtener).
Permisos. Además de validar el certificado en el ambiente pedido, verifica en el SII del mismo
ambiente que su titular esté autorizado por la empresa para operar con folios (CAF); no hace falta
que administre usuarios. caf_v1_reobtener, en cambio, valida el certificado siempre en producción.
Consulta la opción de anulación masiva del SII: una empresa que no está habilitada ahí recibe
CONTRIBUYENTE_SIN_PERMISO.
Tiempos. Hace varias llamadas al SII en serie y puede tardar decenas de segundos: configure un timeout de cliente de al menos 70 segundos. Si tarda más de 60
segundos, la capa de entrada de la API responde 504 con una página HTML, sin código: es una
lectura, repítala. SII_ERROR_CXN es frecuente e intermitente en el SII de producción: reintente
respetando Retry-After (30 segundos), con espera exponencial (30, 60 y 120 segundos) y un tope
de 3 intentos; cada intento puede tardar decenas de segundos.
Sesión del SII entre ambientes (sin verificar). La sesión del SII se reusa 15 minutos por
certificado, en los dos ambientes. Si alterna ambiente=0 y ambiente=1 con el mismo certificado
en menos de 15 minutos, el SII podría rechazar la sesión. Desde la versión 1.5.3 la respuesta es
SII_ERROR_CXN, reintentable (antes, SII_RESPUESTA_INESPERADA): si persiste después de los
reintentos, espere 15 minutos y repita antes de contactar a soporte.
Para probar. Con el RUT 1-9 o un RUT de prueba del cliente no se consulta al SII ni se valida
el certificado: la respuesta es siempre un único CAF de ejemplo, del folio 1 al 10 (el ejemplo de
respuesta de esta página es otro: una empresa con dos CAF). El RUT de prueba no simula los errores
del SII: CONTRIBUYENTE_SIN_PERMISO, SII_ERROR_CXN y los rechazos solo se ven contra el SII.
basicAuthorizationBasic <token>rut*stringRUT de la empresa.
tipoDocumento*integerTipo del documento DTE, con el código del SII: 33 factura, 34 factura exenta, 39 y 41 boletas, 56 nota de débito, 61 nota de crédito, entre otros.
int32ambiente?integerAmbiente del SII: 0 = Homologación (certificación), 1 = Producción. Si se omite, opera en producción: páselo siempre explícito. Un valor que no se reconoce no da error: la operación corre en producción. Un número distinto de 0 y 1 no da error y corre en homologación. En caf_v1_reobtener, ese mismo número corre en producción: use 0 o 1 en las dos.
int32101Datos del certificado.
application/json- body
Datos del certificado digital.
Contrasenna*stringContraseña del PFX, en claro o cifrada con la clave de cifrado del perfil del cliente. Dato sensible: no se registra en logs del integrador.
Data*stringPFX del certificado, en base64. Dato sensible: no se registra en logs del integrador.
byteLos CAF del SII para la empresa y el tipo de documento: Cafs, un elemento por CAF, ordenados por FolioInicial de mayor a menor. Cada CAF trae FolioInicial, FolioFinal, Cantidad, Fecha, Dueno y RUTDueno. Cafs vacía significa que el SII no lista CAF de ese tipo para la empresa; nunca es nula. Con el RUT 1-9 o un RUT de prueba del cliente, un único CAF de ejemplo, del folio 1 al 10.
application/json- response
Los CAF de una empresa para un tipo de documento: la respuesta de caf_v1_listar y de caf_v1_anulacion_masiva_listar.
Cafs?array<>|Un elemento por CAF. En caf_v1_listar nunca es nula: es una lista vacía si el SII no lista CAF de ese tipo para la empresa.
curl --request POST \ --url 'https://api.enrolamiento.cl/v1/caf/1-9/listar/33?ambiente=0' \ --header 'Accept: application/json' \ --header 'Authorization: Basic <base64 de usuario:apikey>' \ --header 'Content-Type: application/json' \ --data '{ "Contrasenna": "********", "Data": "MIIC"}'{ "Cafs": [ { "Cantidad": 100, "Dueno": "Usuario Ejemplo", "Fecha": "12-03-2026", "FolioFinal": 1200, "FolioInicial": 1101, "RUTDueno": "12345678-5" }, { "Cantidad": 100, "Dueno": "Usuario Ejemplo", "Fecha": "05-01-2026", "FolioFinal": 1100, "FolioInicial": 1001, "RUTDueno": "12345678-5" } ]}Ejemplos de la respuesta 500 en text/plain
El titular del certificado no está autorizado por la empresa para CAF (CERT_SIN_PERMISO)
CERT_SIN_PERMISO:El certificado no está autorizado por la empresa 11111111-1 para operar con folios (CAF) en el SII.El SII pidió intentarlo más tarde (reintentable) (SII_ERROR_CXN)
SII_ERROR_CXN:Error de comunicacion con el SII, intente nuevamente.Reintentos e idempotencia
Idempotente: sí. Repetirla con los mismos datos no duplica nada.
| Qué hacer | Códigos y status |
|---|---|
Reintentar solo, con espera (automatico) | 409, SII_ERROR_CXN |
Consultar el estado antes de repetir (manual) | CERT_ERROR, ERROR_GENERAL, SEC_USER_NOT_AUTHENTICATED |
No repetir: corregir la causa (nunca) | CERT_AUTH_NOT_CONFIGURED, CERT_EXPIRADO, CERT_NO_CONFIGURADO_AUTH, CERT_NO_VALIDO, CERT_REQUERIDO, CERT_REVOCADO, CERT_SIN_PERMISO, CONTRIBUYENTE_SIN_PERMISO, SEC_EMP_NOT_AUTHORIZED, SEC_USER_BOLSII, SII_RESPUESTA_INESPERADA |
Un código que no figura en esta tabla se resuelve con la regla de respaldo.