Receiving sessions pull WhatsApp groups and messages into Watchatic. Sending sessions track outbound-capable WhatsApp without duplicating inbound message ingest.

Roles

  • receiving — Session used for inbound groups and messages (WEBJS-backed in production).
  • sending — Session scoped for outbound; status-only webhook subscription.

Typical flow

List sessions:
curl -H "Authorization: Bearer $TOKEN" \
  "https://api-v2.watchcollect.com/v2/sessions?role=receiving"
Create or link:
curl -X POST "https://api-v2.watchcollect.com/v2/sessions" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"role":"receiving","auth_method":"qr"}'
Fresh QR value:
curl -H "Authorization: Bearer $TOKEN" \
  "https://api-v2.watchcollect.com/v2/sessions/$SESSION_ID/auth/qr"
Request OTP pairing:
curl -X POST "https://api-v2.watchcollect.com/v2/sessions/$SESSION_ID/auth/request-code" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"phone_number":"+31000000000"}'
Start session:
curl -X POST "https://api-v2.watchcollect.com/v2/sessions/$SESSION_ID/start" \
  -H "Authorization: Bearer $TOKEN"
Manual sync (receiving):
curl -X POST "https://api-v2.watchcollect.com/v2/sessions/$SESSION_ID/sync" \
  -H "Authorization: Bearer $TOKEN"

Client-facing checks

  • Session lifecycle states and error codes are in the API reference.
  • If pairing succeeds but messages stay empty, confirm the session reports working, then verify group selection — unselected groups do not populate feeds.