API REST · FE 4.4

API de facturación electrónica para Costa Rica

Conectá tu sistema con SD Invoice para emitir comprobantes, sincronizar catálogos y consultar el resultado de Hacienda sin duplicar la lógica fiscal.

Comprobantes electrónicos

Emití comprobantes por POST, consultá su estado y obtené el XML firmado, el PDF, el ticket o la respuesta de Hacienda.

Clientes y catálogo de productos

Creá, actualizá y consultá clientes; consultá el catálogo de productos para conectar tu comercio electrónico, CRM, ERP u operación interna.

Consulta CABYS

Buscá códigos CABYS desde la integración para validar y clasificar productos o servicios antes de facturar.

Llaves con permisos

Cada llave se limita por alcance de lectura o escritura. La autenticación y los datos permanecen separados por empresa.

Reintentos idempotentes

Enviá Idempotency-Key al emitir para que un reintento del mismo request no duplique el comprobante.

Respuestas consistentes

La API devuelve JSON y códigos HTTP claros para validaciones, autenticación, recursos inexistentes y errores operativos.

Solicitud y respuesta reales

Emití una factura sin adivinar el contrato

Este ejemplo usa datos ficticios, pero respeta el payload que acepta la API. El receptor puede enviarse completo o referenciarse por clientId. La respuesta entrega identificadores y enlaces relativos para continuar el flujo.

Solicitud

curl https://sdinvoice.com/api/v1/invoices \
  -H "Authorization: Bearer $SD_API_KEY" \
  -H "Idempotency-Key: orden-1842" \
  -H "Content-Type: application/json" \
  --data '{
    "tipoDoc": "01",
    "receptor": {
      "idType": "02",
      "idNumber": "3101123456",
      "legalName": "Cliente Ejemplo S.A.",
      "email": "facturas@cliente.example"
    },
    "condicionVenta": "01",
    "medioPago": ["01"],
    "moneda": "CRC",
    "lines": [{
      "cabysCode": "8311100000000",
      "description": "Servicio profesional",
      "unit": "Sp",
      "quantity": 1,
      "unitPrice": 25000,
      "ivaRate": 13
    }]
  }'

Respuesta 201

HTTP/2 201
{
  "id": "6aaebdd3-6d65-4d34-a9ad-85a03db71c95",
  "clave": "50610082600310112345600100001010000000001199999999",
  "consecutivo": "00100001010000000001",
  "status": "processing",
  "links": {
    "self": "/api/v1/invoices/6aaebdd3-...",
    "xml": "/api/v1/invoices/6aaebdd3-.../xml",
    "pdf": "/api/v1/invoices/6aaebdd3-.../pdf"
  }
}

Autenticación y permisos

Usá Authorization: Bearer con una llave creada en Configuración → API. Los permisos de lectura y escritura son independientes: facturas, catálogo y módulos especializados usan alcances separados.

Límites previsibles

La cuota estándar es 300 lecturas y 60 escrituras por minuto por llave, con protección adicional por IP. Cada respuesta expone X-RateLimit-Limit y X-RateLimit-Remaining; un 429 incluye Retry-After.

Errores accionables

Los errores conservan la forma { error: { code, message } }. Un 401 identifica autenticación, 403 permisos, 409 idempotencia, 422 validación o reglas de negocio y 429 exceso de cuota.

Recursos disponibles

Del catálogo al documento aceptado

Empezá con una llave de permisos mínimos, validá el payload con un borrador de ensayo y conservá la misma Idempotency-Key en cualquier reintento de red.

Facturas

Emitir, listar, consultar estado y descargar XML, PDF, ticket o respuesta de Hacienda.

Clientes

Buscar, listar y crear o actualizar por identificación.

Productos

Consultar SKU, CABYS, precio, moneda y tarifa de IVA.

CABYS

Buscar por código o descripción dentro del catálogo activo.

Módulos

Endpoints adicionales para Cobranza y Veterinaria según la licencia contratada.

Pasá del ejemplo a producción

Consultá endpoints, permisos, validaciones, idempotencia, límites y códigos de error en la documentación técnica pública.