Boekingen¶
Huidige versie: 1.1.0
Create¶
- POST /api2/boekingen¶
Maak een nieuwe boeking aan
Voorbeeld request:
POST /api2/boekingen HTTP/1.1 Host: demo.recras.nl Accept: application/json { "klant_id": 47, "begin": "2014-01-01T15:00:00+01:00", "personen": 15, "arrangement_id": 2, "arrangement": "Klimmen en barbecue" }
- JSON Parameters:
klant_id (integer) – Verplicht Het
id
van een klantbegin (datetime) – Verplicht Beginmoment van de boeking
personen (integer) – Verplicht De groepsgrootte
status (string) – Default: informatie De status van de boeking (voor mogelijke statussen zie Statussen van boekingen)
arrangement (string) – De naam van het arrangement zoals die naar de klant wordt weergegeven
boeking_id (integer) – Het
id
van de boeking waar deze boeking op gebaseerd is. Deze kan niet in combinatie met de volgende velden gestuurd worden:arrangement_id
,book_process_id
,product_id
arrangement_id (integer) – Het
id
van het arrangement waar deze boeking op gebaseerd isbook_process_id (integer) – Het
id
van het boekproces waar deze boeking op gebaseerd isproduct_id (integer) – Het
id
van het product waar deze boeking op gebaseerd isstatus_vervaldatum (date) – De datum waarop de optie/reservering zal vervallen
bijzonderheden (string) – Bijzonderheden van deze boeking die voor personeel en leveranciers van belang zijn
Voorbeeld response:
HTTP/1.1 201 Created Content-Type: application/json { "id": 34, "klant_id": 47, "datum": "2014-01-01", "status": "informatie", "arrangement": "Klimmen en barbecue", "personen": 15, "status_updated_at": "2014-10-29T10:53:15+01:00", "arrangement_id": 2, "online_boeking": false, "status_vervaldatum": null, "bijzonderheden": "", "conceptfactuur_na_dagen": null, "referentie": "47-2", "boekingsregels": [ { "id": 132, "locatie_id": 2, "aantal": 15, "begin": "2014-01-01T18:00:00+01:00", "eind": "2014-01-01T20:00:00+01:00", "minimum_aantal": 0, "beschrijving": "Genieten van onze heerlijke BBQ", "opmerking": null, "betaald_bedrag": null, "betaal_datum": null, "betaal_opmerking": null, "herinnering_leverancier": null, "product_id": 5 }, { "id": 133, "locatie_id": 1, "aantal": 15, "begin": "2014-01-01T15:30:00+01:00", "eind": "2014-01-01T18:00:00+01:00", "minimum_aantal": 8, "beschrijving": "Met de hele groep, onder begeleiding, heerlijk klimmen.", "opmerking": null, "betaald_bedrag": null, "betaal_datum": null, "betaal_opmerking": null, "herinnering_leverancier": null, "product_id": 6 }, { "id": 134, "locatie_id": 2, "aantal": 15, "begin": "2014-01-01T15:00:00+01:00", "eind": "2014-01-01T15:30:00+01:00", "minimum_aantal": 0, "beschrijving": "Ontvangst met koffie,thee op het Klimbos terras", "opmerking": null, "betaald_bedrag": null, "betaal_datum": null, "betaal_opmerking": null, "herinnering_leverancier": null, "product_id": 3 } ], "kosten": { "klant_id": 47, "opmerking": null, "betaaltermijn": 14, "referentie_klant": null, "calculated_totaalbedrag_inclusief_btw": 643.95, "bedrijf_id": 1, "boeking_id": 34, "regels": [ { "id": 285, "naam": "Klimmen en barbecue", "type": "groep", "kortingspercentage": 0, "kortingomschrijving": null, "children_visible": false, "regels": [ { "id": 288, "naam": "Ontvangst koffie / thee", "type": "item", "kortingspercentage": 0, "kortingomschrijving": null, "aantal": 15, "bedrag": 2.5, "btw_percentage": 6, "product_id": 3, "boekingsregel_id": 134 }, { "id": 287, "naam": "Groepen klimmen", "type": "item", "kortingspercentage": 0, "kortingomschrijving": null, "aantal": 15, "bedrag": 15, "btw_percentage": 6, "product_id": 6, "boekingsregel_id": 133 }, { "id": 286, "naam": "Basis BBQ", "type": "item", "kortingspercentage": 0, "kortingomschrijving": null, "aantal": 15, "bedrag": 23, "btw_percentage": 6, "product_id": 5, "boekingsregel_id": 132 } ] } ] } }
- Response Headers:
Location – De locatie van de nieuwe boeking
- Status Codes:
201 Created – Boeking gemaakt
406 Not Acceptable – Fout in de invoer
403 Forbidden – Gebruiker heeft het recht
createBoeking
niet
Read¶
- GET /api2/boekingen¶
Verkrijg een lijst van boekingen
- Query Parameters:
page (integer) – Default: 1, minimum: 1 De pagina weer te geven
page_size (integer) – Default: 100 Het aantal boekingen per pagina
locatie (integer) – Kommagescheiden lijst locatie-ids, vraag boekingen op die een activiteit op één van deze locaties hebben
periode (periode) – ISO 8601 time interval. Bv: P1D of 2021-11-01T00:00:00+01:00/2021-11-05T00:00:00+01:00
referentiedatum (string) – Default: boekingsregel Filter bookings by containing a booking line in the given period (
boekingsregel
, default); by start date of the booking (startdatum
); or by booking creation date (created_at
)status (boekingsstatus) – Kommagescheiden lijst van statussen
los_op_planning (boolean) – Geef alleen boekingen die een product bevatten dat de instelling los op planning heeft
embed (objectnaam) – Kommagescheiden lijst van objecten om in de resultatenlijst op te nemen. Mogelijke objectnamen zijn
Klant
,boekingsregels
,kosten
,Klant.Hoofdcontact
(impliceertKlant
),Creator
,Diensten
,Facturen
,Facturen._betaald_bedrag
klant_id (integer) – Geef alleen boekingen van deze klant terug
Klant.soort_klant (string) – Kommagescheiden lijst van klantsoorten. Geef alleen boekingen weer waarvan de klant van dit soort is. (impliceert
embed=Klant
) (Sinds versie 0.1.1)bedrijf_id (integer) – Kommagescheiden lijst van bedrijfsids. Geef alleen boekingen weer waarvan de boeking bij dit bedrijf hoort. (impliceert
embed=Klant
) (Sinds versie 0.1.1)bevat_product_id – Comma separated list of product ids the booking must contain
- Status Codes:
200 OK – OK
406 Not Acceptable – Fout in de parameters
Voorbeeld request:
GET /api2/boekingen HTTP/1.1 Host: demo.recras.nl Accept: application/json
Voorbeeld response:
HTTP/1.1 200 OK Content-Type: application/json [ { "id": 75, "klant_id": 49, "referentie": "49-2", "datum": "2015-01-01", "status": "informatie", "arrangement": "Boogschieten met buffet", "personen": 15, "status_updated_at": "2014-06-03T15:11:34+02:00", "arrangement_id": 4, "online_boeking": false, "status_vervaldatum": null, "bijzonderheden": null, }, { "id": 1, "klant_id": 9, "referentie": "9-1", "datum": "2014-05-01", "status": "informatie", "arrangement": "Gezinsmaaltijd", "personen": 10, "status_updated_at": "2013-06-19T10:46:47+02:00", "arrangement_id": 2, "online_boeking": false, "status_vervaldatum": null, "bijzonderheden": "", "conceptfactuur_na_dagen": null } ]
- GET /api2/boekingen/(int: id)¶
Een specifieke boeking
- Query Parameters:
embed (objectnaam) – Kommagescheiden lijst van objecten om in de resultatenlijst op te nemen. Zie ook BoekingenEmbedParameter
- Status Codes:
200 OK – OK
406 Not Acceptable – Fout in de parameters
404 Not Found – Boeking niet gevonden
Voorbeeld request (embed Klant):
GET /api2/boekingen/75?embed=Klant,Klant.Hoofdcontact,boekingsregels,kosten,gefactureerd_bedrag HTTP/1.1 Host: demo.recras.nl Accept: application/json
Voorbeeld response:
HTTP/1.1 200 OK Content-Type: application/json { "id": 25, "klant_id": 46, "datum": "2014-11-15", "status": "optie", "arrangement": "Klimmen en bbq", "personen": 23, "status_updated_at": "2014-10-14T12:04:05+02:00", "arrangement_id": 2, "online_boeking": false, "status_vervaldatum": "2014-10-13", "bijzonderheden": "", "conceptfactuur_na_dagen": null, "gefactureerd_bedrag": 0, "referentie": "46-1", "boekingsregels": [ { "id": 112, "locatie_id": 2, "aantal": 23, "begin": "2014-11-15T12:00:00+01:00", "eind": "2014-11-15T14:00:00+01:00", "minimum_aantal": 0, "beschrijving": "Genieten van onze heerlijke BBQ", "opmerking": "", "betaald_bedrag": null, "betaal_datum": null, "betaal_opmerking": null, "herinnering_leverancier": null, "product_id": 5 }, { "id": 113, "locatie_id": 1, "aantal": 20, "begin": "2014-11-15T09:30:00+01:00", "eind": "2014-11-15T12:00:00+01:00", "minimum_aantal": 8, "beschrijving": "Met de hele groep, onder begeleiding, heerlijk klimmen.", "opmerking": "", "betaald_bedrag": null, "betaal_datum": null, "betaal_opmerking": null, "herinnering_leverancier": null, "product_id": 6 }, { "id": 114, "locatie_id": 2, "aantal": 23, "begin": "2014-11-15T09:00:00+01:00", "eind": "2014-11-15T09:30:00+01:00", "minimum_aantal": 0, "beschrijving": "Ontvangst met koffie,thee op het Klimbos terras", "opmerking": "", "betaald_bedrag": null, "betaal_datum": null, "betaal_opmerking": null, "herinnering_leverancier": null, "product_id": 3 } ], "Klant": { "id": 46, "displaynaam": "Restaurant de Dinkel", "naam": "Restaurant de Dinkel", "adres": "", "postcode": "", "plaats": "Dinxperloo", "provinciecode": null, "website": "", "bedrijf_id": 1, "soort_klant": null, "afdeling": null, "factuur_adressering": null, "Hoofdcontact": { "id": 41, "voornaam": "Fiona", "achternaam": "Teggartz", "geslacht": "onbekend", "aanhef": "", "adres": "", "postcode": "", "plaats": "", "telefoon1": "", "telefoon2": "", "email1": "", "email2": "", "hoofdcontact": true } }, "kosten": { "klant_id": 46, "opmerking": "", "betaaltermijn": 14, "referentie_klant": "", "calculated_totaalbedrag_inclusief_btw": 886.5, "bedrijf_id": 1, "boeking_id": 25, "regels": [ { "id": 236, "naam": "Klimmen en bbq", "type": "groep", "kortingspercentage": 0, "kortingomschrijving": "", "children_visible": false, "regels": [ { "id": 239, "naam": "Ontvangst koffie / thee", "type": "item", "kortingspercentage": 0, "kortingomschrijving": "", "aantal": 23, "bedrag": 2.5, "btw_percentage": 6, "product_id": 3, "boekingsregel_id": 114 }, { "id": 238, "naam": "Groepen klimmen", "type": "item", "kortingspercentage": 0, "kortingomschrijving": "", "aantal": 20, "bedrag": 15, "btw_percentage": 6, "product_id": 6, "boekingsregel_id": 113 }, { "id": 237, "naam": "Basis BBQ", "type": "item", "kortingspercentage": 0, "kortingomschrijving": "", "aantal": 23, "bedrag": 23, "btw_percentage": 6, "product_id": 5, "boekingsregel_id": 112 } ] } ] } }
Update¶
- PUT /api2/boekingen/(int: id)¶
Update een bestaande boeking.
- JSON Parameters:
id (int) – Het
id
-nummer, kan niet aangepast wordenklant_id (string) – Het
id
-nummer van de klant, kan niet aangepast wordendatum (date) – Deprecated De datum van de boeking, kan niet aangepast worden
status (string) – De status van de boeking (voor mogelijke statussen zie Statussen van boekingen)
arrangement (string) – De naam van het arrangement zoals gepresenteerd aan de klant
personen (int) – Het aantal personen van de boeking
status_updated_at (datetime) – Het moment dat de status van deze boeking voor het laatst gewijzigd is. Kan niet aangepast worden
arrangement_id (int) – Het
id
-nummer van het arrangement op basis waarvan deze boeking is gemaakt, kan niet aangepast wordenonline_boeking (boolean) – Of deze boeking door de Online Boeking module is aangemaakt. Kan niet aangepast worden
status_vervaldatum (date) – Vervaldatum van status. Alleen geldig voor boekingen met status informatie, interesse, optie en reservering
bijzonderheden (string) – Opmerkingen voor intern gebruik
conceptfactuur_na_dagen (int) – Hoeveel dagen na de boeking een conceptfactuur gemaakt moet worden. Een negatief getal zorgt er voor dat er voor de boekingsdatum een conceptfactuur wordt gemaakt. null betekent dat er geen conceptfactuur gemaakt zal worden.
referentie (string) – De referentie van de boeking. Kan niet aangepast worden
boekingsregels (array) – De lijst van boekingsregels van deze boeking. Boekingsregels kunnen toegevoegd, verwijderd of aangepast worden. Moet tegelijk met het veld
kosten
aangepast worden. Als er een nieuwe regel wordt toegevoegd, hoeft geen kostenregel toegevoegd te worden, dit gebeurt automatisch.kosten – De kosten-structuur van deze boeking. Kostenregels kunnen toegevoegd, verwijderd of aangepast worden. Moet tegelijk met het veld
boekingsregels
aangepast worden. Een kostenstructuur moet voor iedere boekingsregel een corresponderende item-regel bevatten
Boekingsregels
- JSON Parameters:
boekingsregel.id (int) –
id
-nummer van de aan te passen boekingsregel. Kan niet aangepast worden.boekingsregel.ref (string) – Zelfgekozen referentie om naar te verwijzen vanuit nieuwe kostenregels.
boekingsregel.locatie_id (int) –
id
-nummer van de locatie waar deze activiteit plaatsvindt. Kan alleen ingesteld worden op locaties waar het opgegeven product kan plaatsvinden.boekingsregel.aantal (int) – Verplicht voor nieuwe boekingsregels
boekingsregel.begin (datetime) – Begin van de activiteit. Moet kleiner of gelijk zijn dan de corresponderende eind-tijd
boekingsregel.eind (datetime) – Moet groter of gelijk zijn dan de corresponderende begin-tijd
boekingsregel.minimum_aantal (int) – Kan niet aangepast worden
boekingsregel.beschrijving (string) – Beschrijving van de boekingsregel om te tonen aan de klant
boekingsregel.opmerking (string) – Opmerking bij de boekingsregel voor personeel en/of leverancier
boekingsregel.betaald_bedrag (float) – Bedrag dat voor deze boekingsregel is betaald aan de leverancier
boekingsregel.betaal_datum (date) – Datum waarop voor deze boekingsregel is betaald aan de leverancier
boekingsregel.betaal_opmerking (string) – Opmerking bij de betaling aan de leverancier
boekingsregel.herinnering_leverancier (datetime) – Moment dat voor het laatst een automatische herinnering aan de leverancier is verstuurd. Kan niet aangepast worden
boekingsregel.product_id (int) –
id
-nummer van het product. Dit veld aanpassen past ookboekingsregel.minimum_aantal
aan
Kosten-structuur
- JSON Parameters:
kosten.klant_id (int) – Deprecated
id
-nummer van de klant. Kan niet aangepast wordenkosten.opmerking (string) – Opmerking voor op de factuur
kosten.betaaltermijn (int) – De betaaltermijn in dagen
kosten.referentie_klant (string) – Een extra referentie voor de klant
kosten.calculated_totaalbedrag_inclusief_btw (float) – Het totaalbedrag wat de klant zou moeten betalen als de boeking gefactureerd wordt. Kan niet aangepast worden
kosten.bedrijf_id (int) –
id
-nummer van het bedrijf waar gemaakte facturen namens verstuurd wordenkosten.boeking_id (int) – Deprecated
id
-nummer van de boeking. Kan niet aangepast wordenkosten.regels (array) – Lijst van
kostenregel
-objecten.
Kostenregel
- JSON Parameters:
kostenregel.id (int) –
id
-nummer van de kostenregel. Kan niet aangepast wordenkostenregel.boekingsregel_ref (string) – Referentie van nieuwe boekingsregel. Kan niet tegelijk met
id
ofboekingsregel_id
aangepast wordenkostenregel.naam (string)
kostenregel.type (string) – Verplicht Type van de kostenregel, mogelijke waarden zijn groep, item
kostenregel.kortingspercentage (float) – Kortingspercentage te berekenen voor dit item of deze groep
kostenregel.kortingomschrijving (string) – Omschrijving van de berekende korting
kostenregel.children_visible (boolean) – Alleen voor groep-regels Of de onderliggende regels weergegeven moeten worden op de factuur
kostenregel.regels (array) – Alleen voor groep-regels Lijst van kostenregels
kostenregel.product_id (int) – Alleen voor item-regels
id
-nummer van het product. Kan alleen aangepast worden wanneerboekingsregel_id
= null. Wordt automatisch aangepast wanneer de corresponderende boekingsregel aangepast wordt.kostenregel.aantal (int) – Alleen voor item-regels Aantal eenheden. Kan alleen aangepast worden wanneer
boekingsregel_id
= null. Wordt automatisch aangepast wanneer de corresponderende boekingsregel aangepast wordt.kostenregel.bedrag (float) – Alleen voor item-regels Stuksprijs Wordt automatisch aangepast wanneer de corresponderende boekingsregel aangepast wordt.
kostenregel.btw_percentage (float) – Alleen voor item-regels BTW-percentage te berekenen Wordt automatisch aangepast wanneer
kostenregel.product_id
aangepast wordt.kostenregel.boekingsregel_id (int) – Alleen voor item-regels
id
-nummer van de corresponderende boekingsregel
Delete¶
- DELETE /api2/boekingen/(int: id)¶
Delete an existing booking. Not all bookings can be deleted. To check if a booking can be deleted, make a GET request to /api2/boekingen/:id/deletable
Example request:
DELETE /api2/boekingen/5 HTTP/1.1 Host: demo.recras.nl
Example response:
HTTP/1.1 200 OK
- Status Codes:
200 OK – Booking deleted
Statussen van boekingen¶
Iedere boeking in Recras heeft een status. Alle statussen zijn beschreven op de algemene support-pagina over boekingsstatussen. De mogelijke statussen zijn:
informatie
interesse
optie
pending_online
reservering
definitief
gaande
voltooid
geannuleerd
HATEOAS Links¶
Each booking resource should have a _links
map. The followine relations may be present:
recras:diensten_bij_boeking
If this link is present, you may follow it to find a list of shifts associated with this booking.
recras:send_boekingsvoorstel
If this link is present, you may follow it to send a booking proposal.
recras:invoices
If this link is present, you may follow it to find a list if invoices associated with this booking.
recras:booking:set_status:ongoing
If this link is present, you may follow it to set the status of the booking to ongoing (
gaande
). In the special case of the booking-status begin set from finished to ongoing, the link may return 403 response if the authenticated user doesn’t have thesaveOverbooking
permission, otherwise, it should return a 204 status code. The Recras Point-of-Sale uses this link to set bookings to ongoing. New in API version 0.2.1recras:booking:set_status:finished
If this link is present, you may follow it to set the status of the booking to finished (
voltooid
). The Recras Point-of-Sale uses this link to set bookings to finished. New in API version 0.2.1recras:booking:set_status:confirmed
If this link is present, you may follow it to set the status of the booking to confirmed (
definitief
). The Recras Point-of-Sale uses this link to set bookings to confirmed. New in API version 0.2.1recras:booking:qr
If this link is present, you may follow it to get the contents of a QR-code that can be used to put the booking to “ongoing” in the POS