Facturador Pulsando — API de Facturación Electrónica SII (1.0.0)

Download OpenAPI specification:

Soporte Facturador Pulsando: soporte@pulsandotech.cl License: Propietario

API REST para emitir y consultar Documentos Tributarios Electrónicos (DTE) chilenos a través del SII: facturas, boletas, notas de crédito/débito y guías de despacho.

Pensada para integradores: tu ERP/sistema llama esta API y nosotros nos encargamos de folios (CAF), firma XMLDSig, timbre, envío al SII y la representación impresa (PDF).

Ambientes

El ambiente (certificación / producción) lo determina tu API Key:

  • sk_test_…certificación (maullin) — documentos de prueba, sin validez tributaria.
  • sk_live_…producción (palena) — documentos reales con validez tributaria.

Puedes usar una key sk_test_ aunque tu empresa ya esté en producción, para probar sin emitir documentos reales. Los listados y reportes quedan acotados al ambiente de la key (los documentos de prueba nunca se mezclan con los reales).

Asincronía

Emitir un DTE es asíncrono: POST /dte responde 201 con el documento en estado pendiente y lo encola para envío al SII. El estado final (aceptado / rechazado) llega después; consúltalo con GET /dte/{id} o suscríbete a webhooks.

Seguridad y datos personales (Ley 21.719)

Esta API procesa datos personales (RUT, razón social, direcciones, correos). Consulta la sección "Seguridad y cumplimiento" del README para tus obligaciones como responsable de datos y las medidas que aplicamos.

DTE

Emisión y consulta de documentos tributarios electrónicos

Emitir un DTE

Crea y encola un DTE para envío al SII. El bloque emisor se toma automáticamente de tu empresa ("Mi empresa"); no lo envíes.

Reglas por tipo de documento:

  • Boletas (39/41): receptor es opcional (consumidor final).
  • NC/ND (56/61) de una boleta: receptor opcional (hereda consumidor final).
  • Guía de despacho (52): ind_traslado obligatorio y destino (transportista.dir_dest + transportista.cmna_dest) obligatorio.
  • NC/ND (56/61): el motivo (cod_ref) se deriva automáticamente del monto si referencias un documento propio (anula / corrige texto / corrige monto).
Authorizations:
ApiKeyAuth
Request Body schema: application/json
required
tipo_dte
required
integer
Enum: 33 34 39 41 43 46 52 56 61 110 111 112

33 factura afecta · 34 factura exenta · 39 boleta · 41 boleta exenta · 43 liquidación · 46 factura de compra · 52 guía de despacho · 56 nota de débito · 61 nota de crédito · 110/111/112 exportación

fecha_emision
required
string <date>

Fecha de emisión (YYYY-MM-DD) en hora de Chile.

ind_traslado
integer [ 1 .. 9 ]

Obligatorio para guía (52). 1=venta, 2=ventas por efectuar, 3=consignación, 4=entrega gratuita, 5=traslado interno, 6=otros, 7=devolución, 8=traslado exportación, 9=venta exportación

tipo_despacho
integer [ 1 .. 3 ]

Guía (52). 1=por cuenta del receptor, 2/3=por cuenta del emisor

forma_pago
integer

1=contado, 2=crédito, 3=sin costo

fecha_vencimiento
string <date>
object (Receptor)

Opcional para boletas y NC/ND de boleta; obligatorio para el resto.

required
Array of objects (Item) non-empty
required
object (Totales)
Array of objects (Referencia)
object (Transportista)

Solo para guía (52). dir_dest y cmna_dest son obligatorios para 52.

Responses

Request samples

Content type
application/json
Example
{
  • "tipo_dte": 33,
  • "fecha_emision": "2026-06-11",
  • "receptor": {
    },
  • "items": [
    ],
  • "totales": {
    }
}

Response samples

Content type
application/json
{
  • "id": 123,
  • "tipo_dte": 33,
  • "folio": 45,
  • "estado_local": "pendiente",
  • "monto_total": 119000,
  • "message": "DTE creado y encolado para envío al SII."
}

Listar DTEs

Authorizations:
ApiKeyAuth
query Parameters
q
string <= 200 characters

Búsqueda libre por razón social o RUT del receptor

