An account's status changed (both channels). OK: working. CREDENTIALS: the session ended, reconnect it. STOPPED with reason: held (restricted: a person must look; proxy_drift / proxy_down: wait, OK follows; paused, WhatsApp only). DELETED: the account is gone (a LinkedIn account only when it was deleted from the console, not by your own DELETE). WhatsApp also sends CREATION_SUCCESS, RECONNECTED, CONNECTING (a drop that lasted), ERROR and SYNC_SUCCESS. A mailbox sends CREATION_SUCCESS, RECONNECTED, OK, CONNECTING, CREDENTIALS, ERROR, STOPPED and DELETED, with gateway: { state, event, reason } (the mail engine's state, what reported it, its error code). A status is sent only when it changes; keep the newest emitted_at.
Header Parameters
base64url(HMAC-SHA256(raw body, your webhook's signing secret)), the secret being the whsec_… shown in the console. Verify it over the raw bytes before parsing, and refuse the event when it does not match.
The event id, also event_id in the body: the same on every retry of the event. Deduplicate on it.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
Example Requests
/AccountStatusGet a mailbox's owner GET
The mailbox owner's profile: `GMAIL` with its send-as aliases (usable as `from`), `OUTLOOK`, or `IMAP` with its servers.
LinkedIn: checkpoint Webhook
Gateway event. A sign-in reached a checkpoint nobody's call was waiting for (LinkedIn asked for a code after a CAPTCHA, or a queued sign-in). Answer it as a connect's 202.