All integrations

WhatsApp

MESSAGING · MESSAGING

Send messages and manage templates from their own business numbers.

Acts as the person, not as itself

Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.

Credentials never touch the agent

Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.

Every call on the record

Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.

What an agent can do

Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.

whatsapp_delete_by_version_by_flow_idWRITE

Deletes the flow entirely. This action is not reversible. Only a DRAFT flow can be deleted. via DELETE /v23.0/{flow_id}

whatsapp_business_management
whatsapp_delete_by_version_by_phone_number_id_block_usersWRITE

Unblock user(s) via DELETE /v23.0/{phone_number_id}/block_users

whatsapp_business_messaging
whatsapp_delete_by_version_by_phone_number_id_message_qrdls_by_qr_code_idWRITE

Delete QR code via DELETE /v23.0/{phone_number_id}/message_qrdls/{qr_code_id}

whatsapp_business_messaging
whatsapp_delete_by_version_by_waba_id_message_templatesWRITE

Delete template by name via DELETE /v23.0/{waba_id}/message_templates

whatsapp_business_management
whatsapp_delete_by_version_by_waba_id_subscribed_appsWRITE

To unsubscribe your app from webhooks for a WhatsApp Business Account, send a DELETE request to the /subscribed_apps/ endpoint on the WABA. via DELETE /v23.0/{waba_id}/subscribed_apps

whatsapp_business_management
whatsapp_get_by_version_by_business_idREAD

Get Business Portfolio (Specific Fields) via GET /v23.0/{business_id}

business_management
whatsapp_get_by_version_by_business_id_client_whatsapp_business_accountsREAD

Get shared WABAs via GET /v23.0/{business_id}/client_whatsapp_business_accounts

business_management
whatsapp_get_by_version_by_business_id_extendedcreditsREAD

Get credit lines via GET /v23.0/{business_id}/extendedcredits

business_management
whatsapp_get_by_version_by_business_id_owned_whatsapp_business_accountsREAD

Get owned WABAs via GET /v23.0/{business_id}/owned_whatsapp_business_accounts

business_management
whatsapp_get_by_version_by_flow_idREAD

Can request specific fields by enabling the \fields\ query param via GET /v23.0/{flow_id}

whatsapp_business_management
whatsapp_get_by_version_by_media_idREAD

To retrieve your media’s URL, make a GET call to /{{Media-ID}}. Use the returned URL to download the media file. Note that clicking this URL (i.e. performing a generic GET) will not return the media; you must include an access token. For more information, see Download Media. You can also use the optional query ?phone_number_id for Retrieve Media URL and Delete Media. via GET /v23.0/{media_id}

whatsapp_business_messaging
whatsapp_get_by_version_by_media_urlREAD

When you retrieve a media URL through the GET Media endpoint, you must use a User Access Token to download media content from the URL. If you click the URL from a browser, you will get an access error. <br/> > Note: all media URLs will expire after 5 minutes, you need to retrieve the media URL again if it expires. via GET /v23.0/{media_url}

whatsapp_business_messaging
whatsapp_get_by_version_by_phone_number_idREAD

When you query all the phone numbers for a WhatsApp Business Account, each phone number has an id. You can directly query for a phone number using this id. via GET /v23.0/{phone_number_id}

whatsapp_business_messaging
whatsapp_get_by_version_by_phone_number_id_block_usersREAD

Get blocked users via GET /v23.0/{phone_number_id}/block_users

whatsapp_business_messaging
whatsapp_get_by_version_by_phone_number_id_business_compliance_infoREAD

Get India-based business compliance info via GET /v23.0/{phone_number_id}/business_compliance_info

whatsapp_business_messaging
whatsapp_get_by_version_by_phone_number_id_message_qrdlsREAD

Get all QR codes (default fields) via GET /v23.0/{phone_number_id}/message_qrdls

whatsapp_business_messaging
whatsapp_get_by_version_by_phone_number_id_message_qrdls_by_qr_code_idREAD

Get QR code via GET /v23.0/{phone_number_id}/message_qrdls/{qr_code_id}

