One booking request
- Credentials
- OAuth access token
- Scopes
bookings:write
Access: OAuth scope bookings:write; not write-gated.
merchantOAuth bookings:writeAuthorizationBearer <token>OAuth 2.1 (authorization code + PKCE S256, public clients, dynamic registration) for connected AI apps. Effective power is scopes granted AND the person's role today AND the plan. orders:refund, billing:write and team:write are opt-in on the consent screen. Write implies read for marketing:read and messages:read, so a grant holding marketing:write passes a marketing:read check, and messages:send passes messages:read.
Scope: bookings:write
storeId*stringA store the person can reach. Any other id answers 404, never 403.
requestId*stringA booking request id from listBookingRequests.
OK
application/json- response
data*curl -X GET 'https://api.shopeazy.co/v1/merchant/stores/<storeId>/booking-requests/<requestId>' \ -H 'Authorization: Bearer <access_token>'{ "data": { "id": "kyKVipffoAEVwR9KcEJT", "title": "Website enquiry", "requestedAt": 1793183597086, "durationMins": null, "customer": { "name": "Thandi Mokoena", "phone": "+27 82 000 0001", "email": "thandi.mokoena@example.com" }, "notes": "Two big fiddle-leaf figs that are dropping leaves.", "status": "pending", "when": "Wed, 28 Oct, 12:33" }}Booking requests waiting for the merchant (or all) GET
Access: OAuth scope `orders:read`; not write-gated. Paged: `{ items, nextCursor }`, `limit` (default 50, at most 200) and an opaque `cursor`.
Confirm or decline a booking request POST
The customer is emailed the answer and the note. Confirming does not raise an order: use `bookAppointment` for that. Only a pending request can be decided. Access: OAuth scope `bookings:write`; write-gated by the subscription.