Skip to content

Whatsapp Pricing

About billing

A conversation starts when the first business message in a conversation is delivered and ends 24 hours later. The first message can be initiated by the business (business-initiated) or can be a business reply to a user message.

With the conversation-based pricing model, WhatsApp Business platform conversations fall into two categories that are priced differently:

  • User-initiated: A conversation that initiates in response to a user message. Whenever a business replies to a user within the 24-hour customer service window, that message will be associated with a user-initiated conversation. Businesses can send free-form messages within this 24-hour customer service window.
  • Business-initiated: A conversation that initiates from a business sending a user a message outside the 24-hour customer service window. Messages that initiate a business-initiated conversation will require a message template. Using this endpoint, you can fetch the current price offerings for your account.

Rates for business-initiated conversations and user-initiated conversations vary by market (country or region) and template type. Charges for conversations are based on the country code of the user (recipient). You can see the pricing details in Pricing API or pricing page in user dashboard.

Customer Service Windows

When a customer messages you, a 24 hour timer called a customer service window starts. If you are within the window, you can send free-form messages or template messages. If you are outside the window, you can only send template messages. So the pricing of whatsapp message also depends the Customer Service Windows.

  • Marketing and utility conversations are opened when you send an approved marketing or utility template message to a customer and no open conversation with that category exists between you and that customer. (For example, if an open authentication conversation exists between you and a customer and you send them another authentication template message within 24 hours, a new conversation is not opened. If you send them a marketing message, however, a new marketing conversation is opened, resulting in two open conversations.)

  • Service conversations are opened when you are within a customer service window, you send a free-form message to a customer, and no open conversation of any category exists between you and the customer. (For example, if an open conversation of any category exists between you and a customer and you send them a free-form message within 24 hours, no new conversation is opened. However, if no open conversation exists and the customer messages you (which starts a customer service window) and you reply within 24 hours with a free-form message, a new service conversation is opened.)

  • It is possible to have multiple open conversations between you and a customer. An open marketing or utility conversation exists between you and a customer and you send them a template message of a different category within 24 hours or an open service conversation exists between you and a customer and you send them a template message within 24 hours.

Pricing API

GET
/whatsapp/v1/pricing/user

Authentication

AUTHORIZATION: Bearer Token

Request

curl --location --request GET 'https://api.d7networks.com/whatsapp/v1/pricing/user' \
--header 'Authorization: Bearer {{api_access_token}}'
var axios = require('axios');

var config = {
method: 'get',
url: 'https://api.d7networks.com/whatsapp/v1/pricing/user',
headers: { 
    'Authorization': 'Bearer {{api_access_token}}'
}
};

axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
import requests

url = "https://api.d7networks.com/whatsapp/v1/pricing/user"

payload={}
headers = {
'Authorization': 'Bearer {{api_access_token}}'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.d7networks.com/whatsapp/v1/pricing/user',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer {{api_access_token}}'
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
package main

import (
"fmt"
"net/http"
"io/ioutil"
)

func main() {

url := "https://api.d7networks.com/whatsapp/v1/pricing/user"
method := "GET"

client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)

if err != nil {
    fmt.Println(err)
    return
}
req.Header.Add("Authorization", "Bearer {{api_access_token}}")

res, err := client.Do(req)
if err != nil {
    fmt.Println(err)
    return
}
defer res.Body.Close()

body, err := ioutil.ReadAll(res.Body)
if err != nil {
    fmt.Println(err)
    return
}
fmt.Println(string(body))
}    
1
2
3
4
5
6
7
8
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
Request request = new Request.Builder()
.url("https://api.d7networks.com/whatsapp/v1/pricing/user")
.method("GET", null)
.addHeader("Authorization", "Bearer {{api_access_token}}")
.build();
Response response = client.newCall(request).execute();
var headers = {
'Authorization': 'Bearer {{api_access_token}}'
};
var request = http.Request('GET', Uri.parse('https://api.d7networks.com/whatsapp/v1/pricing/user'));

request.headers.addAll(headers);

http.StreamedResponse response = await request.send();

if (response.statusCode == 200) {
print(await response.stream.bytesToString());
}
else {
print(response.reasonPhrase);
}
1
2
3
4
5
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "Bearer {{api_access_token}}")

$response = Invoke-RestMethod 'https://api.d7networks.com/whatsapp/v1/pricing/user' -Method 'GET' -Headers $headers
$response | ConvertTo-Json
require "uri"
require "net/http"

url = URI("https://api.d7networks.com/whatsapp/v1/pricing/user")

https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer {{api_access_token}}"

response = https.request(request)
puts response.read_body

Response

