v1

latestOpenAPI 3.1.02026-07-135312188.0 KB
Quote

POST /v1/quotes — Gap 21

Creates a Lead with status='quoted' (or 'draft' if email+event_date aren't both present, mirroring native QuoteController::save status gating) and a UUID token. quote_data snapshots the booking-shaped payload so /book/resume/{token} can rehydrate the wizard.

Response carries customer_portal_url pointing at the tenant subdomain's resume route — that's the link partners email to the customer to invite them back to complete payment.

Idempotency: protected by the public-api idempotency middleware (same pattern as POST /v1/bookings).

post/quotes

Request body

customer_idstring nullable

Customer reference — either or

namestring nullable
emailstring email nullable
phonestring nullable
package_idstring nullable

Catalogue references

unit_type_idstring nullable
unit_idstring nullable
event_datestring date-time nullable

Event details

event_timestring nullable
event_typestring nullable
event_namestring nullable
event_duration_hoursnumber nullable
venue_address_line1string nullable

Venue address — same shape as POST /v1/bookings

venue_address_line2string nullable
venue_citystring nullable
venue_postcodestring nullable
venue_countrystring nullable
venue_latitudenumber nullable
venue_longitudenumber nullable
coupon_codestring nullable

Discount + free-form fields

customer_notesstring nullable
metadatastring[] nullable

Response

string required