Docs · API DTE
Referencia de la API

API de DTE: emite facturas y boletas electrónicas al SII

Emite facturas, boletas, notas de crédito/débito y guías de despacho del SII directamente desde tu ERP, e-commerce o POS. YAMT genera el XML, lo firma con tu certificado, añade el timbre PDF417 y lo envía al SII — tú solo mandas JSON. Una API REST de facturación electrónica para Chile, sin SOAP ni manejo de XML de tu lado.

REST · JSON Sin SOAP ni XML Certificado custodiado Sandbox incluido

Introducción #

Si tienes un sistema propio necesitas emitir DTE desde tu aplicación. La API de YAMT integra la facturación electrónica del SII con endpoints JSON simples, sin que tengas que manejar SOAP, XML ni almacenar certificados en tu servidor.

Todos los endpoints viven bajo https://app.yamt.com/api y se enrutan por el RUT del emisor:

https://app.yamt.com/api/{rut}/{endpoint}

El {rut} es el del emisor (empresa que factura), con guión y dígito verificador — por ejemplo 76123456-7. Todas las respuestas son JSON con un campo ok booleano.

Autenticación #

La API usa API keys con formato yamt_…. Genéralas y revócalas desde tu dashboard (máximo 5 activas por cuenta). Cada key se asocia a un emisor y a un rol.

Envía la key en el header Authorization como Bearer token:

Headers
Authorization: Bearer yamt_a1b2c3d4e5f6...
Content-Type: application/json
RolPuede leerPuede emitir
owner
editor
viewerNo
🔑

Tu certificado digital .p12 queda custodiado en YAMT. Nunca viaja en las requests: la firma ocurre en nuestros servidores. El ambiente (producción o sandbox) lo define la configuración SII del emisor, no la key.

Quickstart #

Emitir una factura electrónica (tipo 33) en una sola llamada:

cURL
curl -X POST https://app.yamt.com/api/76123456-7/emitir \
  -H "Authorization: Bearer yamt_TU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": 33,
    "receiver": {
      "rut": "12345678-9",
      "name": "Comercial Ejemplo Ltda",
      "activity": "Venta al por menor",
      "address": "Av. Siempre Viva 742",
      "city": "Santiago",
      "email": "pagos@ejemplo.cl"
    },
    "items": [
      { "name": "Asesoría mensual", "qty": 1, "price": 150000 },
      { "name": "Hosting", "qty": 12, "price": 8000 }
    ]
  }'

YAMT calcula neto, IVA y total automáticamente, consume un folio del CAF, firma y envía al SII. La respuesta incluye el folio asignado, el track_id y las URLs del PDF y XML.

Ambientes y sandbox #

El ambiente lo determina la configuración SII del emisor (sii_ambiente), no la API key.

  • Sandbox (emisor en ambiente de prueba): la emisión valida y guarda el documento localmente, sin enviarlo al SII. La respuesta trae env: "sandbox", sii: null y no genera track_id. Ideal para validar tu integración sin costo.
  • Producción / live: valida certificado y folios, firma, envía al SII y devuelve env: "live" con el bloque sii (estado y track id).

El mismo código funciona en ambos ambientes. Empieza en sandbox y cambia el emisor a producción desde el dashboard cuando estés listo — no tienes que tocar tu integración.


Emitir un DTE #

La documentación completa del endpoint principal — payload, tipos de documento, campos del request y estructura de la respuesta — vive en su propia página.

Ver documentación de emisión →


Consultar estado en el SII #

POST/api/{rut}/emision_estado_dte

Consulta el estado de un DTE ya emitido en el SII. Body: type y folio.

cURL
curl -X POST https://app.yamt.com/api/76123456-7/emision_estado_dte \
  -H "Authorization: Bearer yamt_TU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "type": 33, "folio": 137 }'

Listar emisiones #

GET/api/{rut}/emisiones

Lista los documentos emitidos, con filtros y paginación. Query params:

ParamDescripción
tipo_dteFiltra por tipo de documento.
estado_siiFiltra por estado SII.
desde / hastaRango de fechas YYYY-MM-DD.
qBúsqueda libre (receptor, folio…).
page / limitPaginación. Default 30 por página.

Respuesta: { "ok": true, "data": [...], "total": N, "page": 1, "limit": 30 }.

Descargar PDF y XML #

GET/api/{rut}/pdf/{type}/{folio}
GET/api/{rut}/xml/{type}/{folio}

Descarga el PDF con timbre PDF417 o el XML firmado. Autenticación por API key o por el token público tk que viene en pdf_url / xml_url (útil para compartir el documento sin exponer la key).

  • ?download=1 — fuerza descarga como adjunto.
  • ?base64=1 — devuelve el archivo en base64 dentro de un JSON.

Folios CAF #

GET/api/{rut}/folios

Consulta los folios CAF disponibles por tipo de documento.

POST/api/{rut}/folios_sii

Solicita nuevos rangos de folios al SII. Body: tipo_dte y cantidad.


Errores, anulación y FAQ #

Códigos de error de la API, cómo anular un DTE mediante nota de crédito y respuestas a las preguntas más frecuentes viven en su propia página.

Ver errores y FAQ →

Roadmap #

  • Webhooks de estado SII — notificación a tu URL cuando el SII acepta, rechaza u observa un DTE.
  • SDKs oficiales — PHP, Python y Node.js.
✉︎

¿Dudas o quieres acceso anticipado? Escríbenos desde el formulario de contacto o genera tus API keys en app.yamt.com.