Compras recibidas del SII: listado y aceptación o reclamo¶
Cómo leer el registro de compras del SII (las facturas que los proveedores le emitieron a la empresa) y registrar la aceptación o el reclamo de cada DTE dentro del plazo legal. Es la guía para integraciones contables y de aprobación de facturas.
Prerrequisitos: Primeros pasos.
El reloj corre: 8 días corridos
El reclamo de una factura debe registrarse dentro de los 8 días corridos desde la fecha de recepción en el SII. Pasado el plazo, la factura se entiende aceptada (acuse automático) y el IVA queda utilizado por el emisor. Una integración de aprobación debe consultar la fecha de recepción y priorizar por vencimiento.
Leer el listado de compras¶
Estos endpoints reproducen el registro de compras del SII (lo mismo que se descarga desde "Consulta de compras y ventas" en sii.cl), con los campos que exige el F29. Los parámetros van como form-data:
# Una fila por DTE recibido en el período
curl -X POST https://api.opentpv.cl/icv/compra/detalle \
-H "Authorization: Bearer eyJhbGciOi..." \
-F "periodo=202608" \
-F "estadocontable=REGISTRO" \
-F "codtipodoc=33"
periodo: mes contableAAAAMM.estadocontable: sección del registro SII (REGISTROes lo aceptado o por vencer; el SII también maneja pendientes, reclamados y no incluir).codtipodoc: tipo de DTE (33 factura, 61 nota de crédito, 46 factura de compra...), u omitir para todos.
Cada fila trae emisor (RUT y razón social), folio, fechas de emisión y recepción, montos exento/neto/IVA, IVA no recuperable e impuestos adicionales: todo lo necesario para contabilizar.
# Totales del mes agregados por tipo de documento (para el F29)
POST /icv/compra/resumen # -F periodo=202608
# XML original de un DTE recibido (lectura local, sin ir al SII)
POST /icv/compra/xml # -F rutproveedor=... -F codtipodoc=33 -F folio=12345
Los equivalentes de venta (/icv/venta/detalle y /icv/venta/resumen)
entregan el registro de ventas propio, útil para cuadrar el F29 completo.
Aceptar o reclamar un DTE recibido¶
Los cuatro endpoints usan la misma identificación del documento como
form-data: rut (emisor, formato 76543210-K), tipodte y folio.
1. Consultar la fecha de recepción (para saber el plazo)¶
curl -X POST https://api.opentpv.cl/aceptacionreclamo/fecharecepcion \
-H "Authorization: Bearer eyJhbGciOi..." \
-F "rut=76543210-K" -F "tipodte=33" -F "folio=12345"
Con la fecha de recepción calculas cuántos de los 8 días quedan.
2. Registrar la acción ante el SII¶
curl -X POST https://api.opentpv.cl/aceptacionreclamo/ingresar \
-H "Authorization: Bearer eyJhbGciOi..." \
-F "rut=76543210-K" -F "tipodte=33" -F "folio=12345" \
-F "tipoaccion=ACD"
| Código | Acción |
|---|---|
ACD |
Acepta el contenido del documento (deja la factura cedible) |
RCD |
Reclama el contenido del documento (rechaza la factura) |
ERM |
Acuse de recibo de mercaderías o servicios conforme |
RFP |
Reclamo por falta parcial de mercaderías |
RFT |
Reclamo por falta total de mercaderías |
Cualquier otro valor devuelve 400. Las acciones no se pueden deshacer:
registrada una, solo se puede agregar otra encima, así que el flujo de
aprobación debe confirmar antes de llamar.
3. Consultar el historial y la cedibilidad¶
# Eventos registrados ante el SII para ese DTE (quién aceptó/reclamó y cuándo)
POST /aceptacionreclamo/listaeventos # -F rut=... -F tipodte=33 -F folio=12345
# ¿Sigue cedible para factoring? (un reclamo la deja no cedible)
POST /aceptacionreclamo/consultacedible # mismos parámetros
Flujo típico de una integración de aprobación de facturas¶
1. Diario: POST /icv/compra/detalle del período en curso
2. Por cada factura nueva: fecharecepcion, calcular días restantes
3. Mostrar al aprobador (con el XML original si necesita el detalle)
4. Decisión: ingresar con ACD (y ERM al recibir conforme) o RCD/RFP/RFT
5. Contabilidad: a fin de mes, /icv/compra/resumen para el F29
Relacionado: si además registran la recepción física de la mercadería con
actualización de stock, la API tiene el módulo de recepciones
(POST /recepciones, borradores, confirmación idempotente y fotos de
respaldo); pídenos la guía si tu integración lo necesita.