Use this file to discover all available pages before exploring further.
Banco Alimentos structures its domain around seven core entities that together cover the full journey of a food donation — from the moment a donor registers a contribution through product cataloguing, invoice generation, and final distribution to beneficiary institutions. Understanding how these entities relate to one another is the foundation for working with any part of the API.
A legal donor (company or individual) identified by CUIT. Owns one or more donations.
Donacion
A single donation event submitted by a Donante. Carries a lifecycle state and zero or more line items.
ItemDonacion
A line item inside a Donacion. Links a specific Producto to the donation with quantity, unit value, and expiry information.
Producto
A catalogued food or hygiene product, classified by category and unit of measure.
Institucion
A beneficiary institution (soup kitchen, school, etc.) that receives goods via Remito dispatch notes.
Remito
A dispatch note that records an outbound transfer of goods to a single Institucion on a given date.
Factura
An invoice linked one-to-one with a Donacion. A type-C invoice is created automatically when a Donacion is first saved via POST /api/donaciones. A type-A invoice can be created explicitly via the generate endpoint, provided no invoice already exists for that donation.
Stored in the donantes table. Annotated with @Audited — every change to core fields is tracked by Hibernate Envers. The donaciones association is marked @NotAudited to keep revision history focused on donor data only.
Stored in the donaciones table. Each Donacion belongs to exactly one Donante and contains one or more ItemDonacion line items. The estado field drives the donation lifecycle state machine.
Field
Type
Nullable
Notes
id
Long
No
Auto-generated primary key (id_donacion)
fecha
LocalDate
No
Date of the donation
estado
EstadoDonacion
No
Lifecycle state — see enumerations below
nroRemitoProveedor
int
Yes
Supplier-side remito reference number (nro_remito_proveedor)
Stored in the ItemDonacion table. Acts as the join entity between a Donacion and a Producto, enriched with quantity, monetary, and expiry data. ItemDonacion records are also referenced by DetalleRemito when goods are dispatched outbound.
Stored in the productos table. Represents a product in the catalogue. The combination of categoria and unidadMedida enumerations standardises data entry across all donations.
Stored in the institucion table. Annotated with @Audited — institutional profile changes are revision-tracked. An auto-generated UUID (externalId) is used as the stable public identifier for external API references; the internal numeric id is never exposed to callers.
Stored in the remito table. Records a single outbound dispatch of goods to a beneficiary Institucion. Like Institucion, it carries a UUID externalId as its public identifier.
Field
Type
Nullable
Notes
id
Long
No
Auto-generated internal primary key (id_remito)
externalId
UUID
No
Public-facing identifier; set on @PrePersist, immutable (updatable = false)
Stored in the detalle-remito table. Each row links one Remito to one ItemDonacion, recording how many units of that donation line item are dispatched in that remito.
Field
Type
Nullable
Notes
idDetalleRemito
Long
No
Auto-generated internal primary key
externalId
UUID
No
Public-facing identifier; set on @PrePersist, immutable (updatable = false)
remito
Remito (FK)
Yes
Parent dispatch note (id_remito)
itemDonacion
ItemDonacion (FK)
Yes
Donation line item being dispatched (id_item_donacion)
Stored in the facturas table. A Factura has a strict one-to-one relationship with a Donacion enforced by a unique constraint on the id_donacion column. The invoice type reflects the fiscal category of the transaction.
Institucion, Remito, and DetalleRemito all expose a externalId (UUID) as their stable public identifier. Donante uses its numeric id directly. Never pass internal numeric IDs for entities that carry a UUID externalId — those endpoints accept the UUID form.