API tributaria SUPOS

Emite documentos tributarios desde tu software sin construir todo desde cero

Conecta tu ERP, ecommerce, app de ventas o sistema interno con SUPOS para emitir boletas y facturas electrónicas usando certificado, CAF, folios, firma XML, envío al SII y trazabilidad multiempresa desde nuestra infraestructura. Un solo endpoint recibe el DTE solicitado y SUPOS separa internamente el flujo de boletas o facturas según documento.tipo.

Respuesta directa

La API tributaria de SUPOS permite que sistemas externos emitan DTE sin resolver internamente firma, CAF, folios, ambiente de certificación, ambiente productivo y seguimiento SII. Esto ayuda a salir antes a producción, reducir errores tributarios y dejar cada emisión trazable para clientes, integradores y empresas con operación real.

Desarrollador integrando una API tributaria con operacion comercial en segundo planoImagen referencial de integración tributaria

Base URL

https://www.supos.cl/api/public/v1

POST /documentos/validate

Valida estructura para 33, 34, 39 o 41 sin emitir.

POST /documentos/simulate

Simula respuesta sin folio, XML ni SII.

POST /documentos

Emite según API Key: sandbox a SII certificación, live a SII producción. Sandbox también usa certificado y CAF reales de certificación.

GET /documentos/{id}

Consulta estado por document_id o external_id.

POST /boletas

Alias compatible para integraciones existentes.

Certificación por tipo

Sandbox emite documentos reales contra SII certificación y requiere certificado digital con folios CAF configurados. Producción exige boleta_certificada o factura_certificada según el DTE.

Un endpoint DTE

Envía tipo 39/41 para boletas o 33/34 para facturas. SUPOS selecciona el endpoint SII correcto y mantiene el contrato público estable.

Trazabilidad completa

Cada request queda logueado con empresa, external_id, estado SII, folio, track ID, XML y documento emitido.

Qué clave necesitas para cada operación

El integrador administra una cartera de empresas. Sus credenciales de consulta y las claves de emisión por contribuyente tienen funciones diferentes; no son intercambiables.

supos_read_…

Consulta del integrador

Consulta empresas autorizadas, datos tributarios, consumo, liquidaciones e historial de webhooks. No emite documentos y no corresponde a un ambiente sandbox o producción.

Mi servicio API → Integración y facturación → Crear clave de consulta.

supos_sandbox_…

Emisión en certificación

Se asocia a una empresa y permite emitir contra SII certificación. Requiere sus datos tributarios, certificado y CAF de certificación. Sandbox no es la simulación sin emisión.

Mi servicio API → Contribuyentes → API keys de la empresa → Sandbox / certificación.

supos_live_…

Emisión en producción

Se asocia a una empresa y permite emitir documentos reales en producción. Requiere contratación vigente y habilitación tributaria del contribuyente.

Mi servicio API → Contribuyentes → API keys de la empresa → Producción.

Consultar la cartera

GET https://supos.cl/api/public/integrator.php?action=contributors
Authorization: Bearer supos_read_xxx

Otras consultas: action=contributor&empresa_id=ID, action=billing&period=YYYY-MM y action=webhooks.

Emitir para una empresa en certificación

POST https://www.supos.cl/api/public/v1/documentos
Authorization: Bearer supos_sandbox_xxx

Crea o vincula primero al contribuyente. La clave supos_read_ no sirve para esta operación.

XML, TED y vista previa: GET https://supos.cl/api/public/document.php?id=ID&format=xml (también ted o preview), usando la clave de emisión de la empresa y ambiente correspondientes. Tu ERP genera la impresión o PDF a partir de esos datos.

Las claves completas se muestran una sola vez. Conserva cada credencial en el backend de tu SaaS. Si tu empresa usa un plan ERP, accede al servicio desde Configuración → Integraciones → API e integradores; SUPOS lo administra desde Super Admin.

Para revisar antes de integrar

Qué conviene revisar antes de usar la API tributaria

La integración conviene validarla con una empresa, certificado digital, CAF, tipos de DTE, payloads reales de negocio, estados SII y trazabilidad esperada. Así el paso desde sandbox a producción queda más claro para el equipo técnico y para la operación comercial.

Revisar integración

Ambiente y alcance

