Ambientes
Homologación y producción, y cómo elegir el ambiente del SII en cada operación.
El SII tiene dos ambientes, y varias operaciones de la API le dejan elegir en cuál trabajar con el
parámetro ambiente:
| Valor | Nombre | Descripción |
|---|---|---|
| 0 | Homologacion | Homologación. |
| 1 | Produccion | Producción. |
Homologación es lo que el SII llama ambiente de certificación: es el ambiente para probar. Producción es el ambiente real del SII.
No confunda el ambiente de certificación del SII con una certificación de la API. Salvo
certificaciones_v1_actualizar_casillas_intercambio, las operaciones de certificaciones no reciben
ambiente.
Regla de esta guía: pase siempre ambiente explícito, y use ambiente=0 mientras prueba.
Los ejemplos del portal usan ambiente=0.
Las operaciones que eligen ambiente
Estas son las siete operaciones que reciben ambiente. En todas, si se omite, la operación corre en
producción. Las operaciones que no figuran en la tabla no reciben el parámetro.
| Operación | Dónde va | Si se omite | Comportamiento |
|---|---|---|---|
caf_v1_anulados | Query string | Producción (1) | Ambiente 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. |
caf_v1_anular | Query string | Producción (1) | Ambiente 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. |
caf_v1_consulta | Query string | Producción (1) | Ambiente 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. |
caf_v1_descargar | Query string | Producción (1) | Ambiente 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. |
caf_v1_reobtener | Query string | Producción (1) | Ambiente 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. |
certificaciones_v1_actualizar_casillas_intercambio | Query string | Producción (1) | Ambiente 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. |
empresas_v1_permisos | Segmento de la ruta | Producción (1) | Ambiente del SII: 0 = Homologación (certificación), 1 = Producción. El segmento es opcional en la API: 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 todas va en el query string (?ambiente=0), salvo en empresas_v1_permisos, donde es el
último segmento de la ruta (POST /v1/empresas/{rutEmpresa}/permisos/{rutUsuario}/{ambiente}). Ese
segmento también se puede omitir, y entonces la operación corre en producción.
curl -u '<usuario>:<apikey>' -X POST \
-H 'Accept: application/json' -H 'Content-Type: application/json' \
-d '{"Data": "<pfx en base64>", "Contrasenna": "********"}' \
'https://api.enrolamiento.cl/v1/caf/11111111-1/consulta/33?ambiente=0'Valores que no son 0 ni 1
La API no valida ambiente contra el enum: un valor distinto de 0 y 1 no da error.
- Un valor que no se reconoce corre en producción.
ambiente=abc, oambiente=homologacióncon tilde, no da error: la operación corre en producción, igual que si lo hubiera omitido. - Los nombres se aceptan sin distinguir mayúsculas.
ambiente=homologacionuambiente=HOMOLOGACION, sin tilde, equivalen aambiente=0. Aun así, use el número. - Un número distinto de 0 y 1 se trata distinto según la operación.
ambiente=7no da error en ninguna, pero en unas corre en producción y en otras en homologación. Por ejemplo, encaf_v1_descargarcorre en producción y encaf_v1_consultacorre en homologación. La columna «Comportamiento» de la tabla lo dice para cada una. ambiente=sin valor: qué hace la API no está verificado. No lo mande.
Por todo esto, un error de tipeo en ambiente no se nota: la API no lo rechaza y la operación corre
en el ambiente equivocado.
El certificado se valida en producción al descargar o reobtener un CAF
caf_v1_descargar y caf_v1_reobtener validan el certificado digital contra el SII de
producción, aunque el CAF se pida con ambiente=0. El ambiente elige dónde se pide el CAF, no
dónde se valida el certificado.
En la práctica: si el certificado está habilitado para autenticarse solo en el ambiente de certificación del SII, estas dos operaciones lo rechazan, y el error habla del certificado, no del ambiente. Antes de pedir un CAF de homologación, verifique que el certificado también esté habilitado en producción.
Anulación masiva: siempre en producción
caf_v1_anulacion_masiva_listar y caf_v1_anulacion_masiva_anular operan siempre en el SII de
producción. Su ruta no recibe ambiente y un ?ambiente=0 se ignora. Además,
caf_v1_anulacion_masiva_anular es irreversible.
caf_v1_anular también es irreversible, pero respeta ambiente: si lo omite, anula en
producción.
| Operación | Método y ruta | ¿Irreversible? | Ambiente fijo |
|---|---|---|---|
caf_v1_anulacion_masiva_anular | POST /v1/caf/{rut}/anulacion-masiva/{tipoDocumento}/anular/{folioInicial}/{folioFinal} | Sí | Producción |
caf_v1_anulacion_masiva_listar | POST /v1/caf/{rut}/anulacion-masiva/{tipoDocumento}/listar | No | Producción |
caf_v1_anular | POST /v1/caf/{rut}/anular/{tipoDocumento}/{inicio}/{fin} | Sí | — |
Para probar la anulación masiva sin tocar el SII, use el RUT 1-9 o un RUT de prueba de su
perfil de cliente: para esos RUT la API no llama al SII.
Resumen
- Pase siempre
ambiente, con0o1, nunca un nombre ni otro número. - Mientras integra, use
ambiente=0. - Si omite
ambiente, o el valor no se reconoce, la operación corre en producción. caf_v1_descargarycaf_v1_reobtenervalidan el certificado en producción, aunque pida el CAF de homologación.- La anulación masiva corre siempre en producción.
caf_v1_anulacion_masiva_anularycaf_v1_anularson irreversibles.