Inventory movements

Warehouse receipts, issues and transfers with items, lots, serial numbers, optional costs and signatures.

entrada-de-inventario, salida-de-inventario and traslado-de-inventario, with the premium design: the same document with three sets of labels. The column that matters is the quantity; costs are optional.

"documento": { "numero": "ENT-000123", "fecha": "2026-09-15", "motivo": "Compra de divisas",
  "referencia": "Transacción T-1045", "observaciones": "" },
"bodega": { "nombre": "Sucursal Aeropuerto", "codigo": "AER", "direccion": "" },
"origen": { "nombre": "", "codigo": "", "direccion": "" },
"destino": { "nombre": "", "codigo": "", "direccion": "" },
"traslado": { "responsable": "", "fechaSalida": "", "fechaLlegada": "" },
"tercero": { "rol": "Proveedor", "nombre": "Ana Pérez", "documento": "CC 1037000001" },
"items": [
  { "codigo": "USD", "descripcion": "Dólar estadounidense", "cantidad": 1500, "unidad": "USD",
    "lote": "", "serie": "", "costoUnitario": 3950.5, "costoTotal": 5925750 }
],
"totales": { "cantidad": 1500, "costo": 5925750 },
"moneda": "COP",
"firmas": [ { "rol": "Entrega", "nombre": "", "documento": "" }, { "rol": "Recibe", "nombre": "Laura Gómez", "documento": "" } ]
  • Receipts and issues use bodega (warehouse). Transfers use origen, destino and traslado, with the person responsible and both dates; without fechaLlegada, the arrival says «Pendiente» (“Pending”).
  • Required: documento.numero, documento.fecha and items with at least one item; for receipts and issues, bodega.nombre; for transfers, origen.nombre and destino.nombre. If any is missing, 400 with faltan.
  • tercero (third party) is optional: if it arrives, it goes in the block with its rol as the label.
  • The Lote, Serie, Costo unit. and Costo total columns (lot, serial, unit cost, total cost) only appear if some item includes them. Quantities come out with up to two decimals (350,5), because a quantity of foreign currency has them.
  • Nothing is calculated here. An item’s total cost is not its quantity times its unit cost, nor is totales the sum of the items: they are printed as they arrive, and without totales there are no figures at the end.
  • firmas is optional. Without it, each type’s defaults: Entrega and Recibe (delivers, receives) for receipts and issues; Despacha (salida) and Recibe (llegada) (dispatches on departure, receives on arrival) for transfers, which also leave a line for the date of each signature. Whatever doesn’t arrive for each signature stays as a line to fill in by hand.
  • The items table paginates with its header on every page, and signatures are never split across two pages.
  • The file is named EntradaInventario_<numero>.pdf, SalidaInventario_<numero>.pdf or TrasladoInventario_<numero>.pdf, without accents or spaces, with sin-numero if the number doesn’t arrive.

Examples: entrada-de-inventario.json, salida-de-inventario.json and traslado-de-inventario.json.