Partner & reseller APIs

Onboard clients,
at API speed.

IVR Solutions partners get one REST API to onboard end-clients and run everything for them — KYC, numbers, agents, flows, WhatsApp and billing.

Explore the API Become a partner
48
Endpoints
10
Capability groups
JSON
over HTTPS
Bearer
Partner key
Onboard a client · POST /partnerclients/register LIVE
# Register a new client and trigger OTP + KYC
curl -X POST https://api.ivrsolutions.in/partnerclients/register \
  -H "Authorization: Bearer PARTNER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Acme Corp",
        "email": "ops@acme.com",
        "mobile": "9876543210",
        "password": "••••••••",
        "country_code": "+91" }'

→ 200 OK
{
  "status": 200,
  "message": "OTP sent to email and mobile",
  "data": { "request_id": "req_8f3a21" }
}
Client created · awaiting OTP verification
Number Masking · Click-Connect

Connect people,
hide their numbers.

Bridge a rider and a driver, a buyer and a seller, a patient and a clinic — over your DID, so neither party ever sees the other’s real number. The mapping lives only inside the session, so once the job’s done the link is gone. It’s the privacy layer behind Uber- and Ola-style “contact the driver” calling.

  • Real numbers stay private — both legs ring from your DID, never from each other.
  • Sessions expire — cancel or update a live call, and numbers can’t be harvested afterward.
  • Fully logged — pull per-session records to audit every masked conversation.
See the API POST /api/click_connect

Onboard in four calls.

Authenticate with your partner key, then provision a client end to end. Every call is live and testable below.

POST /partnerclients/register

Onboard a client

Create a client and kick off OTP + KYC verification.

Open
POST /partnerclients/buy_did

Provision a number

Search and buy a DID virtual number for your client.

Open
POST /partnerclients/add_agent

Add an agent

Create agents with extensions and assign a DID.

Open
POST /partnerclients/add_client_credits

Add credits

Top up balance and extend client validity.

Open

Run the whole client, by API.

Ten capability groups across 48 endpoints — everything a reseller needs to onboard and operate end-clients.

Client Onboarding

Register clients, send and verify email/mobile OTP, and list or activate accounts.

KYC Verification

Complete KYC end to end — PAN, Aadhaar OTP and GST verification, then accept.

DID Provisioning

Search by region, buy, assign and remove DID numbers for any client.

Agents

Create, edit and delete agents, assign DIDs and manage schedules and availability.

Call Flows & Bots

Build basic IVR flows, map them to DIDs and wire up WSS voice bots.

WhatsApp, Wallet & Credits

Link WhatsApp numbers, set schedules, top up credits and pull transactions.

Built for resellers.

The partner endpoints compose into complete client journeys — onboarding to billing.

Onboarding

White-label client onboarding

  1. Create the client with /partnerclients/register, then /verify_otp.
  2. Run KYC: /verify_pan/aadhar_otp + /aadhar_verify.
  3. Verify or skip GST with /verify_gst or /skip_gst.
  4. Finish with /preview_kyc then /accept_kyc.
Provisioning

Get a client call-ready

  1. Buy a number with /partnerclients/buy_did.
  2. Add an agent via /partnerclients/add_agent.
  3. Build a flow with /partnerclients/create_basic_flow.
  4. Route the DID using /partnerclients/map_flow_did.
Billing

Manage credits & validity

  1. Top up and extend with /partnerclients/add_client_credits.
  2. Check funds via /partnerclients/wallet_balance.
  3. Audit spend through /partnerclients/wallet_transactions.
  4. Activate or pause accounts with /partnerclients/update_status.
API Reference

Every endpoint.

48 REST endpoints, grouped by capability. Expand any call for its parameters and example payloads, or test them live in Postman.

Need a token? Sign in to IVR Solutions, then open Settings → API token — or Integrations → API documentation — and send it as a Bearer token in the Authorization header.

Client Registration & KYC 10

Onboard new clients and complete KYC — registration, OTP, PAN, Aadhaar and GST verification.

