EDU-V Order API
De Order API wordt gebruikt om leermiddelbestellingen te ontvangen van bestelomgevingen (scholen) en te bevestigen als leverancier binnen het Edu-V Afsprakenstelsel.
Deze API is beschikbaar als v1 (aanbevolen) en v0.9.2 (legacy). Zie de EDU-V documentatie voor v1 en v0.9.2.
Berichtenstroom
De Order API werkt asynchroon met vier berichten:
- OrderRequest — School stuurt een bestelling naar de leverancier (
PUT /orders) - OrderConfirmation — Leverancier bevestigt de bestelling naar de school (
PUT /orders/confirmations) - CreditOrderRequest — School annuleert (deels) een bestelling (
PUT /creditorders) - CreditOrderConfirmation — Leverancier bevestigt de annulering (
PUT /creditorders/confirmations)
Het OrderRequest-model
Het OrderRequest-object beschrijft een inkomende bestelling van een school.
Properties
- Name
requestReferenceId- Type
- string (uuid)
- Description
Unieke referentie-ID voor deze bestelling. Wordt teruggegeven in de OrderConfirmation.
- Name
purchaseOrderId- Type
- string
- Description
Inkoopordernummer van de school. Onveranderlijk.
- Name
purchaseOrderType- Type
- string
- Description
Optioneel bilateraal ordertype (bijv. "Tender", "VSO").
- Name
contractId- Type
- string
- Description
Optionele verwijzing naar een contract tussen school en leverancier.
- Name
deliveryLocation- Type
- Address
- Description
Afleveradres voor fysieke leermiddelen.
- Name
deliveryDate- Type
- date
- Description
Gewenste leverdatum (YYYY-MM-DD).
- Name
deliveryType- Type
- string
- Description
Leveringsvariant:
school-all,school-studies,school-subjects,school-groups,school-students,school-employees,school-activationcodes,customer-user,customer-activationcode.
- Name
schoolBuyer- Type
- SchoolBuyer
- Description
Contactgegevens van de besteller.
- Name
orderLines- Type
- array[OrderLine]
- Description
De te bestellen producten.
Address
- Name
name- Type
- string
- Description
T.a.v. omschrijving.
- Name
street- Type
- string
- Description
Straatnaam.
- Name
houseNumber- Type
- integer
- Description
Huisnummer.
- Name
houseNumberSuffix- Type
- string
- Description
Huisnummertoevoeging.
- Name
zipCode- Type
- string
- Description
Postcode (1234AB).
- Name
city- Type
- string
- Description
Plaatsnaam.
- Name
countryCode- Type
- string
- Description
ISO 3166 Alpha-2 landcode (bijv. "NL").
- Name
country- Type
- string
- Description
Landnaam.
SchoolBuyer
- Name
displayName- Type
- string
- Description
Naam van de contactpersoon.
- Name
email- Type
- string
- Description
E-mailadres van de contactpersoon.
- Name
organisationMasterIdentifier- Type
- string
- Description
Primaire organisatie-ID (onderwijsaanbieder-ID). Tenminste één van dit veld of
organisationIdsis vereist.
- Name
organisationIds- Type
- array
- Description
Secundaire organisatie-identificatoren met
organisationIdenorganisationIdType(OIE_CODE,BP_ID,DD_ID,AS_ID).
OrderLine
- Name
purchaseOrderLineId- Type
- string
- Description
Inkooporderregelnummer van de school.
- Name
productId- Type
- string
- Description
Product-ID (EAN/ISBN) uit de Catalogue API.
- Name
quantity- Type
- integer
- Description
Aantal te bestellen exemplaren (minimaal 1).
Bestelling ontvangen
Dit endpoint ontvangt een OrderRequest van een bestelomgeving (school). De bestelling wordt gevalideerd en opgeslagen als SalesOrder. Retourneert 202 Accepted bij succes.
Vereiste velden
- Name
requestReferenceId- Type
- string (uuid)
- Description
Unieke referentie voor deze bestelling.
- Name
purchaseOrderId- Type
- string
- Description
Inkoopordernummer van de school.
- Name
orderLines- Type
- array
- Description
Minimaal één orderregel met
productIdenquantity.
Request
curl -X PUT https://api.wimpel.nl/edu-v/v1/order-api/orders \
-H "Content-Type: application/json" \
-d '{
"requestReferenceId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"purchaseOrderId": "PO-2026-001234",
"deliveryLocation": {
"name": "ZuidWestHoek College",
"street": "Schoolstraat",
"houseNumber": 12,
"zipCode": "4641RM",
"city": "Ossendrecht",
"country": "Nederland"
},
"deliveryDate": "2026-09-01",
"deliveryType": "school-all",
"schoolBuyer": {
"displayName": "Erik Jansen",
"email": "e.jansen@zuidwesthoek.nl",
"organisationMasterIdentifier": "16SK"
},
"orderLines": [
{
"purchaseOrderLineId": "POL-001",
"productId": "9789464421408",
"quantity": 30
}
]
}'
Response (202)
{
"status": 0,
"statusMessage": "Accepted"
}
Het CreditOrderRequest-model
Het CreditOrderRequest-object beschrijft een annulering (creditering) van een eerdere bestelling.
Properties
- Name
requestReferenceId- Type
- string (uuid)
- Description
Unieke referentie-ID voor deze annulering.
- Name
purchaseOrderId- Type
- string
- Description
Inkoopordernummer van de oorspronkelijke bestelling.
- Name
salesOrderId- Type
- string
- Description
Verkoopordernummer van de leverancier (optioneel).
- Name
responseReferenceId- Type
- string (uuid)
- Description
Referentie naar de originele OrderConfirmation (optioneel).
- Name
orderLines- Type
- array[CreditOrderLine]
- Description
Te annuleren producten. Indien weggelaten wordt de gehele order geannuleerd.
CreditOrderLine
- Name
purchaseOrderLineId- Type
- string
- Description
Inkooporderregelnummer.
- Name
salesOrderLineId- Type
- string
- Description
Verkooporderregelnummer.
- Name
productId- Type
- string
- Description
Product-ID (EAN/ISBN).
- Name
quantity- Type
- integer
- Description
Aantal te annuleren exemplaren.
Annulering ontvangen
Dit endpoint ontvangt een CreditOrderRequest van een bestelomgeving. De annulering wordt gevalideerd, gekoppeld aan de oorspronkelijke SalesOrder en opgeslagen als SalesReturnOrder. Retourneert 202 Accepted bij succes.
Vereiste velden
- Name
requestReferenceId- Type
- string (uuid)
- Description
Unieke referentie voor deze annulering.
- Name
purchaseOrderId- Type
- string
- Description
Inkoopordernummer van de oorspronkelijke bestelling.
Request
curl -X PUT https://api.wimpel.nl/edu-v/v1/order-api/creditorders \
-H "Content-Type: application/json" \
-d '{
"requestReferenceId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"purchaseOrderId": "PO-2026-001234",
"salesOrderId": "SO-XXXXXXXX",
"orderLines": [
{
"purchaseOrderLineId": "POL-001",
"productId": "9789464421408",
"quantity": 5
}
]
}'
Response (202)
{
"status": 0,
"statusMessage": "Accepted"
}
Foutresponses
Alle endpoints retourneren een StatusResponse bij fouten:
- Name
status- Type
- integer
- Description
Functionele statuscode.
0= OK,400= validatiefout,6001= order niet gevonden.
- Name
statusMessage- Type
- string
- Description
Toelichting op de statuscode.
Foutresponse (400)
{
"status": 400,
"statusMessage": "requestReferenceId must be a valid UUID; orderLines are required"
}