Read billing records filtered by Meta pricing category.
Template Type Billing History
Summary
Read billing records filtered by Meta pricing category.
Prerequisites
- Authorization: Bearer w91_live_xxx
- Content-Type: application/json for JSON requests
Related documentation
Endpoint: GET /api/v2/billing/messages/by-template-type/{templateType}. templateType is the Meta pricing category, not the local template name.
GET
/api/v2/billing/messages/by-template-type/{templateType}| Parameter | Type | Required | Description |
|---|---|---|---|
templateType | string | Required | Meta pricing category: marketing, utility, authentication, or service. |
senderId | string | Optional | Optional WhatsApp sender phone number. |
phoneNumberId | string | Optional | Optional Meta phone number id filter. |
dateFrom | string | Optional | YYYY-MM-DD start date. |
dateTo | string | Optional | YYYY-MM-DD end date. |
billable | string | Optional | true, false, payable, or free. |
Utility billing history
curl "https://graph.whats91.com/api/v2/billing/messages/by-template-type/utility?dateFrom=2026-06-01" \
-H "Authorization: Bearer w91_live_xxx"Template type billing response
{
"success": true,
"message": "Billing records retrieved",
"data": {
"templateType": "utility",
"billingRecords": [
{
"billingUid": "bill_uid",
"templateType": "utility",
"pricingCategory": "utility",
"billingClass": "payable",
"rate": 0.115
}
],
"pagination": {
"page": 1,
"limit": 50,
"total": 1
}
}
}SDK Examples
Use these examples as starting points for server-side implementations.
cURL
curl -X GET "https://graph.whats91.com/api/v2/billing/messages/by-template-type/{templateType}" \
-H "Authorization: Bearer w91_live_xxx"Node.js
const response = await fetch("https://graph.whats91.com/api/v2/billing/messages/by-template-type/{templateType}", {
method: "GET",
headers: {
"Authorization": "Bearer w91_live_xxx",
"Content-Type": "application/json"
}
});
const data = await response.json();
console.log(data);PHP
$ch = curl_init("https://graph.whats91.com/api/v2/billing/messages/by-template-type/{templateType}");
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer w91_live_xxx",
"Content-Type: application/json"
]
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;Python
import requests
response = requests.request(
"GET",
"https://graph.whats91.com/api/v2/billing/messages/by-template-type/{templateType}",
headers={
"Authorization": "Bearer w91_live_xxx",
"Content-Type": "application/json",
}
)
print(response.json())C#
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer w91_live_xxx");
var request = new HttpRequestMessage(HttpMethod.Get, "https://graph.whats91.com/api/v2/billing/messages/by-template-type/{templateType}");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());Related APIs
Message Billing
Read user-wide message billing records across WhatsApp sender numbers.
Number History
Read message billing records for one WhatsApp registered number.
Delivered
List delivered billing records through the delivered convenience endpoint.
Payable
List payable billing records through the payable convenience endpoint.