Skip to main content
POST
/
bookings
/
create
Create booking
curl --request POST \
  --url https://api.plec-it.com/bookings/create \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "items": [
    {
      "listingId": "10000001",
      "type": "venue",
      "price": 200,
      "guestCount": 10,
      "selectedPackages": [
        {
          "packageId": "pkg-premium",
          "packageName": "Premium tier",
          "price": 150
        }
      ]
    }
  ],
  "date": "2025-12-04",
  "time": "09:00",
  "duration": 4,
  "startTime": "2025-12-04T09:00:00Z",
  "endTime": "2025-12-04T13:00:00Z",
  "packageId": "<string>",
  "upgradeBookingId": {},
  "specialRequests": "<string>",
  "paymentFlow": "hosted_checkout"
}
'
{
  "mode": "instant_booking",
  "bookingId": "550e8400-e29b-41d4-a716-446655440000",
  "message": "Your request has been sent to the host.",
  "checkoutUrl": "https://checkout.stripe.com/c/pay/cs_...",
  "paymentIntentClientSecret": "pi_xxx_secret_xxx",
  "publishableKey": "pk_test_..."
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Query Parameters

dryRun
enum<string>
default:true
required

When true, validates and simulates the request but performs no writes. Recommended when calling from docs.

Available options:
true

Body

application/json
items
object[]
required

Booking line items (venue and/or services)

date
string
required

Booking date (ISO date)

Example:

"2025-12-04"

time
string
required

Start time

Example:

"09:00"

duration
object

Duration in hours

Example:

4

startTime
string

Start timestamp (ISO)

Example:

"2025-12-04T09:00:00Z"

endTime
string

End timestamp (ISO)

Example:

"2025-12-04T13:00:00Z"

packageId
string

DEPRECATED: Use items[].selectedPackages instead

upgradeBookingId
object

If provided, upgrade existing booking instead of creating new one

specialRequests
string

Optional message to host (e.g. purpose of event)

paymentFlow
enum<string>

Payment flow: hosted_checkout (redirect) or payment_sheet (native)

Available options:
hosted_checkout,
payment_sheet

Response

Success

mode
enum<string>
required

Result mode

Available options:
approval_required,
instant_booking
Example:

"instant_booking"

bookingId
string

Booking ID (when mode is approval_required or instant_booking with payment sheet)

Example:

"550e8400-e29b-41d4-a716-446655440000"

message
string

Message for user when approval is required

Example:

"Your request has been sent to the host."

checkoutUrl
string

Stripe Checkout URL (when mode is instant_booking and payment flow is hosted_checkout)

Example:

"https://checkout.stripe.com/c/pay/cs_..."

paymentIntentClientSecret
string

Stripe PaymentIntent client secret (when mode is instant_booking and payment flow is payment_sheet)

Example:

"pi_xxx_secret_xxx"

publishableKey
string

Stripe publishable key (when mode is instant_booking and payment flow is payment_sheet)

Example:

"pk_test_..."