Booking API

Send bookings from your own system to Stripbuilder. One endpoint, an API key and a JSON body.

POSThttps://app.stripbuilder.nl/api/v1/bookings

Authentication

Create a key in Stripbuilder under Settings → Integrations and send it as a Bearer token in the Authorization header. The key is shown once, so store it safely. Only use it server-side, never in the browser.

Authorization: Bearer sb_live_...

Create a booking

One request per booking. You'll find the template ID and the other IDs in Stripbuilder under Settings → Integrations.

curl -X POST https://app.stripbuilder.nl/api/v1/bookings \
  -H "Authorization: Bearer sb_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Wedding Jan & Sara",
    "date": "2026-09-12",
    "template_id": "3f2c9a4e-...",
    "location": "Kasteel Bloemendal",
    "external_ref": "CRM-8891",
    "approve": true
  }'

Fields

FieldTypeNotes
nameRequiredstringName of the booking, for example the event or the client.
dateRequiredstringEvent date as YYYY-MM-DD.
template_idRequireduuidThe template your client starts from.
locationOptionalstringEvent location.
external_refOptionalstringYour own reference, such as a booking number. A repeated request with the same reference returns the existing booking.
approveOptionalbooleanWith true the booking goes live immediately and you get the client link back. Without it, the booking lands in your requests inbox.
primary_product_idOptionaluuidThe photobooth package that was booked.
upsell_selectionsOptionalarrayExtras already booked, as a list of product_id and qty. Each extra counts once.
questionnaire_template_idOptionaluuidThe questionnaire your client fills in. Leave it out for none.
expires_atOptionalISO 8601Until when the client link works (ISO 8601).
{
  "primary_product_id": "<product-id>",
  "upsell_selections": [{ "product_id": "<product-id>", "qty": 1 }],
  "questionnaire_template_id": "<questionnaire-id>",
  "expires_at": "2026-10-01T00:00:00Z"
}

Response

You get 201 with the new booking. With approve: true the client link is in client_url. If a booking with the same external_ref already exists, you get 200 with that booking and duplicate: true.

HTTP/1.1 201 Created

{
  "id": "b7d1e0c2-...",
  "status": "pending",
  "external_ref": "CRM-8891",
  "dashboard_url": "https://app.stripbuilder.nl/dashboard/bookings/b7d1e0c2-...",
  "client_url": "https://app.stripbuilder.nl/c/Xk3n9Qe..."
}

Error codes

CodeMeaning
400A required field is missing, the date is invalid, or an ID doesn't belong to your account.
401The API key is missing or has been revoked.
403You've reached your monthly limit. This only happens with approve: true; otherwise the request waits in your inbox.
429Too many requests. Maximum 60 per minute.

Recipes

Zapier

  1. 1Choose the new booking in your booking tool as the trigger.
  2. 2Add the action Webhooks by Zapier → Custom Request, with method POST and the endpoint above as the URL.
  3. 3Under Headers, set the Authorization header to Bearer plus your key, and Content-Type to application/json.
  4. 4Map name, date and your template ID into the body and set approve to true.
  5. 5Use client_url from the response in your next step, for example your confirmation email.

Make

  1. 1After your booking trigger, add the module HTTP → Make a request.
  2. 2Choose method POST, the endpoint as the URL, and body type Raw with content type JSON.
  3. 3Add the Authorization header with Bearer plus your key.
  4. 4Map the fields into the JSON body.
  5. 5Use client_url from the response in your email or CRM module.

n8n

  1. 1Add an HTTP Request node after your trigger.
  2. 2Choose method POST and the endpoint as the URL.
  3. 3For authentication choose Header Auth, with Authorization as the name and Bearer plus your key as the value.
  4. 4Turn on Send Body, choose JSON and map the fields.
  5. 5Read client_url in the next node.

Your own website or system

  1. 1Call the endpoint from your backend as soon as a booking is confirmed. Never from the browser: your key has to stay secret.
  2. 2Send your own booking number as external_ref, so a repeated request is safe.
  3. 3Store client_url with the booking and put it in your confirmation email.

Ready to hand it off?

Start for free and create your first API key within a few minutes.

No credit card required. Cancel monthly.

Cookies on this site

We use functional cookies to make the site work and remember your preferences. With your consent, we also use anonymous analytics to improve the site. Read our privacy policy