Skip to main content
Create bookings and orders directly from the admin API using the orders/from-config endpoint. This bypasses the public checkout flow and is designed for back-office operations. For the public checkout flow, see Order & Checkout Flow. For general conventions, see JSON-API Conventions.

Prerequisites

  • A valid Bearer token with admin access — see Authentication
  • Organization context (?o={organization_id})
  • At least one resource and service configured in the organization

For Admin UI integrations, prefer the dynamic form flow over manually assembling all custom-field and participant payloads.

Step A - Build a Dynamic Checkout Form

This returns a form object (components, validations, default) that includes:
  • customer group (customer-group)
  • customer custom fields
  • order custom fields
  • per-booking personalization groups (booking custom fields, host, participants)

Step B - Apply Submitted Form Data

The response is an enriched config that is directly compatible with POST /api/v1/orders/from-config.

Step C - Create the Order

Use the enriched payload from Step B as input for POST /api/v1/orders/from-config.

Standalone Forms for Existing Records

You can also fetch standalone admin UI forms for existing records, such as customer, order, and booking edit forms. The payload structure and persistence rules for those admin UI form endpoints are documented in Admin UI Forms, not in this booking-creation guide.

When to Use


Step 1 — Pre-Calculate Pricing (Optional)

Request path documentation:
  • paths/admin/orders.yaml for POST /api/v1/orders/calculate
Before creating the order, preview the pricing and resolve available booking quota grants:
Returns calculated totals, taxes, and per-booking pricing without persisting anything. Each booking in the response also includes a booking_quota_grants array with all eligible grants, their applicability, projected usage, and which one is preselected. This allows the UI to display a grant selection dropdown directly from the calculate response — no separate endpoint call needed. When the user selects a different grant, re-call calculate with booking_quota_grant_id set on the booking. Set prevent_applying_default_quota: true to deselect all grants.

Step 2 — Create the Order

Request path documentation:
  • paths/admin/orders.yaml for POST /api/v1/orders/from-config

Top-Level Fields

Booking Object Fields

Response

Returns a standard JSON-API orders resource with the created bookings:

Multiple Bookings in One Order

Add multiple booking objects to create them in a single order:

Skipping Availability Checks

Set check_availability: false to override availability constraints. Use this for:
  • Overbooking scenarios
  • Creating bookings in the past
  • Special arrangements outside normal schedules
Warning: Skipping availability checks can create conflicting bookings. Use with care.

Re-Sending Order Notifications

If the customer didn’t receive the confirmation:
Triggers the order confirmation notification to the associated customer.

Common Errors