WhatIsUp.dev
Esta página está disponible solo en inglés por ahora.

Channels

A channel is one paired WhatsApp number. Every message you send and every message you receive belongs to exactly one channel. You can run as many channels as your plan allows.

Pairing flow

You create the channel, the gateway shows you a QR code, you scan it once from your phone, and the channel is paired. After that the connection lives on the gateway — you don't run anything on your side to keep it open.

One-time pairing per phone number — same flow as WhatsApp Web.

Lifecycle

Channels move through a small set of states that the API exposes via the status field:

StatusMeaning
pendingChannel created. The connection hasn't started yet — fetch a QR to begin.
qrA QR code is ready; show it to the user to scan.
connectingHandshake in progress (post-scan or post-reconnect).
connectedOnline. You can send and receive messages.
disconnectedDropped. The gateway will try to reconnect automatically.
failedManual reset required (revoked, banned, or repeated reconnect failure).
Channel state machine — every transition is a typed event you can react to.

The event stream and the channel.connected / channel.disconnected webhooks fire on every transition, so your application doesn't have to poll. A brand-new channel starts at pending — it does not start at failed. failed only appears after an actual connection attempt errored out.

Create + list

curl -sX POST "$WHATISUP_API/v1/channels" \
  -H "Authorization: Bearer $WHATISUP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"support-line"}'
curl -s "$WHATISUP_API/v1/channels" \
  -H "Authorization: Bearer $WHATISUP_API_KEY"

Names are free-form labels for humans — not used for routing or auth.

Soft-delete

DELETE /v1/channels/:id stops the connection but keeps the row for audit. Webhook deliveries and audit events that reference the deleted channel stay queryable. If you re-create with the same name later, you get a brand-new id.

Deleting a channel here does not unlink the device on the WhatsApp side. The user remains paired until either the gateway logs out (which it does on delete) or the user manually unlinks from the phone's Linked devices screen.

Health

The gateway runs an internal heartbeat against every connected channel. If a connection goes silent, it surfaces in the API as disconnected and the gateway attempts to reconnect with backoff. You'll see this on the dashboard's channel detail page and on your channel.disconnected webhook — no action needed on your side most of the time.