This Flutter package allows you to integrate the WhatsApp Business API into your Flutter applications. It enables sending messages
, media
, templates
, managing business information
, creating interactives
and flows
, sending catalog messages
, and more. The package is updated to support the latest WhatsApp Business API v23.0.
Documentation
Full documentation for the WhatsApp Flutter package is available at whatsapp-flutter.github.io.
You can switch the documentation version using the version selector at the top of the page (version:
).
Other useful links:
- Official WhatsApp Flutter website
- Initialization Guide
- Return Methods – Learn how to handle API responses
- Method Usage – Detailed usage instructions
New Features in v4.0.0
- Performance Improvements – Optimized core methods, now up to 3x faster than previous versions.
- Web Platform Support – Now supports fully compatibility with Flutter Web for most features.
- Service-Specific Methods – Each service now provides dedicated getters for cleaner and more explicit usage.
- Flow Messages – Added support for interactive flow messages to improve user engagement.
- Catalog & Product Messages – Send product details and catalog messages for e-commerce use cases.
- Resumable Uploads – Support for creating and managing resumable upload sessions for large files.
- Error Handling Enhancements – Improved and added
WhatsAppException
handling with detailed error types. - Bug Fixes – Resolved multiple issues affecting stability and reliability.
- API Upgrade – Updated to support
WhatsApp Business API v23.0
(stable).
Basic Usage
// Access token provided by Meta for WhatsApp Cloud API
const accessToken = 'YOUR_ACCESS_TOKEN';
// Your WhatsApp Business phone number ID
const fromNumberId = 'YOUR_PHONE_NUMBER_ID';
// Create WhatsApp client instance
final whatsapp = WhatsApp(accessToken, fromNumberId);
// Send a simple text message
var message = await whatsapp.sendMessage(
phoneNumber: 'RECEIPT_NUMBER', // Recipient's phone number in international format
text: 'Hi, how are you?', // Message content
);
if (message.isSuccess()) {
// Message sent successfully
// Get and print the unique ID of the sent message
print('Message ID: ${message.getMessageId()}');
// Get and print the recipient number
print('Message sent to: ${message.getContactId()}');
// Get and print the full API response body
print('API Response: ${message.getFullResponse()}');
} else {
// Message failed to send
// Print HTTP error code returned by the API
print('HTTP Code: ${message.getErrorCode()}');
// Print exact error details from WhatsApp Cloud API
print('API Error: ${message.getErrorMessage()}');
// Print type of request error (e.g., validation, authorization, etc.)
print('Request Error: ${message.getErrorType()}');
}
📌 Looking for a Better Example?
👉 Check out this working example here:
🔗 pub.flutter-io.cn WhatsApp Example
Contributors
Have you found a bug or have a suggestion of how to enhance WhatsApp Package? Open an issue or pull request and we will take a look at it as soon as possible.
Report bugs or issues
You are welcome to open a ticket on github if any problems arise. New ideas are always welcome.
Copyright and License
Copyright © 2022 Rohit Chouhan. Licensed under the MIT LICENSE.