---
title: "Enviar XML al SII"
description: "Aprende cómo enviar el XML generado al Servicio de Impuestos Internos"
type: "academy"
category: "lesson"
tags: []
authors: [Anonymous]
date: "2026-08-27"
last_update: "2026-08-21"
time_minutes: 4
draft: false
unlisted: false
url: "https://www.stage.apigateway.cl/academy/integracion-para-la-emision-de-dte/emision-de-documentos/enviar-xml"
---

# 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

```http
[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ón<br>`0`: Ambiente de producción |
| `gzip` | int | `0` | `1`: Enviar comprimido<br>`0`: 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

```json
{
    "auth": {
        "cert": {
            "cert-data": "-----BEGIN CERTIFICATE-----\nMIIG...[tu certificado]...XYZ\n-----END CERTIFICATE-----",
            "pkey-data": "-----BEGIN PRIVATE KEY-----\nMIIE...[tu llave privada]...ABC\n-----END PRIVATE KEY-----"
        }
    },
    "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 |

> [!INFO] Importante
>
> El campo `xml` debe contener el contenido del campo `sii` obtenido en el paso anterior, NO el campo `dte`.

---

## Estructura de la Respuesta

### Respuesta Exitosa

```json
{
    "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

```json
{
    "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:
1. Guardar el XML localmente
2. Intentar envío cada 30 minutos
3. Notificar al administrador
4. 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


---
Last updated on 21/08/2026

