WhatsApp Business API Client
Deprecated versions are not supported anymore and will soon not be allowed to send messages. Please keep your WhatsApp Business API Client installation updated.
Version
|
Date Introduced
|
Changes
| v2.53.2 deprecated
| Feb 06, 2024
| Change details
|
v2.53.1 deprecated
| Jan 09, 2024
| Change details
|
v2.51.3 deprecated
| Dec 21, 2023
| Change details
|
v2.51.2 deprecated
| Nov 8, 2023
| Change details
|
v2.49.6 deprecated
| Nov 8, 2023
| Change details
|
v2.51.1 deprecated
| Oct 10, 2023
| Change details
|
v2.49.5 deprecated
| Sep 26, 2023
| Change details
|
v2.49.4 deprecated
| Sep 15, 2023
| Change details
|
v2.49.3 deprecated
| Aug 11, 2023
| Change details
|
v2.49.2 deprecated
| July 31, 2023
| Change details
|
v2.47.8 deprecated
| July 28, 2023
| Change details
|
v2.49.1 deprecated
| July 11, 2023
| Change details
|
v2.47.7 deprecated
| July 4, 2023
| Change details
|
v2.47.6 deprecated
| June 21, 2023
| Change details
|
v2.47.3 deprecated
| May 22, 2023
| Change details
|
v2.45.5 deprecated
| May 22, 2023
| Change details
|
v2.47.2 deprecated
| May 15, 2023
| Change details
|
v2.45.4 deprecated
| May 15, 2023
| Change details
|
v2.47.1 deprecated
| April 11, 2023
| Change details
|
v2.45.3 deprecated
| March 24, 2023
| Change details
|
v2.43.3 deprecated
| March 17, 2023
| Change details
|
v2.45.2 deprecated
| March 9, 2023
| Change details
|
v2.45.1 deprecated
| January 10, 2023
| Change details
|
v2.43.2 deprecated
| November 24, 2022
| Change details
|
v2.43.1 deprecated
| October 11, 2022
| Change details
|
v2.41.3 deprecated
| Sep 19, 2023
| Change details
|
v2.41.2 deprecated
| June 27, 2022
| Change details
|
v2.39.4 deprecated
| May 10, 2022
| Change details
|
v2.39.3 deprecated
| Mar 25, 2022
| Change details
|
v2.39.2 deprecated
| Mar 4, 2022
| Change details
|
v2.39.1 deprecated
| Feb 1, 2022
| Change details
|
v2.37.2 deprecated
| Mar 26, 2022
| Change details
|
v2.37.1 deprecated
| Sep 30, 2021
| Change details
|
v2.35.4 deprecated
| Jun 28, 2021
| Change details
|
v2.35.2 deprecated
| May 26, 2021
| Change details
|
v2.33.4 deprecated
| Mar 10, 2021
| Change details
|
v2.33.3 deprecated
| Feb 23, 2021
| Change details
|
v2.31.5 deprecated
| Nov 13, 2020
| Change details
|
v2.31.4 deprecated
| Oct 20, 2020
| Change details
|
v2.29.3 deprecated
| Aug 11, 2020
| Change details
|
v2.29.2 deprecated
| Jul 27, 2020
| Change details
|
v2.29.1 deprecated
| Jul 17, 2020
| Change details
|
v2.27.13 deprecated
| Jul 27, 2020
| Change details
|
v2.27.12 deprecated
| Apr 17, 2020
| Change details
|
v2.27.11 deprecated
| Apr 8, 2020
| Change details
|
v2.27.9 deprecated
| Mar 4, 2020
| Change details
|
v2.27.8 deprecated
| Feb 4, 2020
| Change details
|
v2.25.5 deprecated
| Jan 6, 2020
| Change details
|
v2.25.4 deprecated
| Nov 13, 2019
| Change details
|
v2.25.3 deprecated
| Oct 7, 2019
| Change details
|
v2.25.2 deprecated
| Sep 9, 2019
| Change details
|
v2.25.1 deprecated
| Aug 26, 2019
| Change details
|
v2.23.6 deprecated
| Sep 9, 2019
| Change details
|
v2.23.5 deprecated
| Jun 18, 2019
| Change details
|
v2.23.4 deprecated
| Apr 29, 2019
| Change details
|
v2.21.6 deprecated
| Jan 24, 2019
| Change details
|
v2.21.4 deprecated
| Nov 13, 2018
| Change details
|
v2.21.3 deprecated
| Oct 24, 2018
| Change details
|
v2.19.7 deprecated
| Sep 24, 2018
| Change details
|
v2.19.4 deprecated
| Jul 24, 2018
| Change details
|
v2.19.3 deprecated
| Jul 18, 2018
| Change details
|
v2.18.26 deprecated
| Jun 15, 2018
| Change details
|
v2.18.22 deprecated
| May 10, 2018
| Change details
|
v2.18.16 deprecated
| Apr 18, 2018
| Change details
|
v2.18.15 deprecated
| Apr 16, 2018
| Change details
|
v2.18.13 deprecated
| Apr 3, 2018
| Change details
|
v2.18.12 deprecated
| Mar 29, 2018
| Change details
|
v2.18.11 deprecated
| Mar 22, 2018
| Change details
|
v2.18.10 deprecated
| Mar 14, 2018
| Change details
|
v2.18.7 deprecated
| Mar 5, 2018
| Change details
|
v2.18.6 deprecated
| Feb 26, 2018
| Change details
|
v2.18.4 deprecated
| Feb 10, 2018
| Change details
|
v2.18.3 deprecated
| Jan 31, 2018
| Change details
|
v2.18.2 deprecated
| Jan 22, 2018
| Change details
|
v2.18.1 deprecated
| Jan 10, 2018
| Change details
|
2023
Feb 06, 2024 (v2.53.2)
Version 2.53.2
is now available and includes:
- Fix "media not found" issue with outgoing media messages
Jan 09, 2024 (v2.53.1)
Version 2.53.1
is now available and includes:
- A new crash logging system which saves dump files whenever a crash occurs [Crash Logs].
- Bug Fixes.
2023
Dec 21, 2023 (v2.51.3)
Version 2.51.3
is now available and includes:
- Fix db upgrade script, not running properly in
v2.51.1
and v2.51.2
.
- Update on postgresql client on coreapp image.
Nov 8, 2023 (v2.51.2)
Version 2.51.2
is now available and includes:
- Greatly reduce docker image size (2GiB -> 600MiB).
- Fix a crash that occurs on receiving an incoming message.
- Upgrade several image packages, covering security vulnerabilities.
- Fix a memory leak in 2.51.1 when using interactive messages.
Nov 8, 2023 (v2.49.6)
Version 2.49.6
is now available and includes:
- Fix a crash that occurs on receiving an incoming message.
- Upgrade several image packages, covering security vulnerabilities.
Oct 10, 2023 (v2.51.1)
Backwards incompatible changes for v2.51.*
:
Starting with 2.51.1
, the future API versions require AVX2 support. This excludes older AWS instance types that use PV AMIs (C1, C3, M1, M3, M2, and T1), VMWare ESXi 5.x and older, and CPUs older than Intel Haswell/AMD Zen1. The supported CPU flags can be checked at /proc/cpuinfo
file.
Docker 20.10.10 and later is required due to a docker bug that prevents coreapp from starting.
Standalone DB upgrades are not currently supported in 2.51.1. Please skip the db upgrade step and deploy the updated version directly. There are no schema updates in this version from 2.49.
Version 2.51.1
is now available and includes:
- You can now send WhatsApp Flows - see the Developer docs on how to get started.
- On startup, coreapps will now process any pending offline messages before accepting outbound messages.
- A new interactive message type named catalog_message has been introduced.
Sep 26, 2023 (v2.49.5)
Version 2.49.5
is now available and includes:
- Fix an issue leading to /tmp folder not being cleaned when sending media messages.
Sep 15, 2023 (v2.49.4)
Version 2.49.4
is now available and includes:
- Fix a performance regression issue when sending template messages. The issue was impacting accounts with large number of templates, and only on
v2.49.1
, v2.49.2
and v2.49.3
(the v2.47.x
series is not affected by this issue).
Aug 11, 2023 (v2.49.3)
Version 2.49.3
is now available and includes:
- Fix an issue with empty webhook notifications being generated for messages that shouldn’t have webhooks created for them.
- Address the issue where coreapps are experiencing a state of being stuck.
July 31, 2023 (v2.49.2)
Version 2.49.2
is now available and includes:
- Fix an issue which prevented garbage collector to delete processed messages.
- Fix an issue of delayed 24-hour messaging session opening.
July 11, 2023 (v2.49.1)
Backwards incompatible changes for v2.49.1
For beta users of Location Messages, name and address are now required as part of GA.
Version 2.49.1
is now available and includes:
- Improves garbage collector which now clears unused outbound and inbound media.
- Introduces a new endpoint to store inbound media. This allows to download media which was not downloaded (or failed to download) when a media message was received
- Attempting to send an existing authentication template will now return error code 1009 if parameters are not allowed. See more at Authentication Templates.
- Captions are now supported for document messages.
- Adds support for Location Messages.
- Fix an issue that was preventing phone number change notifications from being posted on webhooks.
July 28, 2023 (v2.47.8)
Version 2.47.8
is now available and includes:
- Fix various memory crashes.
- Fix sending interactive message of type 'product'.
- Fix an issue preventing from getting notifications when users change their phone number.
July 4, 2023 (v2.47.7)
Version 2.47.7
is now available and includes:
- Fix issue that was preventing messages to be correctly received by businesses (users only saw 1 tick on their side) in specific scenario.
June 21, 2023 (v2.47.6)
Version 2.47.6
is now available and includes:
May 22, 2023 (v2.47.3)
Version 2.47.3
is now available and includes:
- Fix a rare crash that can occur when receiving an invalid message.
- Fix 100% CPU usage in unregistered coreapps.
- Fix a memory leak.
May 22, 2023 (v2.45.5)
Version 2.45.5
is now available and includes:
May 15, 2023 (v2.47.2)
Version 2.47.2
is now available and includes:
- Fix crashes that would lead to the coreapp stalling and going unhealthy.
- Fix issue that could lead to empty webhook bodies when a large number of messages are received simultaneously.
May 15, 2023 (v2.45.4)
Version 2.45.4
is now available and includes:
- Fixed crashes that would lead to the coreapp stalling and going unhealthy.
April 11, 2023 (v2.47.1)
Version 2.47.1
is now available and includes:
- Media upload reliability
- Receive payments on WhatsApp (feature available only in Singapore)
- Businesses can now collect Stripe payment for orders from their customers on WhatsApp. Refer to our developer docs for more information.
March 24, 2023 (v2.45.3)
Version 2.45.3
is now available and includes:
- Fixed bug preventing multi-connect setups from upgrading from 2.41 to 2.43. Upgrades now succeed and after upgrading, the health endpoint returns the status of all Coreapps that were started.
- Fixed webapp to support ipv6 networks. (Set env-var
ENABLE_IPV6=false
on the webapp container to disable).
- Fixed bug when the show_security_notifications option is turned on, we may receive unknown_system messages rather than receiving notifications with user information whose identity has changed.
March 17, 2023 (v2.43.3)
Version 2.43.3
is now available and includes:
- Fixed bug preventing multi-connect setups from upgrading from 2.41 to 2.43. Upgrades now succeed and after upgrading, the health endpoint returns the status of all Coreapps that were started
March 9, 2023 (v2.45.2)
Version 2.45.2
is now available and includes:
- Fix for High Availability setup.
- When launching a new High Availability setup (i.e. fresh containers and new database), health endpoints on individual Coreapps can now be used without first registering a business phone number.
- Fix for /v1/payments endpoint.
- The /v1/payments endpoint is now usable in High Availability setup; it no longer returns a "WhatsApp server is disconnected" error.
- Docker latest version support
January 10, 2023 (v2.45.1)
Backwards incompatible changes for v2.45.1
:
The cert
field will now be mandatory, so please update your integration to always include a valid cert when calling the shards
node.
sent_status
is deprecated, so please update your integration to use the webhooks
object in the application node for all webhook controls.
recipient_id
is removed in the statuses
object, so please update your integration to use recipient_id
under the message
object.
The 2.45.1
version of our Business API client is available today and includes:
- Security Improvements
- We updated key dependencies of On-Premise client and monitoring stack fixing critical vulnerabilities and making prometheus monitoring transport using secure protocol. 2 environment variables are introduced which will be be used to enable the securing of the SSL connection, and to ensure verification of the webapp certificate. These new environment variables are:
WA_SKIP_SSL_VERIFICATION
is going to be used to enable, and disable ssl verification. Valid values are TRUE
or FALSE
.
WA_SSL_CA_PATH
gives the path to the certificate which can be used to verify the webapp certificate used by the businesses. This is useful if businesses are using a self-signed certificate or certificate that was signed using their own Certificate Authority. The path here should be accessible from the container so it needs to added as a volume. If WA_SKIP_SSL_VERIFICATION
is set to TRUE
, this value is ignored.
- Service reliability
- Errors such as “invalid namespace” would happen at times when trying to send template messages while the HSM packs weren’t loaded yet. This has been fixed, now businesses will encounter a new error “Coreapp is not ready” whenever they try to use the messaging endpoint before the client is not fully ready.
- Database Performance Improvement
- We have improved the database query execution time by reducing round trips between client and database server. There are also some new DB indexes to improve performance of some heavy queries on message send path.
- Stability and bug fixes
- Message deleted webhook is working again. When businesses send a message to the consumer and deletes it, the business will receive a webhook.
out_message_persisted
prometheus metric has been fixed and is working again
- Video thumbnail is fixed. When sending videos, the thumbnail was sometimes missing and consumers couldn’t see the first frame before playing the video.
- New field in message
sent
status webhook notification
2022
November 24, 2022 (v2.43.2)
The 2.43.2
version of our Business API client is available today and includes:
- Fix for deleted message webhook notifications
- There was a bug in the
v2.43.1
release which caused deleted message status webhook notifications to not be delivered. No other internal clean-up procedures were impacted except for sending this webhook notification in v2.43.1
Even though v2.43.2
is recommended, if you are already on v2.43.1
and do not use the deleted message status webhook notification, there is no need to upgrade to v2.43.2
.
Please upgrade to v2.43.2
if you are on v2.41.x.
October 11, 2022 (v2.43.1)
Backwards incompatible changes for v2.43.1
:
- Starting in
v2.43
, there will be changes to the behavior of the contacts
endpoint
- Responses for
status
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 calls
- Ensure your code avoids relying on
status
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
node
- Ensure your code handles a potential
1013
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 account
- For non template messages, sending a message to a phone number without a WhatsApp account will return a
470
error through a webhook response
The 2.43.1
version of our Business API client is available today and includes:
- Changes to
contacts
node
- New API for blocking contacts
- Media reliability improvements
- Improved reliability for media message sends (including template media messages) in cases where the same media is sent at a high throughput, such as during campaigns
- Extended API timeout
- The timeout for API requests has been increased to 120 seconds. This is a short-term mitigation to reduce the number of timeouts for operations that are still being processed by the API client
- Incoming contact message fix
- Incoming contact messages will now correctly show a contact’s company and department
- Stability and bug fixes
- Fixing crashing issues when sending message right after registration
- Fixing an issue with the web app so special charactors in password are handled correctly
- Adding a new table index on
message_receipt_log
September 19, 2022 (v2.41.3)
The 2.41.3
version of our Business API client includes:
- Adding a new table index on
message_receipt_log
that could benefit partners with high throughput needs (sending more than 200 messages / second)
June 27, 2022 (v2.41.2)
Please follow the best practices below to ensure a seamless upgrade to v2.41.2:In v2.41.2, we are introducing DB schema changes to improve the performance of the system. As a result, upgrades from v2.37.2 and v2.39.x for set ups with large databases which have millions of message and contact entries will take longer than usual.
Generally, perform upgrades during off-peak hours and upgrade lower-throughput setups first.
For large databases, follow these steps:
Run garbage collection via the /services/message/gc endpoint before your upgrade, and ensure it completes successfully
Please use the dbupgrade tool to upgrade the DB schemas prior to the version upgrade.
Once done, you will be able to upgrade API versions with minimal down time. It is strongly recommended to bring the API client down before using the dbupgrade tool.
Ensure the dbupgrade tool completes successfully (exit code 0), and avoid or limit API requests while the uprgade is taking place
We recommend increasing the query timeout on your database servers to one hour, until the upgrade completes successfully.
The 2.41.2
version of our Business API client includes:
- Improvements to the latency of the bulk /contacts endpoint requests and resolution of deadlock issues
- Improvements to the performance and reliability of the garbage collection process
- Businesses now have the ability to enable/disable
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
- More robust handling of media download errors so businesses should experience less issues downloading media sent by customers
- Additional reliability and bug fixes within the send message and registration workflows
- The
caption
property is limited to 1024 characters
This change only applies to captions on media messages being sent on v2.41.2
. There is no impact on previously sent messages with other versions. No character limitations have been introduced on other message types
May 10, 2022 (v2.39.4)
This client version contains all features and fixes shipped with v2.39.1
. Additionally, this release:
- Fixes a bug that prevented video messages from being sent under certain circumstances. This fix was also included in
v2.39.2
.
- Fixes a bug that prevented businesses from sending messages to a customer, if the consumer was the first to initiate an interaction between the two parties on WhatsApp, and that initiation happened more than 7 days ago. This fix was also included in
v2.39.3
.
- Fixes a bug that prevented businesses from receiving disappearing messages from customers. After
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.
When we launched 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.
Mar 25, 2022 (v2.39.3)
The 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:
- Fixed a bug that prevented businesses from sending messages to a customer, if the consumer was the first to initiate an interaction between the two parties on WhatsApp, and that initiation happened more than 7 days ago.
- Fixed a bug that prevented businesses from receiving disappearing messages from customers. After v2.39.3 is installed, businesses will get notified they received a disappearing message by a webhooks notification. On their end, customers will see a warning saying that the disappearing messages mode has been turned off.
Mar 4, 2022 (v2.39.2)
Fixed bug that prevented video messages from being sent under certain circumstances.
Known Issues
- A bug exists that prevents businesses from sending messages to a customer, if the consumer was the first to initiate an interaction between the two parties on WhatsApp, and that initiation happened more than 7 days ago.
- A bug exists that prevents businesses from receiving disappearing messages from customers.
Feb 1, 2022 (v2.39.1)
The 2.39.1
version of our Business API client is available for developers starting today. The new client includes:
Set Shards API
Starting with the new API client version, you may provide your phone’s certificate when you are setting up multiconnect. That means that, when calling the /v1/account/shards endpoint, you can add the Base64-encoded certificate in the cert field. See Scale Your API Client With Multiconnect for information.
New Hostname
We have added 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.
Error Code Updates
With 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.
Deprecations
- Messages API: The
hsm
type has been deprecated with v2.39
. You should use the template
type instead.
- Application Setting: The application setting
webhook_payload_conversation_pricingmodel_disabled
has been deprecated.
Known Issues
Some video messages fail to send under certain circumstances.
March 26, 2022 (v2.37.2)
This version contains the same features as v2.37.1
, but there's a different expiration date. v2.37.2
expires on Sep 22, 2022.
Known Issues
Some Kubernetes developers may see 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"]
2021
Sep 30, 2021 (v2.37.1)
This new version of the API introduces:
Commerce Messages
This version of the API introduces two new types of interactive messages: Single Product Messages and Multi-Product Messages. Users that receive these messages can view products, add them to a shopping cart, and send the cart back to businesses.
Both Multi and Single Product Messages lend themselves best to user experiences that are simple and personalised, where it’s a better experience to guide the customer to a subset of items most relevant to them, rather than browsing a full catalog. They work best when combined with navigation tools like natural language processing, text search or List Messages and Reply Buttons to get to what the customer is looking for fast. See Commerce Guides for more information.
Commerce Messages in India
API businesses in India (+91
phone number) can start integration from today, but will only be able to send Multi-Product or Single Product messages after 15 November 2021. The Laws enacted by the Department of Consumer Affairs in India require you to provide additional information to customers in your Business Profile and Product Detail Pages.
With the WhatsApp Business API v2.37, businesses in India also gain access to the /settings/business/compliance_info
endpoint. See more information here.
Conversation-Based Pricing
We have previously announced that the WhatsApp Business API will switch from a notification-based pricing model to a conversation-based pricing (CBP) model on February 1, 2022. To support your efforts in getting ready for the new pricing system, this version of the API introduces new webhook fields. The webhooks field listed below will only start showing up on your webhooks on February 1, 2022.
Component | Updates with v2.37 | conversation
| New fields: origin and expiration_timestamp .
|
pricing
| New field: category .
|
origin (new object)
| The new origin object describes where a conversation has originated from. This object includes the type field. See Webhook, Components, Origin.
|
See examples of the new webhooks here.
New Webhooks Field For the Statuses Object
The webhooks statuses
object now includes a type
field. Currently, the only supported type is "message"
.
Deprecations
Messages API: The
hsm
type will be deprecated when we launch the WhatsApp Business API
v2.39
. You should use the
template
type instead.
Application Settings: The setting
webhook_payload_conversation_pricingmodel_disabled
will be disabled on February 1, 2022.
Pricing:Notification-Based Pricing will be deprecated on February 1, 2022. With it, the "NBP"
webhook field under pricing_model
will also be deprecated.
The webhooks billable
flag that was added for the Mexico conversation-based pricing test is scheduled to be deprecated as early as March 2022. We recommend that you stop using this field before upgrading to the next version.
Jun 28, 2021 (v2.35.4)
Fixes:
- Retry mechanism for Reply Buttons messages on multi-device.
- Check on incoming message maximum size to prevent MySQL errors.
- Memory issues.
May 26, 2021 (v2.35.2)
Interactive Messages
This version of the API allows you to send interactive messages, which includes list messages and reply button messages. These new features give users a simpler way to find and select what they want from your business during an interaction on WhatsApp. During testing, chatbots using interactive messaging features achieved significantly higher response rates and conversions compared to those that are text-based.
The following messages are considered interactive:
- List Messages: Messages including a menu of up to 10 options. This type of message offers a simpler and more consistent way for users to make a selection when interacting with a business.
- Reply Buttons: Messages including up to 3 options —each option is a button. This type of message offers a quicker way for users to make a selection from a menu when interacting with a business. Reply buttons have the same user experience as interactive templates with buttons.
At the API level, interactive messages are set by specifying a message’s type
to interactive
and adding the interactive
object. Generally, these messages include 4 main parts: header
, body
, footer
, and action
.
For more information, see our Sending Interactive Messages guide.
Deprecations
TTL
The ttl
parameter has been deprecated. Moving forward, any POST
requests to /messages
that include this field will return an error message. Previously, this field was only accepted for messages of type hsm
and template
Passthrough Setting
Starting with v2.35, you can no longer re-enable the pass_through
setting for WhatsApp Business API Clients.
Mar 10, 2021 (v2.33.4)
- [Fixed] Webhook notifications for delete message events are sent to the business successfully.
Feb 23, 2021 (v2.33.3)
General Updates
- All the docker images are now running Ubuntu 20.04. External libraries are all using latest version:
php 7.4
, openSSL 1.1.1
, and Lighttpd 1.4.55
.
- [Deprecation] The WhatsApp Web Business Tool (deprecated since v2.29.1) will no longer be available through the Webapp URL. Postman is now the recommended way of accessing the REST API.
- [Fixed] Security vulnerabilities within the Grafana monitoring instance.
In-Thread Context for ads that Click to WhatsApp
Starting April 21, 2021, as part of API v2.33, businesses will have access to the In-Thread Context feature for ads that click to Whatsapp. With In-Thread Context, a consumer can easily reference the ad they tapped on, and a business can understand which messages come from which ads, making the first interaction more convenient, personal and efficient.
Initial tests have shown In-Thread Context to increase the number of conversations and reduce the cost per conversation.
In order to enable In-Thread Context, the business or Business Service provider that is hosting API v2.33 needs to update their inbound webhooks integration to read a new 'referral' property added to inbound messages by April 21.
After April 21, consumers will be able to send the In-Thread Context via message attachment, containing the header, body image and video related to the ad.
If the advertiser does not complete the above updates by April 21, they will not be able to receive the attachment, and will miss important context on what the customer is messaging about. The consumer will see the ad context, and will expect the business to as well.
Conversation-based pricing
Since February 1, 2021, we have been testing a new pricing model for the WhatsApp Business API that impacts businesses messaging users with a Mexico phone number.
To support this effort, some message webhooks notifications now include the new conversation
and pricing
objects —only messages with status sent
, delivered
, and read
are impacted. For more information, see Message Status Notifications.
2020
Nov 13, 2020 (v2.31.5)
- [Fixed] Receiving messages with fields exceeding expected limits is handled correctly.
- [Fixed]
/v1/settings/application
response to display the config
setting for automatic garbage collection
Oct 20, 2020 (v2.31.4)
- A stricter version expiry has been enforced beginning with this version and for all previous versions.
- Identity change notification
- Businesses using the WhatsApp Business API can choose to be notified when there has been a potential update to the identity of a user with whom they are communicating. This gives businesses a signal that the person behind the account may have changed so a business can verify that they are sending information to the right number.
- If a business opts in to this feature, they will be informed when they receive messages from WhatsApp accounts where the person controlling the account may have changed and will be blocked from sending messages to those accounts until the business acknowledges receipt of the signal and they feel it is safe to continue communications. This will protect the business and their customers from leaking sensitive information.
- Please review best practices to enable integration for this feature: Understanding Identity Change for WhatsApp Business
- [Fixed] Highly Structured Message packs download issue
- [Fixed] Backup/Restore API security issue
Aug 11, 2020 (v2.29.3)
- The Coreapp service is run as user
root
- The upgrade path to
v2.29.3
involves ensuring all pre-existing media volumes have modified ownership to the root
user to ensure seamless operation in v2.29.3
. This specifically impacts businesses that are running v2.29.1
, v2.29.2
, or attempted to upgrade to those versions recently. Please follow our recommendation guides to upgrade to v2.29.3
:
- [Fixed] Memory corruption issues with sending/receiving media messages
Jul 27, 2020 (v2.29.2, v2.27.13)
In v2.29.x
, in order to support running containers more securely, we have modified the permissions of data volumes.
Depending on the pre-existing size of these volumes (media), the upgrade process could cause additional downtime of the Webapp container.
We recommend upgrading to v2.29.3
instead.
- Fixes security vulnerabilities for Grafana monitoring instances
Please note that both v2.29.2
and v2.27.13
will be available until Dec 9, 2020.
Jul 17, 2020 (v2.29.1)
In v2.29.x
, in order to support running containers more securely, we have modified the permissions of data volumes.
Depending on the pre-existing size of these volumes (media), the upgrade process could cause additional downtime of the Webapp container.
We recommend upgrading to v2.29.3
instead.
Apr 17, 2020 (v2.27.12)
Apr 8, 2020 (v2.27.11)
- Coreapp Overview dashboard improvements
- [Bug fix] Coreapp disconnects database connections more frequently than necessary
Mar 4, 2020 (v2.27.9)
- Fixes a potential database upgrade issue when upgrading to 2.27.8
Jan 29, 2020 (v2.27.8)
Known Issue: Using dbupgrade-compose.yml
to upgrade MySQL to v2.27.8
may fail. Refrain from using dbupgrade-compose.yml
for now. The product upgrading procedure outlined in the production setup documentation still works, but not the upgrading MySQL procedure. An upcoming patch release will address this issue.
Jan 6, 2020 (v2.25.5)
- [Bug fix] Issues related to memory leaks identified in previous versions of 2.25.x are resolved
- [Bug fix] Previewing URLs are crashing Coreapp intermittently
2019
Nov 13, 2019 (v2.25.4)
- [Bug fix] Video preview thumbnails are not correctly generated on the receivers phone client
- [Bug fix] Too many database connections issue
- [Bug fix] Video duration generation
Oct 7, 2019 (v2.25.3)
- Throughput for outbound text type messages is improved to 50 messages/second
- Improved efforts to show URL preview
- Improved error handling when preview URL is invalid or not supported
- [Bug fix] Mark messages as read in Postgres
- [Bug fix] Previously, photos larger than 63 KB were encoded. This limit is now increased to 5 MB, enabling original high quality pictures to be sent as they are.
- [Bug fix] Fixed security vulnerabilities for CVE-2019-11931 and CVE-2019-14835
Sep 9, 2019 (v2.25.2, v2.23.6)
- Improvements to Coreapp security
Aug 26, 2019 (v2.25.1)
- Throughput for outbound media type messages is improved to 18 messages/second
- Throughput for outbound text type messages is improved to 25 messages/second
- Throughput for inbound text type messages is improved to 100 messages/second for single instance
- “Non-secure http” Webhooks are deprecated — Please upgrade Webhooks to https for inbound notifications
- A long lived authentication token is available for
health
API calls to help monitor multiple deployments of WhatsApp Business API clients
- The number of requests (rate limits) for the
health
endpoint is set to 10 per second
- Business vertical values to be enumerable rather than free-form text
- [Bug fix] Propagating mime-types correctly to address inbound media issues
- [Bug fix] Mark message read request in multiconnect mode should be distributed uniformly to all the shards rather than sending to shard 0 alone
- AWS cloud formation template is made publicly available from S3, removing manual step of requesting access via Direct Support
Security Advisory
The following security vulnerabilities impact the v2.25.1 Coreapp image. The next patch release will include fixes.
CVE-2018-20856: A patch release will include the fix when published by the vendor for Ubuntu 16.04
Jun 18, 2019 (v2.23.5)
- [Fixed] WhatsApp Web Business Tool not working in Multiconnect mode
- Upload media file size now 100MB
- Disallow setting shards for single instance
- Improved error handling while
- Setting shards
- Setting two-factor verification
- Sending message templates
- Oncall pager error messages improved for "structure unavailable errors"
- "Mark messages as read" now includes all readable message types
Apr 29, 2019 (v2.23.4)
If you are using High Availability/Multiconnect setup, you will see "Bad response received from health check" error in WhatsApp Web Business Tool when you use v2.23.4
.
This is a known issue, and we are working hard to fix it. This doesn't affect other functionalities such as sending messages or checking contact via the WhatsApp Business API, yet we advise you NOT to use/upgrade to v2.23.4
if you are using High Availability/Multiconnect setup and WhatsApp Web Business Tool. Single instance setups will NOT be affected.
Breaking Changes
Metrics
callback_requests
replaced with callback_requests_duration_ms_count
and callback_requests_duration_ms_sum
metric out_message_received_by_server
, out_message_received_by_target
, out_message_received_by_target_read
, out_message_sent
replaced with out_message_status
- Upgrade Prometheus/Grafana containers to 2.23+ to enable monitoring for new metrics
Security Advisory
The following security vulnerabilities impact v2.23.4 images. The next patch release will include fixes.
Coreapp
Webapp
Jan 24, 2019 (v2.21.6)
- Bug fixes:
- [Security fix] Removed Mercurial package that has a security vulnerability in the Webapp container
- [Fixed] Couldn't send “0” in text messages
- [Fixed] Fixed memory leak due to race condition in server request handling and media request handling
- Known issues:
- For WhatsApp Business API client's running v2.21.6, when the client is disconnected from the server it may remain disconnected for a few minutes (up to 4 minutes) and then will retry the connection. Upgrading to v2.23.4 will allow for less downtime for a client when attempting to connect to the server.
2018
Nov 13, 2018 (v2.21.4)
- New features:
- Bug fixes:
- [Fixed] Partially populated business profiles were causing
GET /v1/settings/business/profile
to return as empty
- [Fixed] The Business Account Settings in the WhatsApp Business Web Tool would not load if the business profile was empty
- [Fixed] API calls to
/v1/contacts
did not return info
- [Fixed] Error code
500
returned when sending JPEG images
- [Fixed] When attempting to mark deleted messages as read,
500: Internal Server Error
was returned.
- [Fixed] Media upload would be attempted before the application was fully initialized
Oct 24, 2018 (v2.21.3)
- New messaging features:
- New monitoring features:
- Announcements:
- Data volume deprecation: The data volume is no longer necessary for Business API Client operation from this version onwards
- Admin privileges now required to access settings, registration, and uploading/deleting certificates or downloading Webhook certificates.
- Bug-fixes:
- [Fixed] Uploading a webhook CA certificate did not work in a multi-connect deployment
- [Fixed] API response structure for GET settings/profile/about was incorrect
Sep 24, 2018 (v2.19.7)
- Explicit request timeouts for media transfer, prevent requests from getting stuck indefinitely
- Support IPv6 address for database hostname
- Allow larger profile photo sizes (up to 5MB)
- Fix JSON response format for Profile > About
Jul 24, 2018 (v2.19.4)
- AWS upgrade issues from previous minor version is fixed
- Known Issues:
- Using an IPV6 address as a database hostname doesn't work.
In the environment passed to the containers, if WA_DB_HOSTNAME is an IPV6 address the Webapp container does not work. Workaround is to make the system see it as a hostname, either by finding the DNS name or changing /etc/hosts
. Please note that if WA_DB_HOSTNAME is IPV4 address, it works fine.
- Profile pictures above 70k don't work.
Setting profile pictures for WhatsApp Business API Client of size more than 70k is failing. Currently, there is no workaround for this issue. We will patch this to 2.19.X as soon as it's ready.
- Registration with bad pin for "Two-Factor Verification" crashes the Coreapp.
Registration with wrong pin of two-factor authentication (2FA) crashes the Coreapp. Workaround is to 1) Restart the containers and register with correct pin, or 2) Disable 2FA and retry registration without a 2 pin.
Jul 18, 2018 (v2.19.3)
This version has issues in both AWS and On-Premises. Please do NOT not upgrade to 2.19.3. If you want to upgrade, please use 2.19.4. If you have already upgraded to 2.19.3 with On-Premises setup it might prevent you from restarting in some cases so consider upgrading to 2.19.4 at the earliest.
- Removed command line registration
- Support for "manual registration codes" is ended
- Recommended to install and upgrade using docker compose
- Script to install and upgrade continue to work. But, It will be removed at later version
- Builds now have a longer 6 month expiration
- Better error handling in Multiconnect
- For Multiconnect setup, only master can change vname
- Support for SQLite is deprecated from this release. Please migrate to MySQL if you haven't already.
- Allow user provided CA certificates to enforce HTTPS for Webhooks
- SSL certs are now stored in the waweb database
- Login fail tolerance rate limit for Webapp is set to 50 per hour
- Support for secure payload between the Webapp and Coreapp
- Enhanced security in the Webapp
- Change default db environment to not to use root
- Log rotation script support for Webapp and Coreapp
Jun 15, 2018 (v2.18.26)
- Increased rate limits to reflect real world usage
- Improved encryption key performance
- Faster reconnects when application disconnects
- Enhanced security in the Webapp
- Support password change in web admin
- Improvements on database performance in the Webapp
- Launching deterministic HSM — This allows the business to set the language for the HSM rather than it being a fallback.
- Make Prometheus compatible with the new API
- Fix incorrect media download uuid info
- Fix issues related to document MIME type
- Retrieve Prometheus stats with the parameter
format=prometheus
- Improve throttling performance when job/callback queue exceeds the size
- Fix high/low threshold model for queue limit
- Support for SQLite is deprecated post this release. Please migrate to MySQL if you are still on SQLite.
- Enforce HTTPS for Webhooks, deprecating new HTTP Webhooks — Recommend HTTPS with publicly signed certificate, and if not possible, turn off SSL verification by setting the Webhooks parameter under the application settings:
{
"webhooks": {
"ignore_ssl_errors": true,
"url": "https://webhook_endpoint"
}
}
May 10, 2018 (v2.18.22)
WhatsApp Enterprise Application v2.18.22 is the last release that will support the legacy PHP API!
- The oncall pager can be set to a group so more people are notified.
- If message fails to send, errors returned will be more specific and actionable.
- Security enhancements across the board.
- Must have webhook url set before sending messages on new RESTful API.
- Smarter handling of database failures, reconnects, and restarts.
- Better web admin UI error handling.
- Configurations are stored on DB by default nobew.
- Force password change on first admin user login on UI and API.
- Only return message ID when sending message after request has been stored.
- Continued development for multiconnect.
- Allow and respect proxy environment variables for all connections.
- New unique message IDs which will be required in API calls.
- Multithreading is now more optimized when sending messages.
- Improvements to network events and job queue logging.
- Minor compiler optimizations
Apr 18, 2018 (v2.18.16)
- Enhanced security on user account credentials.
- Improve performance by ensuring job queue ordering is maintained.
- API registration returns verified name to ensure correctness.
Apr 16, 2018 (v2.18.15)
- Web admin now has updated settings.
- Fix for sending HSM without any parameters.
- With the move to MYSQL and configurations on DB, DB settings in application settings are no longer used so they are removed.
- Improvements to security between webapp and coreapp.
- Added support for framework neutral SSL parameters.
- Improvements to AWS setup.
- Enhancements to user-level security like forcing password reset on first login.
- Performance improvements by moving operations into own thread.
Apr 5, 2018 (v2.18.13)
- Performance improved by handling message receipts in own thread.
- DB password securely stored in AWS.
- Improvements to web admin.
Mar 29, 2018 (v2.18.12)
- Added support for prefixing DB tables using environment variable.
- Fix bug that deleted media folder when last file was deleted.
- Increased logging for analytics reconciliation.
- Update to new contacts API so it returns
wa_id
only for valid contacts.
- Fix for potential bug that corrupts DB when callbacks are purged.
- Callback identifies voice messages correctly.
- SSL cert creation works with high availability.
- Improvements to multiconnect with more shards.
Mar 22, 2018 (v2.18.11)
- Improved performance by reducing number of DB queries.
- Fixed bug where filename was used as captions for media messages.
- Profile photos are no longer stored on the shared volume.
Mar 14, 2018 (v2.18.10)
- Fixed issue with backup/restore when using config on DB.
- Better error handling with new API.
- Fix possible crash in job manager.
- Critical errors will trigger pager set in settings.
- Continued development of multiconnect.
- Fixed webhook setting in config on DB.
Mar 5, 2018 (v2.18.7)
- Expose WhatsApp version expiration date in support_info.
- Added enhancements to internal jobs manager.
- Continued improvements to multiconnect.
Feb 26, 2018 (v2.18.6)
- Added support for user provided certificate for SSL.
- Fixed issue where link previews weren't always loaded.
- Better error messages during webapp exceptions.
- Include environment variables when exposing support_info.
- Continued improvements to the new API.
- Continued improvements to multiconnect.
Feb 10, 2018 (v2.18.4)
- HSM parameter handling improvements.
- Improvements on rate limiting.
- Better error when API request is made and chat is disconnected.
- Modifications to help make WhatsApp Enterprise Application play better with CRM software.
- Continued improvements to multiconnect.
Jan 31, 2018 (v2.18.3)
- Improvements to multiconnect.
- Maintain longer connections to WhatsApp servers.
- Fix edge case bug where business could not reply to inbound message.
- Improvements to the new API.
- Don't let business send message to a group of just itself.
- Fix for crash on startup if there is no webhook.
Jan 22, 2018 (v2.18.2)
- Improvement to threading performance.
- Better handling of the job queue by balancing incoming requests and message sends.
- Attempt to restart connection after critical error.
- Fix for media not downloading on iPhones.
- Added support for configurations on database for AWS template setups.
Jan 10, 2018 (v2.18.1)
- New REST API with a single webhook (support for old API exists).
- Optional reduction of volumes to just 2 (
data
and media
).
- More information will be returned in support info when hitting the health check endpoint.
- More actionable errors when Enterprise Application goes in a bad connection state.
- Added first version of the feature multiconnect (high availability).
- Shipped configurations on database to remove dependence of file system.
- General improvements to performance.
2017
Dec 28, 2017 (v2.17.73)
- Added additional logging to job queue to debug issues.
- Improvements to coreapp and webapp communication.
Dec 22, 2017 (v2.17.72)
- It is now OK to message a user in a group that your business is in.
- Changes to the database schema for performance and upgrade enhancements.
- Improvements to API registration to avoid hanging states.
- Can now see support info from the health check endpoint.
- Better message send timeouts to avoid stuck jobs.
- Added two step verification where you can set a code that will be required each time you attempt to register.
- Improved errors when setting bad settings.
- Changes to verified name logic to avoid reconnect loops.
Dec 11, 2017 (v2.17.62)
- Fix bug where passing wrong json type to set_settings can cause coreapp to crash.
Nov 30, 2017 (v2.17.61)
- Rate limiting fixes and improvements.
Oct 27, 2017 (v2.17.48)
- Fix to prevent logs from getting too big.
- Fix bug where duplicate callbacks were being sent.
- Fix for AWS backup and restore feature.
- Improved rate limiting functionality.
- Option to prevent business from being added to groups.
- No more HTTP support, only HTTPS endpoints.
- Improvements to verified name so it is not lost.
- Web admin/settings view can now be password protected.
- Bug fixes to the web admin/settings view.
- Callbacks will persist by default on the database.
- Callback performance improvements.
Oct 15, 2017 (v2.17.46)
- Improvements to verified name so it is not lost.
Sept 25, 2017 (v2.17.42)
- Improvements to callback performance, monitoring, and retries.
- Added support for mentions in a group.
- New web UI to set and view settings.
- Improvements to network.
- Fix to an edge case for backup and restore.
- Improvements to logging throughout the application for better analysis and debugging.
- Added rate limits to prevent runaway scripts/programs that could result in account being disabled.
- 4096 character limit enforced.
- Group creation time is now in Unix time.
Sept 18, 2017 (v2.17.41)
- Skipped version 2.17.40.
- Fix to race condition when sending audio files.
- Improvements to checking contacts logging.
Sept 15, 2017 (v2.17.39)
- Connections to web app will timeout after 5 minutes with graceful error message.
- Improvements to checking contacts.
Sept 15, 2017 (v2.17.38)
- Fix incoming media links.
Aug 8, 2017 (v2.17.37)
- Skipped versions 2.17.34, 2.17.35, and 2.17.36.
- Fix sending media to groups.
- Sending media improvements.
- Enable URL previews for first URL in a message.
- More powerful web app.
- General improvements and crash bug fixes.
Aug 28, 2017 (v2.17.33)
- Callback retry delay can now be configured.
- Phone numbers must be contact checked before sending a message.
- DB performance improvements.
- Ability to get app settings via API.
- Known Issues:
- Incoming media links are broken if media is stored in media volume.
Aug 8, 2017 (v2.17.32)
- Fixes known issue with DB configuration failures.
- Ability to get message sent callback.
- Introducing WhatsApp groups.
- Callback and general performance improvements.
- Known Issues:
- Sending media to groups is broken.
July 28, 2017 (v2.17.31)
- Fixes to interactive registration flow.
- Skipped version 2.17.30.
- Known Issues:
- Failures during DB configuration causing the coreapp to not start.
July 25, 2017 (v2.17.29)
- Improvements to the database.
- Fixed issue with restoring from backup that shutdown the WhatsApp Enterprise Application.
- Improved check contacts performance.
July 15, 2017 (v2.17.28)
- Introduced new endpoint for application settings
- Added ability to set the business profile.
- Added ability to set the About of the WhatsApp account.
- Added support for MySQL.
- Changed the field for setting the profile photo.
- Added ability to backup settings, keys, and other data and then restore from backup.
- Better error messages when registering via the API.
- Added support for receiving location information from users in webhooks.
- Added a field to incoming message webhooks called
type
which is the indicates the type of message.
July 6, 2017 (v2.17.27)
- Fixed register script to handle verified name cert.
- Added ability to register for the first time via settings API.
June 30, 2017 (v2.17.26)
- Introduced new registration flow where the verified name certificate is provided by the user and they can preview it before completing registration.
- Fixed issue when there are overlapping check contact calls.
- Fixed crash log.
June 20, 2017 (v2.17.25)
- Easier registration flow is VName exists on server.
- Improved performance when handling heavier load.
June 14, 2017 (v2.17.24)
- Fixed bugs around checking contacts and MySQL.
- Improved network performance.
June 8, 2017 (v2.17.23)
- Fixed issue with some accounts sending messages.
- Fixed
media_url_prefix
logic so that replacing "media.hostname.com"
with IP address of web container will point to incoming media file.
June 7, 2017 (v2.17.22)
- Fixed issue of excess memory and storage usage when dealing with many contacts.
- Known Issues:
- Some accounts having trouble sending messages.
June 1, 2017 (v2.17.20)
- New versioning format.
- More flexibility when selecting profile picture.
- More stats from health check endpoint.
- Pass through mode enabled for less application footprint.
- Known Issues:
- Large memory and storage consumption on large number of contacts.
May 11, 2017 (v17018)
- Fixed sending JPG images.
- Fixed registration so calls and SMS to phone number actually happen.
- Added context information for message callback to understand message replies.
- Improved callback performance.
- Known Issues:
- Profile pictures must be 640x640 JPG.
May 8th, 2017 (v17017)
- New registration flow that no longer uses recovery token.
- Deprecated
conversation
and now using text
for message field.
- Added a health check endpoint that shares the gateway status of application.
- Support to see the caption of media sent by user.
- Known Issues:
- Sending JPG images fails.
- Voice and SMS registration not working.
April 26th, 2017 (v17016)
- New inbound media download callback.
- Configurable WhatsApp server IP and protocol with added SSL wrapping for testing.
- Known Issues:
- Sending JPG images fails.