Guides
Interactive Messages & Location
Cloud session capabilities beyond plain text: CTA URL buttons, interactive lists, location pins, and catalog/order cards.
Cloud API + open session
These message types require a Cloud (or Coexistence) channel and an open customer care window. Outside 24h, start with an approved template first.
1. Dashboard prerequisites
CTA URL buttons and interactive lists are authored in the Washeej dashboard, then referenced by ID from the API:
cta_url_id— saved CTA URL messageinteractive_list_id— saved interactive list
There is no public CRUD for these assets on API v1 yet — create them in the dashboard, then automate sending.
2. CTA URL by ID
cURL
curl -X POST "https://staging-mobile.washeej.com/v1/messages" \
-H "client-id: YOUR_CLIENT_ID" \
-H "client-secret: YOUR_CLIENT_SECRET" \
-H "Content-Type: application/json" \
-d '{
"mobile_code": "966",
"mobile": "500000000",
"whatsapp_account_id": YOUR_CLOUD_ACCOUNT_ID,
"cta_url_id": YOUR_CTA_ID
}'
3. Interactive list by ID
cURL
curl -X POST "https://staging-mobile.washeej.com/v1/messages" \
-H "client-id: YOUR_CLIENT_ID" \
-H "client-secret: YOUR_CLIENT_SECRET" \
-H "Content-Type: application/json" \
-d '{
"mobile_code": "966",
"mobile": "500000000",
"whatsapp_account_id": YOUR_CLOUD_ACCOUNT_ID,
"interactive_list_id": YOUR_LIST_ID
}'
4. Location
cURL
curl -X POST "https://staging-mobile.washeej.com/v1/messages" \
-H "client-id: YOUR_CLIENT_ID" \
-H "client-secret: YOUR_CLIENT_SECRET" \
-H "Content-Type: application/json" \
-d '{
"mobile_code": "966",
"mobile": "500000000",
"whatsapp_account_id": YOUR_ACCOUNT_ID,
"latitude": 24.7136,
"longitude": 46.6753,
"name": "Riyadh Branch",
"address": "Olaya St"
}'
Send both latitude and longitude. Optional name / address improve the pin label.
5. Product / order cards
Cloud channels also accept structured product and created_order_data payloads
(JSON) for commerce-style CTA cards. Shape these objects like the dashboard commerce integrations;
invalid JSON returns a validation / not-found style error.
6. Feature limits
- Interactive sends may require the account plan flag for interactive messages.
- Device/QR channels return
capability_errorfor Cloud-only interactive types. - Customer replies arrive on
message.receivedwebhooks — parse button/list reply payloads in your consumer.