Ir al contenido
Facturalo

Vista previa (PDF)

Devuelve el PDF A4 de la cotización tal como saldría, sin guardarla. Mismo cuerpo que Crear cotización. El PDF lleva el sello VISTA PREVIA.

POSThttps://api.facturalo.pe/api/v3/cotizaciones/vista-previa

Parámetros del request

Campo
Descripción
establecimiento
string | nullopcional
UUID del establecimiento. Si se omite, el principal.
serie
stringopcional
Serie de 4 caracteres. Default C001. El correlativo lo asigna Facturalo (siguiente de la serie).Ej: C001
fechaEmision
stringrequerido
YYYY-MM-DD.Ej: 2026-11-09
diasValidez
integer | nullopcional
Validez en días (1 a 365). Si llega, fechaVencimiento = fechaEmision + días.Ej: 15
fechaVencimiento
string | nullopcional
Válida hasta (YYYY-MM-DD). Se usa cuando no envías diasValidez.Ej: 2026-11-24
moneda
stringrequerido
PEN o USD.Ej: PEN
estado
stringopcional
BORRADOR (default), ENVIADA, ACEPTADA o RECHAZADA.Ej: BORRADOR
formaPago
string | nullopcional
Texto libre para el PDF (máx. 150).Ej: 50% adelanto, saldo contra entrega
tiempoEntrega
string | nullopcional
Texto libre para el PDF (máx. 150).Ej: 5 días hábiles
observaciones
string | nullopcional
Máx. 1000. Pasa a la factura/boleta al convertir.Ej: Precios incluyen instalación.
condiciones
string | nullopcional
Términos y condiciones (máx. 2000).Ej: Garantía de 12 meses.
cuentas
string[]opcional
UUIDs de cuentas de pago que salen en el PDF. Sin el campo: al crear, las marcadas para cotizaciones; al editar, se mantienen. [] = ninguna.
cliente
objectrequerido
Datos del cliente.
tipoDocumento
stringrequerido
Catálogo 06: 6 RUC, 1 DNI, 4 carné de extranjería, 7 pasaporte, 0 sin documento.Ej: 6
numeroDocumento
string | nullopcional
Obligatorio con RUC (11 dígitos) o DNI (8 dígitos).Ej: 20601476551
denominacion
stringrequerido
Razón social o nombre (máx. 250).Ej: CLIENTE DEMO S.A.C.
direccion
string | nullopcional
Dirección (máx. 500).Ej: AV. LIMA 123
correo
string | nullopcional
Correo del cliente.Ej: compras@cliente.pe
celular
string | nullopcional
Celular del cliente (máx. 20).Ej: 987654321
items
arrayrequerido
Entre 1 y 300 ítems, con el mismo formato que al emitir.
tipo
stringopcional
producto o servicio. Si falta, se deduce de unidadMedida (ZZ = servicio).Ej: producto
productoId
string | nullopcional
UUID reservado para el catálogo de productos y servicios (próximamente). Hoy se guarda tal cual.
unidadMedida
stringopcional
NIU, ZZ, BX, PK, KT o GLI. Si falta: NIU para producto, ZZ para servicio.Ej: NIU
codigo
string | nullopcional
Código interno del producto (máx. 100).Ej: P-01
descripcion
stringrequerido
Descripción (máx. 500).Ej: Laptop 14" Core i5
cantidad
numberrequerido
Mayor a 0.Ej: 2
precioUnitario
numberrequerido
Precio unitario con IGV, igual que al emitir.Ej: 3500.50
tipoIgv
stringopcional
Catálogo 07 (10 gravado, 20 exonerado, 30 inafecto…). Default 10.Ej: 10
descuento
numberopcional
Descuento de la línea, con IGV.Ej: 0

Un error de validación responde 422 en JSON, igual que al crear.

Language

Credentials

Header

Authorization

Token de la empresa · HTTP directo

Fetch Request
$ # Node 18+ fetch
const response = await fetch("https://api.facturalo.pe/api/v3/cotizaciones/vista-previa", {
  method: "POST",
  headers: {
    "Authorization": "sk_test_…",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "fechaEmision": "2026-11-09",
    "diasValidez": 15,
    "moneda": "PEN",
    "formaPago": "50% adelanto, saldo contra entrega",
    "tiempoEntrega": "5 días hábiles",
    "observaciones": "Precios incluyen instalación.",
    "condiciones": "Garantía de 12 meses.",
    "cuentas": [
      "a32ef8b1-b485-43e8-af6b-a744e01857a0",
      "a32ef8b1-cdbe-4a38-b6c7-d65261efe751"
    ],
    "cliente": {
      "tipoDocumento": "6",
      "numeroDocumento": "20601476551",
      "denominacion": "CLIENTE DEMO S.A.C.",
      "direccion": "AV. LIMA 123",
      "correo": "compras@cliente.pe"
    },
    "items": [
      {
        "tipo": "producto",
        "codigo": "P-01",
        "descripcion": "Laptop 14\" Core i5",
        "cantidad": 2,
        "precioUnitario": 3500.5,
        "tipoIgv": "10"
      },
      {
        "tipo": "servicio",
        "descripcion": "Instalación y configuración",
        "cantidad": 1,
        "precioUnitario": 250,
        "tipoIgv": "10",
        "descuento": 50
      },
      {
        "tipo": "producto",
        "descripcion": "Libro técnico",
        "cantidad": 3,
        "precioUnitario": 40,
        "tipoIgv": "20"
      }
    ]
  })
});

const data = await response.json();
console.log(data);
HTTP directo · funciona con cualquier cliente HTTP
Response

Elige un ejemplo de respuesta:

application/json
200· application/pdf
%PDF-1.7 … (application/pdf)