API v3

Facturalo API

API REST para emisión de comprobantes electrónicos ante SUNAT (Perú). Soporta Facturas, Boletas, Notas de Crédito/Débito y Guías de Remisión. Los cálculos de IGV, subtotales y totales son automáticos — solo envía el precioUnitario y el tipoIgv.

Autenticación

Hay dos tipos de token, ambos se envían en el header Authorization. El entorno (demo / producción) se detecta automáticamente del prefijo del token.

user_sk_...

Token de usuario

Crear y gestionar empresas y establecimientos.

sk_test_...

Token de empresa — Demo

Emitir documentos en entorno de pruebas SUNAT.

sk_live_...

Token de empresa — Producción

Emitir documentos en producción SUNAT.

Headers de autenticaciónhttp
// Token de empresa — documentos y guías
Authorization: sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

// Token de usuario — gestión de empresas y establecimientos
Authorization: user_sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Ejemplo rápido

cURL — Factura normalbash
curl -X POST https://api.facturalo.pe/api/v3/documentos/enviar \
  -H "Authorization: sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "webhook": false,
    "documento": {
      "sunatTransaccion": "0101",
      "tipoComprobante": "01",
      "serie": "F001",
      "correlativo": "1",
      "fechaEmision": "2026-06-13",
      "moneda": "PEN",
      "formaPago": "CONTADO",
      "cliente": {
        "tipoDocumento": "6",
        "numeroDocumento": "20000000001",
        "denominacion": "EMPRESA S.A.C.",
        "direccion": "AV. LIMA 123 - LIMA - LIMA - LIMA"
      },
      "items": [{
        "unidadMedida": "NIU",
        "descripcion": "SERVICIO DE CONSULTORÍA",
        "cantidad": 1,
        "precioUnitario": 590,
        "tipoIgv": "10"
      }]
    }
  }'
Respuesta — 200 OKjson
{
  "success": true,
  "message": "La Factura número F001-00000001, ha sido aceptada.",
  "data": {
    "estado": "ACEPTADA",
    "entorno": "demo",
    "documento": {
      "id": "83ad82a0-680e-11f1-8e35-2d93ac0f2c84",
      "estado": "ACEPTADA",
      "serie": "F001",
      "correlativo": "1",
      "tipo": "FACTURA",
      "tipoCodigo": "01",
      "fechaEmision": "2026-06-13",
      "fechaVencimiento": "2026-06-14",
      "moneda": "PEN",
      "formaPago": "CONTADO",
      "cliente": {
        "tipoDocumento": "6",
        "numeroDocumento": "20000000001",
        "denominacion": "EMPRESA S.A.C.",
        "direccion": "AV. LIMA 123 - LIMA - LIMA - LIMA"
      },
      "totales": {
        "gravada": 4000,
        "exonerada": 0,
        "inafecta": 0,
        "exportacion": 0,
        "gratuita": 0,
        "descuento": 0,
        "anticipo": 0,
        "isc": 0,
        "igv": 720,
        "impuestoBolsa": 0,
        "otrosCargos": 0,
        "total": 4720
      },
      "items": [
        {
          "codigo": "",
          "descripcion": "SERVICIO DE CONSULTORÍA",
          "unidad": "NIU",
          "cantidad": 2,
          "valorUnitario": 500,
          "precioUnitario": 590,
          "descuento": 0,
          "subtotal": 1000,
          "tipoIgv": "10",
          "tipoIgvDescripcion": "GRAVADO - OPERACIÓN ONEROSA",
          "igv": 180,
          "total": 1180
        },
        {
          "codigo": "",
          "descripcion": "LAPTOP DELL INSPIRON",
          "unidad": "NIU",
          "cantidad": 1,
          "valorUnitario": 3000,
          "precioUnitario": 3540,
          "descuento": 0,
          "subtotal": 3000,
          "tipoIgv": "10",
          "tipoIgvDescripcion": "GRAVADO - OPERACIÓN ONEROSA",
          "igv": 540,
          "total": 3540
        }
      ],
      "guias": [],
      "cuotas": []
    },
    "sunat": {
      "estado": "ACEPTADA",
      "codigo": "0",
      "mensaje": "La Factura numero F001-00000001 ha sido aceptada",
      "notas": []
    },
    "enlaces": {
      "pdf": "https://api.facturalo.pe/api/v3/documentos/83ad82a0-680e-11f1-8e35-2d93ac0f2c84.pdf",
      "pdfTicket": "https://api.facturalo.pe/api/v3/documentos/83ad82a0-680e-11f1-8e35-2d93ac0f2c84.ticket.pdf",
      "xml": "https://api.facturalo.pe/api/v3/documentos/83ad82a0-680e-11f1-8e35-2d93ac0f2c84.xml",
      "cdr": "https://api.facturalo.pe/api/v3/documentos/83ad82a0-680e-11f1-8e35-2d93ac0f2c84.cdr"
    },
    "hash": "xvQpVbLssRc8FlD8/0LuSYeIPo8=",
    "cadenaQr": "20601476551 | 01 | F001 | 00000001 | 13/06/2026 | 20609753413 | 4720.00 | xvQpVbLssRc8FlD8/0LuSYeIPo8= |",
    "codigoBarras": "20601476551 | 01 | F001 | 00000001 | 13/06/2026 | 20609753413 | 4720.00 | xvQpVbLssRc8FlD8/0LuSYeIPo8= |"
  }
}

Características clave

Cálculos automáticosSolo envía precioUnitario y tipoIgv por ítem. La API calcula IGV, subtotales y totales automáticamente.
Entorno por tokenEl entorno (demo / producción) se detecta del token. sk_test_ = demo, sk_live_ = producción. No existe parámetro de entorno.
Síncrono o asíncronoCon "webhook": false (default) la respuesta incluye el resultado SUNAT. Con "webhook": true retorna EN_PROCESO y el resultado llega al webhook.
Archivos públicosLos endpoints /{id}.pdf, /{id}.xml y /{id}.cdr no requieren autenticación — son links compartibles directamente con el cliente.
Respuesta estructuradaTodas las respuestas exitosas siguen el mismo esquema: success, message, data. Dentro de data: estado, entorno, documento, sunat.notas, enlaces.

Códigos de respuesta HTTP

200OKPetición exitosa
201CreatedRecurso creado (empresa, establecimiento)
400Bad RequestCuerpo de la petición mal formado o JSON inválido
401UnauthorizedToken inválido o ausente
403ForbiddenEl token no tiene permisos para este recurso
404Not FoundRecurso no encontrado
422Unprocessable EntityErrores de validación — revisa el campo errors
429Too Many RequestsLímite de peticiones alcanzado — reintenta más tarde
500Internal Server ErrorError interno del servidor