The WhatsApp Business API client can be installed as a developer setup for testing using either Docker Compose or Minikube. You can also use Amazon Web Services (AWS) on production systems. You can migrate from a developer setup to a production setup when ready to send messages to customers.
Demonstrates how to set up a WhatsApp Business API client on your developer machine with the purpose of getting familiar with the setup process. This should not be used for a production environment. It is highly recommended that you try out one of the developer setup processes below before attempting a production setup.
Demonstrates how to set up a WhatsApp Business API client in a production environment and covers best practices. Please use this documentation as reference and make necessary changes according to your business needs.
If you have an existing setup of the WhatsApp Business API client and want to migrate to a new setup using the same phone number and App Settings, the Migration guide will help you identify changes and what you need to do.
WhatsApp and its users value end-to-end encryption. All messages on WhatsApp are encrypted with high levels of encryption. Every message is encrypted with sender and receiver keys which are ratcheted forward each time a message is sent. WhatsApp cannot read these messages because it does not have keys to decrypt the messages. The keys are stored by user in their mobile device and by the business in the database. This is why the WhatsApp Business API Client is a hosted solution that requires a database. Having an API to send messages on will break end-to-end encryption which is against the WhatsApp philosophy.
See WhatsApp's Security for more information and to access the WhatsApp Encryption Overview white paper.
Requirements depend on your load and situation. The solution will run on any internet-connected machine that runs docker. For instance, simple testing can be done on a laptop.
For single-instance production server setup, we recommend at least 250 GB SSD, 16 GB RAM, and 4 core CPU. HDD is not recommended as the I/O speeds will become bottlenecks under load.
For Multiconnect production server setup, we recommend at least 50 GB SSD, 4 GB RAM and 2 core CPU for each Coreapp/Master/Webapp container.
In most cases you should run the database on a separate physical server from the core and web containers. The database server should only be a few milliseconds of latency away from the compute machine(s).
This setup supports sending approximately 20 messages per second.
No, you can run a single account per instance. If you need a second test account make sure to use a different number for that second instance.
You should register a second phone number and spin up a second CloudFormation stack or Docker instance for testing. If you have two WhatsApp Business API Clients active using the same phone number, the server will kick you out because the encryption keys will conflict. We recommend having a second environment that you can use to test your non-production instance before you do any kind of migration on your production client.
An increase in RAM usage for single Coreapp containers is expected for v2.29 due to the feature set released. Please upgrade the host machine specifications to continue hosting single instance deployments or consider utilizing multiconnect deployments, which would use much less RAM across containers.