API-overzicht
Plaats een bestelling uit de klantwinkelwagen
Kies een handeling voor het request, responsestructuur, toegangsregels en implementatiebron.
SchrijvenGeauthenticeerd
POST/api/v1/checkout
Plaats een bestelling uit de klantwinkelwagen
Sanctum-sessie of bearer-token. Vereiste bearer-bevoegdheid: orders.create
Verzoek
| Veld | In | Regel |
|---|---|---|
billing | JSON-body | Verplicht adresobject: name en line1 strings maximaal 255; city maximaal 120; postal_code maximaal 20; country precies 2. Nullable company/line2 maximaal 255, region maximaal 120, phone maximaal 40. |
payment_method, discount_code | JSON-body | Nullable strings; elk maximaal 40. Gebruik een beschikbare betaalmethode. |
idempotency_key | JSON-body | Nullable string; maximaal 64. Hier alleen via JSON, niet de Idempotency-Key-header. Hergebruik alleen voor dezelfde beoogde bestelling. |
shipping | JSON-body | Nullable adresarray, omgezet naar AddressData. Geen herhaalde geneste factuuradresvalidatie; domeinregels blijven gelden. |
shipping_same_as_billing | JSON-body | Optionele boolean; standaard true. |
shipping_method_id | JSON-body | Nullable integer. |
custom_properties | JSON-body | Nullable array; domeinvereisten gelden. Producten, klantidentiteit en totalen zijn niet door de client te overschrijven. |
curl --request POST "https://shop.example.test/api/v1/checkout" \
--header 'Accept: application/json' \
--header "Authorization: Bearer $API_TOKEN" \
--header 'Content-Type: application/json' \
--data '{"billing":{"name":"Alex Example","line1":"Example Street 1","city":"Brussels","postal_code":"1000","country":"BE"},"shipping_same_as_billing":true,"payment_method":"<discovered-method-id>","idempotency_key":"example-checkout-01"}'Antwoord200 / 201
Succes: 200 / 201
Responsestructuur (notatie, geen opgenomen antwoord)
{ data: Order }Gebruikelijke fouten
| HTTP-status | Betekenis |
|---|---|
401 | unauthenticated: ontbrekende of ongeldige authenticatie. |
403 | unauthorized, insufficient_scope of ip_not_allowed: controleer klantcontext, bevoegdheid en token-IP-beleid. |
422 | validation_error: ongeldige invoer of niet-vervulde domeinvereisten. Betaalinitiatie kan ook payment_failed geven. |
429 | rate_limited: wacht voor een nieuwe poging, vooral bij schrijfverzoeken. |