Comges DTE

Buscar en la documentación

Escribí para filtrar guías, endpoints y webhooks.

Empezar

Tu primer DTE

Con una API Key en la mano, emitir la primera factura de certificación es cuestión de minutos. Conseguir esa key toma más: el alta de la empresa ante el SII la ejecuta nuestro equipo y necesita datos que sólo tiene tu cliente. Eso es el paso 0, y es por donde hay que empezar.

Paso 0 — Dar de alta la empresa

El alta no es autoservicio: la ejecuta el equipo de Comges, porque valida el certificado digital y la clave tributaria directamente contra el SII. Si estás integrando para un cliente, esto es lo primero que hay que destrabar — sin empresa dada de alta no hay usuario, sin usuario no hay API Key, y sin API Key no hay nada que probar.

Son cinco datos, todos del contribuyente que va a emitir:

DatoDetalle
RUT de la empresaEl del contribuyente emisor.
Clave tributaria del SIILa de la empresa en sii.cl. Se usa para leer sus datos oficiales.
Certificado digital (.pfx)El archivo del certificado con el que se firman los DTE. Máximo 5 MB.
Clave del certificadoLa que abre el archivo .pfx.
RUT del titular del certificadoLa persona a nombre de quien está emitido el certificado. Puede no ser el mismo RUT de la empresa, y hay que informarlo aparte: no se lee del archivo.

Con la empresa lista, el camino corto

  1. 1

    Crea una API Key

    Genera una key de certificación (pk_test_) desde el botón "Configurar API Key" de la barra superior, o créala en el portal. Las keys nacen con scopes mínimos.

    Crear API Key
  2. 2

    Déjala cargada en este sitio

    Si la creaste desde la barra superior ya queda guardada. Si la tienes a mano, pégala ahí: se guarda solo en tu navegador (localStorage) y los ejemplos de código quedan listos para copiar.

  3. 3

    Haz tu primer request

    Ejecuta un POST a /api/public/v1/dte con un body de prueba. La respuesta trae el DTE firmado, timbrado y con folio definitivo; el envío al SII sigue en segundo plano.

    Ver ejemplo

1. Crear una API Key

Entra al portal y genera una key. Si tu usuario opera en certificación, la key sale con prefijo pk_test_ y apunta al ambiente Maullín del SII: ideal para integrar sin emitir documentos con valor tributario.

Cuando confirmes la creación verás la key completa una única vez. Cópiala al portapapeles y pasa al siguiente paso.

Crear API Key en el portal

Requiere sesión en el portal y el permiso empresa:api-keys:write. Si integrás para un tercero, es tu cliente quien hace este paso.

2. Pegarla en el portal de docs

Usa el botón Pegar API Key de la barra superior. Se guarda sólo en tu navegador (localStorage) y se inyecta automáticamente en todos los bloques de código de esta documentación, además de configurar el API Reference para que puedas ejecutar requests sin copiar la key cada vez.

3. Emitir tu primera factura

Copia este ejemplo. Si ya pegaste tu API Key, el literal $API_KEY viene reemplazado automáticamente. Fíjate en que el ambiente no se declara en el cuerpo: lo define el prefijo de tu key.

POST /api/public/v1/dte
curl -X POST https://api-publica.dtecomges.cl/api/public/v1/dte \
  -H "X-Api-Key: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tipoDte": 33,
    "transactionId": "a3bb189e-8bf9-3888-9912-ace4e6543002",
    "receptor": {
      "rut": "96790240-3",
      "razonSocial": "Cliente Demo S.A.",
      "giro": "Servicios profesionales",
      "direccion": "Av. Apoquindo 4501, Of. 901",
      "comuna": "Las Condes"
    },
    "detalles": [
      {
        "nroLinea": 1,
        "nombreItem": "Consultoría técnica febrero",
        "cantidad": 1,
        "precioUnitario": 1200000
      }
    ],
    "formaPago": 2,
    "fechaVencimiento": "2026-08-27"
  }'

Lo habitual es un 201 con el folio ya reservado del CAF. Ese folio es definitivo: podés imprimirlo y guardarlo de inmediato.

Respuesta esperada
HTTP/1.1 201 Created
Content-Type: application/json

{
  "id": "b5f8c2e1-7d93-4e8f-a12b-9c4d5e6f7a8b",
  "tipoDte": 33,
  "folio": 1842,
  "ambiente": "Certificacion",
  "fechaEmision": "2026-07-27",
  "montoNeto": 1200000,
  "montoExento": 0,
  "montoIva": 228000,
  "montoTotal": 1428000,
  "montoNF": 0,
  "estadoSii": "Pendiente",
  "trackId": null,
  "transactionId": "a3bb189e-8bf9-3888-9912-ace4e6543002",
  "creadoEn": "2026-07-27T14:30:12Z",
  "offsetUtcHoras": -4,
  "glosa": "Consultoría técnica febrero",
  "receptorRut": "96790240-3",
  "receptorRznSoc": "Cliente Demo S.A."
}

4. Consultar el estado

Con el id que devolvió la emisión, consultá el documento hasta llegar a un estado final (Aceptado, AceptadoConReparos o Rechazado).

GET /api/public/v1/dte/{id}
curl https://api-publica.dtecomges.cl/api/public/v1/dte/b5f8c2e1-7d93-4e8f-a12b-9c4d5e6f7a8b \
  -H "X-Api-Key: $API_KEY"

# Unos segundos después:
# { ..., "estadoSii": "Enviado", "trackId": 2394857620 }
# Y al cerrar el ciclo:
# { ..., "estadoSii": "Aceptado", "trackId": 2394857620 }

5. Descargar XML y PDF

Ambos existen desde la emisión: no hace falta esperar la respuesta del SII. Los dos endpoints piden la misma API Key, así que sirven para tu backend — no para mandárselos al comprador.

Descargas
# XML firmado (incluye TED y Signature)
curl https://api-publica.dtecomges.cl/api/public/v1/dte/{id}/xml \
  -H "X-Api-Key: $API_KEY" -o dte.xml

# PDF con timbre PDF417
curl "https://api-publica.dtecomges.cl/api/public/v1/dte/{id}/pdf?formato=carta" \
  -H "X-Api-Key: $API_KEY" -o dte.pdf

# Para mandárselo al comprador: la emisión ya trae enlaces firmados que
# se abren SIN API Key. No los armes vos, usalos tal como vienen.
jq -r '.xmlUrl, .pdfUrl' respuesta.json

¿Qué sigue?