Skip to content

Go-live checklist

Going live is a one-word change: the studio slug. The host, the SDK, the endpoints and your code stay the same. Before you flip it, walk through this list once.

  • The studio’s site is published in the dashboard (Studio → Web del estudio) and sandbox mode is off. The site payload answers "site": { "sandbox": false }.
  • Every room you link to has "bookable": true. Rooms are bookable once they are activated and have opening hours; the payload tells you per room.
  • Prices, minimum and maximum duration, step, notice and horizon look right — your UI inherits them from /public/sites/{slug}, so a wrong number there is a wrong number everywhere.
  • The payload carries captchaSiteKey. Attach a Turnstile token solved for the action hold on the studio’s own host to every POST /holds; otherwise the API answers CAPTCHA_FAILED. The SDK’s embedded screen does this for you; the headless flow and raw API need the widget.
  • If the studio takes deposits, stripePublishableKey is present and card appears in room.paymentModes. Mount the Payment Element with that key and confirm with the clientSecret from /confirm — see Card payments.
  • Test with Stripe’s test cards on the studio’s own site before it is published, or ask us for a test session. Never test with a real card on a live slug.
  • After a card confirmation, poll GET /public/bookings/manage/{token} until status is confirmed; the webhook, not the browser, settles the booking.
  • The guest’s locale in the hold (es, ca, en) decides the language of the code, confirmation and reminders. Default it from your page’s language.
  • Validate phone numbers in E.164 (+34…) before you send them: a wrong number burns a code and a rate-limit slot.
  • SLOT_TAKEN on hold → reload availability and ask for another time. The SDK exposes error.slotIsGone.
  • HOLD_EXPIRED / HOLD_NOT_FOUND on verify or confirm → start again; unverified holds live 5 minutes, verified ones until 12 minutes after creation. (error.holdIsDead)
  • RATE_LIMITED → show “try again in a minute”, do not retry in a loop. The full list is in Errors & rate limits.
  • Show or email the manageUrl you get back. It is the guest’s only way to see or cancel the booking without calling the studio, and it means you never have to build cancellations.

That is the whole list. If something in it is unclear for your case, write to us with the request id of any response you are unsure about.