user_changed_user_idsystem messages webhook. When a WhatsApp user’s business-scoped user ID (BSUID) changes and no phone number can be shared with you, only the BSUID change is reported: the event is now delivered on the messages field as a system message with system.type set to user_changed_user_id, carrying system.previous_user_id and system.previous_parent_user_id alongside the new values.system.previous_user_id and system.previous_parent_user_id to user_changed_numbersystem messages webhooks. A phone number change also regenerates the user’s business-scoped user ID (BSUID), so the previous values are now reported alongside the new ones on both system message types.user_id_update is not a subscribable webhook field and does not appear in the App Dashboard. BSUID changes are delivered on the messages field as a system message, with system.type set to user_changed_number when the user changed their phone number.REQUEST_CONTACT_INFO button is available starting early July 2026 (previously listed as early May 2026).REQUEST_CONTACT_INFO button is optional and the button label cannot be customized, and removed the hardcoded text field from the template creation example.call_created and terminate) for SIP calls. This includes a new webhook_delivery field in the SIP settings configuration. The call_created webhook includes WhatsApp Call ID (WACID) which can be correlated with SIP Call-ID headers.REJECT and TIMEOUT triggers, and receive recorded voicemails through the existing messages webhook field as inbound audio messages.messaging_account_id as the preferred request parameter for specifying the Messaging Account on WhatsApp Business Cloud API messaging and calling endpoints. The previous paid_messaging_account_id parameter is now a deprecated, backward-compatible alias; migrate to messaging_account_id by December 31, 2026, after which paid_messaging_account_id is planned for removal in a future Graph API version. If you supply both parameters, messaging_account_id takes precedence and paid_messaging_account_id is ignored. See Managing messaging accounts for details.from_user_id and from_parent_user_id to the coexistence edit and revoke messages webhooks payloads, and added smb_message_echoes examples showing messages edited or revoked by the business customer using the WhatsApp Business app.policy.tos field when you create your first signup with the In-App Signup API. The approved URL is https://www.facebook.com/legal/ads-manager-marketing-messages-terms. Create requests that send a different URL fail with error code 2494177 (SIGNUP_TOS_URL_NOT_ALLOWED).transfer_action request parameter (none, force_transfer) on the set-username endpoint, used to transfer a username from another business phone number within the same business portfolio to this phone number, along with the new 147005 “Username transfer required” error code returned when a transfer is required but transfer_action was not set to force_transfer.paid_messaging_account_id parameter for multi-Messaging Account scenarios.{"success": true}. Archiving now returns archived_templates (successfully archived IDs) and failed_templates (per-template error messages). Unarchiving returns unarchived_templates and failed_templates in the same format. This enables callers to handle partial failures when archiving or unarchiving templates in bulk.REJECT and TIMEOUT triggers, and receive recorded voicemails through the existing messages webhook field as inbound audio messages.contact_request to request_contact_info. Fixed the parent BSUID endpoint URL to use api.facebook.com instead of graph.facebook.com.to_user_id, to_parent_user_id, and contacts with username, user_id, parent_user_id for Call Connect and Call Terminate webhooks, and recipient_user_id for Call Status webhooks.order_details and order_status messages and the supported Mexico payment settings: payment links, payment accounts, and cash vouchers (OXXO), as well as order details templates.PARTNER_REMOVED event disconnection_info object now supports three additional reason values when your client was using both the WhatsApp Business app and Cloud API: ACCOUNT_DISCONNECTED (enforcement or your client explicitly deleted their WhatsApp account), CHANGE_NUMBER (your client changed their phone number), and USER_RE_REGISTERED (your client re-registered on a new device). These values are part of a gradual rollout and may not be available to you immediately.131064. The API returns this error when a WhatsApp Business account has exceeded its messaging limit due to template classification violations. This applies to both template messages and direct send messages. The restriction is automatically lifted after the enforcement period.PARTNER_REMOVED event now includes a disconnection_info object when your client was using both the WhatsApp Business app and Cloud API and the disconnection was due to a business downgrade or device inactivity. The object contains a reason field (BUSINESS_DOWNGRADE, PRIMARY_INACTIVITY, or COMPANION_INACTIVITY) and an initiated_by field (USER or SYSTEM). This feature is part of a gradual rollout and may not be available to you immediately.request_welcome webhook and welcome message feature from conversational components. This feature is no longer supported. The enable_welcome_message parameter has been removed from the Conversational Automation API.hsm_ids field to DELETE WhatsApp Business Account > Message Templates endpoint. Accepts an array of up to 100 template IDs to delete in a single request. Cannot be combined with the name or hsm_id parameters. See Delete templates by IDs.data_api_version to 4.0 in the Flow JSON.
played status messages webhook status value, which indicates when a voice message is played by the Whatsapp user.marketing_messages_onboarding_status and owner_business_info fields to check Terms of Service and Intent request status for business manager.
url property.
product_policy field is now 100% rolled out for businesses customers.whatsapp_business_manager_messaging_limit field has been added, which returns the owning business portfolio’s messaging limit. This field is available on the following endpoints:
messaging_limit_tier on the GET /<BUSINESS_PHONE_NUMBER_ID> endpoint now returns the owning business portfolio’s messaging limit.131059 which is returned when querying the GET /<WHATSAPP_BUSINESS_ACCOUNT_ID>/message_templates endpoint with an invalid pagination cursor. If you get this error, retry your request without before or after cursors. This will generate and return new cursors for paginated responses.conversation object, unless the webhook is for a message sent during an open Free Entry Point window.AD_ACCOUNT_LINKED webhook. The older webhook will be deprecated by Jan 1, 2026./marketing_messages endpoint will accept marketing messages for both MM Lite API and Cloud API.v#-public-preview (e.g. v3-public-preview) and launching the flow. See Versions for additional details.AD_ACCOUNT_LINKED event to the account_update webhook, which triggers when a WABA has onboarded to MM LITE through Embedded Signup or Intent API giving the partner access to its ad accounts.marketing_messages_onboarding_status field which provides more granular eligibility status data. The field will be a replacement for marketing_messages_api_status field which will be deprecated in version 24.0.marketing_messages_lite_api_status field to correct a bug which was erroneously returning ELIGIBLE when it should have returned ONBOARDED. This field will be deprecated in version 24.0, so we recommend using the new marketing_onboarding_status field instead.marketing_messages_api_status field to no longer require one or more registered phone numbers, or one or more MM Lite API-ready templates, in order for ONBOARDED to be returned.PROFILE_PICTURE_LOST as a new alert_type to account_alerts webhooks, to notify you when a business phone number’s business profile photo has been deleted.marketing_messages_read_rate_benchmarkmarketing_messages_click_rate_benchmark
event set to THROUGHPUT_UPGRADE and current_limit set to TIER_UNLIMITED will now be triggered if your business phone number is upgraded to higher throughput.132018 for help diagnosing invalid parameters when attempting to send a template message. Applies to version 23.0 and newer versions.only_waba_sharing is no longer a valid extras.featureType value, since bypassing the phone number screen is obsolete now that business customers are able to complete the flow with a verified business phone number, unverified number, or no number at all.extras.version which must be set to 3 to enable version 3.extras.features for enabling Marketing Messages Lite API and App-Only Install onboarding.extras.features.api_access_only for enabling App-Only Install onboarding.extras.features instead of extras.featureType.coexistence is no longer a valid extras.featureType value, you must use whatsapp_business_app_onboarding to launch the Whatsapp Business App onboarding flow.134100134101134102134103allow_category_change property during template creation. Previously, if set to true in a template creation request, this allowed us to update a template’s category to marketing, if we determined marketing to be its category per its content and our guidelines. This is now the default behavior.
flow_json, publish) are now available in the Create Flow API call, which allow you to provide the Flow JSON and publish the new Flow immediately. Previously, at least three API calls were required (Create Flow, Update Flow JSON, and Publish Flow).
flow_message_version, flow_cta and flow_id/flow_name. The rest of the parameters are now optional.
text, and flow identifier flow_id/flow_name/flow_json need to be provided for Flow button. The rest of the parameters are now optional.
app_id parameter to the POST /<WHATSAPP_BUSINESS_ACCOUNT>/set_solution_migration_intent endpoint to allow for migration off of Multi-Partner Solutions.131050 for messages webhooks, indicating message non-delivery due user marketing preferences.marketing_messages_[event]MARKETING_MESSAGES_LITE_APIproduct_type query parameter `MARKETING_LITE’conversation:origin:type and pricing:category fields will show as marketing_lite
package_name and signature_hash parameters must be defined within the supported_apps array when creating one-tap autofill and zero-tap authentication templates.storage_configuration parameter to the POST /<WHATSAPP_BUSINESS_PHONE_NUMBER>/settings endpoint, which can be used to enable or disable local storage.data_localization_region parameter from the POST /<WHATSAPP_BUSINESS_PHONE_NUMBER>/register endpoint.CheckboxGroup and RadioButtonsGroup components now require a label property (previously optional)
name property for all input and selection components cannot be empty. Previously values such as “”, “ “, “\n”, “\t”, “\n” were accepted; with version 4.0 these are no longer valid.
PhotoPicker and DocumentPicker components. These components allow users to share images and documents, respectively, within a Flow, leveraging the existing and familiar WhatsApp UX.
label improvementsCheckboxGroup and RadioButtonsGroup components now support a higher character limit for the label property, and additionally support a new description property, which can be used to provide more information to users about the selection options.
data_exchange to your Flows Endpoint, by leveraging the If and Switch Components within the Flow JSON.
Form and dynamic data from any screen in the Flow JSON using global accessor syntax. This means you no longer need to explicitly propagate data from screen-to-screen.
Form component is now optional. This means that you can access user-entered data without the need to wrap your components inside a Form component.
screen parameter in the message payload at Flow message send time if the action is navigate: invalid screens (i.e. screens that are no defined in the Flow JSON, or screens which cannot act as a first screen) will be rejected, and an API error will be returned.
data_channel_uriendpoint_uri will be returned.data_channel_uri will be returned.biz_opaque_callback_data character maximum from 256 to 512.success for terminal screens to indicate whether terminating on that screen results in a successful flow completion.endpoint_uri field instead of the deprecated data_channel_uri.name optional for Update Flow API request.cta_url_link_tracking_opted_out field on WhatsApp Message Template node for enabling/disabling button click tracking.UTILITY.data_channel_uri property from Flow JSONdata_channel_uri field in the Get Flow API request and replaces it with the endpoint_uri field.health_status field to various nodes for checking messaging health status.biz_opaque_callback_data field to free-form messages for including arbitrary strings in messages webhooks.data_localization_region field on WhatsApp Business Phone Number > Register endpoint for enabling local storage.code_expiration_minutes value (instead of a default of 10 minutes) to determine if the delivered template message should display an autofill button or copy code button.code_expiration_minutes value, if present (or after 10 minutes, if not present).limited_time_offer template component.ctwa_clid property to referral object in messages webhooks. Indicates the click ID generated when the user taps an ad that clicks to WhatsApp in order to send the message.add_security_recommendation and code_expiration_minutes template components in component value.200 if the user identified by token has not been granted appropriate WhatsApp Business Account Access.throughput and platform_type fields to WhatsApp Business Phone Numbers.true, any response types passed in response_type will take precedence over the default types.template_analytics (in beta).VERIFIED status of 28 days (up from 14).2494100 that indicates a business phone number is temporarily in maintenance mode.132015 instead of 132001.132016 instead of 132001.2061.2062.account_alerts webhooks field.AUTHENTICATION, MARKETING, or UTILITY.hsm_id field to DELETE WhatsApp Business Account > Message Templates endpoint. If included, deletes a single template that matches the supplied ID (instead of deleting all templates that match the supplied name).last_onboarded_time to WhatsApp Business Phone Number node. Indicates when a user created a business phone number on their WhatsApp Business Account by completing the Embedded Signup flow.last_onboarded_time field to the GET /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID> and GET <WABA_ID>/phone_numbers endpoints to enable sorting results by when a user last onboarded the Embedded Signup flow. If this parameter is not specified, the results are sorted in descending order.allow_category_change parameter to POST WhatsApp Business Account > Message Templates endpoint.INCORRECT_CATEGORY as a new rejection reason value for template status webhooks.previous_category field to WhatsApp Message Templates.template_category_update webhook subscription field. If subscribed to this field, anytime a template’s category changes you will receive a webhook indicating the template’s previous and new category.AUTHENTICATIONMARKETINGUTILITYcode and details instead."code":100) had multiple unique titles which indicated the nature of a given 100 error. All code 100 errors will now use Invalid parameter as their title. Old titles that described the nature of a given code 100 error have been moved to the details property. This change is also now reflected in webhooks payloads that describe a code 100 error response.errors object in webhooks triggered by v16.0+ request errors now include message and error_data.details properties, and title values have changed for multiple error codes. Now, errors objects have the following structure and data:[ { "code": <CODE>, "title" : "<TITLE>", "message": "<MESSAGE>", "error_data": { "details": "<DETAILS>" } }, ... ]
title property value has been updated for the following error codes. Their old values now appear in error_data.details.
130470 new title is now Re-engagement message130429 new title is now Rate limit hit131045 new title is now Incorrect certificate131031 new title is now Business Account locked131053 new title is now Media upload error131027 new title is now Something went wrong131042 new title is now Business eligibility payment issue131026 new title is now Message Undeliverable131000 new title is now Something went wrongmessage property value is the same as the title property value, which indicates the error code’s title.
This property maps to the message property in API error response payloads.error_data.details property now includes error code titles from the error codes listed above and describes the underlying cause of the error. This value maps to the details property in API error response payloads.errors properties in error-related webhooks:entry.changes.value.errorsentry.changes.value.messages.errorsentry.changes.value.statuses.errorsphone_number_id field to the Media endpoint. If you include this parameter and a business phone number ID, the operation will only be processed if the phone number ID matches the ID of the phone number upon which the media was uploaded.template_performance_metrics field. Notifies you weekly of all template performance metrics, including messages sent count, messages opened count, and top reasons for blocks.account_alerts field:account_alerts field. Notifies you of Business, WhatsApp Business Account, and business phone number alerts.account_update field values:account_update.events value: ACCOUNT_DELETED. Indicates that a phone number has been de-registered or deleted from a WhatsApp Business Account.message_template_status_update.events value: PENDING_DELETION. Indicates a message template has been marked for deletion.ACCOUNT_DELETED : WhatsApp Business Account DeletedPENDING_DELETION : Template Message Pending Deletioncountry (applies to v15.0+)ownership_type (applies to v15.0+)business_verification_status (applies to all versions)creation_time field using GREATER_THAN, LESS_THAN, or IN_RANGE operators.ownership_type using EQUAL or IN operators.creation_time using GREATER_THAN, LESS_THAN, or IN_RANGE operators.ownership_type using EQUAL or IN operators.country using EQUAL or IN operators.is_official_business_accountmessaging_limit_tieris_official_business_account.v2.43, there will be changes to the behavior of the contacts endpointstatus will change. Regardless of whether a user has WhatsApp, it will always return valid for status in the response and a wa_id. There is no guarantee that the returned wa_id will be valid. These changes are applicable for both direct responses, as well as webhook responses for non-blocking callsstatus and wa_id returned in the contacts node. In addition, sending a message on v2.39.1 or higher can be completed without calling the contacts node1013 User is not valid error when trying to send a template message, which will be returned if you attempt to send the template message to a phone number without a WhatsApp account470 errorv2.45, the optional cert parameter in the shards node will become mandatory for all requests. Please update your integration to always include a valid cert when calling the shards nodev2.41.2, businesses can use the application node to filter out sent message statuses they are not interested in through the message object within the webhooks object. In v2.45, sent_status will be deprecated, so update your integration to use the webhooks object in the application node for all webhook controlsv2.39.1, recipient_id is available in both the statuses object and in the message object. In v2.45, recipient_id will be removed in the statuses object, so update your integration to use recipient_id under the message objectcomponents.parameters.text) for message templates that only use a body component (components.type:body) can now total up to 32,768 characters. See Parameters object.about field on business profiles is now supported. See Business Profiles for details.v2.41.3 version of our Business API client added a new table index on message_receipt_log that could benefit partners with high throughput needs. For instance, this improvement allows partners to send more than 200 messages/second.sticker property and for animated sticker asset requirements.delivered and read webhook notifications which gives them greater control over webhook notifications for messages. This can be achieved through the settings/applications endpoint.namespace field is optional for the template object.category parameter for the /WHATSAPP-BUSINESS-ACCOUNT-ID/message_template endpoint have been deprecated for v14.0 and later:ACCOUNT_UPDATEALERT_UPDATE APPOINTMENT_UPDATEAUTO_REPLYISSUE_RESOLUTIONPAYMENT_UPDATEPERSONAL_FINANCE_UPDATERESERVATION_UPDATESHIPPING_UPDATETICKET_UPDATE TRANSPORTATION_UPDATETRANSACTIONALMARKETINGv2.39.1. Additionally, this release:v2.39.2.v2.39.3.v2.39.4 is installed, businesses will get notified they received a disappearing message by a webhooks notification with type set to "ephemeral". Businesses will not be able to see the message’s content.v2.39.3, the disappearing messages issue was handled by WhatsApp automatically disabling these messages in the chat thread with the client. For v2.39.4, we will not do that. With this version, businesses that receive disappearing messages must ask the customer to disable disappearing messages and resend their latest message.POST calls to PHONE_NUMBER_ID/deregister in order to remove a phone number from the WhatsApp Business API. See Registration for information.referral object is different from the On-Premises API’s referral object.v2.37.1, but there’s a different expiration date. v2.37.2 expires on Sep 22, 2022.CrashLoopBackOff for their webapp container and their container may fail to start. To fix that, add following line in the Kubernetes deployment YML file under webapp configuration:command: ["/opt/whatsapp/bin/wait_on_mysql.sh", "/opt/whatsapp/bin/launch_within_docker.sh"]
v2.39.3 version of our Business API client is available for developers today. The new client includes two fixes and additional logs to support debugging. The two fixes are:v2.39.2. This version fixes a bug that prevented video messages from being sent under certain circumstances.2.39.1 version of our Business API client is available for developers starting today. The new client includes:1031.hsm type and the webhook_payload_conversation_pricingmodel_disabled application setting.graph.whatsapp.com to the list of WhatsApp server hostnames that the Business API client requires connectivity to. See Set Up and Debug Your Network, Hostnames for information.v2.39, we have added error code 1031. You will get this error if your account has been locked and can’t send any messages due to an integrity policy violation. See Error and Status Messages and Policy Enforcement for information.hsm type has been deprecated with v2.39. You should use the template type instead.webhook_payload_conversation_pricingmodel_disabled has been deprecated./PHONE_NUMBER_ID/deregister/PHONE_NUMBER_ID/application_settings