REST API

Documentatie


Statussen

Print API maakt onderscheid tussen vier bestelstatussen. Gebruik je het betaalscherm, dan is er ook nog een aparte betaalstatus. Zowel de bestelstatus als de betaalstatus kun je opvragen uit de API. Ook heeft Print API webhooks om jouw server automatisch op de hoogte te stellen van statuswijzigingen.

Voorbeeld

Om de laatste bestel- of betaalstatus op te vragen uit de API, heb je de ID van de bijbehorende bestelling nodig. Je kunt simpelweg een GET doen op de URL van de bestelling: v2/orders/{id}. Vervang {id} door de ID van de bestelling.

$order = $api->get('/orders/' . $id);

echo $order->status . '<br />';
echo isset($order->checkout) ? $order->checkout->status : 'Betaalscherm niet gebruikt';

Print API maakt onderscheid tussen de volgende vier bestelstatussen:

Created Bestelling aangemaakt maar onvolledig. Vind hier waarom.
Processing Bestelling wordt verwerkt.
Shipped Bestelling verstuurd naar de ontvanger.
Cancelled Bestelling geannuleerd.

Daarnaast maakt Print API onderscheid tussen de volgende drie betaalstatussen:

Open Betaling onvoltooid. De paymentUrl blijft 24 uur beschikbaar.
Successful Betaling gelukt.
Cancelled De paymentUrl is verlopen en de bestelling is geannuleerd.
Webhooks

Als je gebruik maakt van webhooks, geeft Print API jouw server automatisch een seintje wanneer de status van een bestelling of betaling wijzigt. Een soort push-notificatie, dus. In je instellingen kun je de URL's van jouw webhooks opgeven. Wij versturen nooit gevoelige data naar je webhook, dus HTTPS is optioneel.

HTTP request webhook:
POST /jouw-webhook-url HTTP/1.1
Content-Type: application/x-www-form-urlencoded

orderId=59802395

In de request body staat alleen een order ID. Die kun je gebruiken om de nieuwe status uit de API op te vragen, zoals bovenaan deze pagina uitgelegd. Die tussenstap lijkt misschien omslachtig, maar zo wordt voorkomen dat willekeurige personen je webhook kunnen aanroepen met valse informatie.

Voorbeeld webhook script:
$id = urlencode($_POST['orderId']);
$order = $api->get('/orders/' . $id);

// ...verwerk $order->status...

Als antwoord op de aanroep hoeft je webhook alleen de HTTP statuscode 200 OK terug te geven. Print API weet dan dat het verwerken van de nieuwe status is geslaagd. Geeft je webhook een andere status terug, bijvoorbeeld 503 Service Unavailable, dan probeert Print API het nog negen keer opnieuw:

  • Eerste keer mislukt: nieuwe poging na ± 2 minuten
  • Tweede keer mislukt: nieuwe poging na ± 5 minuten
  • Daarna: nieuwe poging na ± 60 minuten, max. 7 keer

De eerste keer dat de aanroep van je webhook mislukt, krijg je daarvan automatisch per e-mail bericht. Je krijgt nogmaals bericht als de aanroep tien keer is mislukt, en dus niet meer opnieuw wordt geprobeerd.

Volgende