Create booking intent
const url = 'https://quikstik-core.fly.dev/booking-intents';const options = { method: 'POST', headers: { 'x-tenant-id': '2489E9AD-2EE2-8E00-8EC9-32D5F69181C0', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, body: '{"offering_variant_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","start_time":"example","duration_minutes":1,"quantity":1,"group_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","participants":[{"participant_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","display_name":"example","birth_date":"example"}],"payer_hints":[{"payer_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","covers_participant_ids":["2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"]}],"affiliate_attribution":{"kind":"example","affiliate_id":"example","referral_code":"example","campaign":"example"},"seller_tenant_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","fulfilling_tenant_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","add_on_selections":[{"add_on_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","quantity":1}]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://quikstik-core.fly.dev/booking-intents \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --header 'x-tenant-id: 2489E9AD-2EE2-8E00-8EC9-32D5F69181C0' \ --data '{ "offering_variant_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "start_time": "example", "duration_minutes": 1, "quantity": 1, "group_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "participants": [ { "participant_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "display_name": "example", "birth_date": "example" } ], "payer_hints": [ { "payer_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "covers_participant_ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ] } ], "affiliate_attribution": { "kind": "example", "affiliate_id": "example", "referral_code": "example", "campaign": "example" }, "seller_tenant_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "fulfilling_tenant_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "add_on_selections": [ { "add_on_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "quantity": 1 } ] }'Captures a booking intent. This is not a booking execution API.
The intent object is designed to remain compatible with:
- deposits + balances due later (payment obligations are vocabulary only here)
- split payments / multiple payers
- operational groups independent of billing
- cross-tenant marketplace commerce (seller vs fulfilling tenant)
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”Tenant identifier (UUID).
Authn/authz semantics are intentionally TBD for this contract slice; this header exists to keep the contract explicitly multi-tenant from day 0.
Request Bodyrequired
Section titled “Request Bodyrequired”object
Start time (RFC3339) for slot-based offerings (TBD).
Requested duration for duration-based rentals (TBD).
Requested quantity (participants/items); semantics TBD.
Optional operational group linkage (non-billing).
object
Participant identifier (stable within commerce). Creation/identity semantics are TBD.
Birth date (YYYY-MM-DD). Optional; semantics TBD.
Vocabulary direction for split payments. This is not a payment execution surface.
object
Payer identifier (vocabulary only; does not imply payment execution).
Optional linkage for “payer covers subset of participants” (vocabulary only).
object
Attribution kind (vocabulary only; semantics TBD).
Affiliate identifier (TBD).
Marketplace vocabulary: the tenant that sells the booking (TBD).
Marketplace vocabulary: the tenant that fulfills the booking (TBD).
object
Example generated
{ "offering_variant_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "start_time": "example", "duration_minutes": 1, "quantity": 1, "group_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "participants": [ { "participant_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "display_name": "example", "birth_date": "example" } ], "payer_hints": [ { "payer_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "covers_participant_ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ] } ], "affiliate_attribution": { "kind": "example", "affiliate_id": "example", "referral_code": "example", "campaign": "example" }, "seller_tenant_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "fulfilling_tenant_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "add_on_selections": [ { "add_on_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "quantity": 1 } ]}Responses
Section titled “Responses”Booking intent created
object
The departure (capacity leaf,) this hold bound to at creation, resolved server-side from (tenant, offering_variant_id, start_time). The purchase leg commits this leaf directly. Null only for an unscheduled hold (no start_time).
Unix epoch milliseconds.
Intent status (vocabulary only). This contract slice does not define lifecycle execution.
Examples: created, cancel_requested.
object
Participant identifier (stable within commerce). Creation/identity semantics are TBD.
Birth date (YYYY-MM-DD). Optional; semantics TBD.
object
Payer identifier (vocabulary only; does not imply payment execution).
Optional linkage for “payer covers subset of participants” (vocabulary only).
object
Attribution kind (vocabulary only; semantics TBD).
Affiliate identifier (TBD).
object
Example generated
{ "booking_intent_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "offering_variant_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "departure_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "created_at_ms": 1, "status": "example", "start_time": "example", "duration_minutes": 1, "quantity": 1, "group_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "participants": [ { "participant_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "display_name": "example", "birth_date": "example" } ], "payer_hints": [ { "payer_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "covers_participant_ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ] } ], "affiliate_attribution": { "kind": "example", "affiliate_id": "example", "referral_code": "example", "campaign": "example" }, "seller_tenant_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "fulfilling_tenant_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "add_on_selections": [ { "add_on_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "quantity": 1 } ]}