API Docs
U

API Documentation

Referencia completa de la API REST para emitir documentos tributarios electrónicos.

Información General

Base URL

https://api.sii-api.cl/v1

Protocolo

HTTPS (TLS 1.2+)

Formato

JSON (application/json)

Rate Limit

100 req/min

Autenticación

Todas las peticiones autenticadas requieren el header X-API-Key con tu API Key. Puedes crear y gestionar tus keys desde la sección Tokens API.

Live Key
sk_live_...

Producción. Documentos reales al SII.

Test Key
sk_test_...

Desarrollo. Ambiente de certificación SII.

Ejemplo de autenticación

curl -X GET https://api.sii-api.cl/v1/businesses \
  -H "X-API-Key: sk_live_tu_api_key" \
  -H "Content-Type: application/json"

Endpoints

Autenticación

POST/auth/login
POST/auth/register
POST/auth/refresh
Auth
GET/auth/me
Auth

Empresas

GET/businesses
Auth
POST/businesses
Auth
GET/businesses/{id}
Auth
PUT/businesses/{id}
Auth
DELETE/businesses/{id}
Auth
POST/businesses/{id}/certificate
Auth

DTEs (Documentos Tributarios)

POST/dte/emit
Auth
GET/dte
Auth
GET/dte/{id}
Auth
GET/dte/{id}/status
Auth
GET/dte/{id}/pdf
Auth
GET/dte/{id}/xml
Auth

API Keys (Tokens)

GET/tokens
Auth
POST/tokens
Auth
DELETE/tokens/{id}
Auth

Numeración (CAF / Folios)

GET/businesses/{id}/numerations
Auth
POST/businesses/{id}/numerations
Auth
DELETE/numerations/{id}
Auth

Utilidades

GET/health

Emitir DTE

POST /dte/emit

Emite un nuevo documento tributario electrónico. Los datos del emisor se obtienen automáticamente de la empresa asociada a tu API Key.

Tipos de DTE soportados

33
Factura
34
Factura Exenta
39
Boleta
41
Boleta Exenta
52
Guía Despacho
56
Nota Débito
61
Nota Crédito

Campos requeridos

Receptor

  • rut- RUT (12345678-9)
  • razon_social- Razón social
  • giro- Giro/actividad (facturas)
  • direccion- Dirección (facturas)
  • comuna- Comuna (facturas)

Items (detalle)

  • nombre- Nombre/descripción
  • cantidad- Cantidad
  • precio- Precio unitario neto
  • unidad- Unidad de medida (opc.)
  • descuento_porcentaje- Descuento % (opc.)

Referencia (Notas)

  • tipo_doc- Tipo doc. referenciado
  • folio- Folio original
  • fecha- Fecha doc. original
  • razon- Motivo de la nota

Solo requerido para Nota Crédito (61) y Nota Débito (56).

Ejemplos

Factura Electrónica (Tipo 33)

{
  "tipo": 33,
  "receptor": {
    "rut": "76543210-K",
    "razon_social": "Empresa Cliente SpA",
    "giro": "Servicios de tecnología",
    "direccion": "Av. Providencia 1234, Of. 567",
    "comuna": "Providencia"
  },
  "items": [
    {
      "nombre": "Desarrollo de software",
      "cantidad": 1,
      "precio": 1500000,
      "unidad": "Servicio"
    },
    {
      "nombre": "Mantención mensual",
      "cantidad": 3,
      "precio": 200000,
      "unidad": "Mes"
    }
  ]
}

Boleta Electrónica (Tipo 39)

{
  "tipo": 39,
  "receptor": {
    "rut": "12345678-9",
    "razon_social": "Juan Pérez"
  },
  "items": [
    {
      "nombre": "Café Americano Grande",
      "cantidad": 2,
      "precio": 2500
    }
  ]
}

Nota de Crédito (Tipo 61)

{
  "tipo": 61,
  "receptor": {
    "rut": "76543210-K",
    "razon_social": "Empresa Cliente SpA",
    "giro": "Servicios de tecnología",
    "direccion": "Av. Providencia 1234",
    "comuna": "Providencia"
  },
  "referencia": {
    "tipo_doc": 33,
    "folio": 1234,
    "fecha": "2024-01-15",
    "razon": "Anulación por error en RUT"
  },
  "items": [
    {
      "nombre": "Desarrollo de software",
      "cantidad": 1,
      "precio": 1500000
    }
  ]
}

Respuestas y Errores

Respuesta exitosa

{
  "success": true,
  "data": {
    "id": "dte_abc123xyz",
    "tipo": 33,
    "folio": 1234,
    "fecha_emision": "2024-01-20T10:30:00Z",
    "monto_neto": 2100000,
    "monto_iva": 399000,
    "monto_total": 2499000,
    "estado": "ENVIADO",
    "track_id": "123456789",
    "pdf_url": "/v1/dte/dte_abc123xyz/pdf",
    "xml_url": "/v1/dte/dte_abc123xyz/xml"
  }
}

Respuesta de error

{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "El campo receptor.rut es requerido",
    "details": {
      "field": "receptor.rut",
      "reason": "required"
    }
  }
}

Códigos de estado HTTP

200OKPetición exitosa
201CreatedRecurso creado exitosamente
400Bad RequestParámetros inválidos o faltantes
401UnauthorizedAPI Key inválida o no proporcionada
403ForbiddenSin permisos para este recurso
404Not FoundRecurso no encontrado
422Unprocessable EntityError de validación de datos
429Too Many RequestsRate limit excedido
500Internal Server ErrorError interno del servidor

Paginación

Los endpoints que devuelven listas soportan paginación via query parameters.

page

Número de página (desde 1)

limit

Resultados por página (máx. 100)

tipo

Filtrar por tipo de DTE

desde

Fecha inicio (YYYY-MM-DD)

GET /v1/dte?page=1&limit=20&tipo=33&desde=2024-01-01

Response:
{
  "success": true,
  "data": [...],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 150,
    "total_pages": 8
  }
}

Webhooks

Notificaciones en tiempo real

Recibe eventos automáticos cuando cambia el estado de tus DTEs.

Configura un URL de webhook para recibir notificaciones POST cuando un DTE cambie de estado (aceptado, rechazado, con reparos). El payload incluye el ID del documento y su nuevo estado.

Ejemplo de payload webhook

{
  "event": "dte.status_changed",
  "data": {
    "dte_id": "dte_abc123xyz",
    "tipo": 33,
    "folio": 1234,
    "old_status": "ENVIADO",
    "new_status": "ACEPTADO",
    "timestamp": "2024-01-20T15:30:00Z"
  }
}

Los webhooks se configuran desde la sección de Configuración de tu empresa. Asegúrate de que tu endpoint responda con un código 200 dentro de 10 segundos.