Definir sandbox, live, empresa, certificado, CAF y documentos habilitados.

Payload del documento

Alinear tipo DTE, receptor, items, descuentos, exentos, totales y referencias.

Estados y trazabilidad

Revisar external_id, folio, track ID, XML, PDF, aceptación y observaciones SII.

Paso a producción

Coordinar clave live, certificación habilitada y primeros documentos reales.

cURL boleta 39

curl -X POST https://www.supos.cl/api/public/v1/documentos \
  -H "Authorization: Bearer supos_sandbox_xxx" \
  -H "Content-Type: application/json" \
  -d '{"external_id":"pedido-10023","documento":{"tipo":39,"fecha_emision":"2026-10-13","forma_pago":"EFECTIVO"},"receptor":{"rut":"66666666-6","razon_social":"Cliente Final","direccion":"Sin dirección","comuna":"Santiago","ciudad":"Santiago"},"items":[{"nombre":"Producto de prueba","cantidad":1,"precio_unitario":11900,"exento":false}],"totales":{"monto_total":11900}}'

cURL factura 33

curl -X POST https://www.supos.cl/api/public/v1/documentos \
  -H "Authorization: Bearer supos_sandbox_xxx" \
  -H "Content-Type: application/json" \
  -d '{"external_id":"pedido-factura-10024","documento":{"tipo":33,"fecha_emision":"2026-10-13","forma_pago":"TRANSFERENCIA"},"receptor":{"rut":"76000000-0","razon_social":"EMPRESA DEMO SPA","giro":"VENTA AL POR MENOR EN COMERCIOS ESPECIALIZADOS","direccion":"Avenida Ejemplo 123","comuna":"Santiago","ciudad":"Santiago"},"items":[{"nombre":"Producto facturable","cantidad":1,"precio_unitario":35000,"exento":false}],"totales":{"monto_total":35000}}'

cURL simulación

curl -X POST https://www.supos.cl/api/public/v1/documentos/simulate \
  -H "Authorization: Bearer supos_sandbox_xxx" \
  -H "Content-Type: application/json" \
  -d '{"external_id":"pedido-10023","documento":{"tipo":39,"fecha_emision":"2026-10-13","forma_pago":"EFECTIVO"},"receptor":{"rut":"66666666-6","razon_social":"Cliente Final","direccion":"Sin dirección","comuna":"Santiago","ciudad":"Santiago"},"items":[{"nombre":"Producto de prueba","cantidad":1,"precio_unitario":11900,"exento":false}],"totales":{"monto_total":11900}}'

cURL productivo

curl -X POST https://www.supos.cl/api/public/v1/documentos \
  -H "Authorization: Bearer supos_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"external_id":"pedido-10023","documento":{"tipo":39,"fecha_emision":"2026-10-13","forma_pago":"EFECTIVO"},"receptor":{"rut":"66666666-6","razon_social":"Cliente Final","direccion":"Sin dirección","comuna":"Santiago","ciudad":"Santiago"},"items":[{"nombre":"Producto de prueba","cantidad":1,"precio_unitario":11900,"exento":false}],"totales":{"monto_total":11900}}'
Sandbox emite documentos reales contra SII certificación. Para probar, se requiere certificado digital y folios CAF de certificación configurados en SUPOS.
La emisión productiva requiere clave live, empresa en PRODUCCIÓN y certificación habilitada para el tipo de DTE solicitado: boleta_certificada para 39/41 o factura_certificada para 33/34.
Los precios enviados son brutos en CLP. Para facturas afectas, SUPOS transforma internamente el total a neto e IVA antes de construir el XML tributario.

Contrato del payload

No enviar emisor: SUPOS lo obtiene desde la API Key.

Enviar receptor: para factura se exige RUT, razón social, giro, dirección y comuna.

Enviar items: nombre, cantidad, precio unitario, descuento o monto total.

Tester de payload

Valida estructura, simula sin SII o emite una prueba real contra SII certificación usando una clave sandbox. Puedes pegar payloads tipo 39, 41, 33 o 34.

Ejecuta una validación para ver la respuesta aquí.

Contrato JSON

El emisor no viaja en el payload. SUPOS lo resuelve desde la API Key y aplica certificado, folios y ambiente SII según el tipo de clave.

