API Reference
WhatsApp Calling

Enable WhatsApp calling on a number

POST
/v1/numbers/{id}/whatsapp

Binds this SautiKit number to a Meta phone_number_id and starts the BYOC SIP provisioning saga.

Returns 202, not 200: provisioning is asynchronous. The trunk comes back as pending; poll GET /v1/numbers/{id}/whatsapp until it reaches active or failed.

The phone_number_id must belong to a WhatsApp Business account you have connected, and this number must carry the whatsapp capability.

Authorization

bearerAuth
AuthorizationBearer <token>

Long-lived ES256 JWT minted from the dashboard (https://app.sautikit.com/developers/api-keys). Signed by the platform keyring. Carries workspace_id and scopes claims; revoked via the platform deny-list.

In: header

Path Parameters

id*string

The tenant NUMBER id (not the trunk id).

Formatuuid

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/v1/numbers/497f6eca-6276-4993-bfeb-53cbbbba6f08/whatsapp" \  -H "Content-Type: application/json" \  -d '{    "phone_number_id": "109876543210987"  }'
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "tenant_number_id": "1d93922a-9238-4447-bea9-285b295a748e",  "provider": "whatsapp",  "external_id": "109876543210987",  "status": "pending",  "provisioning_step": "string",  "provider_config": {},  "readiness": {},  "last_error": "string",  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z"}
{  "error": {    "code": "validation.bad_request",    "message": "string",    "request_id": "string",    "details": [      "string"    ]  }}
{  "error": {    "code": "validation.bad_request",    "message": "string",    "request_id": "string",    "details": [      "string"    ]  }}
{  "error": {    "code": "validation.bad_request",    "message": "string",    "request_id": "string",    "details": [      "string"    ]  }}