whatsapp_business_messaging
whatsapp_get_by_version_by_phone_number_id_whatsapp_business_encryptionREAD

Get Encryption Public Key via GET /v23.0/{phone_number_id}/whatsapp_business_encryption

whatsapp_business_messaging
whatsapp_get_by_version_by_phone_number_id_whatsapp_business_profileREAD

To get information about a business profile, make a GET call to the /{{Phone-Number-ID}}/whatsapp_business_profile endpoint. Within the whatsapp_business_profile request, you can specify what you want to know from the business. via GET /v23.0/{phone_number_id}/whatsapp_business_profile

whatsapp_business_messaging
whatsapp_get_by_version_by_phone_number_id_whatsapp_commerce_settingsREAD

Get commerce settings via GET /v23.0/{phone_number_id}/whatsapp_commerce_settings

whatsapp_business_messaging
whatsapp_get_by_version_by_template_idREAD

Get template by ID (default fields) via GET /v23.0/{template_id}

whatsapp_business_management
whatsapp_get_by_version_by_upload_idREAD

You can query the status of an upload session by making a GET call to an endpoint that is named based on the Upload-ID that was returned through the Resumable Upload - Create an Upload Session request. When uploading data, you must include the access token as an HTTP header. Example via GET /v23.0/{upload_id}

whatsapp_business_management
whatsapp_get_by_version_by_waba_idREAD

Get WABA via GET /v23.0/{waba_id}

whatsapp_business_management
whatsapp_get_by_version_by_waba_id_flowsREAD

List Flows via GET /v23.0/{waba_id}/flows

whatsapp_business_management
whatsapp_get_by_version_by_waba_id_message_templatesREAD

Get template by name (default fields) via GET /v23.0/{waba_id}/message_templates

whatsapp_business_management
whatsapp_get_by_version_by_waba_id_phone_numbersREAD

To send messages, you need to register the phone number you want to use. This is the business phone number we mentioned in Set up Assets. Before you can proceed to registration, you need to find that phone number’s ID. via GET /v23.0/{waba_id}/phone_numbers

whatsapp_business_management
whatsapp_get_by_version_by_waba_id_subscribed_appsREAD

To get a list of apps subscribed to Webhooks for a WABA, send a GET request to the subscribed_apps endpoint on the WABA: via GET /v23.0/{waba_id}/subscribed_apps

whatsapp_business_management
whatsapp_post_by_version_app_uploadsWRITE

The Resumable Upload series of requests allow you to upload Profile Pictures to Meta so you can receive a handle to update these pictures in the Business Profile API. The Resumable Upload requests consist of the following: via POST /v23.0/app/uploads

whatsapp_business_management
whatsapp_post_by_version_by_flow_id_deprecateWRITE

Updates the status of the flow as "DEPRECATED". This action is not reversible. Only a published flow can be deprecated to prevent sending or opening it. via POST /v23.0/{flow_id}/deprecate

whatsapp_business_management
whatsapp_post_by_version_by_flow_id_publishWRITE

Updates the status of the flow as "PUBLISHED". This action is not reversible. The flow and its assets become immutable once published. To update the flow, you must create a new flow and specify the previous flow id as the \clone_flow_id\ parameter via POST /v23.0/{flow_id}/publish

whatsapp_business_management
whatsapp_post_by_version_by_phone_number_idWRITE

You can use this endpoint to change two-step verification code associated with your account. After you change the verification code, future requests like changing the name, must use the new code. You set up two-factor verification and register a phone number in the same API call. You must use the parameters listed below to change two-step verification via POST /v23.0/{phone_number_id}

whatsapp_business_managementwhatsapp_business_messaging
whatsapp_post_by_version_by_phone_number_id_block_usersWRITE

Block user(s) via POST /v23.0/{phone_number_id}/block_users

whatsapp_business_messaging
whatsapp_post_by_version_by_phone_number_id_business_compliance_infoWRITE

Add India-based business compliance info via POST /v23.0/{phone_number_id}/business_compliance_info

