Ingresa o reemplaza el detalle diario de boletas en el RCV de ventas
Ingresa o reemplaza el detalle dia-por-dia de boletas en el RCV ventas.
/api/v1/sii/rcv/ventas/set_boletas_diarias/{emisor}/{periodo}/{dte}v1 · ESTABLEIngresa o reemplaza el detalle dia-por-dia de boletas en el RCV ventas.
Permite al contribuyente registrar el detalle DIARIO de boletas en el Registro de Ventas del periodo, donde el SII calcula el resumen mensual a partir de la sumatoria de los dias enviados.
Esta funcionalidad es complementaria a
POST /ventas/set_resumen/{emisor}/{periodo} (que registra el
resumen mensual agregado en una sola fila): los dos endpoints
apuntan a SPAs distintos del SII (complementoscvui para diario,
complementowebdcvui para mensual). Este endpoint solo soporta
tipos DTE de boletas: 35, 38, 39, 41, 47, 48, 139,
141.
El gateway calcula automaticamente las sumas mensuales (montoTotal,
totalDocumentos, montoExento, montoNeto, montoIva,
opExentas) a partir de dias[] y construye el body con shape SII.
Limitacion del SII conocida: los tipos 39 (Boleta Electronica)
y 41 (Boleta Exenta Electronica) estan bloqueados desde el 1° de
agosto 2022 — el SII responde con error.tipo == "NEGOCIO" y el
mensaje literal "No es posible modificar la información de las boletas electrónicas desde el 1° de agosto 2022.". La regla la
enforce el SII upstream; el gateway propaga el rechazo tal cual.
Autenticacion requerida: API token en header X-API-Token con
scope sii:write + credenciales SII PassAuth del emisor en el body.
Quota: Consume 1 consulta | Peso: 5x (operacion critica de escritura)
Parametros de ruta
| Parametro | Tipo | Requerido | Descripcion |
|---|---|---|---|
emisor | string | Si | RUT del emisor (validado modulo 11) |
periodo | string | Si | Periodo tributario AAAAMM |
dte | string | Si | Codigo tipo DTE. Permitidos: 35, 38, 39, 41, 47, 48, 139, 141 |
Parametros de consulta
| Parametro | Tipo | Default | Descripcion |
|---|---|---|---|
ambiente | string | 0 | 0 produccion, 1 certificacion |
Body (JSON)
| Campo | Tipo | Requerido | Descripcion |
|---|---|---|---|
auth.pass.rut | string | Si | RUT del emisor (XX.XXX.XXX-X) |
auth.pass.clave | string | Si | Clave tributaria |
graba_con_reparos | boolean | No | false (default) primer intento; |
true para reintentar tras error.tipo == "REPARO" | |||
dias[] | array | Si | Detalle por dia (al menos un dia con datos). Solo incluir dias modificados |
dias[].dia | string | Si | Numero de dia con dos caracteres ("01" a "31") |
dias[].tot_documentos | integer | No | Total de documentos del dia |
dias[].mnt_total | integer | No | Monto total del dia |
dias[].mnt_neto | integer | No | Monto neto del dia |
dias[].mnt_iva | integer | No | Monto IVA del dia |
dias[].mnt_exento | integer | No | Monto exento del dia |
dias[].op_exentas | integer | No | Numero de operaciones exentas del dia |
dias[].iva_3ros | integer | No | IVA terceros del dia |
dias[].canal_transacc | integer | No | Solo dte=48: 0 presencial, 1 internet, 2 ambos |
dias[].cod_rzn_modifica | integer | No | Codigo motivo de modificacion (Canal Internet) |
dias[].txt_rzn_modifica | string | No | Texto motivo cuando cod_rzn_modifica=4 (Otro) |
operadores | array | null | No | Detalle por operador (solo dte=48); null (default) para casos comunes |
Request de ejemplo
Respuesta exitosa (200)
data: numero de filas modificadas por el SII (>0si hubo cambio,nullcuando hubo error de negocio).error: objeto tipado cuando hubo rechazo (nullcuando OK).
Respuesta con error de negocio (200)
El cliente puede reintentar con graba_con_reparos: true SOLO
cuando recibe error.tipo == "REPARO". Para NEGOCIO, VALIDACION
o ERROR el reintento no resuelve la situacion.
Errores especificos
| Codigo | error_code | Causa | Resolucion |
|---|---|---|---|
| 400 | AUTH_ERROR | Credenciales SII incorrectas | Revisar RUT/clave |
| 400 | VALIDATION_ERROR | Tipo DTE no permitido para boletas diarias | |
Usar tipo en [35, 38, 39, 41, 47, 48, 139, 141] | |||
| 400 | VALIDATION_ERROR | RUT del path con DV invalido (modulo 11) | Usar un RUT chileno valido |
| 401 | HTTP_401 | API token ausente o invalido | Enviar X-API-Token valido |
| 403 | INSUFFICIENT_SCOPE | Token sin scope sii:write | Generar token con scope |
| 422 | VALIDATION_ERROR | Body con formato invalido | Verificar shape de dias[] |
| 429 | SII_RATE_LIMIT / QUOTA_EXCEEDED | Rate limit | Respetar Retry-After |
| 502 | SII_GATEWAY_ERROR | SII upstream rechazo la conexion | Reintentar |
| 503 | SII_UNAVAILABLE | SII en mantenimiento | Reintentar en 5 min |
Ejemplo cURL
Notas
- Solo incluir en
dias[]los dias modificados; los dias omitidos quedan sin tocar en el SII. - El gateway calcula las sumas mensuales y las envia al SII junto al
array
boletas[]con shape interno; el cliente nunca arma el body crudo del SII. - Una vez guardado, el detalle aparece en
/ventas/detalle/{emisor}/{periodo}/{dte}.
Parámetros
Cuerpo de la solicitud
Requerido. Content-Type: application/json.
Respuestas
Forma de la respuesta
Código 200. Estructura del JSON devuelto.