Overview
WhatsApp Business API Documentation
Dexatel's WhatsApp Business API documentation covers everything you need to send OTP verification codes, transactional notifications, bulk marketing campaigns, and manage two-way customer conversations—all through a single REST API on the world's most popular messaging platform.
What You Can Do with WhatsApp
Dexatel exposes four core capabilities on WhatsApp, each optimized for a specific communication pattern:
Verify
Send OTP codes for user authentication, 2FA, and phone number verification. Supports fallback chains to SMS, Viber, Telegram, and Email.
Key WhatsApp-Specific Concepts
This WhatsApp REST API guide covers templates, sender registration, supported message types, and message status lifecycle.
Templates and Pre-Approval
WhatsApp requires all outbound messages—except replies within a 24-hour customer service window—to use a pre-approved template. Templates are created via the Dexatel dashboard or API and submitted to WhatsApp for review. The approval workflow is:
- Create a template via
POST /v1/templateswithchannel: WHATSAPP - WhatsApp reviews the template (status moves from
IN_PROCESStoCOMPLETEDorCANCELED) - Once
COMPLETED, reference the template in your message or campaign requests
Template Requirements for WhatsApp
wa_sender_code(thecodevalue of your WhatsApp sender) is required on every templatewa_categoryis required and must be eitherMARKETINGorUTILITYwhen sending campaigns and transactional messages orAUTHENTICATIONwhen sending verification codes.- Template text can be up to 1,000 characters
- Templates that are pending review (
IN_PROCESS) cannot be deleted - Supported types: text, image, video, and document
- Image files: max 5 MB, JPG or PNG format
- Video files: max 16 MB, MP4 format
- Document files: max 100 MB, PDF format
WhatsApp Senders
A WhatsApp sender is a verified WhatsApp Business phone number registered in your Dexatel account. Every outbound message requires specifying a sender. You can retrieve available senders via:
GET /v1/senders?filter[channel]=WHATSAPP
X-Dexatel-Key: your_api_key{
"data": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"account_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "DexatelWABA",
"code": "123456789012345",
"channel": "WHATSAPP",
"status": "Available",
"country": "US",
"create_date": "2024-01-15 09:00:00"
}
],
"pagination": {
"number": 1,
"size": 10,
"total": 1
}
}Supported Message Types
- Text: Plain text messages up to 1,000 characters
- Image: JPG or PNG, maximum 5 MB
- Video: MP4, maximum 16 MB
- Document: PDF, maximum 100 MB
- Buttons: Call-to-action or quick-reply buttons attached to messages
Message Status Lifecycle
Outbound WhatsApp messages move through the following statuses:
- sent — Message accepted by Dexatel and queued for delivery
- enroute — Message is being delivered to the WhatsApp network
- delivered — Confirmed delivered to the recipient's device
- read — Recipient has opened the message (when read receipts are enabled)
- failed — Delivery failed permanently
- rejected — Message was rejected before sending (invalid sender, blocked number, etc.)
- expired — Message TTL elapsed before delivery
- unsubscribed — Recipient has opted out
- blocked — Message blocked by the platform
Pricing
WhatsApp messages on Dexatel are charged per message on a pay-as-you-go basis. Pricing starts at $0.015 per message. Exact rates vary by destination country. Use the Dexatel pricing calculator at https://dexatel.com/pricing/whatsapp/ for country-specific rates.
WhatsApp pricing is set by Meta and varies by conversation type. The category is determined by the wa_category value you set when creating the template (MARKETING or UTILITY).
Updated about 2 hours ago