Customer roster completion on the checkout page (warm carts)
POST
/p/{token}/riders
const url = 'https://quikstik-core.fly.dev/p/example/riders';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"riders":[{"display_name":"example","email":"example","height_cm":1,"height_trait_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"}]}'};
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/p/example/riders \ --header 'Content-Type: application/json' \ --data '{ "riders": [ { "display_name": "example", "email": "example", "height_cm": 1, "height_trait_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" } ] }'Replace the pending proposal’s rider list. The capability token IS the authorization, exactly like the pay leg. Riders are stamped source: customer server-side — the page cannot claim staff provenance. Roster may be partial (blanks stay honest); it may never exceed the proposal’s units. 409 once the proposal is finalized or expired: a late edit never rewrites a booked roster.
Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”token
required
string
Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
riders
required
Array<object>
object
display_name
string
email
string
height_cm
integer
height_trait_id
string format: uuid
Example generated
{ "riders": [ { "display_name": "example", "email": "example", "height_cm": 1, "height_trait_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" } ]}Responses
Section titled “Responses”Roster replaced.
Unknown token.
No longer pending.
Riders exceed units.
Checkout backend unavailable.