Seating Reservations

The reservation API is used to map a booking intention. This intent can be controlled via the following endpoints.

A Reservation will expire after 15 Minutes if there is no update.
The reservation expiration time will be resetted to now() + 20 Minutes every time an object get added or removed from the reservation.

Base URL:

https://seatmap.vivenu.com/api or https://seatmap.vivenu.dev/api

Endpoints

PUBLIC

Reserve an Object

To reserve an object, this endpoint must be used. It is usually used from the client. If no token is passed, a new reservation is created, otherwise the object is added to the existing reservation. You will receive the token that identifies the reservation in the response.

Caution: You will need to provide this token to the following endpoints.

If the object is a seat: The status transitions from free to reserved.
If the object is a general admission: The booked amount increases by payload.amount

Payload

Optional Attributes

Collapse all
Responses
200
Success

Was this section helpful?

YesNo
post
/api/public/event/{id}/reserve
{
"childEventIds": [
"string"
],
"amount": 10.5,
"token": "string",
"objectId": "string",
"object": {
"gaName": "string"
},
"config": {}
}
Response
application/json
{
"status": "ok",
"statusId": "string",
"token": "string"
}
PUBLIC

Free an Object

To remove an object from a reservation, this endpoint must be used. It is usually used from the client.

If the object is a seat: The status transitions from reserved to free.
If the object is a general admission: The booked amount decreases by payload.amount

Payload

objectId
Required
string

The Status-ID of the object to remove from reservation

token
Required
string

The token for the reservation

Optional Attributes

Collapse all
Responses
200
Success

Was this section helpful?

YesNo
post
/api/public/event/{id}/free
{
"objectId": "string",
"childEventIds": [
"string"
],
"amount": 10.5,
"token": "string"
}
Response
application/json
{
"status": "ok"
}
PUBLIC

Extend a Reservation

To extend the expiration time of a reservation, this endpoint must be used. Should be used from the server only!
The new expiration is now() + 20 Minutes

Query

token
Required
string

A token to identify the reservation

Responses
200
Reservation extended
400
Reservation not found

Was this section helpful?

YesNo
post
/api/reservation/extend
Response
application/json
{
"eventId": "string",
"childEventIds": [
"string"
],
"objects": [
"string"
],
"validUntil": "2030-01-23T23:00:00.123Z",
"token": "string",
"createdAt": "2030-01-23T23:00:00.123Z",
"updatedAt": "2030-01-23T23:00:00.123Z",
"_owner": "string"
}
PUBLIC

Book a Reservation

To finaly book a reservation, this endpoint must be used. Should be used from the server only!

All included Seats will transition to booked. And all included Seats inside of General Admissions will be committed.
This action is irreversible. The reservation is then destroyed.

Payload

Optional Attributes

Collapse all

Query

token
Required
string

A token to identify the reservation

Responses
200
Reservation booked
400
Reservation not found

Was this section helpful?

YesNo
post
/api/reservation/book
{
"statusIds": [
"string"
]
}
Response
application/json
{
"eventId": "string",
"childEventIds": [
"string"
],
"objects": [
"string"
],
"validUntil": "2030-01-23T23:00:00.123Z",
"token": "string",
"createdAt": "2030-01-23T23:00:00.123Z",
"updatedAt": "2030-01-23T23:00:00.123Z",
"_owner": "string"
}
PUBLIC

Cancel a Reservation

To cancel a reservation, this endpoint must be used. Should be used from the server only!

All included Seats will transition to their initial state. And all included Seats inside of General Admissions will be discarded.
This action is irreversible. The reservation is then destroyed.

Query

token
Required
string

A token to identify the reservation

Responses
200
Reservation canceled
400
Reservation not found

Was this section helpful?

YesNo
post
/api/reservation/cancel
Response
application/json
{
"eventId": "string",
"childEventIds": [
"string"
],
"objects": [
"string"
],
"validUntil": "2030-01-23T23:00:00.123Z",
"token": "string",
"createdAt": "2030-01-23T23:00:00.123Z",
"updatedAt": "2030-01-23T23:00:00.123Z",
"_owner": "string"
}