rut_receptor
string <= 20 characters
tipo_dte
string

Un tipo o CSV, ej. "33,34"

grupo
string
Enum: "facturas" "boletas" "todos"
estado_local
string

pendiente, enviado, aceptado, aceptado_con_reparos, rechazado, anulado, error_envio

estado_sii
string

Un estado SII o CSV

desde
string <date>
hasta
string <date>
monto_min
integer >= 0
monto_max
integer >= 0
sort
string
Enum: "fecha_emision" "monto_total" "folio" "created_at"
dir
string
Enum: "asc" "desc"
per_page
integer [ 1 .. 200 ]
Default: 50
page
integer >= 1
Default: 1

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Resumen agregado de DTEs

Totales y desglose por tipo y estado sobre el conjunto filtrado (mismos filtros que el listado).

Authorizations:
ApiKeyAuth
query Parameters
desde
string <date>
hasta
string <date>
tipo_dte
string
estado_local
string

Responses

Response samples

Content type
application/json
{
  • "total_documentos": 0,
  • "suma_total": 0,
  • "suma_neto": 0,
  • "suma_iva": 0,
  • "suma_exento": 0,
  • "por_tipo": [
    ],
  • "por_estado": [
    ]
}

Obtener un DTE

Authorizations:
ApiKeyAuth
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "tipo_dte": 0,
  • "tipo_nombre": "string",
  • "folio": 0,
  • "fecha_emision": "2019-08-24",
  • "rut_receptor": "string",
  • "razon_receptor": "string",
  • "monto_neto": 0,
  • "monto_iva": 0,
  • "monto_exento": 0,
  • "monto_total": 0,
  • "estado_sii": "string",
  • "estado_local": "string",
  • "glosa_sii": "string",
  • "track_id": "string",
  • "ambiente": "string",
  • "anulado_por": {
    },
  • "notas_credito": [
    ],
  • "items": [
    ]
}

Descargar el XML firmado del DTE

Authorizations:
ApiKeyAuth
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Reportes

Agregados de ventas

Serie temporal de ventas

Authorizations:
ApiKeyAuth
query Parameters
group_by
string
Default: "mes"
Enum: "dia" "mes"
desde
string <date>
hasta
string <date>

Responses

Response samples

Content type
application/json
{
  • "group_by": "string",
  • "serie": [
    ]
}

Top receptores por monto

Authorizations:
ApiKeyAuth
query Parameters
limit
integer [ 1 .. 100 ]
Default: 10
desde
string <date>
hasta
string <date>

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Folios

Estado de folios disponibles (CAF)

Estado de folios por tipo de DTE

Authorizations:
ApiKeyAuth

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Tipos de DTE con folios en alerta o agotados

Authorizations:
ApiKeyAuth

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

dte.aceptado Webhook

El SII aceptó el DTE. Tu endpoint debe responder 2xx.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
id
string
event
string
Enum: "dte.aceptado" "dte.rechazado" "dte.enviado"
created_at
string <date-time>
object

Responses

Request samples

Content type
application/json
{
  • "id": "wh_a1b2c3d4e5f6a7b8",
  • "event": "dte.aceptado",
  • "created_at": "2019-08-24T14:15:22Z",
  • "data": {
    }
}

dte.rechazado Webhook

El SII rechazó el DTE.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
id
string
event
string
Enum: "dte.aceptado" "dte.rechazado" "dte.enviado"
created_at
string <date-time>
object

Responses

Request samples

Content type
application/json
{
  • "id": "wh_a1b2c3d4e5f6a7b8",
  • "event": "dte.aceptado",
  • "created_at": "2019-08-24T14:15:22Z",
  • "data": {
    }
}

dte.enviado Webhook

El DTE fue enviado al SII (pendiente de respuesta).

Authorizations:
ApiKeyAuth
Request Body schema: application/json
id
string
event
string
Enum: "dte.aceptado" "dte.rechazado" "dte.enviado"
created_at
string <date-time>
object

Responses

Request samples

Content type
application/json
{
  • "id": "wh_a1b2c3d4e5f6a7b8",
  • "event": "dte.aceptado",
  • "created_at": "2019-08-24T14:15:22Z",
  • "data": {
    }
}