Skip to content

Booking flow

All paths below are relative to https://api.kisum.io/venues/public/v1/sites/{siteKey}. The full request and response fields are in the API reference.

GET /spaces

Returns the venue’s active spaces with a published listing: name, capacity, description, amenities, photos and layouts. Use id in the next requests.

GET /spaces/{spaceId}/slots

Returns the time slots a space can be booked for, such as an evening slot from 18:00 to 23:00, and the packages offered for each slot.

For each package:

  • hireFeeCents is the hire fee before tax.
  • hireFeeWithTaxCents is the hire fee including tax.
  • venueIncludes lists what the venue provides.
  • promoterResponsibilities lists what the organizer must provide.

Slots without a package are not returned. Slot times are in the venue’s time zone (timezone in GET /venue).

GET /spaces/{spaceId}/availability?from=2026-10-01&to=2026-10-31

Returns one entry per date. Each entry lists the slots with free: true or free: false:

{
"date": "2026-10-01",
"slots": [
{ "slotId": "3f1c...", "free": true },
{ "slotId": "8a2d...", "free": false }
]
}
  • The range can cover up to 92 days.
  • A slot is not free when it is booked, blocked by the venue, held by a pending booking request, or has already started.
  • Match slotId with the slots from step 2. Ignore any slot that step 2 did not return.
POST /quote
{
"spaceId": "",
"slotId": "",
"packageId": "",
"date": "2026-10-01"
}

Returns the price for the selected package, slot and date:

  • hireFeeCents: total before tax
  • taxCents: tax
  • totalCents: total including tax
  • dueNowCents: amount due after the contract is signed
  • lines: the price breakdown
  • payments: the payment instalments the venue will invoice if the booking is confirmed

Each payment has amountCents and dueBasis, which states when it is due:

dueBasisDue
after_signingAfter the contract is signed. offsetDays is the number of days after signing.
before_eventBefore the event. offsetDays is the number of days before the event.
before_onsaleBefore tickets go on sale. offsetDays is the number of days before the event.
after_settlementAfter the event is settled. offsetDays is the number of days after the event.
fixed_dateOn fixedDate.
deducted_from_ticket_salesDeducted from the event’s ticket sales.

The quote is for display only. It does not hold the date.

POST /booking-requests
{
"spaceId": "",
"slotId": "",
"packageId": "",
"date": "2026-10-01",
"guest": {
"name": "Ana Putri",
"email": "ana@example.com",
"phone": "+62 812 0000 0000",
"company": "Sunset Live"
},
"message": "Album launch for 400 guests.",
"website": ""
}
  • guest.name and guest.email are required. guest.phone, guest.company and message are optional.
  • website is a spam protection field. Keep it hidden from visitors and always send it empty. See Spam protection.

A successful request returns 201:

{
"success": true,
"message": "Request sent. The venue will get back to you.",
"data": {
"reference": "WB-1A2B3C4D",
"status": "pending_approval",
"holdExpiresAt": "2026-09-20T10:00:00Z"
}
}

Show the reference to the visitor. If the date was booked by someone else in the meantime, the API returns 409. Ask the visitor to select another date.

The venue reviews the request in Kisum Venues and accepts or declines it. The venue contacts the visitor directly using the details in the request. The API does not send emails and does not report the decision back to your website.