Contents

API reference

Senders

API reference descriptions are provided in English to preserve the exact published contract.

List sender pools

GET /v1/accounts/{AC}/sender-pools

Required scope: `senders:read`.

Parameters

Parameters
NameTypeRequiredDescription
limitquery · integer (1–100)
cursorquery · string (max 2048 chars)
ACpath · string (AC… SID)yesAccount SID

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Create a sender pool

POST /v1/accounts/{AC}/sender-pools

Required scope: `senders:write`.

Parameters

Parameters
NameTypeRequiredDescription
ACpath · string (AC… SID)yesAccount SID
Request body (3 fields)
Request body
NameTypeRequiredDescription
namestring (max 128 chars)yes
senderSidsstring (WA… SID)[]yes
strategy"round_robin" | "least_loaded" | "sticky_contact"yes

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Fetch a sender pool

GET /v1/accounts/{AC}/sender-pools/{SP}

Required scope: `senders:read`.

Parameters

Parameters
NameTypeRequiredDescription
ACpath · string (AC… SID)yes
SPpath · string (SP… SID)yes

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Update a sender pool

PATCH /v1/accounts/{AC}/sender-pools/{SP}

Required scope: `senders:write`.

Parameters

Parameters
NameTypeRequiredDescription
ACpath · string (AC… SID)yes
SPpath · string (SP… SID)yes
Request body (3 fields)
Request body
NameTypeRequiredDescription
namestring (max 128 chars)
senderSidsstring (WA… SID)[]
strategy"round_robin" | "least_loaded" | "sticky_contact"

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Delete a sender pool

DELETE /v1/accounts/{AC}/sender-pools/{SP}

Required scope: `senders:write`.

Parameters

Parameters
NameTypeRequiredDescription
ACpath · string (AC… SID)yes
SPpath · string (SP… SID)yes

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

List WhatsApp senders and current provider readiness

GET /v1/accounts/{AC}/senders

Required scope: `senders:read`.

Parameters

Parameters
NameTypeRequiredDescription
limitquery · integer (1–100)
cursorquery · string (max 2048 chars)
ACpath · string (AC… SID)yesAccount SID

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Subscribe a WABA and register a Cloud API sender

POST /v1/accounts/{AC}/senders

Required scope: `senders:write`.

Parameters

Parameters
NameTypeRequiredDescription
ACpath · string (AC… SID)yesAccount SID
Request body (5 fields)
Request body
NameTypeRequiredDescription
displayNamestring (max 256 chars)yes
phoneNumberstring (max 32 chars)
providerPhoneNumberIdstring (max 128 chars)
registrationobjectyes
wabaSidstring (WB… SID)yes

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

List provider storage regions permitted by this account's residency policy

GET /v1/accounts/{AC}/senders/storage-regions

Required scope: `senders:read`.

Parameters

Parameters
NameTypeRequiredDescription
ACpath · string (AC… SID)yesAccount SID

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Fetch a WhatsApp sender

GET /v1/accounts/{AC}/senders/{WA}

Required scope: `senders:read`.

Parameters

Parameters
NameTypeRequiredDescription
ACpath · string (AC… SID)yes
WApath · string (WA… SID)yes

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Update sender management settings

PATCH /v1/accounts/{AC}/senders/{WA}

A display-name change creates a durable Operation. statusCallbackUrl is a local verified-endpoint binding. Calling settings fail closed until Meta publishes an exact supported versioned write contract. Required scope: `senders:write`.

Parameters

Parameters
NameTypeRequiredDescription
ACpath · string (AC… SID)yes
WApath · string (WA… SID)yes
Request body (3 fields)
Request body
NameTypeRequiredDescription
callingSettingsobject
displayNamestring (max 256 chars)
statusCallbackUrlstring (uri, max 2048 chars) | null

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Remove a sender locally without changing Meta assets

DELETE /v1/accounts/{AC}/senders/{WA}

Required scope: `senders:write`.

Parameters

Parameters
NameTypeRequiredDescription
ACpath · string (AC… SID)yes
WApath · string (WA… SID)yes

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Block WhatsApp users

POST /v1/accounts/{AC}/senders/{WA}/block-users

Required scope: `senders:write`.

Parameters

Parameters
NameTypeRequiredDescription
ACpath · string (AC… SID)yes
WApath · string (WA… SID)yes
Request body (1 fields)
Request body
NameTypeRequiredDescription
usersstring (max 64 chars)[]yes

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Unblock WhatsApp users

DELETE /v1/accounts/{AC}/senders/{WA}/block-users

Required scope: `senders:write`.

Parameters

Parameters
NameTypeRequiredDescription
ACpath · string (AC… SID)yes
WApath · string (WA… SID)yes
Request body (1 fields)
Request body
NameTypeRequiredDescription
usersstring (max 64 chars)[]yes

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Get the current reconciled WhatsApp business profile

GET /v1/accounts/{AC}/senders/{WA}/business-profile

Required scope: `business_profiles:read`.

Parameters

Parameters
NameTypeRequiredDescription
ACpath · string (AC… SID)yesAccount SID
WApath · string (WA… SID)yes

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Create an Operation-backed WhatsApp business profile update

PATCH /v1/accounts/{AC}/senders/{WA}/business-profile

