Contenido de la documentación

/ Comprobantes

Boletas

Emite boletas de venta electrónicas (tipo 03) para consumidores finales, con o sin DNI.

Crear boleta

POST/boletas

Funciona igual que la factura, con tres diferencias: la serie empieza con B, el cliente puede ser una persona con DNI o «sin documento», y las boletas suelen enviarse a SUNAT mediante un resumen diario.

Tipos de documento del cliente

tipo_docDocumento
0Sin documento (ventas menores, usa num_doc: "-")
1DNI (8 dígitos)
4Carnet de extranjería
6RUC (11 dígitos)
7Pasaporte

Los campos de la raíz y de los ítems son los mismos que en facturas.

curl -X POST "https://apifact.gavi-cloud.com/api/v1/boletas" \
  -H "X-Api-Key: TU_API_KEY" \
  -H "X-Api-Secret: TU_API_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "serie": "B001",
    "fecha_emision": "2026-10-02",
    "cliente": {
      "tipo_doc": "1",
      "num_doc": "12345678",
      "razon_social": "JUAN PEREZ LOPEZ"
    },
    "items": [
      {
        "descripcion": "PRODUCTO A",
        "unidad": "NIU",
        "cantidad": 1,
        "precio_unitario": 50
      }
    ],
    "pagos": [
      {
        "metodo": "efectivo",
        "monto": 50
      }
    ]
  }'
Respuesta201 Created
{
  "estado": "exito",
  "mensaje": "Boleta creada.",
  "datos": {
    "id": 88,
    "tipo_documento": "03",
    "numero_completo": "B001-88",
    "mto_imp_venta": "50.00",
    "sunat_status": "pendiente"
  }
}

Venta sin identificar al cliente

Para ventas menores no necesitas datos del cliente. Usa tipo_doc: "0" y razon_social: "CLIENTES VARIOS".

cliente
{
  "cliente": {
    "tipo_doc": "0",
    "num_doc": "-",
    "razon_social": "CLIENTES VARIOS"
  }
}

Listar boletas

GET/boletas

Devuelve los comprobantes de tu empresa, paginados y filtrables.

Parámetros de consulta

searchstring
Búsqueda libre: razón social, documento, serie o correlativo.
seriestring
Serie exacta (F001) o con comodín (F0%).
client_num_docstring
RUC o DNI exacto del cliente.
sunat_statusstring
pendiente, enviado, aceptado, rechazado o anulado. Acepta varios separados por coma.
fecha_desdedate
Fecha de emisión mínima (yyyy-mm-dd).
fecha_hastadate
Fecha de emisión máxima.
monto_minnumber
Total mínimo.
monto_maxnumber
Total máximo.
sucursal_idinteger
Filtra por sucursal.
constring
Relaciones a incluir: items, payments.
ordenar_porstring
fecha_emision, correlativo, mto_imp_venta, created_at (por defecto).
ordenstring
desc (por defecto) o asc.
por_paginainteger
Por defecto 15, máximo 100.
curl "https://apifact.gavi-cloud.com/api/v1/boletas?sunat_status=aceptado&fecha_desde=2026-10-01&fecha_hasta=2026-10-31" \
  -H "X-Api-Key: TU_API_KEY" \
  -H "X-Api-Secret: TU_API_SECRET"
Respuesta200 OK
{
  "estado": "exito",
  "datos": {
    "datos": [
      "..."
    ],
    "paginacion": {
      "pagina_actual": 1,
      "ultima_pagina": 8,
      "por_pagina": 15,
      "total": 112
    }
  }
}

Ver boleta

GET/boletas/{id}

Devuelve el comprobante con sus ítems, pagos, estado SUNAT y, si ya fue rechazado, el código y descripción del error.

curl "https://apifact.gavi-cloud.com/api/v1/boletas/123" \
  -H "X-Api-Key: TU_API_KEY" \
  -H "X-Api-Secret: TU_API_SECRET"

Eliminar boleta

DELETE/boletas/{id}

Borra localmente una boleta que todavía no fue enviada a SUNAT. Una boleta ya aceptada se anula con un resumen diario en modo anulación.

curl -X DELETE "https://apifact.gavi-cloud.com/api/v1/boletas/88" \
  -H "X-Api-Key: TU_API_KEY" \
  -H "X-Api-Secret: TU_API_SECRET"

XML, CDR y PDF

Con el id de la boleta descargas cada archivo. El PDF admite formato A4, A5 o ticket. El CDR está disponible cuando SUNAT aceptó el comprobante.

MétodoRutaDevuelve
GET/boletas/{id}/xmlXML firmado
GET/boletas/{id}/cdrCDR de SUNAT
GET/boletas/{id}/pdfRepresentación impresa
POST/boletas/{id}/reenviarReenvía a SUNAT un comprobante pendiente o rechazado
curl "https://apifact.gavi-cloud.com/api/v1/boletas/123/pdf" \
  -H "X-Api-Key: TU_API_KEY" \
  -H "X-Api-Secret: TU_API_SECRET"