Ir al contenido
Facturalo

Anticipo — Primer pago

Primera factura de anticipo (sunatTransaccion: 0104). Se emite al recibir un pago antes de la entrega del bien o servicio.

POSThttps://api.facturalo.pe/api/v3/documentos/enviar

Parámetros del body

Campo
Descripción
webhook
booleanopcional
Si es true, la respuesta es inmediata (EN_PROCESO) y el resultado llega al webhook configurado. Default: false (síncrono).Ej: false
establecimiento
string | nullopcional
UUID del establecimiento emisor. Si se omite, se usa el establecimiento principal de la empresa.
cotizacion
string | nullopcional
UUID de la cotización que se convierte en este comprobante. Se valida antes de enviar a SUNAT y queda vinculada. Opcional.
documento
objectrequerido
Datos del comprobante electrónico.
sunatTransaccion
stringrequerido
0104 = Anticipo. Obligatorio para facturas de anticipo.Ej: 0104
tipoComprobante
stringrequerido
01 = Factura electrónica.Ej: 01
serie
stringrequerido
Serie del comprobante. Facturas: F001–F999. Boletas: B001–B999. Exactamente 4 caracteres.Ej: F001
correlativo
stringrequerido
Correlativo numérico. Máximo 8 caracteres.Ej: 1
fechaEmision
stringrequerido
Fecha de emisión en formato YYYY-MM-DD.Ej: 2026-06-13
fechaVencimiento
string | nullopcional
Fecha de vencimiento. Formato YYYY-MM-DD. Si no se envía, se toma la fechaEmision como fecha de vencimiento.
formaPago
stringrequerido
"CONTADO" | "CREDITO". Si es CREDITO, se requiere el array cuotas.Ej: CONTADO
moneda
stringrequerido
"PEN" (Soles) | "USD" (Dólares).Ej: PEN
observaciones
string | nullopcional
Texto libre que aparece en el comprobante.
placaVehiculo
string | nullopcional
Placa del vehículo asociado a la operación.
ordenCompra
string | nullopcional
Número de orden de compra del cliente.
otrosCampos
array | nullopcional
Campos libres solo locales (PDF, consulta y webhook). No se envían a SUNAT. Máximo 30 ítems. Cada ítem: { label, value }.Ej: [{ "label": "Cajero", "value": "Guillermo" }]
label
stringrequerido
Etiqueta visible en el PDF (ej. Cajero, Método de pago, Mesa).Ej: Cajero
value
stringrequerido
Valor del campo.Ej: Guillermo
descuentoGlobal
number | nullopcional
Descuento global aplicado al total del documento (con IGV incluido).
enviarCorreo
booleanopcional
Si es true, envía el PDF y XML al correo del cliente tras la aceptación. Default: false.Ej: true
cliente
objectrequerido
Datos del adquirente.
tipoDocumento
stringrequerido
6 = RUC · 1 = DNI · 0 = Sin documento (clientes varios).Ej: 6
numeroDocumento
stringrequerido
Número sin puntos ni guiones. RUC: 11 dígitos. DNI: 8 dígitos.Ej: 20609753413
denominacion
stringrequerido
Razón social o nombre completo.Ej: EMPRESA S.A.C.
direccion
string | nullopcional
Requerida si tipoDocumento = 6 (RUC).
correo
string | nullopcional
Correo del cliente para envío del PDF/XML.
celular
string | nullopcional
Número de celular. Exactamente 9 dígitos.
items
arrayrequerido
Líneas del comprobante. Mínimo 1 ítem.
unidadMedida
stringrequerido
Código SUNAT: NIU = unidad · ZZ = servicio · BX = caja · KGM = kilogramo · GLI = galón.Ej: NIU
codigo
string | nullopcional
Código interno del producto (max 30 caracteres).
productoId
string | nullopcional
UUID de la variante (o del producto si tiene una sola) del catálogo. Lo que no envíes (descripción, unidad, IGV, precio, código SUNAT) sale del catálogo, y si controla stock descuenta del inventario. También puedes enviar el SKU en codigo sin descripcion.
series
string[] | nullopcional
Productos que controlan número de serie: una serie / IMEI por unidad. Se agrega a la descripción (S/N: …) y la serie queda vendida. Ver Series.Ej: ["5CD1234ABD"]
descripcion
stringrequerido
Descripción del producto o servicio (max 250 caracteres).Ej: SERVICIO DE CONSULTORÍA
cantidad
numberrequerido
Cantidad de unidades. Mínimo 0.Ej: 2
precioUnitario
numberrequerido
Precio por unidad con IGV incluido. La API calcula el IGV automáticamente.Ej: 590
tipoIgv
stringrequerido
10 = Gravado oneroso (tasa normal 18%).Ej: 10
descuento
number | nullopcional
Descuento por ítem (con IGV incluido).
impuestoBolsa
boolean | nullopcional
Si es true, aplica ICBPER (impuesto a bolsas plásticas) a este ítem.

Language

Credentials

Header

Authorization

Ejemplos con el SDK oficial en Node, PHP y Python

Idempotencia

Header

Idempotency-Key

Misma clave + mismo cuerpo = misma respuesta (24 h). Ver /idempotencia.

API Request
$ npm install @facturalo-pe/node
import { FacturaloClient } from "@facturalo-pe/node";

const facturalo = new FacturaloClient({ token: process.env.FACTURALO_TOKEN! });

const envio = await facturalo.documentos.enviar({
  tipoComprobante: "01",
  serie: "F001",
  correlativo: "1",
  sunatTransaccion: "0104",
  fechaEmision: "2026-06-13",
  formaPago: "CONTADO",
  otrosCampos: [
    {
      label: "Cajero",
      value: "Guillermo"
    },
    {
      label: "Método de pago",
      value: "Yape"
    },
    {
      label: "Mesa",
      value: "12"
    }
  ],
  moneda: "PEN",
  cliente: {
    tipoDocumento: "6",
    numeroDocumento: "20000000001",
    denominacion: "EMPRESA S.A.C.",
    direccion: "AV. LIMA 123 - LIMA - LIMA - LIMA",
    correo: "cliente@empresa.com"
  },
  items: [
    {
      cantidad: 1,
      unidadMedida: "ZZ",
      codigo: "ANT001",
      descripcion: "Anticipo por servicio de consultoría - Primer pago",
      precioUnitario: 590,
      tipoIgv: "10"
    }
  ]
}, {
  idempotencyKey: "orden-1042"
});
console.log(envio.estado, envio.sunat?.mensaje, envio.enlaces.pdf);
SDK oficial @facturalo-pe/node · guía en /sdks
Response

Elige un ejemplo de respuesta:

application/json
200Aceptada
{
  "success": true,
  "message": "La Factura numero F001-00000001 ha sido aceptada",
  "data": {
    "estado": "ACEPTADA",
    "entorno": "demo",
    "documento": {
      "id": "83ad82a0-680e-11f1-8e35-2d93ac0f2c84",
      "estado": "ACEPTADA",
      "serie": "F001",
      "correlativo": "00000001",
      "tipo": "FACTURA"
    },
    "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 | 90.00 | 590.00 | 13/06/2026 | 6 | 20000000001 | xvQpVbLssRc8FlD8/0LuSYeIPo8= |"
  }
}