Registrar compra
Registra el comprobante de un proveedor. Los ítems con `varianteId` de un producto que controla stock entran al inventario (tipo `02`) al costo sin IGV; los demás quedan como gasto.
POSThttps://api.facturalo.pe/api/v3/compras
Parámetros del body
Campo
Descripción
proveedor.numeroDocumentostringrequerido
RUC (11) o DNI (8) del proveedor. Si no existe, se crea.Ej:
20131312955proveedor.razonSocialstringrequerido
Razón social o nombre.Ej:
DISTRIBUIDORA EJEMPLO S.A.C.proveedor.direccionstringopcional
Dirección (opcional).
tipoDocumentostringrequerido
01 factura o 03 boleta.Ej: 01seriestringrequerido
Serie del comprobante del proveedor.Ej:
F001numerostringrequerido
Número (solo dígitos).Ej:
887fechastringrequerido
Fecha de emisión YYYY-MM-DD. Es la fecha del movimiento en el kárdex.Ej:
2026-11-03monedastringopcional
PEN (default), USD o EUR.tipoCambionumberopcional
Obligatorio si la moneda no es
PEN: pasa el costo a soles.establecimientoIdstringopcional
Almacén donde entra la mercadería. Default: el principal.
origenstringopcional
manual (default) o sunat si el detalle vino de SUNAT.totalesobjectopcional
gravado, exonerado, inafecto, igv, otros, total. Si no se envían, se calculan de los ítems.notastringopcional
Hasta 250 caracteres.
items[].descripcionstringrequerido
Descripción como figura en el comprobante.
items[].cantidadnumberrequerido
Mayor a 0.
items[].valorUnitarionumberrequerido
Valor unitario sin IGV, en la moneda de la compra.
items[].totalnumberrequerido
Total de la línea con impuestos.
items[].descuentonumberopcional
Descuento de la línea (se resta del costo).
items[].varianteIdstringopcional
Producto (variante) de tu catálogo. Si controla stock, entra al inventario.
null = gasto o servicio.items[].seriesarrayopcional
Números de serie / IMEI, si el producto los controla.
items[].codigoProveedorstringopcional
Código del ítem en el comprobante del proveedor (sirve para recordarlo).
items[].unidadstringopcional
Unidad de medida (tabla 6). Default
NIU.items[].recordarbooleanopcional
Default
true: guarda la relación ítem → producto para las próximas compras de este proveedor.formaPagostringopcional
CONTADO (default) o CREDITO. Al crédito, la deuda con el proveedor va a cuentas por pagar.cuotasarrayopcional
Al crédito:
[{fecha, monto}] (YYYY-MM-DD); deben sumar el total. Sin cuotas, una sola a 30 días.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/compras", {
method: "POST",
headers: {
"Authorization": "sk_test_…",
"Content-Type": "application/json"
},
body: JSON.stringify({
"proveedor": {
"numeroDocumento": "20131312955",
"razonSocial": "DISTRIBUIDORA EJEMPLO S.A.C."
},
"tipoDocumento": "01",
"serie": "F001",
"numero": "887",
"fecha": "2026-11-03",
"moneda": "PEN",
"origen": "manual",
"items": [
{
"descripcion": "POLO ALGODON AZUL TALLA M",
"cantidad": 12,
"valorUnitario": 18.5,
"total": 261.96,
"varianteId": "a32fc76c-49f8-48c9-933f-62d3e8da007d"
},
{
"descripcion": "FLETE LIMA",
"cantidad": 1,
"valorUnitario": 30,
"total": 35.4,
"varianteId": null
}
]
})
});
const data = await response.json();
console.log(data);HTTP directo · funciona con cualquier cliente HTTP
Response
Elige un ejemplo de respuesta:
application/json
201Created
{
"success": true,
"message": "Compra registrada.",
"data": {
"id": "9f2c1a7e-3b4d-4e5f-8a9b-0c1d2e3f4a5b",
"tipoDocumento": "01",
"serie": "F001",
"numero": "887",
"fecha": "2026-11-03",
"proveedor": {
"id": "4b1e2c3d-5a6b-4c7d-8e9f-0a1b2c3d4e5f",
"numeroDocumento": "20131312955",
"razonSocial": "DISTRIBUIDORA EJEMPLO S.A.C.",
"direccion": "AV. EJEMPLO 123, LIMA"
},
"moneda": "PEN",
"total": 297.36,
"origen": "sunat",
"estado": "registrada",
"tipoCambio": null,
"totales": {
"gravado": 252,
"exonerado": 0,
"inafecto": 0,
"igv": 45.36,
"otros": 0,
"total": 297.36
},
"establecimiento": {
"id": "11111111-2222-3333-4444-555555555555",
"nombre": "Principal"
},
"nota": null,
"items": [
{
"id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
"descripcion": "POLO ALGODON AZUL TALLA M",
"codigoProveedor": null,
"unidad": "NIU",
"cantidad": 12,
"valorUnitario": 18.5,
"total": 261.96,
"series": [],
"producto": {
"varianteId": "a32fc76c-49f8-48c9-933f-62d3e8da007d",
"descripcion": "Polo algodón azul - M",
"sku": "POLO-AZ-M"
},
"entroAlStock": true
},
{
"id": "d2e3f4a5-b6c7-4d8e-9f0a-1b2c3d4e5f6a",
"descripcion": "FLETE LIMA",
"codigoProveedor": null,
"unidad": "ZZ",
"cantidad": 1,
"valorUnitario": 30,
"total": 35.4,
"series": [],
"producto": null,
"entroAlStock": false
}
],
"creado": "2026-11-03T15:20:11-05:00"
}
}