API Documentation

Complete reference for Ozibus APIs, SDKs, and integration guides

Whatsapp Notifications

Our WhatsApp Notifications service lets you send business-initiated messages over WhatsApp—whether OTPs, transactional alerts, or rich-media campaigns—at a global scale with enterprise reliability. With template-based messaging, two-way chat support, geo-intelligent routing, and developer-friendly APIs, you get a fast, secure way to connect with users where they already are.

Why use WhatsApp Notifications?

  1. High engagement channel—WhatsApp is installed on billions of devices and enjoys open rates far above email or traditional SMS.
  2. Global reach, localized delivery—Send messages across 190+ countries, each message routed via optimized regional providers for latency & cost efficiency.
  3. Rich formats & two-way chat—Use text, images, documents, buttons, and quick replies; allow recipients to respond and engage back in-thread.
  4. Seamless integration—Your backend calls a single endpoint; you get delivery/read receipts via webhooks; no carrier complexity is exposed.

Getting Started

Prerequisites

Before you begin, make sure you have:

  1. An active WhatsApp Business account and approved messaging templates.
  2. API credentials: a valid Merchant-Id,Authorization bearer token.
  3. Know your sender template names and required languages.

Authentication

All API requests must include the following HTTP headers:

  1. Merchant-Id: Your merchant identifier.
  2. API-Key: Your secret server-side API key.
  3. Authorization: Bearer <JWT> token.
  4. Content-Type: application/json before the request body.

You may optionally include Idempotency-Key in requests to safely retry without duplicate sends.

Request body fields


typestringMessage type: "text", "template", "image", "document", etc.
tostringRecipient number in E.164 format (e.g. +12345678901).
messagestringFor type: "text": the message body.
templateobjectFor type: "template": template name, language, and parameters.
media_urlstringFor media types: URL of the image/document/video.
metaobjectOptional custom metadata (e.g., {"order_id":"OD-1223"}) for your tracking.


Response & Delivery Tracking

HTTP 200 OK (sent/delivered)

HTTP Code Error CodeDescription
400invalid_payloadMissing required field or wrong format
401unauthorizedInvalid API key or token
403forbiddenMerchants are not permitted for WhatsApp templates
422invalid_templateTemplate not approved or parameter mismatch
429rate_limitedToo many requests; retry after cooldown
500server_errorInternal error—retry later


Summary

With the WhatsApp Notifications API, you gain a robust, scalable, and highly engaging channel to communicate with your users. From OTPs and transactional alerts to rich media campaigns and two-way chat, you’re equipped for next-generation messaging. Integrate quickly, monitor deeply, and deliver reliably—every time.

GET
/v1/whatsapp

Request to /v1/whatsapp

Headers

NameDescriptionRequired
Authorization Bearer YOUR_API_KEY Yes
API-Key YOUR_API_KEY Yes
Merchant-Id YOUR_MERCHANT_ID Yes
Content-Type application/json Yes

Request Body

ParameterTypeDescriptionRequired
type string Yes
to number Recipient phone number in E.164 format Yes
message string Message content Yes
Detected: curl
curl --location 'https://api.ozibus.com.au/v1/whatsapp' \
  --header 'Merchant-Id: <YOUR_MERCHANT_ID>' \
  --header 'API-Key: <YOUR_API_KEY>' \
  --header 'Authorization: Bearer <YOUR_JWT_TOKEN>' \
  --header 'Content-Type: application/json' \
  --data '{
    "type": "text",
    "to": "+12345678901",
    "message": "Hello, hope you’re good?"
  }'
Detected: curl
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.ozibus.com.au/v1/whatsapp',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "type": "text",
    "to": "+12345678901",
    "message":"Hello, hope you\'re good ?"
}',
  CURLOPT_HTTPHEADER => array(
    'Merchant-Id: <YOUR_MERCHANT_ID>',
    'API-Key: <YOUR_API_KEY>',
    'Content-Type: application/json',
    'Authorization: Bearer <YOUR_JWT_TOKEN>'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
Detected: php
<?php
$client = new Client();
$headers = [
  'Merchant-Id' => '<YOUR_MERCHANT_ID>',
  'API-Key' => '<YOUR_API_KEY>',
  'Content-Type' => 'application/json',
  'Authorization' => 'Bearer <YOUR_JWT_TOKEN>'
];
$body = '{
  "type": "text",
  "to": "+12345678901",
  "message": "Hello, hope you're good ?"
}';
$request = new Request('POST', 'https://api.ozibus.com.au/v1/whatsapp', $headers, $body);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
Detected: javascript
const axios = require('axios');
let data = JSON.stringify({
  "type": "text",
  "to": "+12345678901",
  "message": "Hello, hope you're good ?"
});

let config = {
  method: 'post',
  maxBodyLength: Infinity,
  url: 'https://api.ozibus.com.au/v1/whatsapp',
  headers: { 
    'Merchant-Id': '<YOUR_MERCHANT_ID>', 
    'API-Key': '<YOUR_API_KEY>', 
    'Content-Type': 'application/json', 
    'Authorization': 'Bearer <YOUR_JWT_TOKEN>'
  },
  data : data
};

axios.request(config)
.then((response) => {
  console.log(JSON.stringify(response.data));
})
.catch((error) => {
  console.log(error);
});
Detected: python
import requests
import json

url = "https://api.ozibus.com.au/v1/whatsapp"

payload = json.dumps({
  "type": "text",
  "to": "+12345678901",
  "message": "Hello, hope you're good ?"
})
headers = {
  'Merchant-Id': '<YOUR_MERCHANT_ID>',
  'API-Key': '<YOUR_API_KEY>',
  'Content-Type': 'application/json',
  'Authorization': 'Bearer <YOUR_JWT_TOKEN>'
}

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

print(response.text)

Ready to Start Building?

Join thousands of developers using Ozibus APIs to power their applications.

Get Started for Free