POST /partnerclients/register Register a client (Step 1)

Start onboarding a new client — the first step of partner-led signup.

How it works: Pass the client's name, email, mobile, password and country_code (optional promo). The platform creates a pending client and sends OTPs to verify the email and mobile, returning a request_id for the next step.

Use it for self-serve client signup from your own portal or sales flow.

Parameters

namerequired string
emailrequired string
mobilerequired string
passwordrequired string
country_coderequired string
promo string

Request body

{
    "name": "Acme Corp",
    "email": "ops@acme.com",
    "mobile": "9876543210",
    "password": "SecurePass@123",
    "country_code": "+91",
    "promo": "WELCOME10"
}
POST /partnerclients/verify_otp Step 2: Verify OTP

Verify the email and mobile OTPs sent during registration.

How it works: Pass the request_id with the mobileotp and emailotp the client received. Successful verification moves onboarding on to the KYC steps.

Use it for confirming contact details before KYC and account creation.

Parameters

request_idrequired string
mobileotprequired string
emailotprequired string

Request body

{
    "request_id": "req_8f3a21",
    "mobileotp": "123456",
    "emailotp": "654321"
}
POST /partnerclients/resend_otp Resend OTP

Resend a verification OTP if the client didn't receive it.

How it works: Pass the request_id and the type (email or mobile) to trigger a fresh code.

Use it for recovering from expired or undelivered OTPs during signup.

Parameters

request_idrequired string
typerequired string

Request body

{
    "request_id": "req_8f3a21",
    "type": "both"
}
POST /partnerclients/verify_pan Step 3a: Verify Business PAN

Verify the client's business PAN as part of KYC.

How it works: Pass the temp_client_id, the pan number and the business type btype; the platform validates it against records.

Use it for meeting KYC requirements for business clients during onboarding.

Parameters

temp_client_idrequired string
panrequired string
btyperequired string

Request body

{
    "temp_client_id": "tmp_5521",
    "pan": "ABCDE1234F",
    "btype": "company"
}
POST /partnerclients/aadhar_otp Step 3b: Send Aadhaar OTP

Send an Aadhaar OTP to begin individual KYC.

How it works: Pass the temp_client_id and aadhar_num; an OTP is sent to the Aadhaar-linked mobile and a reference is returned for verification.

Use it for Aadhaar-based KYC for individual or proprietor clients.

Parameters

temp_client_idrequired string
aadhar_numrequired string

Request body

{
    "temp_client_id": "tmp_5521",
    "aadhar_num": "123412341234"
}
POST /partnerclients/aadhar_verify Step 3c: Verify Aadhaar OTP

Verify the Aadhaar OTP to complete Aadhaar KYC.

How it works: Pass the temp_client_id, the otp and the ref from the previous step to confirm the Aadhaar identity.

Use it for completing the Aadhaar leg of client KYC.

Parameters

temp_client_idrequired string
otprequired string
refrequired string reference_id from aadhar_otp

Request body

{
    "temp_client_id": "tmp_5521",
    "otp": "123456",
    "ref": "ref_99812"
}
POST /partnerclients/verify_gst Step 3d: Verify GST

Verify the client's GST number.

How it works: Pass the temp_client_id and gst_num; the platform validates the GSTIN and links it to the client.

Use it for capturing GST details for tax-registered business clients.

Parameters

temp_client_idrequired string
gst_numrequired string

Request body

{
    "temp_client_id": "tmp_5521",
    "gst_num": "29ABCDE1234F1Z5"
}
POST /partnerclients/skip_gst Skip GST verification

Skip GST verification when the client isn't GST-registered.

How it works: Pass the temp_client_id to mark GST as not applicable and continue onboarding.

Use it for onboarding small or unregistered clients who have no GSTIN.

Parameters

temp_client_idrequired string

Request body

{
    "temp_client_id": "tmp_5521"
}
POST /partnerclients/preview_kyc Preview KYC data before final submission

Review all collected KYC details before final submission.

How it works: Pass the temp_client_id to get a summary of the captured PAN, Aadhaar and GST data for confirmation.