Required scope: `business_profiles:write`.

Parameters

Parameters
NameTypeRequiredDescription
ACpath · string (AC… SID)yesAccount SID
WApath · string (WA… SID)yes
Request body (8 fields)
Request body
NameTypeRequiredDescription
aboutstring (max 139 chars) | null
addressstring (max 256 chars) | null
categorystring (max 128 chars) | null
descriptionstring (max 512 chars) | null
emailstring (email, max 320 chars) | null
profileImageMediaSidstring (ME… SID) | null
reasonstring (max 2000 chars)yes
websitesstring (uri, max 2048 chars)[]

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Deregister a Cloud API sender

POST /v1/accounts/{AC}/senders/{WA}/deregister

Creates a monitored DEREGISTER Operation. Coexistence numbers cannot be deregistered.: the provider decides the final state, so the answer is 200 with `outcome: unknown` and `resolutionBy` naming the Operation to watch. Required scope: `senders:write`.

Parameters

Parameters
NameTypeRequiredDescription
ACpath · string (AC… SID)yes
WApath · string (WA… SID)yes
Request body (1 fields)
Request body
NameTypeRequiredDescription
stepUpTokenstring (max 256 chars)yes

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Generate, upload and verify a sender Flow encryption key

POST /v1/accounts/{AC}/senders/{WA}/flows/keys

Required scope: `senders:write`.

Parameters

Parameters
NameTypeRequiredDescription
ACpath · string (AC… SID)yes
WApath · string (WA… SID)yes

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Fetch sender opt-out keyword configuration

GET /v1/accounts/{AC}/senders/{WA}/opt-out-config

Required scope: `senders:read`.

Parameters

Parameters
NameTypeRequiredDescription
ACpath · string (AC… SID)yes
WApath · string (WA… SID)yes

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Replace sender opt-out keyword configuration

PUT /v1/accounts/{AC}/senders/{WA}/opt-out-config

Required scope: `senders:write`.

Parameters

Parameters
NameTypeRequiredDescription
ACpath · string (AC… SID)yes
WApath · string (WA… SID)yes
Request body (9 fields)
Request body
NameTypeRequiredDescription
confirmationobjectyes
confirmationTextsobject
enabledbooleanyes
excludedKeywordsstring (max 64 chars)[]
languagesstring (max 35 chars)[]yes
matchMode"tolerant" | "exact" | "starts_with" | "contains"yes
optInKeywordsstring (max 64 chars)[]yes
optOutKeywordsstring (max 64 chars)[]yes
scopeOnOptOut"marketing" | "all"yes

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Rotate the sender two-step verification PIN

POST /v1/accounts/{AC}/senders/{WA}/two-step-pin

Creates a monitored REGISTER Operation running the SET_TWO_STEP command. The PIN is sealed through the credential broker and is never returned or logged. Required scope: `senders:write`.

Parameters

Parameters
NameTypeRequiredDescription
ACpath · string (AC… SID)yes
WApath · string (WA… SID)yes
Request body (2 fields)
Request body
NameTypeRequiredDescription
pinstring (pattern ^[0-9]{6}$)
stepUpTokenstring (max 256 chars)yes

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Request or submit a sender verification code

POST /v1/accounts/{AC}/senders/{WA}/verify

Creates a REGISTER Operation; verification codes are stored only as short-lived encrypted envelopes. Required scope: `senders:write`.

Parameters

Parameters
NameTypeRequiredDescription
ACpath · string (AC… SID)yes
WApath · string (WA… SID)yes
Request body (3 fields)
Request body
NameTypeRequiredDescription
codestring (pattern ^[0-9]{1,16}$)
codeMethod"sms" | "voice"
localestring (pattern ^[a-z]{2,3}_[A-Z]{2}$)

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Read the phone-level webhook override of a sender

GET /v1/accounts/{AC}/senders/{WA}/webhook-override

Required scope: `senders:read`.

Parameters

Parameters
NameTypeRequiredDescription
ACpath · string (AC… SID)yes
WApath · string (WA… SID)yes

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Set or clear the phone-level webhook override of a sender

PATCH /v1/accounts/{AC}/senders/{WA}/webhook-override

Records the desired phone-level webhook_configuration and queues the SENDER_WEBHOOK_OVERRIDE management job that writes it to Meta. Phone-level takes precedence over the WABA-level override and the app default; the daily subscription reconcile keeps it converged. Required scope: `senders:write`.

Parameters

Parameters
NameTypeRequiredDescription
ACpath · string (AC… SID)yes
WApath · string (WA… SID)yes
Request body (2 fields)
Request body
NameTypeRequiredDescription
overrideCallbackUristring (pattern ^https://, max 2048 chars) | nullyes
reasonstring (max 2000 chars)

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Disconnect a WABA and fence all of its senders

POST /v1/accounts/{AC}/wabas/{WB}/disconnect

Required scope: `wabas:write`.

Parameters

Parameters
NameTypeRequiredDescription
ACpath · string (AC… SID)yes
WBpath · string (WB… SID)yes
Request body (2 fields)
Request body
NameTypeRequiredDescription
confirmDisplayNamestring (max 256 chars)yes
stepUpEvidencestring (max 4096 chars)yes

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.