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.
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:
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:
Authorization: Bearer yamt_a1b2c3d4e5f6...
Content-Type: application/json
| Rol | Puede leer | Puede emitir |
|---|---|---|
owner | Sí | Sí |
editor | Sí | Sí |
viewer | Sí | No |
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 -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: nully no generatrack_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 bloquesii(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.
Consultar estado en el SII #
Consulta el estado de un DTE ya emitido en el SII. Body: type y folio.
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 #
Lista los documentos emitidos, con filtros y paginación. Query params:
| Param | Descripción |
|---|---|
tipo_dte | Filtra por tipo de documento. |
estado_sii | Filtra por estado SII. |
desde / hasta | Rango de fechas YYYY-MM-DD. |
q | Búsqueda libre (receptor, folio…). |
page / limit | Paginación. Default 30 por página. |
Respuesta: { "ok": true, "data": [...], "total": N, "page": 1, "limit": 30 }.
Descargar PDF y XML #
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 #
Consulta los folios CAF disponibles por tipo de documento.
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.
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.