Descargar un CAF desde el SII.
Pide un CAF nuevo al SII, en el ambiente que diga ambiente (si se omite, producción). No es idempotente: cada llamada timbra folios nuevos. Ante un error dudoso, consultar el último folio (caf_v1_consulta) o reobtener (caf_v1_reobtener) antes de volver a pedir. El certificado se valida siempre contra el SII de producción, aunque el CAF se pida con ambiente=0: un certificado habilitado solo en el ambiente de certificación del SII queda rechazado, y el error habla del certificado y no del ambiente.
basicAuthorizationBasic <token>rut*stringRUT de la empresa.
tipoDocumento*integerTipo del documento DTE.
int32cantidad*integerCantidad de folios a descargar.
int32ultimoFolio?integerÚltimo folio generado por el SII. (El sistema devolverá un CAF que comience mínimo en {ultimoFolio}+1)
int320ambiente?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 tampoco da error y también corre en producción.
int32101descargarCafAntiguos?booleanSi se desea descargar CAF con más de 3 meses de antigüedad. Por omisión solo se devuelven CAF recientes.
falseDatos 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 bytes del CAF. Si ya hay una solicitud de folios en curso para este RUT y tipo de documento, responde 429 (CAF_REQUEST_IN_PROGRESS) con el header Retry-After: reintentar pasados esos segundos.
response?stringapplication/jsonbytecurl --request POST \ --url 'https://api.enrolamiento.cl/v1/caf/1-9/descargar/1/1?ambiente=0' \ --header 'Accept: application/json' \ --header 'Authorization: Basic <base64 de usuario:apikey>' \ --header 'Content-Type: application/json' \ --data '{ "Contrasenna": "********", "Data": "MIIC"}'"RWplbXBsbzogbm8gZXMgdW4gQ0FGIHJlYWwu"Reintentos e idempotencia
Idempotente: no. Cada llamada tiene efecto propio.
| Qué hacer | Códigos y status |
|---|---|
Reintentar solo, con espera (automatico) | 409, 429 |
Consultar el estado antes de repetir (manual) | CAF_UNKNOWN, CNX_HTTP_ERROR_500, CNX_HTTP_ERROR_CLOSED, CNX_HTTP_ERROR_REMOTE, CNX_HTTP_ERROR_RETRY, CNX_HTTP_ERROR_SSLTLS, CNX_HTTP_ERROR_TIMEOUT, ERROR_GENERAL, RESP_HTTP_ERROR, SEC_USER_NOT_AUTHENTICATED, UKN |
No repetir: corregir la causa (nunca) | AUT_COMP_ACTIVITIES_VERIFICATION, AUT_COMP_OR_REP_SITUATION, AUT_DOCTYPE_NOT_AUTHORIZED, CAF_DENIED_SII_EXCEED, CAF_DENIED_SII_NOTENOUGH, CERT_AUTH_NOT_CONFIGURED, CERT_REVOCADO, SEC_CERT_NOT_AUTHORIZED, SEC_EMP_NOT_AUTHORIZED, SEC_USER_BOLSII |
Un código que no figura en esta tabla se resuelve con la regla de respaldo.