Use it for showing a confirmation screen before the client account is created.

Parameters

temp_client_idrequired string

Request body

{
    "temp_client_id": "tmp_5521"
}
POST /partnerclients/accept_kyc Step 4: Accept KYC and create client account

Accept the KYC and create the live client account.

How it works: Pass the temp_client_id and the client's signature; the platform finalizes KYC and converts the pending record into an active client.

Use it for completing onboarding and going live with a new client.

Parameters

temp_client_idrequired string
signature string base64

Request body

{
    "temp_client_id": "tmp_5521",
    "signature": "data:image/png;base64,iVBORw0K..."
}

Clients 4

List and manage the clients under your partner account.

GET /partnerclients/clients Get list of clients for the partner

List all clients under your partner account.

How it works: Call the endpoint to get every client with their ID, status and basic details.

Use it for building a client dashboard or picking a client_id for other calls.

GET /partnerclients/client/{client_id} Get client details

Get the full profile of a single client.

How it works: Pass the client_id in the path to retrieve that client's details, status and configuration.

Use it for showing or editing one client's account.

Parameters

client_idrequired string · path client_id
POST /partnerclients/update_status Update client status (activate/deactivate)

Activate or deactivate a client account.

How it works: Pass the client_id and the new status; a deactivated client can't use the platform until reactivated.

Use it for suspending clients for non-payment or pausing inactive accounts.

Parameters

client_idrequired string
statusrequired string

Request body

{
    "client_id": "CLIENTAPIKEY12345",
    "status": "1"
}
GET /partnerclients/pending Get pending registrations (temp clients)

List registrations that started but haven't completed KYC.

How it works: Call the endpoint to get the temp (pending) clients still in onboarding.

Use it for following up on incomplete signups and chasing stalled KYC.

DID Numbers 5

Search, buy, assign and remove DID (virtual) numbers for your clients.

GET /partnerclients/did_regions Get available DID regions

List the regions where DID numbers are available.

How it works: Call the endpoint to get the regions you can search for numbers in.

Use it for driving a region selector before searching DIDs for a client.

POST /partnerclients/search_dids Search available DIDs

Search for DID numbers available to assign to a client.

How it works: Pass the client_id, country_code, region and an optional search_pattern; the API returns matching available numbers.

Use it for letting clients pick a local or vanity number during setup.

Parameters

client_idrequired string
country_coderequired string
pattern string
search_pattern string
region string

Request body

{
    "client_id": "CLIENTAPIKEY12345",
    "country_code": "+91",
    "pattern": "4310",
    "search_pattern": "contains",
    "region": "1"
}
POST /partnerclients/buy_did Buy/Assign DID to client

Buy a DID and assign it to a client.

How it works: Pass the client_id, the chosen number and country; the platform provisions the DID and links it to that client.

Use it for giving a client their first number or expanding their inventory.

Parameters

client_idrequired string
numberrequired string
countryrequired string

Request body

{
    "client_id": "CLIENTAPIKEY12345",
    "number": "+911143104501",
    "country": "IN"
}
POST /partnerclients/remove_did Remove DID from client

Remove (unlink) a DID from a client.

How it works: Pass the client_id and the did_no; the number is released from that client.

Use it for reclaiming numbers from churned clients or correcting assignments.

Parameters

client_idrequired string
did_norequired string

Request body

{
    "client_id": "CLIENTAPIKEY12345",
    "did_no": "+911143104501"
}
GET /partnerclients/client_dids/{client_id} Get client's DIDs

List the DID numbers assigned to a client.

How it works: Pass the client_id in the path to get all of that client's DIDs and their status.

Use it for auditing a client's numbers and choosing one to configure.

Parameters

client_idrequired string · path client_id

DID Scheduling 4

Set working hours and holidays for a client's DID numbers.

POST /partnerclients/get_did_schedule Get DID schedule (working hours, timezone, holidays)

Get a DID's working hours, timezone and holidays.

How it works: Pass the client_id and did_id to retrieve the number's schedule.

