Send WhatsApp Message V2

This method helps you to generate and send WhatsApp message to destination number

API Update Notice: This V2 endpoint is the recommended version, replacing the previous V1 endpoint. We recommend migrating to V2 immediately for a better experience.

Benefits of V2:

  • Decreased processing time for API requests and responses
  • Improved features: Blocking Request, Spam Check, and Blocked Numbers
  • Increased RPS (from 30 RPS to 50 RPS)
  • Better developer environment to support future developments
  • Improved logging and monitoring
  • Improved dependencies and service stability

A rate limit of 50 RPS is applied to WhatsApp services. Verihubs also applies rate limits divided into several categories based on product. For more details, see Rate Limit.

Callback Description

When you want to use callback_url payload, you only need to put for example

your-callback-url.com/callback

Example callback that we'll send

your-callback-url.com/callback?session_id=d0f5fb5c-2d50-4d3f-aea7-20018ab15806&status=1
PayloadDescription
session_idID of the specific message
statusLatest status of the request

Callback Status Description

StatusDescriptionCondition
0RequestedMessage has been requested. This status will be charged.
1SentMessage has been sent to Whatsapp server. This status will be charged.
2DeliveredMessage has been delivered to destination number. This status will be charged.
3ReadMessage has been read by the destination number. This status will be charged.
6FailedWhatsapp cannot send Message to destination number.
7Request ErrorVerihubs cannot reach WhatsApp
8RejectedRequest rejected due to Too Many Requests
9BlockedDestination Number has been blocked by Verihubs's system
10Tier Limit ExceededExceeding channel tier limit
11Invalid DataMessage is not processed further by Verihubs because it doesn’t pass Verihubs validation.
Body Params
string
required

Destination Phone Number. You need to include international prefix number.

content

Object params (ComponentParams) or list of string that will fill variable(s) from template. For templates which only have variable(s) on body text, you can use list of string. For example, 'Hello {{1}}, thank you for your purchase', if you put 'John' in payload array 1, it will change variable {{1}} to 'John'. ComponentParams is only usable for V2 template (media templates). Fill in ComponentParams object according to your template. For example, to use a template with an image header and button text you will need to fill content with: {"header_params": ["https://mystoragebucket.com/image.png"], "button_param": {"url_param": "content/promotion/244"}}. This field becomes mandatory if the template you're using has at least 1 variable (on header, body, or button).

string

Language code to send in a different language. Use this optional payload to switch template easily if you have multiple language template with the same name. (need to be approved first by Facebook)

string

Optional. Name of the template that will be use (need to be approved first by Facebook) If you're going to use a template with different language than your original template on the setting, you must include 'lang_code' payload too.

string

Optional. This URL will be called by the server when the desired event will occur.

Headers
string
required
string
required
Responses

Language
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json