Reject an incoming call
Attempts a best-effort rejection of an incoming WhatsApp call for the authenticated WUTS device. Because WhatsApp does not reliably honour call rejection from a linked/companion device, the user-facing behaviour is typically the configured auto-reply message; the endpoint is kept so hang-up starts working automatically if the platform begins honouring it.
Attempts a best-effort rejection of an incoming WhatsApp call for the authenticated WUTS device. Because WhatsApp does not reliably honour call rejection from a linked/companion device, the user-facing behaviour is typically the configured auto-reply message; the endpoint is kept so hang-up starts working automatically if the platform begins honouring it.
Authorization
bearerAuth Per-user API token (UUID v4) sent as Authorization: Bearer <token>. Identifies the tenant and user.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/calls/reject" \ -H "Content-Type: application/json" \ -d '{ "call_id": "3EB0A1B2C3D4E5F60718", "from": "5511999999999@s.whatsapp.net" }'{ "success": true}{ "success": false, "error": "validation failed", "error_code": "VALIDATION_ERROR", "timestamp": "2026-06-15T12:00:00Z"}{ "success": false, "error": "validation failed", "error_code": "VALIDATION_ERROR", "timestamp": "2026-06-15T12:00:00Z"}{ "success": false, "error": "validation failed", "error_code": "VALIDATION_ERROR", "timestamp": "2026-06-15T12:00:00Z"}Open the WSS media socket (WebSocket) GET
**This is a WebSocket (WSS) upgrade, not a normal GET.** It carries live call audio between your client and the WUTS Voice engine. Authorize it with a single-use `ct` token from POST /calls/media-token (the bearer is NOT used here). Once open: - **Send** binary frames of raw PCM, signed 16-bit little-endian, mono, 16 kHz (your microphone). ~20 ms / 320-sample frames are ideal. - **Receive** binary frames in the same PCM format (the other party's audio). - **Send** the text frame `{"type":"hangup"}` to end the call. The server pings every 15 s to keep the socket warm across proxies.
Start an outbound call POST
Places an outbound WhatsApp **voice** call (1:1) from the authenticated WUTS device to the given number, using the WUTS Voice engine (media relayed via WhatsApp's own SRTP relays). Returns immediately with status `ringing`. To carry live audio, mint a media token (POST /calls/media-token) and open the WSS media socket. NOTE: WhatsApp only allows calling a number you already have a conversation with; a cold contact is rejected with reason `enc`.