Use it for showing current office hours before editing them.

Parameters

client_idrequired string
did_idrequired string

Request body

{
    "client_id": "CLIENTAPIKEY12345",
    "did_id": "331"
}
POST /partnerclients/set_did_schedule Set DID schedule (working hours, timezone)

Set a DID's working hours and timezone.

How it works: Pass the client_id, did_id, timezone and working_hours; calls outside these hours follow your off-hours handling.

Use it for enforcing business hours on a client's inbound number.

Parameters

client_idrequired string
did_idrequired string
timezonerequired string
working_hours object Working hours keyed by day, e.g. {"mon":{"open":"09:00","close":"18:00"}}

Request body

{
    "client_id": "CLIENTAPIKEY12345",
    "did_id": "331",
    "timezone": "Asia/Kolkata",
    "working_hours": {
        "mon": {
            "open": "09:00",
            "close": "18:00"
        }
    }
}
POST /partnerclients/add_did_holiday Add holiday to DID

Add a holiday to a DID's schedule.

How it works: Pass the client_id, did_id, a holiday name and date; the number is treated as closed that day.

Use it for blocking public holidays and one-off closures.

Parameters

client_idrequired string
did_idrequired string
namerequired string
daterequired string YYYY-MM-DD

Request body

{
    "client_id": "CLIENTAPIKEY12345",
    "did_id": "331",
    "name": "Acme Corp",
    "date": "2025-08-15"
}
POST /partnerclients/delete_did_holiday Delete holiday from DID

Remove a holiday from a DID's schedule.

How it works: Pass the client_id and the holiday_id to delete it.

Use it for correcting a mistaken holiday or reopening a date.

Parameters

client_idrequired string
holiday_idrequired string

Request body

{
    "client_id": "CLIENTAPIKEY12345",
    "holiday_id": "12"
}

Agents 4

Create, edit, delete and assign DIDs to a client's agents.

POST /partnerclients/add_agent Add agent

Create an agent under a client account.

How it works: Pass the client_id with the agent's name, email, phonenumber, password and extension (plus options like did_num, is_webrtc, dial_preference and permission_group). The agent is provisioned to take calls.

Use it for onboarding a client's call-centre team programmatically.

Parameters

client_idrequired string
namerequired string
emailrequired string
phonenumberrequired string
passwordrequired string
extension string
reporting_manager string
manager string
is_webrtc string
dial_preference string
did_num string
permission_group string

Request body

{
    "client_id": "CLIENTAPIKEY12345",
    "name": "Acme Corp",
    "email": "ops@acme.com",
    "phonenumber": "9876543210",
    "password": "SecurePass@123",
    "extension": "2101",
    "reporting_manager": "1",
    "manager": "1",
    "is_webrtc": "1",
    "dial_preference": "1",
    "did_num": "+911143104501",
    "permission_group": "2"
}
POST /partnerclients/edit_agent Edit agent

Update an existing agent's details or settings.

How it works: Pass the client_id and agent_id with any fields to change — name, extension, did_num, is_webrtc, permission_group and more.

Use it for reassigning extensions, updating contact details or changing permissions.

Parameters

client_idrequired string
agent_idrequired string
namerequired string
emailrequired string
phonenumberrequired string
passwordrequired string
extension string
reporting_manager string
manager string
is_webrtc string
dial_preference string
did_num string
permission_group string

Request body

{
    "client_id": "CLIENTAPIKEY12345",
    "agent_id": "4821",
    "name": "Acme Corp",
    "email": "ops@acme.com",
    "phonenumber": "9876543210",
    "password": "SecurePass@123",
    "extension": "2101",
    "reporting_manager": "1",
    "manager": "1",
    "is_webrtc": "1",
    "dial_preference": "1",
    "did_num": "+911143104501",
    "permission_group": "2"
}
POST /partnerclients/delete_agent Delete agent (set status to 0)

Remove an agent from a client account.

How it works: Pass the client_id and agent_id; the agent is deactivated (status set to 0) and can no longer take calls.

