List WhatsApp connections
Newest first.
Required scope: whatsapp:read.
query Parameters
limitcursorThe nextCursor of the previous page, with the same filters.
statusHeaders
Lelemon-Subaccount^sub_[0-9A-Za-z]{22}…The subaccount (sub_…) this request acts on. Only for the keys of a platform account; without it the request acts on the account itself.
List WhatsApp connections › Responses
objecthasMorenextCursorCreate a WhatsApp connection link
Returns a setupUrl for the account owner to link their WhatsApp number. Only the number in phone can be linked: any other one ends the connection as failed and is not attached. When the number is linked, it answers with agentId and the phone_number.connected event is sent. One pending link per account.
Required scope: whatsapp:write.
Headers
Lelemon-Subaccount^sub_[0-9A-Za-z]{22}…The subaccount (sub_…) this request acts on. Only for the keys of a platform account; without it the request acts on the account itself.
Idempotency-KeyMakes the request safe to retry. Once it starts running, its final response (2xx, 4xx or 5xx) is kept for 24 hours and the same key gets it back, without repeating the effect. A request rejected before it runs leaves the key free. A replayed create omits the secret. The same key with a different request is rejected with 409 idempotency_key_reused.
Create a WhatsApp connection link › Request Body
phone^\+[1-9]\d{6,14}$ · requiredThe number the subaccount will link, in E.164. If they link another one, the connection fails and nothing is attached.
agentIdThe agent that will answer on this number.
connectionTypecoexistence keeps the WhatsApp Business app working next to the API; dedicated is API only.
languageCreate a WhatsApp connection link › Responses
objectidphoneagentIdconnectionTypestatussetupUrlSend the subaccount here. Only while status is pending.
expiresAtphoneNumberIdThe phone number it created, once connected.
createdAtupdatedAtRetrieve a WhatsApp connection
Returns one WhatsApp connection by id. Use it to refresh a single record you already know; to find records, use the list route. Read only. 404 not_found when the id does not exist or belongs to another organization. You can repeat it safely: it has no side effects.
Required scope: whatsapp:read.
path Parameters
id^wcn_[0-9A-Za-z]{22}… · requiredThe id of the whatsapp connection (wcn_…).
Headers
Lelemon-Subaccount^sub_[0-9A-Za-z]{22}…The subaccount (sub_…) this request acts on. Only for the keys of a platform account; without it the request acts on the account itself.
Retrieve a WhatsApp connection › Responses
objectidphoneagentIdconnectionTypestatussetupUrlSend the subaccount here. Only while status is pending.
expiresAtphoneNumberIdThe phone number it created, once connected.
createdAtupdatedAtRevoke a pending WhatsApp connection
Kills the setupUrl. Only a pending connection can be revoked; to remove a linked number use DELETE /v2/whatsapp/phone-numbers/{id}.
Required scope: whatsapp:write.
path Parameters
id^wcn_[0-9A-Za-z]{22}… · requiredThe id of the whatsapp connection (wcn_…).
Headers
Lelemon-Subaccount^sub_[0-9A-Za-z]{22}…The subaccount (sub_…) this request acts on. Only for the keys of a platform account; without it the request acts on the account itself.
Revoke a pending WhatsApp connection › Responses
List WhatsApp phone numbers
Newest first.
Required scope: whatsapp:read.
query Parameters
limitcursorThe nextCursor of the previous page, with the same filters.
Headers
Lelemon-Subaccount^sub_[0-9A-Za-z]{22}…The subaccount (sub_…) this request acts on. Only for the keys of a platform account; without it the request acts on the account itself.
List WhatsApp phone numbers › Responses
objecthasMorenextCursorRetrieve a WhatsApp phone number
Returns one WhatsApp phone number by id. Use it to refresh a single record you already know; to find records, use the list route. Read only. 404 not_found when the id does not exist or belongs to another organization. You can repeat it safely: it has no side effects.
Required scope: whatsapp:read.
path Parameters
id^pn_[0-9A-Za-z]{22}$ · requiredThe id of the phone number (pn_…).
Headers
Lelemon-Subaccount^sub_[0-9A-Za-z]{22}…The subaccount (sub_…) this request acts on. Only for the keys of a platform account; without it the request acts on the account itself.
Retrieve a WhatsApp phone number › Responses
objectidphoneverifiedNamelabelYour own name for the number, such as the branch it serves.
catalogIdThe id of the Meta catalog connected to this number. The product, product_list and catalog messages and the catalog templates only send with this catalog. null when none is set.
agentIdactivecreatedAtupdatedAtDisconnect a WhatsApp phone number
Detaches the number from the provider and stops its agent. The phone_number.disconnected event is sent.
Required scope: whatsapp:write.
path Parameters
id^pn_[0-9A-Za-z]{22}$ · requiredThe id of the phone number (pn_…).
Headers
Lelemon-Subaccount^sub_[0-9A-Za-z]{22}…The subaccount (sub_…) this request acts on. Only for the keys of a platform account; without it the request acts on the account itself.
Disconnect a WhatsApp phone number › Responses
Change the agent, label or state of a number
Use it to switch the agent that answers (agentId), stop answering without disconnecting (active: false) or name the number, for example by branch (label, null clears it). Only the fields you send change, and the call is idempotent. It does not set business hours or a time zone: those belong to the organization, not to a number, and a field this route does not know is not applied.
Required scope: whatsapp:write.
path Parameters
id^pn_[0-9A-Za-z]{22}$ · requiredThe id of the phone number (pn_…).
Headers
Lelemon-Subaccount^sub_[0-9A-Za-z]{22}…The subaccount (sub_…) this request acts on. Only for the keys of a platform account; without it the request acts on the account itself.
Change the agent, label or state of a number › Request Body optional
agentIdThe agent that answers on this number from now on.
activefalse stops the agent from answering; true turns it back on.
labelYour own name for the number, such as the branch it serves. Send null to clear it.
catalogId^[0-9]{5,100}$The id of the catalog you connected to this number in Meta Commerce Manager and WhatsApp Manager. Send null to clear it. The platform cannot ask Meta whether it exists: a wrong id shows up as a failed message with its error.
Change the agent, label or state of a number › Responses
objectidphoneverifiedNamelabelYour own name for the number, such as the branch it serves.
catalogIdThe id of the Meta catalog connected to this number. The product, product_list and catalog messages and the catalog templates only send with this catalog. null when none is set.
agentIdactivecreatedAtupdatedAtRead the cart and catalog settings of a number
Use it before sending product, product_list or catalog messages to know whether the cart button (isCartEnabled) and the catalog icon (isCatalogVisible) are on, and which catalog the number has (catalogId). Read only and safe to repeat. It asks WhatsApp through the provider, so it answers 503 service_unavailable when the provider does not answer. 404 not_found when the id does not exist or belongs to another organization.
Required scope: whatsapp:read.
path Parameters
id^pn_[0-9A-Za-z]{22}$ · requiredThe id of the phone number (pn_…).
Headers
Lelemon-Subaccount^sub_[0-9A-Za-z]{22}…The subaccount (sub_…) this request acts on. Only for the keys of a platform account; without it the request acts on the account itself.
Read the cart and catalog settings of a number › Responses
objectphoneNumberIdisCartEnabledWhether the cart button shows on the product and catalog messages. WhatsApp turns it on by default.
isCatalogVisibleWhether the catalog icon shows in the chat with the number. WhatsApp turns it off by default.
catalogIdThe catalog set on the number, if any.
Turn the cart button or the catalog icon of a number on or off
Use it to show or hide the cart button (isCartEnabled) and the catalog icon in the chat (isCatalogVisible) of one number. Only the fields you send change, and the call is idempotent. It does not connect a catalog: the catalog is created in Meta Commerce Manager and connected in WhatsApp Manager, then you save its id with PATCH /v2/whatsapp/phone-numbers/{id} (catalogId). It writes to WhatsApp through the provider, so it answers 503 service_unavailable when the provider does not accept it.
Required scope: whatsapp:write.
path Parameters
id^pn_[0-9A-Za-z]{22}$ · requiredThe id of the phone number (pn_…).
Headers
Lelemon-Subaccount^sub_[0-9A-Za-z]{22}…The subaccount (sub_…) this request acts on. Only for the keys of a platform account; without it the request acts on the account itself.
Turn the cart button or the catalog icon of a number on or off › Request Body optional
isCartEnabledtrue shows the cart button; false hides it.
isCatalogVisibletrue shows the catalog icon in the chat; false hides it.
Turn the cart button or the catalog icon of a number on or off › Responses
objectphoneNumberIdisCartEnabledWhether the cart button shows on the product and catalog messages. WhatsApp turns it on by default.
isCatalogVisibleWhether the catalog icon shows in the chat with the number. WhatsApp turns it off by default.
catalogIdThe catalog set on the number, if any.