whatsapp_business_messaging
whatsapp_post_by_version_by_phone_number_id_deregisterWRITE

To deregister your phone, make a POST call to {{Phone-Number-ID}}/deregister. Deregister Phone removes a previously registered phone. You can always re-register your phone using by repeating the registration process. via POST /v23.0/{phone_number_id}/deregister

whatsapp_business_managementwhatsapp_business_messaging
whatsapp_post_by_version_by_phone_number_id_message_qrdlsWRITE

Create QR code via POST /v23.0/{phone_number_id}/message_qrdls

whatsapp_business_messaging
whatsapp_post_by_version_by_phone_number_id_messagesWRITE

Send Test Message via POST /v23.0/{phone_number_id}/messages

whatsapp_business_messaging
whatsapp_post_by_version_by_phone_number_id_registerWRITE

With your phone number’s ID in hand, you can register it. In the registration API call, you perform two actions at the same time: via POST /v23.0/{phone_number_id}/register

whatsapp_business_managementwhatsapp_business_messaging
whatsapp_post_by_version_by_phone_number_id_request_codeWRITE

You need to verify the phone number you want to use to send messages to your customers. Phone numbers must be verified through SMS/voice call. The verification process can be done through the Graph API calls specified below. To verify a phone number using Graph API, make a POST request to {{PHONE_NUMBER_ID}}/request_code. In your call, include your chosen verification method and locale. via POST /v23.0/{phone_number_id}/request_code

whatsapp_business_managementwhatsapp_business_messaging
whatsapp_post_by_version_by_phone_number_id_verify_codeWRITE

After you received a SMS or Voice request code from Request Verification Code, you need to verify the code that was sent to you. To verify this code, make a POST request to {{PHONE_NUMBER_ID}}/verify_code that includes the code as a parameter. via POST /v23.0/{phone_number_id}/verify_code

whatsapp_business_managementwhatsapp_business_messaging
whatsapp_post_by_version_by_phone_number_id_whatsapp_business_profileWRITE

Update the business profile information such as the business description, email or address. To update your profile, make a POST call to /{{Phone-Number-ID}}/whatsapp_business_profile. In your request, you can include the parameters listed below. It is recommended that you use Resumable Upload - Create an Upload Session to obtain an upload ID. via POST /v23.0/{phone_number_id}/whatsapp_business_profile

whatsapp_business_messaging
whatsapp_post_by_version_by_phone_number_id_whatsapp_commerce_settingsWRITE

Set or update commerce settings via POST /v23.0/{phone_number_id}/whatsapp_commerce_settings

whatsapp_business_messaging
whatsapp_post_by_version_by_template_idWRITE

Edit template via POST /v23.0/{template_id}

whatsapp_business_management
whatsapp_post_by_version_by_upload_idWRITE

To upload a profile picture to your business profile, make a POST call to the named endpoint {{Version}}/{{Upload-ID}}, where Upload-ID is the value you received from Resumable Upload - Create an Upload Session. This value should look like the following: via POST /v23.0/{upload_id}

whatsapp_business_management
whatsapp_post_by_version_by_waba_id_message_templatesWRITE

Create authentication template w/ OTP copy code button via POST /v23.0/{waba_id}/message_templates

whatsapp_business_management
whatsapp_post_by_version_by_waba_id_subscribed_appsWRITE

To make sure you receive notifications for your account you need to subscribe your app to your WABA. via POST /v23.0/{waba_id}/subscribed_apps

whatsapp_business_management
whatsapp_put_by_version_by_phone_number_id_messagesWRITE

When you receive an incoming message from Webhooks, you could use messages endpoint to change the status of it to read. We recommend marking incoming messages as read within 30 days of receipt. Note: you cannot mark outgoing messages you sent as read. You need to obtain the message_id of the incoming message from Webhooks. For a more in depth guide for marking messages as read, see Guide: Mark Messages as Read. via PUT /v23.0/{phone_number_id}/messages

whatsapp_business_messaging

Put WhatsApp behind one governed endpoint.

Same permissions, same audit trail, whatever else you connect next.