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.
Quick Start
Replace https://yourdomain.com with your live website domain.
Authentication
Every protected API request requires an API key. Keep your key private and do not expose it inside public JavaScript code.
| Service | Header | Value | Note |
|---|---|---|---|
| Bulk SMS | X-TekNotify-API-Key | YOUR_SMS_API_KEY | Generated from the SMS API Manager. |
| KYC | X-TekNotify-API-Key | YOUR_KYC_API_KEY | Generated from the KYC page/API area. |
| KYC alternate | X-API-Key | YOUR_KYC_API_KEY | Accepted for KYC requests only. |
X-TekNotify-API-Key: YOUR_API_KEY
Bulk SMS API
Use this API to send SMS from your external app or website through TekNotify.
Send SMS
Request fields
| Field | Type | Required | Description |
|---|---|---|---|
sender_id | string | Yes | Your approved Sender ID, for example TEKNOTIFY. |
message | string | Yes | The SMS message body. |
recipients | array | Yes | List of recipient phone numbers. |
schedule_at | string | No | Optional scheduled date/time format: YYYY-MM-DD HH:MM:SS. |
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"
}'
{
"status": "success",
"batch_id": "tnbs-batch-...",
"message_ids": [123, 124],
"records_created": 2,
"queue_status": "awaiting",
"units_deducted": 2
}
Get SMS / Account Credit Balance
curl -X GET "https://yourdomain.com/wp-json/teknotify/v1/balance" \
-H "X-TekNotify-API-Key: YOUR_SMS_API_KEY"
{
"status": "success",
"balance": 860
}
Get Approved Sender IDs
curl -X GET "https://yourdomain.com/wp-json/teknotify/v1/senderids" \
-H "X-TekNotify-API-Key: YOUR_SMS_API_KEY"
{
"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.
General success 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
Checks phone number details using the KYC provider connected in the admin dashboard.
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
| Required field | Example |
|---|---|
idNumber | GHA-123456789-0 |
surname | Doe |
firstnames | John |
gender | MALE |
dateOfBirth | 1990-01-15 |
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
Use this for Ghana Card verification with a base64 face image. The image must be sent as a base64 string.
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
Use the customer’s MoMo number and provider channel.
| Field | Required | Example |
|---|---|---|
phoneNumber | Yes | 0548215801 |
channel | Yes | mtn-gh, vodafone-gh, tigo-gh |
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
Use this endpoint to verify bank account information using a bank account number and bank code.
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 / Code | Applies to | Meaning | What to do |
|---|---|---|---|
401 | KYC | Missing or invalid API key. | Confirm the key and header name. |
403 | SMS | Invalid SMS API key. | Regenerate the SMS key from API Manager. |
400 invalid_request | SMS | Required fields are missing. | Send sender_id, message, and recipients. |
400 invalid_sender | SMS | Sender ID is not approved. | Use an approved Sender ID only. |
400 / 402 insufficient_credits | SMS / KYC | The account has insufficient credits. | Top up credits before retrying. |
409 duplicate_batch | SMS | The same SMS batch was recently queued. | Wait briefly or change the payload. |
503 provider_key_missing | KYC | Provider API key is not configured by admin. | Admin should set provider key in KYC settings. |
{
"success": false,
"message": "Insufficient credits. Please top up your account balance.",
"code": "insufficient_credits"
}
Security Recommendations
TekNotify API Documentation — Bulk SMS and KYC Verification only. Phone Info / IMEI section has been removed.