WhatsApp Business API templates

WABA templates are a way to initiate a conversation with a client in the WhatsApp Business API channel.

👉What is a WABA template, what does a WABA template consist of and how to create it in the Wazzup account

Getting a list of templates

To get a list of WABA templates that were created in Wazzup, send:

GET https://api.wazzup24.com/v3/templates/whatsapp

Request parameters

Name Type Description
limit number Records returned limit

Default: 100

offset number From which template to send the list. Useful if you have previously requested a list, but since then the user has created new templates and you only need to get new templates

Default: 0

Request example

curl --location --request GET 'https://api.wazzup24.com/v3/templates/whatsapp' \
--header 'Authorization: Bearer f6633fb8f4c648fasssf0e9f43a334c1b' \
--data-raw ''

Response parameters

Name Type Description
templateGuid string Template ID
accountId number Account ID
title string Template name in Wazzup account. It is used to find the template faster in the template list
name string Template name, that will be sent to Facebook
waba object Object filled with the information about Meta Business Account
waba.wabaId string Meta Business Account ID
waba.wabaName string Meta Business Account name
channels array Channel list to which templates are connected
category string Template category
language string Template language
status string Moderation status
rejected_reason string The reason for the rejection if the status is rejected
namespace string Facebook namespace
components Object (Array) List of template components
components.type  string Template component type: HEADER, FOOTER, BUTTONS, BODY
components.format string Format. Only for component HEADER: IMAGE, DOCUMENT, VIDEO, TEXT
components.text string Component text, if there’s any text
components.example String (Array) List of examples of filling variables for the corresponding template component
components.buttons Object (Array) List of buttons, if they are in the template
components.buttons.type string Button type: URL, QUICK_REPLY, PHONE_NUMBER
components.buttons.text string Button text
components.buttons.url string The link that the button will follow if it is a button of the URL type

Answer examples

HTTP/1.1 200 OK
[
 {
  "templateGuid": "8d255e5d-aefd-44dc-8131-c3ad6c3ab28c",
  "accountId": 70789196,
  "title": "Template name",
  "channels": ["e9a268e4-44af-41cd-9b63-2524a4ad653e"],
  "order": 0,
  "category": "MARKETING",
  "language": "ru",
  "components": [
    {
     "text": "Hi, !",
     "type": "HEADER",
     "format": "TEXT",
     "example": {
     "header_text": ["header-example-1"]
      }
    },
    {
     "text": "We have some news",
     "type": "BODY",
     "example": {
      "body_text": [["body-example-1"]]
     }
 }
 ],
  "waba": {
   "wabaId": "194388939529290",
   "wabaName": "Wazzup LLC"
 },
 "name": "Template name",
 "namespace": "c8ae5f90_307a_ca4c_b8f6_d1e2a2573574",
 "publishedAt": null,
 "isTrickyTemplate": false,
 "trickyTemplatesPriority": null,
 "createdAt": "2023-12-31T23:55:42.504Z",
 "updatedAt": "2023-12-31T23:55:08.857Z",
 "componentsDefaults": {},
 "tags": null,
 "templateCode": "@template: fe03cddf-dec1-4c19-aede-e16190abca46 { [[headerVar1]]; [[bodyVar1]] }"
}

Getting a price for a WABA template

The method allows you to get the price for WABA templates at the time of sending the request.

GET https://tech.wazzup24.com/channels/waba/pricing/{countryCode}

{countryCode} — Country code. ISO 3166-1 alpha-2 standard

Example request
curl -X 'GET' \

  'https://tech.wazzup24.com/channels/waba/pricing/KA' \

--header 'Authorization: Bearer c8cf90554027882f912520f454468d27' \
--header 'Content-Type: application/json' \
Sample answers

Success — 200, json

{
  "timestamp": "2024-01-15T10:30:00Z",
  "pricing": {
    "marketing": {
      "USD": 0.0412,
      "EUR": 0.038,
      "RUB": 3.2,
      "KZT": 19.31
    },
    "utility": {
      "USD": 0.0206,
      "EUR": 0.019,
      "RUB": 1.6,
      "KZT": 9.65
    },

    "authentication": {
      "USD": 0.0103,
      "EUR": 0.0095,
      "RUB": 0.8,
      "KZT": 4.83
    },
    "service": {
      "USD": 0.0309,
      "EUR": 0.0285,
      "RUB": 2.4,
      "KZT": 12.96
    }
  }
}

Unauthorized request — 401, json:

{
  "statusCode": 401,
  "message": "Unauthorized"
}

Access denied — 403, json:

{
  "statusCode": 403,
  "message": "Invalid account type"
}

Too many requests. Try again later. — 429, json:

{
  "statusCode": 429,
  "message": "Route rate limit exceeded",
  "error": "Too Many Requests",
  "retryAfter": 45
}

Server error — 500, json:

{
  "statusCode": 500,
  "message": "Internal server error"
}

Receiving a list of transactions via WABA channel for the day

This method returns all transactions that occurred on the specified day (UTC). The search is performed in the interval from 00:00:00.000 to 23:59:59.999 UTC inclusive.

The method allows you to get the price for WABA templates at the time of sending the request.

GET https://tech.wazzup24.com/channels/waba/{channelId}/transactions/{date}
Example request
curl -X 'GET' \

  'https://tech.wazzup24.com/channels/waba/069342f0-36c0-4496-13ed-e584d3f5bac2/transactions/2025-01-01' \

--header 'Authorization: Bearer c8cf90554027882f912520f454468d27' \
--header 'Content-Type: application/json' \
Sample answers

Success — 200, json:

{
  "transactions": [
    {
      "waba_id": "waba_id123",
      "channel_id": "069342f0-36c0-4496-13ed-e584d3f5bac2",
      "template_type": "MARKETING",
      "amount": -0.0412,
      "currency": "USD",
      "recipient_phone": "79123456789",
      "session_date": "2024-01-15T10:30:00Z",
      "billing_country": "US"
    }
  ],
  "count": 1
}

Unauthorized request — 401, json:

{
  "statusCode": 401,
  "message": "Unauthorized"
}

Access denied — 403, json:

{
  "statusCode": 403,
  "message": "Invalid account type"
}

Too many requests. Try again later — 429, json:

{
  "statusCode": 429,
  "message": "Route rate limit exceeded",
  "error": "Too Many Requests",
  "retryAfter": 45
}

Server error — 500, json:

{
  "statusCode": 500,
  "message": "Internal server error"
}