Light Booking
Light booking is a special booking method enabled on a per-partner basis by agreement with Joivy sales. It relaxes the set of mandatory fields required to place a booking, allowing a room to be reserved with minimal tenant data while the remaining information is gathered post-reservation.
How it works #
A standard booking immediately activates the contract in the Joivy platform — the tenant data is complete and the room transitions to an occupied state automatically. Light booking follows a different lifecycle:
POST /Booking with the reduced mandatory field set. The room is immediately blocked — no other booking can claim it.Required fields #
The following fields must be present in a light booking request. Fields marked conditional are required only when the corresponding commercial condition has a value.
Top-level booking fields
commercialConditions.depositAmount
commercialConditions.price
commercialConditions.discountedPrice is present — must pair with discountUntil
discountedPrice is provided — from commercialConditions.discountUntil
commercialConditions.confirmationDeposit
userData fields
A userData object is required with the following sub-fields populated. All other userData fields (tax code, address, nationality, etc.) may be omitted and will be completed by Joivy sales before contract activation.
+39
Standard vs light booking #
The table below summarises the key differences between a standard booking and a light booking.
| Aspect | Standard booking | Light booking |
|---|---|---|
| Availability | All partners | By sales agreement only |
| Room blocked on submission | Yes | Yes |
| Contract auto-activated | Yes | No — manual activation by sales |
| Full tenant data required | Yes | Partial — minimum set only |
| Missing data collected by | Partner / tenant at booking time | Joivy sales post-reservation |
| Endpoint used | POST /Booking |
POST /Booking (same endpoint) |
| Response schema | BookingResultDTO |
BookingResultDTO (same) |
POST /Booking endpoint and returns the same BookingResultDTO. The difference is in how the server processes the request — determined by your webhook configuration — not by a separate endpoint or a flag in the request body.Example request #
The following is a minimal valid light booking request. All fields not listed here are optional for this booking method.
{ "bedCode": "BED-00123", "externalReference": "PORTAL-INV-2024-0042", "checkinDate": "2024-09-01T00:00:00Z", "checkoutDate": "2025-08-31T00:00:00Z", "price": 750.00, "deposit": 750.00, "downPayment": 200.00, "feeTaxIncluded": 30.00, "userData": { "eMailAddress": "jane.doe@example.com", "phonePrefix": "+39", "phoneNumber": "3401234567", "name": "Jane", "surname": "Doe", "birthDate": "1998-04-15T00:00:00Z" } }
If the commercial conditions include a discounted price, also include:
{ // ... other required fields ... "discountedPrice": 680.00, "discountUntil": "2024-12-31T00:00:00Z" }
Response
A successful light booking returns the same BookingResultDTO as a standard booking:
{ "tenantId": "123e4567-e89b-12d3-a456-426614174000", "contractId": "123e4567-e89b-12d3-a456-426614174000", "company": null, "paymentIntent": null }
Booking lifecycle #
A light booking moves through the following states after submission:
| State | Who acts | What happens |
|---|---|---|
| Reserved | System (immediate) | Room is blocked; contractId is assigned; no other booking can claim the bed. |
| Pending activation | Joivy sales | Sales contacts the tenant to collect identity documents, tax code, home address, and other legally required fields. |
| Active | Joivy sales | All required data collected; contract formally activated in the platform. Tenant receives confirmation. |
400 Bad Request. Use the contractId from the initial response to track the reservation status.