Use it for offboarding agents who've left a client's team.

Parameters

client_idrequired string
agent_idrequired string

Request body

{
    "client_id": "CLIENTAPIKEY12345",
    "agent_id": "4821"
}
POST /partnerclients/update_agent_did Update agent DID

Change the DID tied to a client's agent.

How it works: Pass the client_id, the agent_ext and the did_num; the agent's outbound caller ID updates.

Use it for giving agents local caller IDs or moving numbers between them.

Parameters

client_idrequired string
agent_extrequired string
did_numrequired string

Request body

{
    "client_id": "CLIENTAPIKEY12345",
    "agent_ext": "2101",
    "did_num": "+911143104501"
}

Agent Scheduling & Availability 4

Manage agent working hours and live availability.

POST /partnerclients/get_agent_schedule Get agent availability schedule

Get an agent's availability schedule.

How it works: Pass the client_id and agent_id to retrieve their working hours and timezone.

Use it for reviewing an agent's shift before editing it.

Parameters

client_idrequired string
agent_idrequired string SipUsers.id

Request body

{
    "client_id": "CLIENTAPIKEY12345",
    "agent_id": "4821"
}
POST /partnerclients/set_agent_schedule Set agent availability schedule

Set an agent's availability schedule.

How it works: Pass the client_id, agent_id, timezone and working_hours; calls route to the agent only during these hours.

Use it for defining agent shifts and routing windows.

Parameters

client_idrequired string
agent_idrequired string
timezonerequired string
working_hours object Working hours keyed by day, e.g. {"mon":{"open":"09:00","close":"18:00"}}

Request body

{
    "client_id": "CLIENTAPIKEY12345",
    "agent_id": "4821",
    "timezone": "Asia/Kolkata",
    "working_hours": {
        "mon": {
            "open": "09:00",
            "close": "18:00"
        }
    }
}
POST /partnerclients/update_agent_availability Update agent availability status (online/offline)

Set an agent online or offline right now.

How it works: Pass the client_id, agent_id and the available flag to flip their live status.

Use it for wiring agent presence to your own dashboard or break button.

Parameters

client_idrequired string
agent_idrequired string
availablerequired string

Request body

{
    "client_id": "CLIENTAPIKEY12345",
    "agent_id": "4821",
    "available": "1"
}
POST /partnerclients/get_agents_availability Get all agents with availability status

Get every agent for a client with their live availability.

How it works: Pass the client_id to see which agents are online, offline or on a call.

Use it for a live wallboard of agent presence.

Parameters

client_idrequired string

Request body

{
    "client_id": "CLIENTAPIKEY12345"
}

Call Flows 3

Build and map basic IVR call flows for a client.

POST /partnerclients/create_basic_flow Create basic call flow

Create a basic IVR call flow for a client.

How it works: Pass the client_id, a flow_name, the target agent_ext, the did_no and an optional recording_id. The platform builds a simple routing flow for that number.

Use it for standing up quick call routing for a client without the full flow builder.

Parameters

client_idrequired string
flow_namerequired string
agent_extrequired string
did_no string defaults to client's primary DID
recording_id string welcome message recording ID

Request body

{
    "client_id": "CLIENTAPIKEY12345",
    "flow_name": "Support Flow",
    "agent_ext": "2101",
    "did_no": "+911143104501",
    "recording_id": "2207"
}
POST /partnerclients/edit_basic_flow Edit basic call flow

Edit a client's basic call flow.

How it works: Pass the client_id and flow_id with fields to change — flow_name, recording_id, transfer_to, agent_ext or a wss_bot_id to route to a voice bot.

Use it for retuning routing, greetings or bot handoff for a client.

Parameters

client_idrequired string
flow_idrequired string
flow_name string
recording_id string
transfer_to string
agent_ext string
wss_bot_id string

Request body

{
    "client_id": "CLIENTAPIKEY12345",
    "flow_id": "10045",
    "flow_name": "Support Flow",
    "recording_id": "2207",
    "transfer_to": "2101",
    "agent_ext": "2101",
    "wss_bot_id": "77"
}
POST /partnerclients/map_flow_did Map call flow with DID

