API de facturación electrónica para Chile, conectada directo al SII
Emite boletas, facturas, notas de crédito y débito, guías de despacho y facturas de compra desde tu POS, tu e-commerce o tu ERP con una sola API REST, con el certificado digital y los folios (CAF) de tu empresa. La API habla directo con el Servicio de Impuestos Internos, sin otro proveedor de por medio.
La misma API que mueve la facturación de taller.bike y farmyx.cl.
Los 8 documentos tributarios electrónicos, con un solo endpoint
Un solo POST emite cualquiera de los 8 tipos de DTE. Tú mandas { tipo } y la API elige el canal del SII: las boletas viajan por el canal REST del SII y el resto por el canal de upload. Son dos protocolos distintos, y no tienes que implementar ninguno.
| Código | Documento | Canal del SII | Precio de cada línea |
|---|---|---|---|
| 33 | Factura electrónica | upload | neto |
| 34 | Factura no afecta o exenta electrónica | upload | neto |
| 39 | Boleta electrónica | REST | con IVA incluido |
| 41 | Boleta exenta electrónica | REST | con IVA incluido |
| 46 | Factura de compra electrónica | upload | neto |
| 52 | Guía de despacho electrónica | upload | neto |
| 56 | Nota de débito electrónica | upload | neto |
| 61 | Nota de crédito electrónica | upload | neto |
Boletas con precio bruto y todo lo demás con precio neto no es una convención nuestra: es como el SII define cada formato. Mezclarlos descuadra el total contra el detalle y el documento se rechaza.
Emitir una boleta: una sola llamada
Te autenticas con la cabecera X-Api-Key. Tu empresaId te lo dice GET /api/me, la primera llamada que conviene hacer.
curl -X POST https://api.miaplicacion.cl/api/empresas/{empresaId}/dte \
-H "X-Api-Key: mk_cert_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"tipo": 39,
"items": [
{ "nombre": "Cambio de aceite", "cantidad": 1, "precio": 35000 },
{ "nombre": "Filtro de aire", "cantidad": 2, "precio": 8990 }
],
"medioPago": "efectivo",
"ventaId": "POS-3-000871"
}'
Respuesta · 201 Created
{
"success": true,
"folio": 5310,
"tipoDTE": 39,
"fechaEmision": "2026-10-02",
"total": 52980,
"rutEmisor": "78287987-1",
"rutReceptor": "66666666-6",
"trackid": "4818203",
"emitidaId": "66f0a1b2c3d4e5f607182931",
"emisorDirectoSii": true,
"message": "Boleta electrónica 5310 enviada al SII (trackid 4818203)",
"rawResponse": {
"rut_emisor": "78287987-1",
"trackid": 4818203,
"fecha_recepcion": "2026-10-02 13:05:41",
"estado": "REC",
"file": "EnvioBOLETA_78287987_1_1790957141000.xml"
}
}
- Sin
cliente, la boleta va al consumidor final (66666666-6). Los 52.980 del total incluyen el IVA: 44.521 neto + 8.459 IVA. - Con
emitidaIdconsultas el estado del documento en el SII (GET …/dte/:id/estado), bajas el XML firmado y lo anulas. El PDF se pide por folio. - Una factura 33 lleva además el receptor completo (RUT, razón social, giro, dirección y comuna) y los precios netos. La documentación trae un ejemplo por cada tipo.
Todos los errores juntos, antes de gastar el folio
Un folio del CAF se consume en el momento en que se pide, no cuando el SII acepta el documento. Por eso la API valida todo el payload antes de tocar el CAF y te devuelve todos los errores juntos en detalles[]: corriges una vez, no en N intentos. Una factura 33 con siete errores responde:
{
"error": "Payload inválido",
"detalles": [
"RUT de receptor inválido: \"76123456-1\".",
"El DTE 33 exige el giro del receptor.",
"items[0]: \"precio\" debe ser un número >= 0.",
"items[1]: \"exento\" debe ser true o false (llegó \"si\").",
"formaPago debe ser 1 (contado), 2 (crédito) o 3 (sin costo).",
"ventaId debe ser texto o número (llegó true).",
"ambiente debe ser \"certificacion\" o \"produccion\" (llegó \"prod\"). Sin el campo, el documento sale en el ambiente configurado para la empresa."
]
}
- Sin folios del tipo, la respuesta es un 409
NO_FOLIOSque tampoco consumió nada. - Si el SII rechaza el documento, su folio vuelve al pool y se reutiliza antes que los nuevos, salvo el rechazo con código 101 (folio ya recibido por el SII), que no se puede reutilizar.
Claves de certificación y de producción separadas
mk_cert_…escribe siempre en el ambiente de certificación del SII, aunque tu empresa ya esté en producción. Pedir producción con ella responde 403AMBIENTE_NO_AUTORIZADO: pruebas sin riesgo de emitir un documento real por error.mk_prod_…emite en el ambiente de tu empresa. En producción cada documento es real y tiene efectos tributarios.- Cada key tiene permisos por scope (emitir, leer, anular, folios…) y pertenece a un proyecto, así sabes de qué sistema vino cada documento.
- Las keys se crean desde el panel y se muestran una sola vez: el servidor guarda solo su SHA-256. Una API key no puede tocar el certificado digital, el CAF ni el ambiente de la empresa.
Webhooks: el veredicto del SII sin encuestar
En vez de consultar el estado de cada documento, recibes un POST en tu servidor cuando el SII entrega su veredicto:
dte.aceptado: el SII aceptó el documento.dte.aceptado_reparos: aceptado con reparos.dte.rechazado: rechazado por el SII.dte.reemitido: el documento se reemitió tras un rechazo.folios.bajos: los folios disponibles de un tipo bajaron del umbral.
Cada entrega va firmada con HMAC-SHA256 en la cabecera X-MiAplicacion-Firma. Si tu servidor no responde con un 2xx, se reintenta: seis intentos en total, hasta unas 7 horas después del hecho. Las suscripciones se administran desde el panel.
PDF y verificación por QR
- El PDF de cada documento sale en ticket de 80 mm, ticket de 58 mm o carta, con tu logo y tus preferencias de impresión. Las facturas y las guías de venta tienen además su copia cedible.
- Cada PDF lleva un enlace y un código QR a
app.miaplicacion.cl/v/…: quien tenga el documento en papel confirma que existe y su estado ante el SII, sin ver los datos del receptor. - Las boletas se verifican además en la consulta pública de boletas que el SII exige a todo emisor.
Lo que necesita una integración real
- Códigos de producto por línea (
items[].codigos): hasta 5 por línea, como el código interno (INT1) o elEAN13. Viajan en el XML del documento. - Descuentos y recargos globales (
descuentosRecargos), en porcentaje o en pesos, con los totales ya calculados como los calcula el SII. No aplican a la factura de compra (46) ni a la guía de despacho (52). - Líneas exentas dentro de un documento afecto (
items[].exento). - Emisión masiva: varios documentos en una sola petición (
POST …/dte/lote). - Anular con una llamada (
POST …/dte/:id/anular): la API emite la nota de crédito que corresponde (o la nota de débito, si lo que anulas es una nota de crédito). - Auditoría tributaria y contabilidad: con los scopes que les des, tus keys leen también el F29, el registro de compras y ventas y la renta desde el portal del SII, y los asientos, libros y balance.
Precios
Todos los planes incluyen panel web, API, webhooks y los 8 tipos de documento. Precios mensuales por empresa, más IVA.
| Plan | Precio mensual | Documentos al mes | Usuarios | Documento adicional |
|---|---|---|---|---|
| Emprende | $12.000 + IVA | 500 | 1 | 0,0048 UF |
| Negocio | $24.000 + IVA | 2.000 | 5 | 0,0032 UF |
| Crecimiento | $40.000 + IVA | 5.000 | 15 | 0,0016 UF |
| Alto volumen | $80.000 + IVA | 25.000 | 50 | 0,0004 UF |
| Corporativo | A medida | A medida | A medida | A medida |
- El documento adicional, sobre el límite del plan, se cobra en UF al valor del día de facturación.
- Pagando por adelantado: 10 % de descuento por 6 meses o más y 20 % por 12 meses. El descuento aplica solo al plan, nunca a la certificación.
Certificación ante el SII (pago único + IVA)
Si es la primera vez que tu empresa emite esos documentos de forma electrónica, el SII exige certificarla. Lo hacemos por ti desde la plataforma: postulación, sets de prueba, libros, simulación y muestras impresas. Si ya estás autorizado con otro proveedor, no necesitas hacerlo de nuevo.
| Certificación | Documentos que habilita | Precio |
|---|---|---|
| Factura electrónica | 33, 56 y 61, y libros de compra y venta | $40.000* |
| Boleta electrónica | 39 y 41 | $25.000* |
| Factura exenta | 34 | $30.000 |
| Guía de despacho | 52 (requiere la de factura electrónica) | $25.000 |
| Factura de compra | 46 (requiere la de factura electrónica) | $25.000 |
* Gratis con los planes Negocio, Crecimiento o Alto volumen pagados por 6 meses o más.
Preguntas frecuentes
¿Necesito certificado digital para usar la API?
Sí, para emitir documentos reales. Cada empresa emite con su propio certificado digital y sus propios folios (CAF). El certificado lo carga un administrador desde el panel: una API key no puede tocar el certificado, el CAF ni el ambiente. Mientras lo consigues, puedes probar todo en modo demo.
¿Tengo que certificarme ante el SII? ¿Cómo se hace?
Solo si es la primera vez que tu empresa emite esos documentos de forma electrónica; si ya estabas autorizado con otro proveedor, no. Si te toca, lo hacemos por ti desde la plataforma: postulación, sets de prueba, libros, simulación y muestras impresas. Es un pago único por tipo de documento, y la certificación de factura y la de boleta son gratis con los planes Negocio, Crecimiento o Alto volumen pagados por 6 meses o más.
¿Hay un ambiente de pruebas?
Sí. Las API keys de certificación (mk_cert_) escriben siempre en el ambiente de certificación del SII, donde los documentos no tienen validez tributaria, aunque tu empresa ya esté en producción. Las de producción (mk_prod_) emiten documentos reales. Así no emites un documento real por error mientras pruebas.
¿Boletas y facturas van por la misma API?
Sí. Un solo endpoint (POST /api/empresas/{empresaId}/dte) emite los 8 tipos. Tú mandas el tipo y la API elige el canal del SII: las boletas (39 y 41) viajan por el canal REST y el resto por el canal de upload. Las boletas llevan el precio con IVA incluido y los demás documentos, el precio neto.
¿Qué pasa si el SII rechaza un documento?
Te avisamos por webhook (dte.rechazado) y en el panel, donde puedes reemitirlo. El folio de un documento rechazado vuelve al pool y se reutiliza antes que los nuevos, salvo que el SII lo rechace con el código 101 (folio ya recibido), porque ese folio ya está consumido del lado del SII.
¿Qué pasa si mi petición tiene errores?
La API valida todo el payload antes de pedir el folio y devuelve todos los errores juntos en detalles[], con un 400. Como no se tocó el CAF, no se consumió ningún folio: corriges y vuelves a enviar.
¿Cuánto cuesta un documento adicional?
Depende del plan: 0,0048 UF en Emprende, 0,0032 UF en Negocio, 0,0016 UF en Crecimiento y 0,0004 UF en Alto volumen. Se cobra en UF al valor del día de facturación, solo por los documentos que pasen del límite mensual del plan.
¿La API se cobra aparte?
No. Todos los planes incluyen panel web, API, webhooks y los 8 tipos de documento, desde $12.000 + IVA al mes.
¿Listo para integrar? La documentación es pública: no necesitas una cuenta para leerla.
¿Dudas? Escríbenos a contacto@miaplicacion.cl o por WhatsApp al +56 9 4289 5945.