Klanten

Beheer klantgegevens. Klanten worden gekoppeld aan orders als afleveradres.

Endpoints

MethodePadBeschrijving
GET/customersAlle klanten ophalen
POST/customersKlant aanmaken
GET/customers/:idSpecifieke klant ophalen
PUT/customers/:idKlant bijwerken
DELETE/customers/:idKlant verwijderen

Alle klanten ophalen

GET /customers

Response 200 OK

[
  {
    "id": "3f2a9c1e-5b7d-4e8a-9c0b-1d2e3f4a5b6c",
    "address_id": "KL-0042",
    "name": "Bedrijf BV",
    "attention": "T.a.v. Jan Janssen",
    "address": "Hoofdstraat 1",
    "zipcode": "1234 AB",
    "town": "Amsterdam",
    "country": "NL",
    "phone": "020-1234567",
    "website": "https://bedrijf.nl"
  }
]

Klant aanmaken

POST /customers

Request

{
  "address_id": "KL-0042",
  "name": "Bedrijf BV",
  "attention": "T.a.v. Jan Janssen",
  "address": "Hoofdstraat 1",
  "zipcode": "1234 AB",
  "town": "Amsterdam",
  "country": "NL",
  "phone": "020-1234567",
  "website": "https://bedrijf.nl"
}
VeldTypeVerplichtBeschrijving
address_idstringNeeUw eigen klantcode, maximaal 50 tekens, uniek binnen de site. Hiermee vindt POST /orders met ship_to de klant terug
namestring✅Bedrijfsnaam
attentionstringNeeT.a.v. / contactpersoon
addressstringNeeAdres
zipcodestringNeePostcode
townstringNeePlaats
countrystringNeeLand (ISO code)
phonestringNeeTelefoonnummer
websitestringNeeWebsite URL

Response 201 Created

Het id van de nieuwe klant, te gebruiken als customer_id bij een order:

{
  "id": "3f2a9c1e-5b7d-4e8a-9c0b-1d2e3f4a5b6c"
}

Response 409 Conflict

De klantcode (address_id) is al in gebruik:

{
  "message": "Klantcode KL-0042 is al in gebruik"
}

Specifieke klant ophalen

GET /customers/:id

Response 200 OK

Retourneert hetzelfde formaat als in de lijst, inclusief address_type.

Klant bijwerken

PUT /customers/:id

Request

Alleen de meegestuurde velden worden bijgewerkt; de rest blijft staan. Stuur null om een veld leeg te maken.

{
  "name": "Bedrijf BV (nieuw)",
  "attention": "T.a.v. Piet Pietersen",
  "address": "Nieuwstraat 2",
  "zipcode": "5678 CD",
  "town": "Rotterdam",
  "country": "NL",
  "phone": "010-7654321",
  "website": "https://bedrijf-nieuw.nl"
}

Response 204 No Content

Response 409 Conflict

De meegestuurde address_id hoort al bij een andere klant.

Klant verwijderen

DELETE /customers/:id

Response 204 No Content