API LUMINOUS — Referencia v1

Formato: JSON (UTF-8) · Solo HTTPS, server-to-server. La base URL depende del ambiente de tu key:

KeyAmbienteBase URL
lum_test_…Sandbox (certificación del SII)https://pruebas.luminous.cl
lum_live_…Producción (validez tributaria real)https://luminous.cl

Si usas una key en la base URL equivocada, la API responde 400 indicándote la correcta.

Autenticación

Todas las solicitudes llevan tu API key en el header:

Authorization: Bearer lum_test_XXXXXXXX   (sandbox → ambiente de certificación del SII)
Authorization: Bearer lum_live_XXXXXXXX   (producción)

Endpoints

EndpointScopeDescripción
GET/api/public/v1/pingVerifica la key: app, ambiente, scopes, plan
POST/api/public/v1/dte/emitirdte:emitirCrea, firma y envía un DTE al SII
GET/api/public/v1/dte/{tipo}/{folio}dte:leerEstado, track ID y montos del documento
GET/api/public/v1/dte/{tipo}/{folio}/pdf?copia=pdf:leerPDF (original | cedible | ambas)
GET/api/public/v1/dte/{tipo}/{folio}/xmldte:leerXML firmado (ISO-8859-1)

Emitir un DTE

Header obligatorio: Idempotency-Key (8–120 caracteres, único por emisión — por ejemplo el ID de tu pedido). Si reintentas con la misma key de idempotencia, recibes la misma respuesta y no se emite un segundo documento.

Tipos soportados

tipo_dteDocumentoNotas
33Factura electrónicaAfecta (IVA 19%). Receptor con dirección/comuna.
34Factura exentaÍtems exentos automáticamente.
39 / 41Boleta electrónica (afecta / exenta)Precio de la boleta afecta es BRUTO (IVA incluido).
46Factura de compraRetención total de IVA (cambio de sujeto) automática.
52Guía de despachoEnviar ind_traslado (1=venta, 5=traslado interno…) y opcional tipo_despacho.
56 / 61Nota de débito / créditoRequieren referencias al documento que modifican.

Request

POST /api/public/v1/dte/emitir
Authorization: Bearer lum_test_XXXX
Idempotency-Key: pedido-8841-factura
Content-Type: application/json

{
  "tipo_dte": 33,
  "receptor": {
    "rut": "77043599-4",
    "razon_social": "Techmell SpA",
    "giro": "Venta de bicicletas",
    "direccion": "Rio Claro 8300",
    "comuna": "Pudahuel",
    "ciudad": "Santiago"
  },
  "items": [
    {"nombre": "Bicicleta MTB 29", "cantidad": 1, "precio_unitario": 350000},
    {"nombre": "Casco", "cantidad": 2, "precio_unitario": 25000, "descuento_pct": 10}
  ],
  "forma_pago": 1,
  "enviar": true
}

Campos opcionales: fecha_emision (AAAA-MM-DD), referencias (lista de {tipo_doc_ref, folio_ref, fecha_ref, cod_ref, razon_ref}; cod_ref 1=anula, 2=corrige texto, 3=modifica monto), enviar (default true; con false el documento queda firmado sin enviar).

Respuesta

{
  "exito": true,
  "datos": {
    "documento_id": 812,
    "tipo_dte": 33,
    "folio": 128,
    "ambiente": "CERT",
    "totales": {"monto_neto": 395000, "monto_iva": 75050, "monto_total": 470050},
    "enviado": true,
    "track_id": "0252583311"
  },
  "mensaje": "Documento emitido."
}

Códigos de error

HTTPSignificado
400Solicitud inválida (falta Idempotency-Key, tipo no soportado, ítems mal formados)
401API key ausente, inválida o revocada
402Cuota mensual de documentos agotada — sube de plan
403La key no tiene el scope requerido
404Documento no encontrado (de tu empresa y ambiente)
422El documento no pudo crearse (validación tributaria: folios agotados, receptor incompleto…) — el mensaje indica la causa
429Rate limit por minuto excedido, o demasiados intentos de autenticación fallidos
5xxError interno — reintenta con la MISMA Idempotency-Key (no duplica el documento)

Buenas prácticas

Pasar a producción

Para emitir con validez tributaria tu empresa necesita: certificado digital vigente, folios CAF cargados, configuración SII (resolución) y la certificación ante el SII — nuestro equipo la hace contigo usando el módulo de certificación asistida de LUMINOUS. Al completarla, te entregamos tu key lum_live_. Solicita tu acceso aquí.