Attach a call flow to a client's DID number.

How it works: Pass the client_id, the flow_id and the did_no; inbound calls to that number then run the flow.

Use it for activating a flow on a number, or swapping which flow a number uses.

Parameters

client_idrequired string
flow_idrequired string
did_norequired string

Request body

{
    "client_id": "CLIENTAPIKEY12345",
    "flow_id": "10045",
    "did_no": "+911143104501"
}

Voice Bots 4

Configure WSS voice bots used inside call flows.

POST /partnerclients/create_wss_bot Create or Update WSS Bot for a client

Create or update a WSS voice bot for a client.

How it works: Pass the client_id, a bot_name, the wss_url (with optional api_url/wss_header) and to_be_used; pass an id to update an existing bot. Flows can then route calls to this bot.

Use it for wiring a client's AI/WebSocket bot into their call flows.

Parameters

client_idrequired string
bot_namerequired string
to_be_usedrequired string
id string for update
api_url string
wss_url string
wss_header string

Request body

{
    "client_id": "CLIENTAPIKEY12345",
    "bot_name": "Lead Bot",
    "to_be_used": "voice",
    "id": "77",
    "api_url": "https://example.com/bot",
    "wss_url": "wss://example.com/stream",
    "wss_header": "Authorization: Bearer xyz"
}
GET /partnerclients/get_wss_bots/{client_id} Get all WSS Bots for a client

List all WSS voice bots configured for a client.

How it works: Pass the client_id in the path to get each bot with its ID and settings.

Use it for showing a bot picker when building call flows.

Parameters

client_idrequired string · path client_id
POST /partnerclients/get_wss_bot Get single WSS Bot

Get a single WSS voice bot's configuration.

How it works: Pass the client_id and the bot id to retrieve its URLs and headers.

Use it for inspecting or pre-filling a bot's settings before editing.

Parameters

client_idrequired string
idrequired string

Request body

{
    "client_id": "CLIENTAPIKEY12345",
    "id": "77"
}
POST /partnerclients/delete_wss_bot Delete WSS Bot

Delete a WSS voice bot from a client.

How it works: Pass the client_id and the bot id; it's removed and can no longer be used in flows.

Use it for cleaning up unused or deprecated bots.

Parameters

client_idrequired string
idrequired string

Request body

{
    "client_id": "CLIENTAPIKEY12345",
    "id": "77"
}

WhatsApp 7

Link WhatsApp numbers and manage their schedules and holidays.

POST /partnerclients/link_whatsapp_did Register/Link a WhatsApp Business number

Link a WhatsApp Business number to a client.

How it works: Pass the client_id, the phone_number_id, access_token, display_number and verified_name; the WhatsApp number is connected for the client.

Use it for adding WhatsApp as a channel for a client.

Parameters

client_idrequired string
phone_number_idrequired string
access_tokenrequired string
display_number string
verified_name string

Request body

{
    "client_id": "CLIENTAPIKEY12345",
    "phone_number_id": "1029384756",
    "access_token": "EAAG...",
    "display_number": "+911143104501",
    "verified_name": "Acme Corp"
}
POST /partnerclients/get_whatsapp_dids Get WhatsApp DIDs for a client

List a client's linked WhatsApp numbers.

How it works: Pass the client_id to get every WhatsApp DID and its status.

Use it for managing a client's WhatsApp channels.

Parameters

client_idrequired string

Request body

{
    "client_id": "CLIENTAPIKEY12345"
}
POST /partnerclients/delete_whatsapp_did Delete/Unlink a WhatsApp DID

Unlink a WhatsApp number from a client.

How it works: Pass the client_id and the wa_did_id; the number is disconnected.

Use it for removing a deprecated or migrated WhatsApp number.

Parameters

client_idrequired string
wa_did_idrequired string

Request body

