Skip to main content

Cashier — Finding or registering a participant

Two global routes (wallet-control-api), with no eventId because identity is global — balance/wallet live in the region:

EndpointWhat it does
GET /v1/cashier/participants/by-phone/{phone}Read-only lookup, never creates anything. 404 PARTICIPANT_NOT_FOUND if the phone has no profile yet.
POST /v1/cashier/participantsFinds or creates by phone. If new, creates the profile without auth_user_id (they haven't installed the app or confirmed an OTP yet — that happens later, automatically, the first time they confirm an OTP for the same phone). Always returns an activationAuthorization: a signed, single-use authorization valid only for this participant and the cashier's event.
curl -X POST http://127.0.0.1:8787/v1/cashier/participants \
-H "Authorization: Bearer <cashier accessToken>" \
-H "Content-Type: application/json" \
-d '{ "phone": "+5511999999999" }'