Book Products¶
Current Version: 0.1.0
Global Overview¶
This API is closely related to the product availability API
Create Booking¶
- POST /api2/book_products¶
This endpoint allows to create a booking based on a list of products. It requires the
createBoeking
permission. Modifying the status of a booking after it has been created requires theeditBoeking
permission.Example request:
POST /api2/book_products HTTP/1.1 Host: demo.recras.nl Content-Type: application/json { "status": "reservering", "customer": { "email": "foo@bar.nl", "company_id:" 2, "first_name": "foo", "last_name": "bar", "phone_number": "050-2112222" }, "products":[ {"amount":1,"product_id":2,"datetime":"2030-01-01 10:00:00"}, {"amount":1,"product_id":4,"datetime":"2030-01-01 10:00:00", "location_id": 4} ], "should_invoice": true }
- JSON Parameters:
status (string) – required Either
reservering
ordefinitief
.customer (object) – required Customer object
customer.email (string) – required Email
customer.company_id (int) – Company id (will be used for the booking as well)
customer.first_name (string) – First Name
customer.last_name (string) – Last Name
customer.phone_number (string) – Phone Number
products (array) – required A list of products
products[].amount (int) – required The amount to book of this product
products[].product_id (int) – required The id of the product to book
products[].datetime (datetime) – required ISO8601 or RFC3339 formatted datetime for the start of this product. Should be a valid “startmoment”
products[].location_id (int) – Optional location_id for the product
should_invoice (boolean) – Defaults to
true
, and can only be set tofalse
if the global Recras setting permits this.
Example response:
HTTP/1.1 201 OK Content-Type: application/json { "id": 51, "ref": "67-1", "qr_code": "B:67-1:1:8bfbcfef8aecbb20cb881f1596efd59d9d746ce51cf6008868f19a4528073361", "_links": { "recras:booking:set_status:confirmed": { "href": "/api2/boekingen/51/set_status/definitief", "method": "POST" }, "recras:booking:set_status:cancelled": { "href": "/api2/boekingen/51/set_status/geannuleerd", "method": "POST" } } }
- Status Codes:
201 Created – Booking created
- JSON Parameters:
id (int) – The id of the created booking
ref (string) – The booking reference
qr_code (string) – String for a QR-code to scan in the POS
_links (object) – An object with HATEOAS Links
HATEOAS Links¶
Each booking resource should have a _links
map. The following relations may be present:
recras: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.recras:booking:set_status:cancelled
If this link is present, you may follow it to set the status of the booking to cancelled (
geannuleerd
).