Create booking

Book the quoted slot

POST/v1/bookings

Headers

  • AuthorizationBearer tokenRequired

    Your app key. Authentication

  • idempotency-keystring

    Your key for this booking attempt: 1-128 printable ASCII characters, no spaces (a UUID or your own order id). Repeating the exact same request with the same key returns the same booking.

Body

  • quoteIdstringRequired

    Short-lived quote id from create_quote (prefix qte_). Copy it exactly. It expires; request a new quote if it does.

  • customerCustomerInputRequired
  • customer.namestring (up to 120 characters)Required

    Full name as the customer wants it on the booking.

  • customer.emailstring (up to 254 characters)Required

    Email address (plain ASCII, e.g. sam@example.com).

  • customer.phonestring

    Phone number, digits with optional leading + and separators.

  • consentConsentInputRequired
  • consent.humanConfirmedbooleanRequired

    Set true ONLY after the human customer read what they are agreeing to (quote.summary to book; the new time and price to move a booking) and said yes. Never assume or invent consent.

  • consent.statementstring (up to 500 characters)Required

    The customer's own reply agreeing (to the booking, or to the move), copied word for word. Required: it is kept as the consent record. Never write it yourself.

  • notesstring (up to 500 characters)

    Anything the customer wants the business to know. Optional.

  • partnerRefstring (up to 64 characters)

    Your own reference for this booking (conversation id, order id). It is echoed back on the booking and in webhooks.

Responses

  • 201

    A booking: its status, time, price, the customer's consent record and what to do next.

    Booking
  • 404

    No such id, or it is not visible to this key.

    NotFound
  • 409

    The price is no longer the one quoted: show the new one and get a fresh yes. | The way this is confirmed (instantly or by the business) is no longer the one quoted: show the new quote and get a fresh yes. | The slot was taken or can no longer be booked: alternatives lists nearby openings. | This Idempotency-Key, or this quote, already produced a booking for a different request.

  • 410

    The quote's hold has lapsed: create a new quote.

    QuoteExpired
  • 422

    The customer's explicit consent is missing: stop and ask the human.

    ConsentRequired