Skip to main content

Business

WhatsApp Business catalog, collections and profile — backed by wacore::iq::business (IQ w:biz v="3") and MEX (query_catalog, query_product_collections, biz_query_order). Synced from whatsapp-rust 5e084b9b (feat(business): #1252).

Get Catalog

GET /api/v1/sessions/{session_id}/business/catalog?jid={business_jid}&limit=10&after={cursor}&width=100&height=100

Fetches one page of a business catalog. Paginate via after cursor from after_cursor.

Query Parameters

ParamTypeDefaultDescription
jidstringrequiredBusiness JID (5599…@s.whatsapp.net)
limitu3210Products per page (CatalogOptions::limit)
afterstringCursor from previous after_cursor
width/heightu32100Thumbnail edge in px

Response

{
"products": "...debug...",
"after_cursor": "eyJ...",
"before_cursor": null
}

Example

curl "http://localhost:3451/api/v1/sessions/my-session/business/catalog?jid=559999999999@s.whatsapp.net" \
-H "Authorization: Bearer YOUR_TOKEN"

Get Collections

GET /api/v1/sessions/{session_id}/business/collections?jid={business_jid}&limit=51&item_limit=10&after={cursor}

Collections carry products inline. item_limit caps products per collection.

Query Parameters

ParamTypeDefaultDescription
jidstringrequiredBusiness JID
limitu3251Collections per page (collection_limit)
item_limitu3210Products per collection
afterstringForward cursor only (after_cursor)
width/heightu32100Thumbnail edge

Response

{
"collections": "...debug...",
"after_cursor": "eyJ..."
}

Get Order

GET /api/v1/sessions/{session_id}/business/order?jid={business_jid}&order_id={id}&token={token}

order_id and token come from the OrderMessage that announced the order. Token is a per-order capability.

Example

curl "http://localhost:3451/api/v1/sessions/my-session/business/order?jid=5599@s.whatsapp.net&order_id=ORDER_123&token=TOKEN" \
-H "Authorization: Bearer YOUR_TOKEN"

Update Business Profile

PATCH /api/v1/sessions/{session_id}/business/profile

Delta update — only sent fields are patched. Mirrors BusinessProfileUpdate.

Request Body

{
"description": "Best coffee in town",
"email": "hello@bisnis.id",
"websites": ["https://bisnis.id"],
"address": "Jl. Sudirman No.1",
"category": "12"
}
FieldTypeNotes
descriptionstringBio
emailstringContact email
websitesstring[]Max BUSINESS_PROFILE_MAX_WEBSITES (clear with [])
addressstringStreet address
categorystringCategory id (directory id, not name)

Example

curl -X PATCH http://localhost:3451/api/v1/sessions/my-session/business/profile \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"description":"Updated via Waxum","websites":["https://baru.id"]}'

Remove Cover Photo

DELETE /api/v1/sessions/{session_id}/business/cover-photo/{photo_id}

photo_id is the fbid from the cover-photo upload receipt.

curl -X DELETE http://localhost:3451/api/v1/sessions/my-session/business/cover-photo/123456789 \
-H "Authorization: Bearer YOUR_TOKEN"