TekNotify API Documentation
TekNotify Developer Center

Professional API Documentation

Connect your website, mobile app, USSD platform, CRM, or business system to TekNotify for automated Bulk SMS and KYC verification transactions.

Overview

These APIs are for external platforms that need to connect to TekNotify for automated SMS sending and identity verification.

Live REST API
Bulk SMSSend SMS to one or many recipients using approved Sender IDs.
KYC VerificationVerify phone, Ghana Card, enhanced face match, mobile money, and bank account details.
Shared CreditsRequests use the customer’s TekNotify credit balance where applicable.

Quick Start

Replace https://yourdomain.com with your live website domain.

Current page can auto-detect your website origin in the browser. Your REST base should be: https://yourdomain.com/wp-json/teknotify/v1
Step 1: Get API keyLogin to TekNotify and open the API Manager area for SMS or KYC.
Step 2: Add creditsTop up your TekNotify account credits before sending live requests.
Step 3: Send requestUse the required endpoint, authentication header, and JSON body.
Step 4: Read responseYour system should store the response, reference, status, and result data.

Authentication

Every protected API request requires an API key. Keep your key private and do not expose it inside public JavaScript code.

ServiceHeaderValueNote
Bulk SMSX-TekNotify-API-KeyYOUR_SMS_API_KEYGenerated from the SMS API Manager.
KYCX-TekNotify-API-KeyYOUR_KYC_API_KEYGenerated from the KYC page/API area.
KYC alternateX-API-KeyYOUR_KYC_API_KEYAccepted for KYC requests only.
Header example
X-TekNotify-API-Key: YOUR_API_KEY

Bulk SMS API

Use this API to send SMS from your external app or website through TekNotify.

Base: https://yourdomain.com/wp-json/teknotify/v1Credits required
SMS
Only approved Sender IDs can be used for SMS sending. Invalid or unapproved Sender IDs will be rejected.

Send SMS

POSThttps://yourdomain.com/wp-json/teknotify/v1/send-sms

Request fields

FieldTypeRequiredDescription
sender_idstringYesYour approved Sender ID, for example TEKNOTIFY.
messagestringYesThe SMS message body.
recipientsarrayYesList of recipient phone numbers.
schedule_atstringNoOptional scheduled date/time format: YYYY-MM-DD HH:MM:SS.
cURL example
curl -X POST "https://yourdomain.com/wp-json/teknotify/v1/send-sms" \
  -H "Content-Type: application/json" \
  -H "X-TekNotify-API-Key: YOUR_SMS_API_KEY" \
  -d '{
    "sender_id": "TEKNOTIFY",
    "message": "Hello from TekNotify",
    "recipients": ["0240000000", "0550000000"],
    "schedule_at": "2026-04-16 16:30:00"
  }'
Success response
{
  "status": "success",
  "batch_id": "tnbs-batch-...",
  "message_ids": [123, 124],
  "records_created": 2,
  "queue_status": "awaiting",
  "units_deducted": 2
}

Get SMS / Account Credit Balance

GEThttps://yourdomain.com/wp-json/teknotify/v1/balance
cURL example
curl -X GET "https://yourdomain.com/wp-json/teknotify/v1/balance" \
  -H "X-TekNotify-API-Key: YOUR_SMS_API_KEY"
Success response
{
  "status": "success",
  "balance": 860
}

Get Approved Sender IDs

GEThttps://yourdomain.com/wp-json/teknotify/v1/senderids
cURL example
curl -X GET "https://yourdomain.com/wp-json/teknotify/v1/senderids" \
  -H "X-TekNotify-API-Key: YOUR_SMS_API_KEY"
Example response
{
  "status": "success",
  "senderids": [
    {
      "sender_id": "TEKNOTIFY",
      "status": "approved"
    }
  ]
}

KYC Verification API

Use these endpoints to verify customer details from external websites, apps, and business systems.

Base: https://yourdomain.com/wp-json/teknotify/v1/kycAdmin-set prices
KYC
KYC API requests use the user’s TekNotify credits. Service cost depends on the prices configured by admin.

General success response format

Response format
{
  "success": true,
  "data": {
    "reference": "tnkyc...",
    "service": "Phone Number Verification",
    "status": "success",
    "credits_charged": 1,
    "refunded": 0,
    "balance": 99,
    "result": {
      "name": "Customer Name",
      "summary": "phoneNumber: 0551234567 | status: success",
      "status": "success"
    },
    "message": "Verification completed."
  }
}

