Prueba gratis 7 días
Volver al inicioDOCUMENTACIÓN / API REST
API REST · OpenAPI 3.0 · JSON

Documentación de la API DTECoreEmite DTE ante el SII con una llamada HTTP.

Facturas, boletas, notas de crédito y débito, guías de despacho y DTE de exportación desde tu ERP, POS o ecommerce. La API firma, timbra, asigna folios, arma el PDF y el XML y, en producción, envía al SII.

Autenticación · X-Api-Keycurl
curl -X POST "https://api.tu-instancia.cl/dte/facturas/emitir" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: $DTECORE_API_KEY" \
  -d @factura.json
La URL y la key están en tu panel: Endpoint / API Key
BASE https://{tu-instancia}AUTH X-Api-Key o JWTEJEMPLOS colección PostmanSALIDA JSON · PDF · XML
01 / Primeros pasos

De cero a tu primer documento.

  1. 01Crea tu cuenta

    Regístrate y prueba 7 días gratis, en simulación (no se envía al SII) o en producción.

  2. 02Copia tu URL y tu API key

    En el panel, sección Endpoint / API Key. Cada cuenta tiene su propia URL de API.

  3. 03Carga tus folios

    Sube el CAF que descargas del SII con POST /dte/caf y revisa los folios disponibles por tipo.

  4. 04Emite y consulta

    Envía el JSON del documento y consulta su estado en el SII.

02 / Autenticación

Una key por cuenta, en cada llamada.

Envía el header X-Api-Key en cada solicitud, como lo hace la colección Postman. Si prefieres Bearer, inicia sesión con tu usuario del portal (o cambia la key en POST /auth/api-key/login) y envía el token en Authorization. Sin credenciales válidas la API responde 401. Usa la key solo desde tu servidor: nunca la pongas en una app web o móvil.

Opción A · X-Api-Keyrecomendada
curl -X POST "https://api.tu-instancia.cl/dte/facturas/emitir" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: $DTECORE_API_KEY" \
  -d @factura.json
Opción B · JWT Bearer/auth/login
# 1. Inicia sesión con tu usuario del portal
curl -X POST "https://api.tu-instancia.cl/auth/login" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"email":"usuario@empresa.cl","password":"<password>"}'

# 2. Envía el access_token como Bearer
curl "https://api.tu-instancia.cl/dte/caf/ambiente" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer $DTECORE_JWT"
03 / Ejemplos

Los documentos que más se emiten.

Los cuerpos y respuestas son los de la colección Postman de DTECore, probados contra la API en simulación (los RUT, nombres y montos son ficticios). Mismo formato para todos los tipos: cambia la ruta y los campos propios de cada documento.

POST/dte/facturas/emitir

Factura a crédito (30 días) con precios netos: precioSubtotal = precio × cantidad y el total incluye el IVA. La respuesta trae el folio y los enlaces de descarga; con retornarPdf o retornarXml en true también el PDF o el XML en base64.

Cuerpo · application/jsonPOST /dte/facturas/emitir
{
  "codigoDte": 33,
  "rutOperador": "76543210-3",
  "idOperacion": "OP-33-0001",
  "folio": null,
  "fechaEmision": "2026-10-09",
  "total": 11900,
  "descuentoGlobal": 0,
  "montoPago": "11900",
  "vuelto": "0",
  "medioPago": "TR",
  "FmaPago": "2",
  "valoresConIva": false,
  "formatoPdf": "carta",
  "disenoPdfCarta": "diseno2",
  "retornarPdf": false,
  "retornarXml": false,
  "modoPdfSalida": "async",
  "modoEntrada": "json",
  "enviarCorreo": false,
  "sucursalEmision": "CASA MATRIZ",
  "sucursalCodigo": "1",
  "cliente": {
    "idCliente": 0,
    "rut": "77777777",
    "digito": "7",
    "razonSocial": "CLIENTE DEMO LIMITADA",
    "giro": "COMERCIO AL POR MENOR",
    "direccion": "AV CLIENTE 456",
    "ciudad": "SANTIAGO",
    "comuna": "PROVIDENCIA",
    "contacto": "",
    "fono": "",
    "email": "compras@cliente-demo.cl",
    "cargo": "",
    "nombreSucursal": ""
  },
  "detalles": [
    {
      "linea": 1,
      "codigo": "P001",
      "descripcion": "Servicio de soporte mensual",
      "DscItem": "",
      "precio": 10000,
      "cantidad": 1,
      "precioPorcentajeDescuento": 0,
      "precioDescuento": 0,
      "precioSubtotal": 10000,
      "esExento": false,
      "UnmdItem": "UN"
    }
  ],
  "referencias": [],
  "diasPlazoPago": 30
}
Respuesta · 200colección Postman
{
  "folio": 12,
  "esSimulacion": true,
  "xmlBase64": null,
  "pdfBase64": null,
  "pdfEstado": "no_solicitado",
  "documentos": {
    "pdf": "https://api.tu-instancia.cl/dte/documentos/33/12/pdf",
    "pdfEstado": "https://api.tu-instancia.cl/dte/documentos/33/12/pdf/estado",
    "xml": "https://api.tu-instancia.cl/dte/documentos/33/12/xml",
    "envioXml": "https://api.tu-instancia.cl/dte/documentos/33/12/envio-xml"
  }
}
04 / Reglas del juego

