Emisión de DTE
Paso 4: Enviar al SII (obligatorio)
Con el sobre firmado, lo envías al SII. El SII lo recibe, le asigna un Track ID y lo procesa en segundo plano. El resultado (aceptado o rechazado) se consulta después, en el paso 5.
Qué operación usar
El SII recibe las boletas por un servicio distinto al de los demás documentos, así que hay una operación para cada tipo de sobre:
Sobre del paso 3 (tag) |
Documentos | Operación |
|---|---|---|
EnvioDTE |
Facturas, notas de crédito y débito, guías de despacho y demás DTE | billing/integration/sii_dte/sendXmlDocument |
EnvioBOLETA |
Boletas (39 y 41) |
billing/integration/sii_boleta/sendXmlDocument |
Las dos reciben los mismos parámetros y entregan un Track ID.
4.1. Facturas, notas y guías
La solicitud
POST https://app.apigateway.cl/api/v2/libredte/billing/integration/sii_dte/sendXmlDocument
{
"parameters": {
"request": {
"certificate": {
"certificate": "-----BEGIN CERTIFICATE-----\nMIIG...\n-----END CERTIFICATE-----",
"privateKey": "-----BEGIN PRIVATE KEY-----\nMIIE...\n-----END PRIVATE KEY-----"
},
"options": {
"environment": 1
}
},
"doc": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8RW52aW9EVEU...",
"company": "88888888-8"
}
}
| Parámetro | Qué es |
|---|---|
request.certificate |
El certificado con que la API se autentica en el SII. |
request.options.environment |
El ambiente del SII: 1 certificación, 0 producción. |
doc |
El sobre EnvioDTE del paso 3 (su campo xml), en base64. |
company |
El RUT de la empresa emisora. |
retries |
(Opcional) Cuántas veces reintentar si el SII no responde. Máximo 10. |
La respuesta
{
"data": {
"track_id": 4753411374
}
}
El Track ID es el comprobante de que el SII recibió el sobre. Guárdalo inmediatamente junto al documento: sin él no puedes consultar el resultado.
4.2. Boletas
La solicitud
POST https://app.apigateway.cl/api/v2/libredte/billing/integration/sii_boleta/sendXmlDocument
Los parámetros son los mismos de 4.1 (request, doc, company y retries). La diferencia está en doc: va el sobre EnvioBOLETA del paso 3.
La respuesta
{
"data": {
"track_id": 33790541,
"status": "REC",
"received_at": "2026-11-04T12:18:29-03:00",
"rut_sender": "11222333-9",
"rut_company": "88888888-8",
"retry_after": 5,
"location": "https://apicert.sii.cl/recursos/v1/boleta.electronica.envio/88888888-8-33790541",
"rate_limit": {
"limit": 10,
"remaining": 10,
"reset": 1
},
"file": "libredte_boleta.xml"
}
}
| Campo | Qué es |
|---|---|
track_id |
El número de seguimiento del envío. Guárdalo inmediatamente: con él consultas el estado. |
status |
El estado del envío al recibirlo: REC, recibido. |
received_at |
Fecha y hora en que el SII recibió el sobre. |
rut_sender |
El RUT de quien envía: la persona del certificado. |
rut_company |
El RUT de la empresa emisora. |
retry_after |
Los segundos que el SII pide esperar antes de consultar el estado del envío. Es parte normal de la respuesta, no un error. Puede venir en null. |
rate_limit |
El límite de solicitudes que informa el servicio de boletas del SII: cuántas permite (limit), cuántas quedan (remaining) y en cuántos segundos se reinicia la cuenta (reset). Puede venir en null. |
location |
La ruta del SII para consultar el resultado del envío. No necesitas guardarla: el estado se consulta con el Track ID. |
file |
El nombre con que la API subió el archivo al SII. |
Para los dos envíos
Si no envías options.environment, el documento se envía a producción. Durante el desarrollo usa siempre "environment": 1, y asegúrate de que el CAF y la resolución sean del mismo ambiente al que envías.
Que el SII entregue un Track ID solo significa que recibió el sobre. Todavía puede rechazarlo por un error en los datos, en la firma o en la carátula. Para saber el resultado tienes que consultar el estado.
Errores frecuentes en este paso
| Situación | Causa probable | Qué hacer |
|---|---|---|
No fue posible obtener el token para autenticar en el SII al usuario ... |
El SII no aceptó el certificado: no es válido, está vencido, es autofirmado, o la persona no está registrada en el SII para la empresa. | Revisa el certificado y que esa persona sea usuario autorizado de la empresa en el SII. |
| Error al enviar el XML | El SII no respondió o rechazó el archivo al recibirlo. | Revisa el mensaje de detail y reintenta más tarde si es un problema del SII. |
| RUT inválido | company mal escrito. |
Usa el RUT sin puntos y con guion. |
El XML es un EnvioBOLETA y no se puede enviar con el worker de DTE, las boletas se envían con el worker de boletas. |
Enviaste un sobre de boletas con sii_dte. |
Envía los sobres EnvioBOLETA con sii_boleta/sendXmlDocument. Revisa el tag del sobre antes de elegir la operación. |
Boletas: rate_limit.remaining en 0 |
Usaste todas las solicitudes que permite el servicio de boletas del SII. | Espera los segundos de rate_limit.reset antes de volver a llamar. |
Si el SII no está disponible
El SII a veces está lento o fuera de servicio. Como el documento ya está construido y firmado, no lo pierdes:
- Guarda el documento con estado “error de envío”.
- Reintenta el envío más tarde (por ejemplo, cada 15 o 30 minutos) con un proceso automático.
- Si los reintentos fallan por mucho tiempo, avisa a un responsable.
Si construyes de nuevo, obtienes otro XML con otra firma para el mismo folio. Reintenta el envío del mismo sobre que ya tenías.