Verify Phone Number

POSThttps://yourdomain.com/wp-json/teknotify/v1/kyc/verify-phone

Checks phone number details using the KYC provider connected in the admin dashboard.

cURL example
curl -X POST "https://yourdomain.com/wp-json/teknotify/v1/kyc/verify-phone" \
  -H "Content-Type: application/json" \
  -H "X-TekNotify-API-Key: YOUR_KYC_API_KEY" \
  -d '{
    "phoneNumber": "0551234567"
  }'

Verify Ghana Card

POSThttps://yourdomain.com/wp-json/teknotify/v1/kyc/verify-ghanacard
Required fieldExample
idNumberGHA-123456789-0
surnameDoe
firstnamesJohn
genderMALE
dateOfBirth1990-01-15
cURL example
curl -X POST "https://yourdomain.com/wp-json/teknotify/v1/kyc/verify-ghanacard" \
  -H "Content-Type: application/json" \
  -H "X-TekNotify-API-Key: YOUR_KYC_API_KEY" \
  -d '{
    "idNumber": "GHA-123456789-0",
    "surname": "Doe",
    "firstnames": "John",
    "gender": "MALE",
    "dateOfBirth": "1990-01-15"
  }'

Enhanced Ghana Card / Face Verification

POSThttps://yourdomain.com/wp-json/teknotify/v1/kyc/verify-ghanacard-enhanced

Use this for Ghana Card verification with a base64 face image. The image must be sent as a base64 string.

cURL example
curl -X POST "https://yourdomain.com/wp-json/teknotify/v1/kyc/verify-ghanacard-enhanced" \
  -H "Content-Type: application/json" \
  -H "X-TekNotify-API-Key: YOUR_KYC_API_KEY" \
  -d '{
    "idNumber": "GHA-123456789-0",
    "base64Image": "iVBORw0KGgoAAAANS..."
  }'

Verify Mobile Money Account

POSThttps://yourdomain.com/wp-json/teknotify/v1/kyc/verify-momo

Use the customer’s MoMo number and provider channel.

FieldRequiredExample
phoneNumberYes0548215801
channelYesmtn-gh, vodafone-gh, tigo-gh
cURL example
curl -X POST "https://yourdomain.com/wp-json/teknotify/v1/kyc/verify-momo" \
  -H "Content-Type: application/json" \
  -H "X-TekNotify-API-Key: YOUR_KYC_API_KEY" \
  -d '{
    "phoneNumber": "0548215801",
    "channel": "mtn-gh"
  }'

Verify Bank Account

POSThttps://yourdomain.com/wp-json/teknotify/v1/kyc/verify-bank

Use this endpoint to verify bank account information using a bank account number and bank code.

cURL example
curl -X POST "https://yourdomain.com/wp-json/teknotify/v1/kyc/verify-bank" \
  -H "Content-Type: application/json" \
  -H "X-TekNotify-API-Key: YOUR_KYC_API_KEY" \
  -d '{
    "accountNumber": "1234567890",
    "bankCode": "300361"
  }'

Error Responses and Statuses

HTTP / CodeApplies toMeaningWhat to do
401KYCMissing or invalid API key.Confirm the key and header name.
403SMSInvalid SMS API key.Regenerate the SMS key from API Manager.
400 invalid_requestSMSRequired fields are missing.Send sender_id, message, and recipients.
400 invalid_senderSMSSender ID is not approved.Use an approved Sender ID only.
400 / 402 insufficient_creditsSMS / KYCThe account has insufficient credits.Top up credits before retrying.
409 duplicate_batchSMSThe same SMS batch was recently queued.Wait briefly or change the payload.
503 provider_key_missingKYCProvider API key is not configured by admin.Admin should set provider key in KYC settings.
Example error response
{
  "success": false,
  "message": "Insufficient credits. Please top up your account balance.",
  "code": "insufficient_credits"
}

Security Recommendations

Keep keys privateDo not put API keys in public frontend JavaScript or public GitHub repositories.
Use server-to-server callsCall these APIs from your backend, not directly from a public browser page.
Store referencesSave request references, status, and response data for reconciliation.
Handle failuresBuild clear retry logic for network errors, insufficient credits, and invalid payloads.