{
    "client_id": "CLIENTAPIKEY12345",
    "wa_did_id": "45"
}
POST /partnerclients/set_whatsapp_schedule Set WhatsApp DID schedule (working hours, timezone)

Set working hours for a client's WhatsApp number.

How it works: Pass the client_id, wa_did_id, timezone and working_hours to define when the number is active.

Use it for enforcing business hours on WhatsApp conversations.

Parameters

client_idrequired string
wa_did_idrequired string
timezonerequired string
working_hours object Working hours keyed by day, e.g. {"mon":{"open":"09:00","close":"18:00"}}

Request body

{
    "client_id": "CLIENTAPIKEY12345",
    "wa_did_id": "45",
    "timezone": "Asia/Kolkata",
    "working_hours": {
        "mon": {
            "open": "09:00",
            "close": "18:00"
        }
    }
}
POST /partnerclients/get_whatsapp_schedule Get WhatsApp DID schedule

Get a WhatsApp number's schedule.

How it works: Pass the client_id and wa_did_id to retrieve its working hours, timezone and holidays.

Use it for reviewing WhatsApp availability before editing.

Parameters

client_idrequired string
wa_did_idrequired string

Request body

{
    "client_id": "CLIENTAPIKEY12345",
    "wa_did_id": "45"
}
POST /partnerclients/add_whatsapp_holiday Add holiday to WhatsApp DID

Add a holiday to a WhatsApp number's schedule.

How it works: Pass the client_id, wa_did_id, a holiday name and date to mark it closed.

Use it for blocking holidays on WhatsApp channels.

Parameters

client_idrequired string
wa_did_idrequired string
namerequired string
daterequired string YYYY-MM-DD

Request body

{
    "client_id": "CLIENTAPIKEY12345",
    "wa_did_id": "45",
    "name": "Acme Corp",
    "date": "2025-08-15"
}
POST /partnerclients/delete_whatsapp_holiday Delete holiday from WhatsApp DID

Remove a holiday from a WhatsApp number's schedule.

How it works: Pass the client_id and holiday_id to delete it.

Use it for correcting or reopening a WhatsApp closure date.

Parameters

client_idrequired string
holiday_idrequired string

Request body

{
    "client_id": "CLIENTAPIKEY12345",
    "holiday_id": "12"
}

Wallet & Credits 3

Check balances, pull transactions, add credits and extend client validity.

POST /partnerclients/wallet_transactions Get wallet transaction history

Pull a client's wallet transaction history.

How it works: Pass the client_id with optional filters — page, limit, expense_type, start_date, end_date, did — to page through debits and credits.

Use it for billing dashboards, statements and usage reconciliation.

Parameters

client_idrequired string
page integer
limit integer
expense_type string
start_date string YYYY-MM-DD
end_date string YYYY-MM-DD
did string

Request body

{
    "client_id": "CLIENTAPIKEY12345",
    "page": "",
    "limit": "",
    "expense_type": "call",
    "start_date": "2025-08-01",
    "end_date": "2025-08-31",
    "did": "+911143104501"
}
POST /partnerclients/wallet_balance Get current wallet balance and client expiry

Check a client's current wallet balance and account expiry.

How it works: Pass the client_id to get the live balance and validity date.

Use it for showing balance widgets and triggering low-balance top-ups.

Parameters

client_idrequired string

Request body

{
    "client_id": "CLIENTAPIKEY12345"
}
POST /partnerclients/add_client_credits Add credits and/or update validity for a client

Add credits and/or extend a client's validity.

How it works: Pass the client_id, a credit amount and/or a new valid_till date; the wallet and expiry update immediately.

Use it for top-ups, plan renewals and promotional credit.

Parameters

client_idrequired string
valid_till string Y-m-d H:i:s
credit string numeric > 0

Request body

{
    "client_id": "CLIENTAPIKEY12345",
    "valid_till": "2025-12-31 23:59:59",
    "credit": "500"
}
Built around you

Every API is fully customizable.

These endpoints are a starting point, not a ceiling. Tell us your requirement — new endpoints, custom payloads, bespoke call flows — and our team will build it to fit how you work.