Introduction

The WhatBiz API lets you programmatically send WhatsApp messages, manage orders, and automate customer communication. It is a REST API that returns JSON responses.

Base URL:

text
https://developers.whatbizapp.com/api/v1

All requests must include your API key. Get one at the Developer Dashboard.

Authentication

Pass your API key in the X-API-Key header on every request.

bash
curl https://developers.whatbizapp.com/api/v1/webhook-test \
  -H "X-API-Key: wbk_your_key_here"

You can also use the Authorization header:

bash
curl https://developers.whatbizapp.com/api/v1/webhook-test \
  -H "Authorization: Bearer wbk_your_key_here"

Error Handling

All errors return a consistent JSON structure:

json
{
  "success": false,
  "error": "Human readable error message",
  "code": "ERROR_CODE",
  "docs": "https://developers.whatbizapp.com/docs"
}
200OKRequest successful
201CreatedResource created successfully
400Bad RequestMissing or invalid parameters
401UnauthorizedInvalid or missing API key
422UnprocessableValid request but business not configured
429Too Many RequestsRate limit or plan limit exceeded
500Server ErrorSomething went wrong on our end
502Bad GatewayWhatsApp or external service error

Messages

GET /api/v1/messages

List recent WhatsApp messages for your business.

limit
integer
Number of messages to return. Max 200. Default 50.
phone
string
Filter by customer phone number.
direction
string
"inbound" or "outbound".
bash
curl "https://developers.whatbizapp.com/api/v1/messages?limit=20&direction=inbound" \
  -H "X-API-Key: wbk_your_key"
json
{
  "success": true,
  "messages": [
    {
      "id": "uuid",
      "customer_phone": "2348012345678",
      "customer_name": "Amaka",
      "message_text": "Hi, do you have the red dress?",
      "direction": "inbound",
      "created_at": "2026-05-01T12:00:00Z"
    }
  ],
  "count": 1
}

POST /api/v1/messages

Send a WhatsApp message to any phone number.

to
stringrequired
Customer phone number with country code. No spaces or plus sign. e.g. 2348012345678
message
stringrequired
Message text. Maximum 4096 characters.
customer_name
string
Customer name for records. Defaults to phone number.
bash
curl -X POST https://developers.whatbizapp.com/api/v1/messages \
  -H "X-API-Key: wbk_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "2348012345678",
    "message": "Hi Amaka! Your order is ready for delivery.",
    "customer_name": "Amaka"
  }'
json
{
  "success": true,
  "message_id": "wamid.xxx",
  "to": "2348012345678",
  "message": "Hi Amaka! Your order is ready for delivery.",
  "sent_at": "2026-05-01T12:00:00Z"
}

Orders

GET /api/v1/orders

List orders with optional filtering.

limit
integer
Max 200. Default 50.
status
string
Filter by status: pending, confirmed, awaiting_payment, paid, preparing, delivered
phone
string
Filter by customer phone.

POST /api/v1/orders

Create an order and optionally send a Paystack payment link to the customer.

customer_phone
stringrequired
Customer phone with country code.
customer_name
string
Customer or receiver name.
items
stringrequired
Order description e.g. "Red Dress x2"
amount
numberrequired
Order amount in your currency.
delivery_address
string
Full delivery address.
send_payment_link
boolean
Generate and send Paystack link. Default false.
send_whatsapp_confirmation
boolean
Send WhatsApp confirmation message. Default true.
bash
curl -X POST https://developers.whatbizapp.com/api/v1/orders \
  -H "X-API-Key: wbk_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_phone": "2348012345678",
    "customer_name": "Amaka",
    "items": "Red Cargo Dress x1",
    "amount": 25000,
    "delivery_address": "12 Allen Avenue, Ikeja, Lagos",
    "send_payment_link": true
  }'

Customers

GET /api/v1/customers

List all customers who have messaged your business. Auto-created on first message.

limit
integer
Max 500. Default 100.
phone
string
Find a specific customer by phone.

Products

GET /api/v1/products

Get the full product catalogue for your business.

POST /api/v1/products

Add a single product to the catalogue.

name
stringrequired
Product name.
price
numberrequired
Price in your currency.
unit
string
e.g. "per piece", "per kg". Default "per piece".
min_qty
integer
Minimum order quantity. Default 1.
description
string
Product description.
variants
string
e.g. "Black, White, Red".
available
boolean
In stock status. Default true.

PUT /api/v1/products

Replace the entire product catalogue. Pass an array of product objects.

bash
curl -X PUT https://developers.whatbizapp.com/api/v1/products \
  -H "X-API-Key: wbk_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "products": [
      {
        "name": "Cargo Jeans",
        "price": 18000,
        "unit": "per piece",
        "variants": "Black, Grey, Khaki",
        "available": true
      },
      {
        "name": "White Sneakers",
        "price": 22000,
        "unit": "per pair",
        "available": true
      }
    ]
  }'

Broadcast

POST /api/v1/broadcast

Send a message to multiple customers at once. Max 500 per request.

message
stringrequired
Message to send. Max 4096 chars.
send_to_all
boolean
Send to all customers. Default false.
recipients
array
Array of phone numbers. Required if send_to_all is false.
bash
curl -X POST https://developers.whatbizapp.com/api/v1/broadcast \
  -H "X-API-Key: wbk_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "message": "New stock just arrived! Reply to order.",
    "recipients": ["2348012345678", "2348098765432"]
  }'
json
{
  "success": true,
  "sent": 2,
  "failed": 0,
  "total": 2
}

Test Connection

GET /api/v1/webhook-test

Verify your API key works and see your account status. No side effects.

bash
curl https://developers.whatbizapp.com/api/v1/webhook-test \
  -H "X-API-Key: wbk_your_key"
json
{
  "success": true,
  "message": "API key is valid and working",
  "business_id": "uuid",
  "plan": "starter",
  "usage": {
    "calls_used_this_month": 47,
    "calls_limit": 1000,
    "remaining": 953
  },
  "whatsapp_connected": true,
  "business_name": "Glow & Go Skincare",
  "currency": "NGN",
  "products_count": 5
}