CampoTipoDetalle
external_idstringOpcional recomendado. Identificador único de la venta en el sistema externo. Evita duplicados.
documento.tipo33 | 34 | 39 | 41Opcional para boletas. 39 boleta afecta, 41 boleta exenta, 33 factura afecta y 34 factura exenta.
documento.fecha_emisionYYYY-MM-DDOpcional. Si no viene, SUPOS usa la fecha actual del servidor.
documento.forma_pagostringOpcional. Ej: EFECTIVO, TARJETA, TRANSFERENCIA.
receptor.rutstringOpcional en boleta, obligatorio en factura. Si no viene para boleta se usa 66666666-6.
receptor.razon_socialstringOpcional en boleta, obligatorio en factura.
receptor.girostringObligatorio para facturas 33/34.
receptor.direccionstringObligatorio para facturas 33/34. Recomendado para boletas con cliente identificado.
receptor.comunastringObligatorio para facturas 33/34.
receptor.ciudadstringOpcional. Si no viene, SUPOS usa la ciudad de la empresa o Santiago.
items[].nombrestringObligatorio. Nombre o descripción corta del producto o servicio.
items[].cantidadnumberObligatorio. Debe ser mayor a 0.
items[].precio_unitarionumberObligatorio si no envías monto_total de línea. Valores brutos en CLP; SUPOS calcula neto e IVA para DTE afectos.
items[].exentobooleanOpcional. Marca la línea como exenta. En tipo 34/41 todo el documento queda exento.
totales.monto_totalnumberOpcional. Si no viene, SUPOS calcula el total desde los items.

Errores y reglas

HTTP 401

API Key requerida, inválida o revocada.

HTTP 403

Empresa no habilitada, bloqueada, sin certificado/CAF de certificación para sandbox o sin certificación productiva para live.

HTTP 409

External ID duplicado o folios no disponibles.

HTTP 422

Payload inválido: items vacíos, cantidades o precios incorrectos.

HTTP 429

Rate limit por IP o API Key.

Usa un `external_id` único por venta. Si reintentas la misma venta, SUPOS puede detectar el duplicado y devolver el documento ya registrado.
Para usar la API, la empresa debe estar habilitada tributariamente en SUPOS. Sin certificado y CAF de certificación no podrá emitir en sandbox; sin certificación productiva no podrá emitir con clave live.
En Windows/Git Bash, si `curl` responde `CRYPT_E_NO_REVOCATION_CHECK`, agrega --ssl-no-revoke al comando. Es una validación local de revocación del certificado, no una respuesta de la API.

Respuesta de emisión

Cuando usas POST /documentos, SUPOS devuelve los datos necesarios para que tu sistema registre la operación y pueda conciliarla con el documento emitido.

success: indica si el envío fue aceptado o quedó controlado como pendiente.

folio: folio tributario asignado desde CAF.

track_id: identificador de seguimiento devuelto por SII cuando existe.

ted/timbre: datos para construir el timbre electrónico/PDF417 en representaciones impresas.

external_id: tu identificador original para idempotencia y trazabilidad.

Ejemplo JSON exitoso

{
  "success": true,
  "emitted": true,
  "emits_to_sii": true,
  "api_environment": "sandbox",
  "sii_environment": "CERTIFICACION",
  "accepted_by_sii": true,
  "pendiente": false,
  "document_id": 12345,
  "external_id": "pedido-10023",
  "folio": 1042,
  "tipo_documento": 39,
  "fecha_emision": "2026-07-18",
  "monto_total": 11900,
  "track_id": "1234567890",
  "estado_sii": "REC",
  "glosa": "",
  "receptor": {
    "rutCliente": "66666666-6",
    "razonSocial": "CLIENTE GENERICO"
  },
  "totales": {
    "monto_neto": 10000,
    "monto_exento": 0,
    "monto_iva": 1900,
    "monto_total": 11900
  },
  "ted": "<TED version=\"1.0\">...</TED>",
  "timbre": {
    "generarPDF417": true,
    "datos": {
      "rutEmisor": "77652041-1",
      "tipoDocumento": "39",
      "folio": "1042",
      "fechaEmision": "2026-07-18",
      "rutReceptor": "66666666-6",
      "montoTotal": "11900"
    }
  }
}