v1
latestOpenAPI 3.1.02026-07-135312188.0 KBQuote
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
Response
string required