Het verzenden van afdrukbestellingen gebeurt via een REST API. Voordat u verzoeken naar de API kunt doen, moet u eerst authentificeren met de ontvangen referenties om een authenticatietoken te verkrijgen. Dit token moet worden opgenomen in de "Authorization" header van elke daaropvolgende API-aanroep:
Authorization: Bearer <your-authentication-token>
Het token is één jaar geldig. Bij elke authenticatie wordt een nieuw token uitgegeven.
Live API URL https://api.bephoto.be
Authenticeer door de /user/login endpoint aan te roepen met uw inloggegevens:
POST /user/login { "email": "<string>", "password": "<string>" }
Succes antwoord:
{ "status": 1, "token": "<string>" }
Fout antwoord:
{ "error": "Unauthorized" }
Om geen wachtwoord in uw integratie te gebruiken, authenticeert u met een API-sleutel door /user/loginToken aan te roepen. De sleutel wordt op aanvraag door Bephoto verstrekt, per account:
POST /user/loginToken { "token": "<string>" }
Succes antwoord:
{ "status": 1, "token": "<string>" }
Fout antwoord:
{ "error": "Unauthorised" }
Maak een nieuwe bestelling aan door /orders aan te roepen met optionele metadata. Nadat u een bestelling heeft aangemaakt, ontvangt u een unieke idorder die in de volgende aanroepen moet worden gebruikt:
POST /orders { "metadata": "<string>" }
Succes antwoord:
{ "status": 1, "order": { "idorder": "<integer>", "datestart": "<timestamp>", "totalorder": "<float>", "totalcost": "<float>", "dateconfirmation": "<timestamp>", "dateprocessed": "<timestamp>", "shippingmethod": "<string>", "metadata": "<string>" } }
Haal informatie op over een bestelling door /orders/{IDORDER} aan te roepen:
GET /orders/{IDORDER}
Succes antwoord:
{ "status": 1, "order": { "idorder": "<integer>", "datestart": "<timestamp>", "totalorder": "<float>", "totalcost": "<float>", "dateconfirmation": "<timestamp>", "dateprocessed": "<timestamp>", "shippingmethod": "<string>", "metadata": "<string>", "products": [{ "idproduct": "<integer>", "idpaper": "<integer>", "quantity": "<integer>", "size": "<string>" }] } }
Het veld shippingmethod is PICKUP (afhaling) of BPOST (levering op een adres). Het veld totalcost bevat de kosten van de bestelling, totalorder het te betalen totaal. Een hoofdbestelling geeft ook haar deelbestellingen terug (suborders); een deelbestelling geeft de ID van haar hoofdbestelling terug (parent_idorder).
Kies de verzendmethode door /orders/{IDORDER}/shipping/{SHIPPING_METHOD} aan te roepen. Zonder deze aanroep staat de bestelling op levering (BPOST). Elke andere waarde geeft een fout.
POST /orders/{IDORDER}/shipping/{SHIPPING_METHOD}
Succes antwoord:
{ "status": 1 }
Stel het leveringsadres van een bestelling in door /orders/{IDORDER}/shipping-address aan te roepen. De bestelling staat dan op levering. Een bestelling heeft één adres: maak één bestelling per ontvanger.
POST /orders/{IDORDER}/shipping-address { "nom": "<string>", "prenom": "<string>", "societe": "<string>", "adresse": "<string>", "complement_adresse": "<string>", "cp": "<string>", "localite": "<string>", "pays": "<string>", "email": "<string>" }
Succes antwoord:
{ "status": 1, "idadrliv": "<integer>" }
Haal een lijst op van beschikbare afdrukproducten door /products aan te roepen:
GET /products
Succes antwoord:
{ "status": 1, "products": { "<idformat>": { "idformat": "<integer>", "format": "<string>", "largeur": "<integer>", "hauteur": "<integer>", "prix": { "<idpaper>": "<float>" } } } }
De teruggegeven prijs is de basisprijs per stuk. De prijzen zijn degressief: de stukprijs daalt volgens de totale bestelde hoeveelheid voor hetzelfde product en hetzelfde papier. Gebruik /calculate of /orders/{IDORDER}/price om de werkelijk toegepaste prijs te kennen.
Voeg ?include=montage toe om ook de montages te krijgen die op uw account beschikbaar zijn (mapjes, pasfotovellen, schoolmontages), herkenbaar aan idtypeformat = 100. Elke opmaak is een apart product: u kiest de opmaak door het product te kiezen. Stuur één foto per montage; het labo stelt het vel samen.
Bereken de prijs van een lijst producten, zonder een bestelling aan te maken, door /calculate aan te roepen. De prijsschaal wordt toegepast op de hoeveelheid van elke lijn:
POST /calculate { "products": "[{ \"idproduct\": <integer>, \"idpaper\": <integer>, \"quantity\": <integer> }]", "shippingmethod": "<string>" }
Succes antwoord:
{ "products": [{ "idproduct": "<integer>", "idpaper": "<integer>", "quantity": "<integer>", "price": "<float>", "total": "<float>" }], "total_products": "<float>", "total_shipping": "<float>", "total_order": "<float>" }
Voeg producten toe aan uw bestelling door een POST-verzoek naar /orders/{IDORDER}/products te sturen:
POST /orders/{IDORDER}/products { "idproduct": "<integer>", "idpaper": "<integer>", "quantity": "<integer>", "fileurl": "<string>", "filename": "<string>", "filesize": "<integer>", "backprint": "<string>" }
Meerdere producten kunnen in één aanroep worden toegevoegd:
POST /orders/{IDORDER}/products { "products": [{ "idproduct": "<integer>", "idpaper": "<integer>", "quantity": "<integer>", "fileurl": "<string>", "filename": "<string>", "filesize": "<integer>", "backprint": "<string>" }] }
Succes antwoord:
{ "status": 1, "products": [{ "idproduct": "<integer>", "idpaper": "<integer>", "quantity": "<integer>", "fileurl": "<string>", "filename": "<string>", "filesize": "<integer>" }] }
Om een reeks envelop per envelop te laten verpakken (schoolfotografie), maakt u onder de hoofdbestelling één deelbestelling per envelop aan door /orders/{IDORDER}/suborders aan te roepen:
POST /orders/{IDORDER}/suborders { "label": "<string>" }
Succes antwoord:
{ "status": 1, "order": { "idorder": "<integer>", "label": "<string>", "parent_idorder": "<integer>" } }
Voeg daarna de foto's van de envelop toe met /orders/{SUBORDER_ID}/products. Prijs, verzending en bevestiging gebeuren alleen op de hoofdbestelling: die aanroepen op een deelbestelling geven een fout. Door de hoofdbestelling te bevestigen worden al haar deelbestellingen bevestigd.
Enveloppen worden verpakt in de volgorde waarin de deelbestellingen zijn aangemaakt: maak ze aan gesorteerd per klas en daarna per kind. Het label wordt op het etiket van de envelop gedrukt en standaard op de achterkant van elke foto in de envelop.
Een envelop onder het minimum van uw account (aantal afdrukken en bedrag) brengt behandelingskosten mee, die bij de kosten van de hoofdbestelling worden opgeteld. /orders/{IDORDER}/price toont die kosten per envelop. Het veld totalorder van een deelbestelling blijft 0 tot de hoofdbestelling is bevestigd, die dan het bedrag van de envelop invult.
Vraag vóór de bevestiging de stukprijs op die op elk product van de bestelling wordt toegepast door /orders/{IDORDER}/price aan te roepen. De hoeveelheden van hetzelfde product en hetzelfde papier worden opgeteld om de prijsschaal te bepalen:
POST /orders/{IDORDER}/price {}
Succes antwoord:
{ "status": 1, "products": [{ "idformat": "<integer>", "idpapier": "<integer>", "prix": "<float>", "quantite": "<integer>" }], "suborders": [{ "idorder": "<integer>", "label": "<string>", "prints": "<integer>", "total": "<float>", "fee": "<float>" }] }
Het veld suborders geeft per envelop het aantal afdrukken, het bedrag en eventuele behandelingskosten.
Sluit de bestelling door /orders/{IDORDER}/close aan te roepen nadat alle producten zijn toegevoegd:
Een bevestigde bestelling kan niet meer worden gewijzigd.
POST /orders/{IDORDER}/close {}
Succes antwoord:
{ "status": 1, "total_order": "<float>", "products": [{ "idformat": "<integer>", "idpapier": "<integer>", "prix": "<float>", "quantite": "<integer>" }] }
Eén school, één envelop per kind, geleverd op de school:
POST /orders Maak de hoofdbestelling van de school aan.POST /orders/{IDORDER}/shipping-address Geef het adres van de school op.POST /orders/{IDORDER}/suborders Maak één deelbestelling per kind aan, gesorteerd per klas en daarna per kind.POST /orders/{SUBORDER_ID}/products Voeg de foto's van elk kind toe: afdrukken, mapjes, pasfotovellen.POST /orders/{IDORDER}/price Controleer de prijs en de kosten per envelop.POST /orders/{IDORDER}/close Bevestig: alle enveloppen gaan in productie.Voor levering bij een ouder thuis maakt u een aparte bestelling aan met een eigen leveringsadres.