API Documentation

Complete reference for Ozibus APIs, SDKs, and integration guides

OTP As A Service (OaaS)

Ozibus OTP-as-a-Service (OaaS) is a scalable, secure, and high-availability RESTful API infrastructure that enables businesses to deliver and verify One-Time Passwords (OTPs) via SMS and Email channels. Designed for seamless integration across platforms and industries, it supports secure user onboarding, two-factor authentication (2FA), transaction confirmations, and identity validation workflows.


Authentication & Security

All API requests to the Ozibus OaaS platform must be authenticated using a secure API key issued per merchant account.

Header Example:

 'Merchant-Id': 'MCH-3600023',
 'API-Key': 'sk_D7oW5tvG0r0ugArCJ8QY',
 'Content-Type': 'application/json',
 'Authorization': 'Bearer '

All communications are encrypted via TLS 1.2+ and adhere to industry-standard security protocols, including input sanitization, abuse prevention, OTP expiry enforcement, and IP/domain whitelisting.

Base URL

https://api.ozibus.com/v1


Core Endpoints

1. Send OTP

Initiates OTP generation and delivery to a user via the specified channel.

Endpoint: POST /send

Request Payload:

//sms channel
{
    "to": "+61000876123",
    "channel":"sms"
}

//mail channel
{
    "to": "joedoe@mail.com",
    "channel":"mail" 
}

Sample Success Response:

{
  "response_code": 0,
  "response_message": "OTP has been successfully sent"
}

2. Verify OTP

Validates the OTP entered by the user against the session identifier.

Endpoint: POST /verify

Request Payload:

//sms channel
{
    "to": "+61000876123",
    "otp":"620132"
}

//mail channel
{
    "to": "joedoe@mail.com",
    "otp":"620132"
}

Sample Success Response:

{
  "response_code": 0,
  "response_message": "OTP verification successful"
}

Failure Example:

{
  "response_code": 20,
  "response_message": "Request could not be processed"
}


3. Resend OTP

Triggers a resend of the OTP for an active session.

Endpoint: POST /resend_otp

Request Payload:

//sms channel
{
    "to": "+61000876123",
    "channel":"sms"
}

//mail channel
{
    "to": "joedoe@mail.com",
    "channel":"mail" 
}

Sample Response:

{
  "response_code": 0,
  "response_message": "OTP has been successfully sent"
}


Platform Capabilities and Highlights

Ozibus OaaS is built on a robust delivery infrastructure, leveraging geo-intelligent routing, real-time monitoring systems, and automated failover mechanisms to guarantee reliable and high-speed OTP dispatch globally.


Key capabilities include:

  • Multi-channel OTP delivery via SMS and email.
  • Global reach across 190+ countries.
  • Flexible OTP expiry configuration and resend intervals.
  • Real-time delivery analytics and dashboard insights.
  • Intelligent retry/failover logic for optimal delivery success rates.
  • Use Case Integration Scenarios
  • New User Onboarding Verification
  • Two-factor/multi-factor authentication (2FA/MFA)
  • Transactional Authentication (e.g., payments, withdrawals)
  • Password Reset Validation
  • Digital Identity Verification (e.g., KYC, AML workflows)
  • Session Revalidation for Sensitive Operations


Integration Recommendations

  • Always associate OTP requests with a unique identifier to ensure traceability.
  • Set a short expiry window (e.g., 3–5 minutes) to enhance security.
  • Validate input formats (e.g., E.164 format for phone numbers).
  • Use monitoring tools via the Ozibus Dashboard for real-time delivery health.
  • Implement retry logic for failed delivery attempts or timeouts.
  • Avoid hard-coding session identifiers or static values in production environments.


Compliance & Regulatory Standards

Ozibus adheres to global compliance standards, including:

  • GDPR & Data Protection Laws
  • Local Telecom Regulatory Guidelines
  • Anti-Spam & Anti-Fraud Controls
  • Rate Throttling & Abuse Prevention
  • Support & Documentation Access
GET
/v1/get_otp

Request to /v1/get_otp

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
to string Recipient phone number in E.164 format Yes
channel string Yes
Detected: curl
curl --location 'https://api.ozibus.com.au/v1/get_otp' \
--header 'Merchant-Id: MCH-3635900003' \
--header 'API-Key: sk_D7oW5txr0ugArCJ8QY' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE3NDIwMzAxMjUsImV4cCI6MTc0MjExNjUyNSwiaXNzIjoiaHR0cHM6Ly9tZXNzYWdpbmcuY29tLmF1LyIsImRhdGEiOnsibWVyY2hhbnRfaWQiOiIiLCJtZXJjaGFudF9uYW1lIjoiIiwibWVyY2hhbnRfZW1haWwiOiIiLCJtZXJjaGFudF9waG9uZSI6IiIsIm1lcmNoYW50X2FkZHJlc3MiOiIiLCJlbnZpcm9ubWVudCI6IiJ9fQ.z-2fDUkL1bokTTKB5LER4fIYp6kXTdqiBUlzaMYsrBw' \
--header 'Cookie: PHPSESSID=ccukefi169dmq3nl3vo6g6ndc7' \
--data-raw '{
    "to": "jdoe@mail.com",
    "channel":"mail" 
}'
Detected: curl
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.ozibus.com.au/v1/get_otp',
  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 =>'{
    "to": "jdoe@mail.com",
    "channel":"mail" 
}',
  CURLOPT_HTTPHEADER => array(
    'Merchant-Id: MCH-3635000423',
    'API-Key: sk_D7oW5tvG0RbalrCJ8QY',
    'Content-Type: application/json',
    'Authorization: Bearer '
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
Detected: php
<?php

$client = new Client();
$headers = [
  'Merchant-Id' => 'MCH-363500023',
  'API-Key' => 'sk_D7oW5tvQ98Wafxr0ugArCJ8QY',
  'Content-Type' => 'application/json',
  'Authorization' => 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..z-2fDUkL1bokTTKB5LER4fIYp6kXTdqiBUlzaMYsrBw',
  'Cookie' => 'PHPSESSID=ccukefi169dmq3nl3vo6g6ndc7'
];
$body = '{
  "to": "jdoe@mail.com",
  "channel": "mail"
}';
$request = new Request('POST', 'https://api.ozibus.com.au/v1/get_otp', $headers, $body);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
Detected: javascript
const axios = require('axios');
let data = JSON.stringify({
  "to": "jdoe@mail.com",
  "channel": "mail"
});

let config = {
  method: 'post',
  maxBodyLength: Infinity,
  url: 'https://api.ozibus.com.au/v1/get_otp',
  headers: { 
    'Merchant-Id': 'MCH-363500023', 
    'API-Key': 'sk_D7oW5tvG0RbaugArCJ8QY', 
    'Content-Type': 'application/json', 
    'Authorization': 'Bearer '
  },
  data : data
};

axios.request(config)
.then((response) => {
  console.log(JSON.stringify(response.data));
})
.catch((error) => {
  console.log(error);
});
import http.client
import json

conn = http.client.HTTPSConnection("api.ozibus.com.au")
payload = json.dumps({
  "to": "jdoe@mail.com",
  "channel": "mail"
})
headers = {
  'Merchant-Id': 'MCH-3600023',
  'API-Key': 'sk_D7oW5tvG0r0ugArCJ8QY',
  'Content-Type': 'application/json',
  'Authorization': 'Bearer '
}
conn.request("POST", "/v1/get_otp", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Ready to Start Building?

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

Get Started for Free