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 klant

  • begin (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 is

  • book_process_id (integer) – Het id van het boekproces waar deze boeking op gebaseerd is

  • product_id (integer) – Het id van het product waar deze boeking op gebaseerd is

  • status_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:

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 (impliceert Klant), 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:

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:

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 worden

  • klant_id (string) – Het id-nummer van de klant, kan niet aangepast worden

  • datum (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 worden

  • online_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 ook boekingsregel.minimum_aantal aan

Kosten-structuur

JSON Parameters:
  • kosten.klant_id (int) – Deprecated id-nummer van de klant. Kan niet aangepast worden

  • kosten.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 worden

  • kosten.boeking_id (int) – Deprecated id-nummer van de boeking. Kan niet aangepast worden

  • kosten.regels (array) – Lijst van kostenregel-objecten.

Kostenregel

JSON Parameters:
  • kostenregel.id (int) – id-nummer van de kostenregel. Kan niet aangepast worden

  • kostenregel.boekingsregel_ref (string) – Referentie van nieuwe boekingsregel. Kan niet tegelijk met id of boekingsregel_id aangepast worden

  • kostenregel.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 wanneer boekingsregel_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:

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