Channel health and how many chats are waiting
- Credentials
- OAuth access token
- Scopes
orders:read
Access: OAuth scope orders:read; not write-gated.
merchantOAuth orders:readAuthorizationBearer <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: orders:read
storeId*stringA store the person can reach. Any other id answers 404, never 403.
OK
application/json- response
data*curl -X GET 'https://api.shopeazy.co/v1/merchant/stores/<storeId>/whatsapp' \ -H 'Authorization: Bearer <access_token>'{ "data": { "status": "not_set_up", "connected": false, "canConnect": false, "number": null, "webhook": { "receiving": false, "configured": true, "routed": false, "missing": [], "detail": "Connect your WhatsApp number first." }, "catalogue": { "connected": false, "syncedAt": null, "error": null }, "aiEnabled": false, "lastError": null, "lastErrorAt": null, "waiting": 0 }}Signed links to upload photos straight to storage POST
For photos too big to send as base64 (a photo the person attached, or one edited in a code sandbox). Returns 1 to 10 short-lived (10 minutes) signed HTTPS PUT links into the business's Library upload area, each with an `uploadId`. PUT the file bytes to `uploadUrl` with plain HTTP (for example `curl -T photo.jpg -H "Content-Type: image/jpeg" -H "x-goog-content-length-range: 1,15728640" "<uploadUrl>"`), sending exactly the returned `headers`: the link only accepts that content type and 1 byte to 15 MB. No browser CORS is involved. Then pass `{ uploadId }` to addPhotos. Links not used within 10 minutes stop working. Storage: refused with 403 `plan_limit` when it would take the Library over the plan's storage. What is already stored stays. Access: OAuth scope `listings:write`; write-gated by the subscription.
Look again for a catalogue on the WhatsApp account POST
Attaching a catalogue to a number is the one step Meta will not let ShopEazy do for a merchant (it needs an admin of their business), so they do it once in WhatsApp Manager and this tells us it is done. It looks for the catalogue again and, when found, syncs the listings to it in the background. `found: false` means there is still none to attach. WhatsApp refusing, in Meta's own words, or no longer accepting the connection (the number has to be connected again), is 422 `provider_error`. WhatsApp down, busy or not answering is 503 `provider_unavailable` with `Retry-After`: nothing was changed, and it is never answered as `found: false`, which only ever means WhatsApp answered and there is still no catalogue. Safe to repeat: it only looks and syncs, and the same `Idempotency-Key` replays the first answer. Access: OAuth scope `settings:write`; owner/admin only; write-gated by the subscription.