Once the request is validated, you will receive a list of prices for all countries

200 - Success
[
    {
        "id": 1,
        "created_at": "2023-09-06T07:45:06.436445+00:00",
        "updated_at": "2023-09-06T07:45:06.454905+00:00",
        "country": "AE",
        "authentication": 0.002,
        "utility": 0.001,
        "marketing": 0.001,
        "service": 0.001,
        "country_name": "United Arab Emirates"
    },
    {
        "id": 2,
        "created_at": "2023-09-06T07:51:31.265058+00:00",
        "updated_at": "2023-09-06T07:51:31.469492+00:00",
        "country": "IN",
        "authentication": 0.001,
        "utility": 0.001,
        "marketing": 0.001,
        "service": 0.001,
        "country_name": "India"
    },
    {
        "id": 3,
        "created_at": "2023-09-06T08:25:03.144083+00:00",
        "updated_at": "2023-09-06T08:25:03.155765+00:00",
        "country": "AR",
        "authentication": 0.0618,
        "utility": 0.0367,
        "marketing": 0.0408,
        "service": 0.0316,
        "country_name": "Argentina"
    },
    {
        "id": 4,
        "created_at": "2023-09-06T08:25:03.169328+00:00",
        "updated_at": "2023-09-06T08:25:03.181483+00:00",
        "country": "BR",
        "authentication": 0.0625,
        "utility": 0.0315,
        "marketing": 0.035,
        "service": 0.03,
        "country_name": "Brazil"
    },
    {
        "id": 5,
        "created_at": "2023-09-06T08:25:03.192958+00:00",
        "updated_at": "2023-09-06T08:25:03.202876+00:00",
        "country": "CL",
        "authentication": 0.0889,
        "utility": 0.0527,
        "marketing": 0.0586,
        "service": 0.0454,
        "country_name": "Chile"
    },
    {
        "id": 6,
        "created_at": "2023-09-06T08:25:03.216754+00:00",
        "updated_at": "2023-09-06T08:25:03.222813+00:00",
        "country": "CO",
        "authentication": 0.0125,
        "utility": 0.0077,
        "marketing": 0.0085,
        "service": 0.006,
        "country_name": "Colombia"
    },
    {
        "id": 7,
        "created_at": "2023-09-06T08:25:03.258039+00:00",
        "updated_at": "2023-09-06T08:25:03.275362+00:00",
        "country": "EG ",
        "authentication": 0.1073,
        "utility": 0.0618,
        "marketing": 0.0687,
        "service": 0.0644,
        "country_name": null
    },
    {
        "id": 8,
        "created_at": "2023-09-06T08:25:03.294489+00:00",
        "updated_at": "2023-09-06T08:25:03.309689+00:00",
        "country": "FR",
        "authentication": 0.1432,
        "utility": 0.0691,
        "marketing": 0.0768,
        "service": 0.0859,
        "country_name": "France"
    },
    {
        "id": 9,
        "created_at": "2023-09-06T08:25:03.318842+00:00",
        "updated_at": "2023-09-06T08:25:03.333486+00:00",
        "country": "DE",
        "authentication": 0.1365,
        "utility": 0.0768,
        "marketing": 0.0853,
        "service": 0.0819,
        "country_name": "Germany"
    },
    {
        "id": 10,
        "created_at": "2023-09-06T08:25:03.357710+00:00",
        "updated_at": "2023-09-06T08:25:03.381493+00:00",
        "country": "ID",
        "authentication": 0.0411,
        "utility": 0.03,
        "marketing": 0.02,
        "service": 0.019,
        "country_name": "Indonesia"
    },
    {
        "id": 11,
        "created_at": "2023-09-06T08:25:03.388471+00:00",
        "updated_at": "2023-09-06T08:25:03.391650+00:00",
        "country": "IL",
        "authentication": 0.0353,
        "utility": 0.0169,
        "marketing": 0.0188,
        "service": 0.018,
        "country_name": "Israel"
    },
    {
        "id": 12,
        "created_at": "2023-09-06T08:25:03.395334+00:00",
        "updated_at": "2023-09-06T08:25:03.399039+00:00",
        "country": "IT",
        "authentication": 0.0691,
        "utility": 0.0378,
        "marketing": 0.042,
        "service": 0.0386,
        "country_name": "Italy"
    },
    {
        "id": 13,
        "created_at": "2023-09-06T08:25:03.410492+00:00",
        "updated_at": "2023-09-06T08:25:03.420092+00:00",
        "country": "MY",
        "authentication": 0.086,
        "utility": 0.018,
        "marketing": 0.02,
        "service": 0.022,
        "country_name": "Malaysia"
    },
    {
        "id": 14,
        "created_at": "2023-09-06T08:25:03.432381+00:00",
        "updated_at": "2023-09-06T08:25:03.437263+00:00",
        "country": "MX",
        "authentication": 0.0436,
        "utility": 0.0239,
        "marketing": 0.0266,
        "service": 0.0105,
        "country_name": "Mexico"
    },
    {
        "id": 15,
        "created_at": "2023-09-06T08:25:03.454453+00:00",
        "updated_at": "2023-09-06T08:25:03.463800+00:00",
        "country": "NL",
        "authentication": 0.1597,
        "utility": 0.072,
        "marketing": 0.08,
        "service": 0.0891,
        "country_name": "Netherlands"
    },
    {
        "id": 16,
        "created_at": "2023-09-06T08:25:03.473356+00:00",
        "updated_at": "2023-09-06T08:25:03.482484+00:00",
        "country": "NG",
        "authentication": 0.0516,
        "utility": 0.0287,
        "marketing": 0.0319,
        "service": 0.031,
        "country_name": "Nigeria"
    },
    {
        "id": 17,
        "created_at": "2023-09-06T08:25:03.511564+00:00",
        "updated_at": "2023-09-06T08:25:03.522485+00:00",
        "country": "PK",
        "authentication": 0.0473,
        "utility": 0.0228,
        "marketing": 0.0253,
        "service": 0.0142,
        "country_name": "Pakistan"
    },
    {
        "id": 18,
        "created_at": "2023-09-06T08:25:03.529440+00:00",
        "updated_at": "2023-09-06T08:25:03.544168+00:00",
        "country": "PE",
        "authentication": 0.0703,
        "utility": 0.0377,
        "marketing": 0.0419,
        "service": 0.0179,
        "country_name": "Peru"
    },
    {
        "id": 19,
        "created_at": "2023-09-06T08:25:03.572348+00:00",
        "updated_at": "2023-09-06T08:25:03.580202+00:00",
        "country": "AG",
        "authentication": 0.0802,
        "utility": 0.0429,
        "marketing": 0.0477,
        "service": 0.0398,
        "country_name": "Antigua and Barbuda"
    },
    {
        "id": 20,
        "created_at": "2023-09-06T08:25:03.604660+00:00",
        "updated_at": "2023-09-06T08:25:03.620673+00:00",
        "country": "SA",
        "authentication": 0.0406,
        "utility": 0.0226,
        "marketing": 0.0252,
        "service": 0.0195,
        "country_name": "Saudi Arabia"
    },
    {
        "id": 21,
        "created_at": "2023-09-06T08:25:03.638096+00:00",
        "updated_at": "2023-09-06T08:25:03.651500+00:00",
        "country": "ZA",
        "authentication": 0.0379,
        "utility": 0.018,
        "marketing": 0.02,
        "service": 0.0168,
        "country_name": "South Africa"
    },
    {
        "id": 22,
        "created_at": "2023-09-06T08:25:03.661712+00:00",
        "updated_at": "2023-09-06T08:25:03.670744+00:00",
        "country": "ES",
        "authentication": 0.0615,
        "utility": 0.0342,
        "marketing": 0.038,
        "service": 0.0369,
        "country_name": "Spain"
    },
    {
        "id": 23,
        "created_at": "2023-09-06T08:25:03.684027+00:00",
        "updated_at": "2023-09-06T08:25:03.690865+00:00",
        "country": "TR",
        "authentication": 0.0109,
        "utility": 0.0083,
        "marketing": 0.0093,
        "service": 0.003,
        "country_name": "Turkey"
    },
    {
        "id": 24,
        "created_at": "2023-09-06T08:25:03.715046+00:00",
        "updated_at": "2023-09-06T08:25:03.722388+00:00",
        "country": "GB",
        "authentication": 0.0705,
        "utility": 0.0358,
        "marketing": 0.0398,
        "service": 0.0388,
        "country_name": "United Kingdom"
    },
    {
        "id": 25,
        "created_at": "2023-09-06T08:25:37.893393+00:00",
        "updated_at": "2023-09-06T08:25:37.899952+00:00",
        "country": "OTHERS",
        "authentication": 0.01,
        "utility": 0.008,
        "marketing": 0.002,
        "service": 0.006,
        "country_name": "Others"
    }
]
401 - Unauthorized
{
    "detail": {
        "code": "ACCESS_TOKEN_SIGNATURE_VERIFICATION_FAILED",
        "message": "It looks like your requests were failed due to a missing or invalid 'Access Token'. Sign up at https://app.d7networks.com and create an authentication token in the developer section."
    }
}