Errores, permisos y ambientes.

Errores claros

Un 400 trae la causa en error y un traceId para soporte. El documento no se emitió: corrige lo que indica el mensaje y vuelve a enviarlo.

Ver el catálogo de errores

Autenticación y permisos

401: falta la credencial o el token venció (vuelve a iniciar sesión o revisa tu API Key). 403 con PERMISO_PANTALLA: tu usuario no tiene permiso para esa acción.

Simulación y producción

En simulación los documentos se generan pero no se envían al SII (esSimulacion: true). Revisa el estado del envío al SII con las rutas de Documentos y SII.

Servicio suspendido

Si el servicio de tu cuenta está suspendido, la API responde 402. Escríbenos para reactivarlo.

Ejemplo · 400 Bad Requestapplication/json
{
  "success": false,
  "error": "JSON de emisión inválido: detalle línea 1: PrecioSubtotal (11900) es mayor que Precio × Cantidad − descuento (10000). Precio y PrecioSubtotal deben venir en el mismo modo: ambos netos (valoresConIva=false) o ambos con IVA incluido (valoresConIva=true). Revisa que no estés enviando Precio neto y PrecioSubtotal con IVA en la misma línea.",
  "codigoDte": 33,
  "traceId": "0HNP60TIV794B:00000003",
  "hint": null
}
05 / Endpoints

Mapa de la API.

Las rutas principales de la colección Postman. Todas las de integración, con sus parámetros, cuerpos y respuestas, están en la referencia.

Emisión

  • POST/dte/facturas/emitirFactura electrónica (33)
  • POST/dte/facturas-no-afectas/emitirFactura no afecta o exenta (34)
  • POST/dte/boletas/emitirBoleta electrónica (39)
  • POST/dte/boletas-exentas/emitirBoleta exenta (41)
  • POST/dte/facturas-compra/emitirFactura de compra (46)
  • POST/dte/guias/emitirGuía de despacho (52)
  • POST/dte/notas-debito/emitirNota de débito (56)
  • POST/dte/notas-credito/emitirNota de crédito (61)
  • POST/dte/facturas-exportacion/emitirFactura de exportación (110)

Documentos y SII

  • GET/dte/documentos/{codigoDte}/{folio}/pdfDescargar el PDF
  • GET/dte/documentos/{codigoDte}/{folio}/xmlDescargar el XML firmado
  • GET/dte/emitidos/{codigoDte}/{folio}/envio-siiEstado del envío al SII en la cola
  • GET/dte/sii/estado-envio/{trackId}Estado de un envío en el SII (TrackId)
  • GET/dte/sii/consulta-dte/{tipoDte}/{folio}Estado de un DTE en el SII
  • POST/dte/sii/xml-pre-firmadoEnviar al SII un XML pre-firmado

CAF y folios

  • GET/dte/cafListar los CAF
  • POST/dte/cafCargar un CAF
  • GET/dte/caf/ambienteAmbiente vigente (simulación o producción)
  • GET/dte/facturas/folios/resumenFolios disponibles (una ruta por tipo)
  • GET/dte/caf/{id}/xmlXML de un CAF (base64)

Autenticación

  • POST/auth/loginIniciar sesión con usuario y contraseña (JWT)
  • POST/auth/api-key/loginCambiar la API Key por un JWT
06 / Referencia

Referencia completa (OpenAPI).

Cada endpoint con sus parámetros, cuerpos, respuestas y esquemas, generada desde la especificación de la API.

La referencia interactiva se carga en tu navegador al llegar a esta sección. También puedes descargar la especificación OpenAPI.

¿Listo para integrar?

Prueba 7 días gratis con tu propia URL de API. ¿Algo no responde? Revisa el estado del servicio o escríbenos a contacto@dtecore.cl.