Integración para la emisión de DTE
Enviar XML al SII
Una vez generado el XML del DTE, el siguiente paso crítico es enviarlo al SII. Este proceso valida tu documento y, si es correcto, lo incorpora al sistema tributario oficial. El SII responde con un Track ID que permite dar seguimiento al estado del documento.
Para enviar un XML al SII se debe enviar la firma electrónica al servicio web y será el RUT asociado a la firma electrónica el que se usará para identificar el envío ante el SII (“rut envío”), ya que es el RUT de la persona que envía el XML, no el RUT de la empresa emisora del XML.
Endpoint y Parámetros
URL del Servicio
[POST] https://legacy.apigateway.cl/api/v1/libredte/dte/envios/enviar
Parámetros de Query
Parámetro | Tipo | Default | Descripción |
---|---|---|---|
certificacion |
int | 0 |
1 : Ambiente de certificación0 : Ambiente de producción |
gzip |
int | 0 |
1 : Enviar comprimido0 : Enviar sin comprimir |
retry |
int | 1 |
Cantidad de intentos de envío |
URL Típica de Uso
https://legacy.apigateway.cl/api/v1/libredte/dte/envios/enviar?certificacion=0&retry=3
Estructura del Request
- El XML a enviar debe estar codificado en base64.
- Permite enviar al SII cualquier tipo de DTE (incluyendo boletas).
Body de la Solicitud
{
"auth": {
"cert": {
"cert-data": "certificado_en_base64",
"pkey-data": "llave_privada_en_base64"
}
},
"emisor": "76192083-9",
"xml": "PD94bWwgdmVyc2lvbj0iMS4w..."
}
Campos Requeridos
Campo | Tipo | Descripción |
---|---|---|
auth |
object | Autenticación con certificado digital |
emisor |
string | RUT del emisor (con guión) |
xml |
string | XML del campo sii de la respuesta anterior |
Importante: El campo
xml
debe contener el contenido del camposii
obtenido en el paso anterior, NO el campodte
.
Estructura de la Respuesta
Respuesta Exitosa
{
"track_id": 4753411374,
"certificacion": 0
}
Componentes de la Respuesta
Campo | Tipo | Descripción |
---|---|---|
track_id |
integer | Identificador único del envío |
certificacion |
integer | Ambiente donde se procesó |
Conceptos Clave
¿Qué es el Track ID?
El Track ID es un número único que:
- Identifica tu envío en el sistema del SII
- Permite consultar el estado del procesamiento
- Es indispensable para el seguimiento
- Debe ser almacenado en tu sistema
Tiempos y Estrategias
Estrategia de Reintentos
El parámetro retry
permite reintentos automáticos:
?retry=3 // Intentará hasta 3 veces si falla
Cuándo es útil:
- Problemas de conectividad temporales
- Alta carga en el SII
- Timeouts esporádicos
Manejo de Errores
Errores Comunes
Error | Causa | Solución |
---|---|---|
Timeout | SII no responde a tiempo | Aumentar timeout, reintentar |
XML inválido | Estructura incorrecta | Verificar que se usa campo sii |
Certificado rechazado | Certificado no autorizado | Verificar vigencia y permisos |
Emisor no coincide | RUT emisor diferente | Verificar RUT en el XML |
Respuesta de Error Típica
{
"code": 400,
"message": "No fue posible enviar el XML al SII.",
"logs": [
{
"code": 52,
"msg": "Falló el envío automático al SII. Empty reply from server",
"file": null,
"line": null,
"function": null,
"class": null,
"type": null,
"args": null
}
]
}
Mejores Prácticas
1. Almacenar Track ID Inmediatamente
Siempre guarda el Track ID en tu base de datos junto con:
- Tipo de documento
- Folio
- Fecha de envío
- RUT emisor
- RUT receptor
2. Logs de Envío
Registra cada intento de envío con:
- Timestamp
- Track ID (si se obtiene)
- Código de respuesta
- Mensajes de error
- Número de intento
3. Manejo de Contingencias
Si el SII no está disponible:
- Guardar el XML localmente
- Intentar envío cada 30 minutos
- Notificar al administrador
- Mantener registro de pendientes
Pruebas en Certificación
Usar Ambiente de Certificación
Para pruebas, agrega certificacion=1
:
https://legacy.apigateway.cl/api/v1/libredte/dte/envios/enviar?certificacion=1
Ventajas del Ambiente de Certificación
- Sin consecuencias tributarias
- Respuestas más rápidas
- Ideal para pruebas de integración
- Misma estructura que producción