Emisión de DTE

Aprende desde cero a emitir facturas, boletas, notas de crédito, guías de despacho y otros documentos tributarios electrónicos desde tu software con API Gateway V2.

Paso 3: Armar el sobre (obligatorio)

El SII no recibe documentos sueltos: recibe un sobre que contiene uno o más documentos. Las facturas, notas y guías van en un sobre EnvioDTE y las boletas en un sobre EnvioBOLETA. Los dos se crean con la misma operación, dispatcher/create, que elige el tipo según el documento (ver Un sobre por tipo de documento).

El sobre tiene una carátula con:

Dato de la carátula Qué es De dónde sale
RutEmisor RUT de la empresa emisora emisor.rut
RutEnvia RUT de la persona que envía El certificado digital
RutReceptor A quién va dirigido el sobre receptor.rut (ver abajo)
FchResol y NroResol Resolución de autorización del emisor emisor.autorizacion_dte
SubTotDTE Cuántos documentos de cada tipo lleva Se calcula solo

El sobre también se firma con el certificado digital.

Crear el sobre para el SII

POST https://app.apigateway.cl/api/v2/libredte/billing/document/dispatcher/create
{
    "parameters": {
        "bag": {
            "xmlDocument": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8RFRF...",
            "certificate": {
                "certificate": "-----BEGIN CERTIFICATE-----\nMIIG...\n-----END CERTIFICATE-----",
                "privateKey": "-----BEGIN PRIVATE KEY-----\nMIIE...\n-----END PRIVATE KEY-----"
            },
            "emisor": {
                "rut": "88888888-8",
                "razon_social": "Mi Empresa SpA",
                "autorizacion_dte": {
                    "fecha_resolucion": "2025-11-20",
                    "numero_resolucion": 0
                }
            },
            "receptor": {
                "rut": "60803000-K"
            }
        }
    }
}
Campo Qué es
xmlDocument El document_xml del paso 1, en base64.
certificate El certificado con que se firma el sobre.
emisor.autorizacion_dte La resolución del emisor: en certificación, número 0 y la fecha que muestra el SII en ese ambiente; en producción, el número y la fecha de la resolución real.
receptor.rut A quién va dirigido el sobre. Para el SII usa 60803000-K, el RUT del SII.

¿Dónde obtengo la fecha y el número de resolución?

Son datos del emisor que entrega el SII, y cada ambiente tiene los suyos. Puedes obtenerlos de dos formas:

Con la API, consultando el estado de autorización del emisor:

# Producción
curl https://app.apigateway.cl/api/v2/sii/dte/contribuyentes/autorizado/88888888-8 \
  -H "Authorization: Token $API_TOKEN"

# Certificación
curl "https://app.apigateway.cl/api/v2/sii/dte/contribuyentes/autorizado/88888888-8?certificacion=1" \
  -H "Authorization: Token $API_TOKEN"

La resolución viene en data.resolucion. Esta es la respuesta en certificación:

{
    "data": {
        "rut": "88888888-8",
        "autorizado": true,
        "resolucion": {
            "numero": 0,
            "fecha": "2025-11-20"
        }
    }
}

Usa resolucion.fecha como fecha_resolucion y resolucion.numero como numero_resolucion. En certificación el número siempre es 0.

En el sitio del SII, buscando al emisor por su RUT en el listado de empresas autorizadas: certificación o producción.

Consúltala una vez y guárdala

La resolución no cambia de un envío a otro. Consúltala una vez por emisor y ambiente, y guárdala en la configuración de la empresa. Más detalles en Resolución de autorización.

La respuesta

Esta es la respuesta para el sobre del ejemplo. Los valores largos están acortados con ..., y de documents se muestran solo los campos propios del sobre: el resto es igual a la respuesta de builder/build.

{
    "data": {
        "tag": "EnvioDTE",
        "xml": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0i...",
        "documents": [
            {
                "document_id": "88888888-8_T033F000000001",
                "document_xml": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8RFRF...",
                "document_auth": {
                    "FchResol": "2025-11-20",
                    "NroResol": 0
                },
                "...": "los demás campos de builder/build (ver el paso 1)"
            }
        ],
        "caratula": {
            "@attributes": {
                "version": "1.0"
            },
            "RutEmisor": "88888888-8",
            "RutEnvia": "11222333-9",
            "RutReceptor": "60803000-K",
            "FchResol": "2025-11-20",
            "NroResol": 0,
            "TmstFirmaEnv": "2026-10-30T09:23:51",
            "SubTotDTE": [
                {
                    "TpoDTE": 33,
                    "NroDTE": 1
                }
            ]
        }
    }
}
Campo Qué es ¿Guardarlo?
xml El sobre firmado, en base64. Es lo que enviarás al SII en el paso 4. Sí, siempre
tag El tipo de sobre: EnvioDTE, o EnvioBOLETA si son boletas. No
caratula La carátula del sobre: emisor, quién envía (RutEnvia, el RUT del certificado), a quién va dirigido, la resolución, la fecha de firma y cuántos documentos de cada tipo lleva (SubTotDTE). Opcional
documents Los documentos que van dentro del sobre, con los mismos campos que entrega builder/build. document_auth trae la resolución que indicaste. No
Guarda solo lo necesario

Cada documento de documents incluye los datos del certificado, con su llave privada (certificate.pkey). No guardes la respuesta completa en tu base de datos ni en tus logs: guarda el xml del sobre.

Varios documentos en un sobre

Si emites muchos documentos a la vez, puedes enviarlos en un solo sobre con dispatcher/createMany. Recibe una lista de bolsas en el parámetro bags, todas del mismo emisor:

{
    "parameters": {
        "bags": [
            {
                "xmlDocument": "...DTE 1 en base64...",
                "certificate": { "certificate": "...", "privateKey": "..." },
                "emisor": { "rut": "88888888-8", "razon_social": "Mi Empresa SpA", "autorizacion_dte": { "fecha_resolucion": "2025-11-20", "numero_resolucion": 0 } },
                "receptor": { "rut": "60803000-K" }
            },
            {
                "xmlDocument": "...DTE 2 en base64..."
            }
        ]
    }
}

El certificado, el emisor y el receptor del sobre se toman de la primera bolsa.

¿Uno por sobre o varios?

Para empezar, usa un documento por sobre: es más simple saber qué documento tiene cada Track ID, y si el SII rechaza uno no afecta a los demás. Agrupa documentos en un sobre solo cuando el volumen lo justifique.

Un sobre por tipo de documento

La llamada es la misma para todos los documentos: envía en xmlDocument el document_xml del documento, sea una factura o una boleta. La API elige el tipo de sobre y lo informa en tag:

Documento en xmlDocument tag de la respuesta caratula.SubTotDTE Se envía con (paso 4)
Factura, nota o guía EnvioDTE [{ "TpoDTE": 33, "NroDTE": 1 }] sii_dte/sendXmlDocument
Boleta EnvioBOLETA [{ "TpoDTE": 39, "NroDTE": 1 }] sii_boleta/sendXmlDocument

El resto de la respuesta tiene los mismos campos en los dos casos.

Un sobre lleva solo boletas o solo los demás DTE, nunca ambos. Si intentas juntarlos (por ejemplo, con createMany, ver Varios documentos en un sobre), la API responde:

El tipo de documento Factura electrónica no se puede agregar a un sobre de tipo ENVIO_BOLETA.
En esta página

Última actualización el 05/11/2026 por Anonymous