Ga naar hoofdinhoud

Voorraad

Base path: /api/inventory

Producten

GET /inventory/products

Alle producten ophalen met categorie- en leveranciersdata.

Auth: Ingelogd

Query parameters: search, supplier_id, page, limit

POST /inventory/products

Nieuw product aanmaken. article_number wordt automatisch gegenereerd. Als geen vat_rate_id opgegeven, wordt het standaard BTW-tarief toegepast.

Auth: Admin

VeldTypeVerplichtBeschrijving
namestringJaProductnaam
skustringJaArtikelcode
pricenumberJaVerkoopprijs (>= 0)
purchase_pricenumberJaInkoopprijs (verplicht voor kostberekeningen)
quantity_on_handintegerJaHuidige voorraad
low_stock_thresholdintegerNeeAlertdrempel (standaard 5)
category_idintegerNeeProductcategorie ID
supplier_idintegerNeeLeverancier ID
vat_rate_idintegerNeeBTW-tarief ID
ean_codestringNeeEAN barcode

PUT /inventory/products/:id

Product bijwerken. Bij uitgeschakelde inkooporders kan quantity_on_hand hier direct bijgewerkt worden.

Auth: Admin

DELETE /inventory/products/:id

Product verwijderen.

Auth: Admin


Productcategorieën

GET /inventory/categories / POST / PUT /:id / DELETE /:id

Productcategorieën beheren (naam, kleur, positie).


Voorraadtransacties

GET /inventory/transactions

Voorraadmutaties ophalen (inkomende leveringen, verkopen, correcties, intern verbruik).

Auth: Ingelogd

Query parameters: product_id, from, to

Elke transactie heeft een delta (positief = in, negatief = uit) en een reason tekst.


Leveranciers

Base path: /api/suppliers

GET /suppliers

Alle leveranciers ophalen gesorteerd op naam.

Auth: Ingelogd

Query parameters: active=true, page, limit

POST /suppliers

Nieuwe leverancier aanmaken. creditor_number wordt automatisch gegenereerd via de CRED reeks.

Auth: Admin

VeldTypeVerplicht
namestringJa
contact_personstringNee
emailstringNee
phonestringNee
addressstringNee
notesstringNee
websitestringNee

GET /suppliers/:id

Leverancier ophalen met 20 meest recente inkooporders.

PUT /suppliers/:id / DELETE /suppliers/:id

Leverancier bijwerken of verwijderen.


Inkooporders

Base path: /api/suppliers (inkooporder endpoints)

GET /suppliers/orders

Alle inkooporders ophalen met leveranciersnaam en aantal artikelen.

Auth: Ingelogd

Query parameters: status, page, limit

POST /suppliers/orders

Nieuwe inkooporder aanmaken. order_number wordt automatisch gegenereerd via de IO reeks. Nieuwe orders hebben status created.

Auth: Admin

VeldTypeVerplicht
supplier_idintegerJa
staff_idintegerNee
notesstringNee
order_datedatumNee
expected_datedatumNee

PUT /suppliers/orders/:id/items

Artikelen op een inkooporder instellen (vervangt bestaande artikelen). Alleen bij status created of ordered.

Auth: Admin

{
"items": [
{ "product_id": 5, "quantity": 10, "unit_cost": 4.50 }
]
}

PUT /suppliers/orders/:id

Status of metadata van inkooporder bijwerken. Bij overgang naar received wordt voorraad automatisch bijgewerkt.

POST /suppliers/orders/:id/packing-slip

Pakbonbestand uploaden (max 10MB).

GET /suppliers/orders/:id/packing-slip

Pakbon downloaden.

GET /suppliers/packing-slips/zip

Alle pakbonnen voor een jaar downloaden als ZIP.

Query parameters: year

DELETE /suppliers/orders/:id

Inkooporder verwijderen. Werkt voor alle statussen.

Auth: Admin

OrderstatusVoorraadeffect
createdGeen wijziging
orderedGeen wijziging
receivedVoorraad wordt verlaagd; corrigerende transacties aangemaakt; pakbonbestand verwijderd
cancelledGeen wijziging

Response: { "ok": true }

Inkooporder statussen

StatusBeschrijving
createdOrder aangemaakt, artikelen worden toegevoegd
orderedBestelling verstuurd naar leverancier
receivedGoederen ontvangen; voorraad bijgewerkt
cancelledOrder geannuleerd

Automatische nummering

ReeksprefixEntiteitVoorbeeld
IOInkoopordersIO2601, IO2602
CREDLeverancier crediteurennummersCRED001, CRED002
ART_PRODUCTProduct artikelnummersART_PRODUCT001