SMSlenz මුල් පිටුව

WooCommerce සහ WordPress ඒකාබද්ධ කිරීම

smslenz.lk විසින් WooCommerce සඳහාම වූ ඇඩෝන් ප්ලගිනයක් ලබා දෙන බැවින්, ඔබේ WordPress වෙළඳසැලට SMS දැනුම්දීම් එක් කළ හැක. මිලදී ගැනීමේ සිදුවීම් සඳහා පාරිභෝගිකයන්ට ස්වයංක්‍රීය SMS යාවත්කාලීන යවා සෑම පියවරකදීම ඔවුන් දැනුවත් කරන්න.

SMSlenz for WooCommerce බාගත කර ඔබේ WordPress වෙළඳසැලෙන් අදම SMS දැනුම්දීම් යැවීම අරඹන්න.

WordPress සඳහා smslenz

REST API එන්ඩ්පොයින්ට් මාර්ගෝපදේශය

ඔබේ අභිරුචි සංවර්ධනය සමඟ SMSlenz.lk ඒකාබද්ධ කිරීමට අවශ්‍යද? අපගේ සෘජු API එන්ඩ්පොයින්ට් සඳහා සම්පූර්ණ මාර්ගෝපදේශයක් අපි ලබා දෙමු: ඔබේ යෙදුමෙන් ඒවා අමතා වහාම අපගේ SMS සේවා භාවිත කිරීම අරඹන්න.

අපගේ API එක PHP, JavaScript, Python, Java, C#, Ruby, Go සහ Node.js ඇතුළු සියලුම ප්‍රධාන ක්‍රමලේඛන භාෂාවලට සහාය දක්වයි. එය වෙබ් වේදිකාවක්, ඩෙස්ක්ටොප් මෘදුකාංගයක් හෝ ජංගම යෙදුමක් (Android හෝ iOS) වුවද, ඕනෑම ආකාරයක යෙදුමක් සමඟ ක්‍රියා කරයි.

smslenz.lk SMS ක්‍රියා සඳහා සෘජු එන්ඩ්පොයින්ට්

  1. SMS යවන්න
  2. තොග SMS යවන්න
  3. ගිණුමේ තත්ත්වය
  4. සම්බන්ධතාවය සුරකින්න
  5. ක්‍රෙඩිට් රීලෝඩ් කිරීම
  6. ගෙවීමේ තත්ත්වය

SMS යවන්න

POSTGET

සම්බන්ධතා අංකයකට SMS යැවීමට මෙම එන්ඩ්පොයින්ට් එක සෘජුවම භාවිත කරන්න.

ඉල්ලීම

URL: https://mail.smslenz.lk/api/send-sms

පරාමිති
යතුර අනිවාර්යයි අගය
user_id අනිවාර්යයි ඔබේ සැකසුම් පිටුවේ ඇති User ID.
api_key අනිවාර්යයි ඔබේ සැකසුම් පිටුවේ ඇති API key.
sender_id අනිවාර්යයි ඔබේ අනුමත Sender ID. පරීක්ෂා කිරීම සඳහා SMSlenzDEMO භාවිත කරන්න. මෙහි ලොකු/කුඩා අකුරු වෙනස සලකා බලයි.
contact අනිවාර්යයි ලබන්නා; +9476XXXXXXX ආකෘතියෙන් තිබිය යුතුය.
message අනිවාර්යයි පණිවිඩය. උපරිම: අක්ෂර 1500.
contact_name විකල්ප සම්බන්ධතාවය සමඟ සුරැකිය යුතු නම (උපරිම අක්ෂර 255). එය යොදන්නේ සම්බන්ධතාවය අලුත් නම් හෝ තවම නමක් නැති නම් පමණි, එබැවින් ඔබ dashboard එකේ සංස්කරණය කළ නම් කිසිවිටක උඩින් ලියැවෙන්නේ නැත.
නියැදි ඉල්ලීම් අන්තර්ගතය (POST · JSON)
JSON
{
    "user_id": "12",
    "api_key": "YOUR_API_KEY",
    "sender_id": "SMSlenzDEMO",
    "contact": "+9476XXXXXXX",
    "message": "Welcome to SMSlenz!",
    "contact_name": "Kamal"
}
නියැදි GET ඉල්ලීම් URL
URL
https://mail.smslenz.lk/api/send-sms?user_id=12&api_key=YOUR_API_KEY&sender_id=SMSlenzDEMO&contact=%2B9476XXXXXXX&message=Welcome%20to%20SMSlenz%21

Query අගයන් URL-encode කළ යුතුය — සම්බන්ධතා අංකයේ ඇති + ලකුණ %2B ලෙස යවන බව සලකන්න.

කේත උදාහරණ
cURL
curl -X POST "https://mail.smslenz.lk/api/send-sms" \
  -d "user_id=12" \
  -d "api_key=YOUR_API_KEY" \
  -d "sender_id=SMSlenzDEMO" \
  -d "contact=+9476XXXXXXX" \
  -d "message=Welcome to SMSlenz!"
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://mail.smslenz.lk/api/send-sms");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
    'user_id'   => '12',
    'api_key'   => 'YOUR_API_KEY',
    'sender_id' => 'SMSlenzDEMO',
    'contact'   => '+9476XXXXXXX',
    'message'   => 'Welcome to SMSlenz!',
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
JavaScript
fetch("https://mail.smslenz.lk/api/send-sms", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
        user_id: "12",
        api_key: "YOUR_API_KEY",
        sender_id: "SMSlenzDEMO",
        contact: "+9476XXXXXXX",
        message: "Welcome to SMSlenz!"
    })
})
    .then(res => res.json())
    .then(data => console.log(data))
    .catch(err => console.error(err));
Python
import requests

url = "https://mail.smslenz.lk/api/send-sms"
payload = {
    "user_id": "12",
    "api_key": "YOUR_API_KEY",
    "sender_id": "SMSlenzDEMO",
    "contact": "+9476XXXXXXX",
    "message": "Welcome to SMSlenz!"
}

response = requests.post(url, data=payload)
print(response.json())
ප්‍රතිචාරය

සාර්ථක උත්සාහයකදී ඔබට JSON ප්‍රතිචාරයක් ලැබෙනු ඇත.

Content-Type: application/json

අන්තර්ගතය:

JSON
{
    "success": true,
    "message": "SMS sent successfully",
    "data": {
        "status": "success",
        "campaign_id": 42,
        "message": "Welcome to SMSlenz!",
        "sender_id": "SMSlenzDEMO",
        "pages": 1,
        "recipient_number": "9475XXXXXXX",
        "sms_credit_balance": "2,513.95",
        "charged_from": "main"
    }
}

sms_credit_balance යනු sender ID එක ක්‍රෙඩිට් ලබා ගන්නා පූලයේ ඉතිරි ශේෂයයි: sender ID එකට සක්‍රිය ක්‍රෙඩිට් වෙන් කිරීමක් ඇත්නම් එහි වෙන් කළ ක්‍රෙඩිට්, නැතහොත් ඔබේ ප්‍රධාන ශේෂය. එය කුමක්දැයි charged_from මඟින් දැක්වේ (allocation හෝ main).

තොග SMS යවන්න

POST

සම්බන්ධතා අංක කිහිපයකට SMS යැවීමට මෙම එන්ඩ්පොයින්ට් එක සෘජුවම භාවිත කරන්න.

ඉල්ලීම

URL: https://mail.smslenz.lk/api/send-bulk-sms

පරාමිති
යතුර අනිවාර්යයි අගය
user_id අනිවාර්යයි ඔබේ සැකසුම් පිටුවේ ඇති User ID.
api_key අනිවාර්යයි ඔබේ සැකසුම් පිටුවේ ඇති API key.
sender_id අනිවාර්යයි ඔබේ අනුමත Sender ID. පරීක්ෂා කිරීම සඳහා SMSlenzDEMO භාවිත කරන්න. මෙහි ලොකු/කුඩා අකුරු වෙනස සලකා බලයි.
contacts අනිවාර්යයි ලබන්නන්ගේ අංක; array ආකෘතියෙන් තිබිය යුතුය
["+9476XXXXXXX","+9475XXXXXXX"].
message අනිවාර්යයි පණිවිඩය. උපරිම: අක්ෂර 1500.
නියැදි ඉල්ලීම් අන්තර්ගතය (POST · JSON)
JSON
{
    "user_id": "12",
    "api_key": "YOUR_API_KEY",
    "sender_id": "SMSlenzDEMO",
    "contacts": ["+9476XXXXXXX", "+9475XXXXXXX"],
    "message": "Welcome to bulk sms API!"
}

මෙම එන්ඩ්පොයින්ට් එක POST පමණක් පිළිගනී — අන්තර්ගතය JSON ලෙස (Content-Type: application/json) හෝ සාමාන්‍ය form fields ලෙස යවන්න.

කේත උදාහරණ
cURL
curl -X POST "https://mail.smslenz.lk/api/send-bulk-sms" \
  -H "Content-Type: application/json" \
  -d '{
    "user_id": "12",
    "api_key": "YOUR_API_KEY",
    "sender_id": "SMSlenzDEMO",
    "contacts": ["+9476XXXXXXX", "+9475XXXXXXX"],
    "message": "Welcome to bulk sms API!"
  }'
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://mail.smslenz.lk/api/send-bulk-sms");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'user_id'   => '12',
    'api_key'   => 'YOUR_API_KEY',
    'sender_id' => 'SMSlenzDEMO',
    'contacts'  => ['+9476XXXXXXX', '+9475XXXXXXX'],
    'message'   => 'Welcome to bulk sms API!',
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
JavaScript
fetch("https://mail.smslenz.lk/api/send-bulk-sms", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
        user_id: "12",
        api_key: "YOUR_API_KEY",
        sender_id: "SMSlenzDEMO",
        contacts: ["+9476XXXXXXX", "+9475XXXXXXX"],
        message: "Welcome to bulk sms API!"
    })
})
    .then(res => res.json())
    .then(data => console.log(data))
    .catch(err => console.error(err));
Python
import requests

url = "https://mail.smslenz.lk/api/send-bulk-sms"
payload = {
    "user_id": "12",
    "api_key": "YOUR_API_KEY",
    "sender_id": "SMSlenzDEMO",
    "contacts": ["+9476XXXXXXX", "+9475XXXXXXX"],
    "message": "Welcome to bulk sms API!"
}

response = requests.post(url, json=payload)
print(response.json())
ප්‍රතිචාරය

සාර්ථක උත්සාහයකදී ඔබට JSON ප්‍රතිචාරයක් ලැබෙනු ඇත.

Content-Type: application/json

අන්තර්ගතය:

JSON
{
    "success": true,
    "message": "SMS sent successfully",
    "data": {
        "status": "success",
        "campaign_id": 43,
        "message": "Welcome to bulk sms API!",
        "sender_id": "SMSlenzDEMO",
        "pages": 1,
        "no_of_recipients": 2,
        "sms_credit_balance": "2,512.77",
        "charged_from": "main"
    }
}

sms_credit_balance යනු sender ID එක ක්‍රෙඩිට් ලබා ගන්නා පූලයේ ඉතිරි ශේෂයයි: sender ID එකට සක්‍රිය ක්‍රෙඩිට් වෙන් කිරීමක් ඇත්නම් එහි වෙන් කළ ක්‍රෙඩිට්, නැතහොත් ඔබේ ප්‍රධාන ශේෂය. එය කුමක්දැයි charged_from මඟින් දැක්වේ (allocation හෝ main).

ගිණුමේ තත්ත්වය

POSTGET

ඔබේ ගිණුමේ තත්ත්වය පරීක්ෂා කිරීමට මෙම එන්ඩ්පොයින්ට් එක භාවිත කරන්න.

ඉල්ලීම

URL: https://mail.smslenz.lk/api/account-status

පරාමිති
යතුර අනිවාර්යයි අගය
user_id අනිවාර්යයි ඔබේ සැකසුම් පිටුවේ ඇති User ID.
api_key අනිවාර්යයි ඔබේ සැකසුම් පිටුවේ ඇති API key.
නියැදි ඉල්ලීම් අන්තර්ගතය (POST · JSON)
JSON
{
    "user_id": "12",
    "api_key": "YOUR_API_KEY"
}
නියැදි GET ඉල්ලීම් URL
URL
https://mail.smslenz.lk/api/account-status?user_id=12&api_key=YOUR_API_KEY
කේත උදාහරණ
cURL
curl -X POST "https://mail.smslenz.lk/api/account-status" \
  -d "user_id=12" \
  -d "api_key=YOUR_API_KEY"
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://mail.smslenz.lk/api/account-status");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
    'user_id' => '12',
    'api_key' => 'YOUR_API_KEY',
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
JavaScript
fetch("https://mail.smslenz.lk/api/account-status", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
        user_id: "12",
        api_key: "YOUR_API_KEY"
    })
})
    .then(res => res.json())
    .then(data => console.log(data))
    .catch(err => console.error(err));
Python
import requests

url = "https://mail.smslenz.lk/api/account-status"
payload = {
    "user_id": "12",
    "api_key": "YOUR_API_KEY"
}

response = requests.post(url, data=payload)
print(response.json())
ප්‍රතිචාරය

සාර්ථක උත්සාහයකදී ඔබට JSON ප්‍රතිචාරයක් ලැබෙනු ඇත.

Content-Type: application/json

අන්තර්ගතය:

JSON
{
    "success": true,
    "message": "Account status retrieved successfully",
    "data": {
        "status": "active",
        "sms_credit_balance": "2,515.72",
        "allocated_credit_total": "1,500.00",
        "sender_id_balances": [
            {
                "sender_id": "YOURBRAND",
                "allocated_balance": "1,500.00",
                "active": true
            }
        ],
        "active_plan": "Pay As You Go",
        "total_contacts": 3,115,
        "total_sender_ids": 6
    }
}

sms_credit_balance යනු ඔබේ ප්‍රධාන ශේෂයයි. sender_id_balances මඟින් ක්‍රෙඩිට් වෙන් කිරීමක් ඇති sender ID ලැයිස්තුගත කරයි; active වෙන් කිරීමක් ඇති sender ID එකකින් අය කරනු ලබන්නේ එහි වෙන් කළ ශේෂයෙන් පමණි.

සම්බන්ධතාවය සුරකින්න

POST

SMS එකක් නොයවා ඔබේ ගිණුමට සම්බන්ධතාවයක් එක් කිරීමට මෙම endpoint එක භාවිත කරන්න. දැනටමත් ඇති අංකයක් සුරැකීම ආරක්ෂිතයි: ඔබට පවතින සම්බන්ධතාවය නැවත ලැබේ.

ඉල්ලීම

URL: https://mail.smslenz.lk/api/save-contact

පරාමිති
යතුර අනිවාර්යයි අගය
user_id අනිවාර්යයි ඔබේ සැකසුම් පිටුවේ ඇති User ID.
api_key අනිවාර්යයි ඔබේ සැකසුම් පිටුවේ ඇති API key.
contact අනිවාර්යයි ශ්‍රී ලංකාවේ ජංගම දුරකථන අංකයක්, උදා. +9476XXXXXXX හෝ 076XXXXXXX.
name විකල්ප සම්බන්ධතාවයේ නම (උපරිම අක්ෂර 255). එය යොදන්නේ සම්බන්ධතාවය අලුත් නම් හෝ තවම නමක් නැති නම් පමණි.
group විකල්ප සම්බන්ධතා කණ්ඩායමක නමක් (උපරිම අක්ෂර 255). සම්බන්ධතාවය එයට එක් කෙරේ; ඔබට එම කණ්ඩායම තවම නැත්නම් එය සාදනු ලැබේ. සෑම සම්බන්ධතාවයක්ම "All Contacts" වෙතද එක් කෙරේ.
නියැදි ඉල්ලීම් අන්තර්ගතය (POST · JSON)
JSON
{
    "user_id": "12",
    "api_key": "YOUR_API_KEY",
    "contact": "+9476XXXXXXX",
    "name": "Kamal Perera",
    "group": "VIP Customers"
}
කේත උදාහරණ
cURL
curl -X POST "https://mail.smslenz.lk/api/save-contact" \
  -d "user_id=12" \
  -d "api_key=YOUR_API_KEY" \
  --data-urlencode "contact=+9476XXXXXXX" \
  --data-urlencode "name=Kamal Perera" \
  --data-urlencode "group=VIP Customers"
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://mail.smslenz.lk/api/save-contact");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
    'user_id' => '12',
    'api_key' => 'YOUR_API_KEY',
    'contact' => '+9476XXXXXXX',
    'name'    => 'Kamal Perera',
    'group'   => 'VIP Customers',
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
JavaScript
fetch("https://mail.smslenz.lk/api/save-contact", {
    method: "POST",
    headers: { "Content-Type": "application/json", "Accept": "application/json" },
    body: JSON.stringify({
        user_id: "12",
        api_key: "YOUR_API_KEY",
        contact: "+9476XXXXXXX",
        name: "Kamal Perera",
        group: "VIP Customers"
    })
})
    .then(res => res.json())
    .then(data => console.log(data))
    .catch(err => console.error(err));
Python
import requests

url = "https://mail.smslenz.lk/api/save-contact"
payload = {
    "user_id": "12",
    "api_key": "YOUR_API_KEY",
    "contact": "+9476XXXXXXX",
    "name": "Kamal Perera",
    "group": "VIP Customers"
}

response = requests.post(url, data=payload)
print(response.json())
ප්‍රතිචාරය

නව සම්බන්ධතාවයක් සෑදූ විට HTTP 201, අංකය දැනටමත් ඔබේ සම්බන්ධතාවල තිබූ විට 200.

Content-Type: application/json

අන්තර්ගතය:

JSON
{
    "success": true,
    "message": "Contact saved successfully",
    "data": {
        "contact_id": 1024,
        "name": "Kamal Perera",
        "phone": "+9476XXXXXXX",
        "created": true,
        "groups": ["All Contacts", "VIP Customers"]
    }
}

groups මඟින් සම්බන්ධතාවය අයත් සියලු කණ්ඩායම් පෙන්වයි.

දෝෂ
HTTP තත්ත්වය තේරුම
400 සම්බන්ධතා අංකයේ ආකෘතිය වලංගු නැත.
401 වලංගු නොවන API key හෝ user ID.
403 ඔබේ ගිණුම අත්හිටුවා ඇත.
422 පරාමිතියක් අස්ථානගත වී හෝ වලංගු නැත. කුමක්දැයි errors ක්ෂේත්‍රය පවසයි.
429 ඉල්ලීම් වැඩියි. කරුණාකර වේගය අඩු කරන්න.

ක්‍රෙඩිට් රීලෝඩ් කිරීම

POST

ඔබේම පද්ධතියෙන් ඔබේ SMS ක්‍රෙඩිට් රීලෝඩ් කිරීමට මෙම එන්ඩ්පොයින්ට් එක භාවිත කරන්න. එය ගෙවීම් සබැඳියක් සාදයි; ගෙවන ඕනෑම අයෙක් (ඔබ, ඔබේ කාර්ය මණ්ඩලය හෝ ඔබේ පාරිභෝගිකයා) එය විවෘත කර PayHere හි ආරක්ෂිත checkout හරහා කාඩ්පතෙන් ගෙවයි. කාඩ්පත් විස්තර කිසිවිටෙක ඔබේ හෝ අපගේ පද්ධතිය හරහා ගමන් නොකරයි.

එය ක්‍රියා කරන ආකාරය
  1. මෙම එන්ඩ්පොයින්ට් එක අමතන්න. ඔබට order_id එකක් සහ payment_url එකක් ලැබේ.
  2. payment_url එක බ්‍රවුසරයක විවෘත කරන්න, නැතහොත් ඔබේ පරිශීලකයා එයට යොමු කරන්න. එය ඔවුන්ව කාඩ් checkout වෙත ගෙන යයි. SMSlenz පිවිසුමක් අවශ්‍ය නැත.
  3. ප්‍රතිඵලය ලබා ගන්න: callback_url එකක් ලබා දුන් විට අපි එය ඔබේ සේවාදායකයට POST කරන්නෙමු (ගෙවීම් කෝල්බැක් බලන්න), නැතහොත් ගෙවීමේ තත්ත්වය පරීක්ෂා කරන්න. ගෙවීම සම්පූර්ණ වූ වහාම ක්‍රෙඩිට් ඔබේ ගිණුමට එකතු වේ.
ඉල්ලීම

URL: https://mail.smslenz.lk/api/reload-credit

පරාමිති
යතුර අනිවාර්යයි අගය
user_id අනිවාර්යයි ඔබේ සැකසුම් පිටුවේ ඇති User ID.
api_key අනිවාර්යයි ඔබේ සැකසුම් පිටුවේ ඇති API key.
amount අනිවාර්යයි රීලෝඩ් කළ යුතු මුදල රුපියල්වලින්, 1000 සහ 100000 අතර පූර්ණ සංඛ්‍යාවක් ලෙස.
sender_id විකල්ප ඔබේ අනුමත Sender ID වලින් එකක්. ගෙවූ පසු, මුළු මුදලම ඔබේ ප්‍රධාන ශේෂය වෙනුවට මෙම sender ID එකට වෙන් කෙරේ. ලොකු/කුඩා අකුරු වෙනස සලකා බලයි.
client_reference විකල්ප ඉන්වොයිස් අංකයක් වැනි ඔබේම යොමුවක් (උපරිම අක්ෂර 64). එම අගයම නැවත යැවූ විට නව ගෙවීම් සබැඳියක් සෑදීම වෙනුවට පවතින සබැඳිය ලැබෙන බැවින්, ඉල්ලීමක් නැවත උත්සාහ කිරීම ආරක්ෂිතයි.
return_url විකල්ප ගෙවීමෙන් හෝ අවලංගු කිරීමෙන් පසු ගෙවන්නා ආපසු යැවිය යුතු https:// පිටුවක්. එය නොමැති නම්, ඔවුන්ට SMSlenz තහවුරු කිරීමේ පිටුවක් පෙනේ.
callback_url විකල්ප ඔබේ සේවාදායකයේ ඇති පොදු https:// URL එකක්. මෙම ගෙවීම ගෙවූ විට හෝ එහි සබැඳිය කල් ඉකුත් වූ විට අපි ප්‍රතිඵලය එයට POST කරන්නෙමු. ගෙවීම් කෝල්බැක් බලන්න.
නියැදි ඉල්ලීම් අන්තර්ගතය (POST · JSON)
JSON
{
    "user_id": "12",
    "api_key": "YOUR_API_KEY",
    "amount": 5000,
    "sender_id": "YOURBRAND",
    "client_reference": "INV-1001",
    "return_url": "https://example.com/payment-complete",
    "callback_url": "https://example.com/smslenz-callback"
}

මෙම එන්ඩ්පොයින්ට් එක POST පමණක් පිළිගනී — අන්තර්ගතය JSON ලෙස (Content-Type: application/json) හෝ සාමාන්‍ය form fields ලෙස යවන්න.

කේත උදාහරණ
cURL
curl -X POST "https://mail.smslenz.lk/api/reload-credit" \
  -H "Content-Type: application/json" \
  -d '{
    "user_id": "12",
    "api_key": "YOUR_API_KEY",
    "amount": 5000,
    "client_reference": "INV-1001",
    "callback_url": "https://example.com/smslenz-callback"
  }'
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://mail.smslenz.lk/api/reload-credit");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'user_id'          => '12',
    'api_key'          => 'YOUR_API_KEY',
    'amount'           => 5000,
    'client_reference' => 'INV-1001',
    'callback_url'     => 'https://example.com/smslenz-callback',
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

// Save $response['data']['order_id'], then send the payer to checkout:
header('Location: ' . $response['data']['payment_url']);
JavaScript
fetch("https://mail.smslenz.lk/api/reload-credit", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
        user_id: "12",
        api_key: "YOUR_API_KEY",
        amount: 5000,
        client_reference: "INV-1001",
        callback_url: "https://example.com/smslenz-callback"
    })
})
    .then(res => res.json())
    .then(data => {
        // Save data.data.order_id, then open checkout
        window.location.href = data.data.payment_url;
    })
    .catch(err => console.error(err));
Python
import requests

url = "https://mail.smslenz.lk/api/reload-credit"
payload = {
    "user_id": "12",
    "api_key": "YOUR_API_KEY",
    "amount": 5000,
    "client_reference": "INV-1001",
    "callback_url": "https://example.com/smslenz-callback"
}

data = requests.post(url, json=payload).json()
print(data["data"]["order_id"], data["data"]["payment_url"])
ප්‍රතිචාරය

නව සබැඳියක් සෑදූ විට 201 තත්ත්වය සමඟ, නැතහොත් client_reference පවතින එකක් හා ගැළපෙන විට 200 සමඟ ඔබට JSON ප්‍රතිචාරයක් ලැබේ.

Content-Type: application/json

අන්තර්ගතය:

JSON
{
    "success": true,
    "message": "Payment link created",
    "data": {
        "order_id": "PRU3FTX7HUJP8RAHY4",
        "amount": "5,000.00",
        "status": "pending",
        "last_attempt": null,
        "client_reference": "INV-1001",
        "sender_id": "YOURBRAND",
        "allocation_status": null,
        "callback_url": "https://example.com/smslenz-callback",
        "expires_at": "2026-10-08T15:30:00+05:30",
        "paid_at": null,
        "payment_url": "https://mail.smslenz.lk/pay/PRU3FTX7HUJP8RAHY4?signature=3f9c…"
    }
}
  • payment_url එක මිනිත්තු 60 ක් (expires_at දක්වා) ක්‍රියාත්මක වේ. ගෙවීමක් අවලංගු කළහොත් හෝ ප්‍රතික්ෂේප වුවහොත්, නැවත උත්සාහ කිරීමට එම සබැඳියම නැවත විවෘත කළ හැක.
  • return_url එකක් ඇති විට, ගෙවන්නා ?order_id=…&status=… එකතු කර එයට ආපසු යවනු ලැබේ. එය ඉඟියක් ලෙස පමණක් සලකන්න: ඒ මත ක්‍රියා කිරීමට පෙර ඔබේ කෝල්බැක් හෝ ගෙවීමේ තත්ත්වය මත රඳා පවතින්න.
දෝෂ
HTTP තත්ත්වය තේරුම
401 වලංගු නොවන API key හෝ user ID.
403 ඔබේ ගිණුම අත්හිටුවා ඇත.
409 client_reference එක දැනටමත් වෙනත් මුදලක් හෝ sender ID එකක් සඳහා භාවිත කර ඇත.
422 පරාමිතියක් වලංගු නැත, ඔබේ ගිණුමට සක්‍රිය පැකේජයක් නැත, නැතහොත් sender ID එකට ක්‍රෙඩිට් ලැබිය නොහැක. කුමක්දැයි message ක්ෂේත්‍රයේ දැක්වේ.
429 ඉල්ලීම් වැඩිය. ඔබට මිනිත්තුවකට ගෙවීම් සබැඳි 10ක් දක්වා සෑදිය හැක.

ගෙවීමේ තත්ත්වය

POST

ක්‍රෙඩිට් රීලෝඩ් ගෙවීමක් සම්පූර්ණ වී ඇත්දැයි පරීක්ෂා කිරීමට මෙම එන්ඩ්පොයින්ට් එක භාවිත කරන්න. ඔබ callback_url එකක් භාවිත නොකරන්නේ නම්, ගෙවන්නා checkout වෙතින් ආපසු පැමිණි පසු පරීක්ෂා කර, තත්ත්වය paid හෝ expired වන තෙක් තත්පර කිහිපයකට වරක් පරීක්ෂා කරන්න.

ඉල්ලීම

URL: https://mail.smslenz.lk/api/payment-status

පරාමිති
යතුර අනිවාර්යයි අගය
user_id අනිවාර්යයි ඔබේ සැකසුම් පිටුවේ ඇති User ID.
api_key අනිවාර්යයි ඔබේ සැකසුම් පිටුවේ ඇති API key.
order_id අනිවාර්යයි ක්‍රෙඩිට් රීලෝඩ් මඟින් ලැබුණු order_id එක.
නියැදි ඉල්ලීම් අන්තර්ගතය (POST · JSON)
JSON
{
    "user_id": "12",
    "api_key": "YOUR_API_KEY",
    "order_id": "PRU3FTX7HUJP8RAHY4"
}
කේත උදාහරණ
cURL
curl -X POST "https://mail.smslenz.lk/api/payment-status" \
  -d "user_id=12" \
  -d "api_key=YOUR_API_KEY" \
  -d "order_id=PRU3FTX7HUJP8RAHY4"
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://mail.smslenz.lk/api/payment-status");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
    'user_id'  => '12',
    'api_key'  => 'YOUR_API_KEY',
    'order_id' => 'PRU3FTX7HUJP8RAHY4',
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

if ($response['data']['status'] === 'paid') {
    // Credit has been added to your account
}
JavaScript
fetch("https://mail.smslenz.lk/api/payment-status", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
        user_id: "12",
        api_key: "YOUR_API_KEY",
        order_id: "PRU3FTX7HUJP8RAHY4"
    })
})
    .then(res => res.json())
    .then(data => console.log(data.data.status))
    .catch(err => console.error(err));
Python
import requests

url = "https://mail.smslenz.lk/api/payment-status"
payload = {
    "user_id": "12",
    "api_key": "YOUR_API_KEY",
    "order_id": "PRU3FTX7HUJP8RAHY4"
}

response = requests.post(url, data=payload)
print(response.json()["data"]["status"])
ප්‍රතිචාරය

සාර්ථක උත්සාහයකදී ඔබට JSON ප්‍රතිචාරයක් ලැබෙනු ඇත.

Content-Type: application/json

අන්තර්ගතය:

JSON
{
    "success": true,
    "message": "Payment status retrieved successfully",
    "data": {
        "order_id": "PRU3FTX7HUJP8RAHY4",
        "amount": "5,000.00",
        "status": "paid",
        "last_attempt": null,
        "client_reference": "INV-1001",
        "sender_id": "YOURBRAND",
        "allocation_status": "allocated",
        "callback_url": "https://example.com/smslenz-callback",
        "expires_at": "2026-10-08T15:30:00+05:30",
        "paid_at": "2026-10-08T14:42:10+05:30",
        "callback_status": "delivered",
        "sms_credit_balance": "2,515.72",
        "sender_id_balance": "6,500.00"
    }
}
ක්ෂේත්‍රය තේරුම
status pending (තවම ගෙවා නැත), paid (ක්‍රෙඩිට් එකතු කළා), හෝ expired (සබැඳිය නොගෙවා කල් ඉකුත් විය — අලුත් එකක් සාදන්න).
last_attempt pending අතරතුර: ගෙවන්නාගේ අවසන් උත්සාහය සාර්ථක නොවූයේ නම් cancelled හෝ failed, නැතහොත් null.
allocation_status sender_id එකක් ලබා දී ඇති විට: allocated, නැතහොත් ගෙවීම සම්පූර්ණ වන විට sender ID එකට ක්‍රෙඩිට් ලැබිය නොහැකි වූයේ නම් skipped (ක්‍රෙඩිට් ඒ වෙනුවට ඔබේ ප්‍රධාන ශේෂයට ගියේය).
callback_status callback_url එකක් ලබා දී ඇති විට: pending (යවමින් හෝ නැවත උත්සාහ කරමින්), delivered, හෝ failed (අවසන් උත්සාහයෙන් පසු නතර කළා). යැවීමට යමක් ඇති වන තෙක් null.
sms_credit_balance ඔබේ වත්මන් ප්‍රධාන ශේෂය.
sender_id_balance sender_id එකක් ලබා දී ඇති විට පමණි: එම sender ID එකේ වත්මන් වෙන් කළ ශේෂය.

නොදන්නා order ID සහ වෙනත් ගිණුමකට අයත් ඇණවුම් සඳහා 404 ලැබේ.

ගෙවීම් කෝල්බැක්

POST

ක්‍රෙඩිට් රීලෝඩ් වෙත callback_url එකක් ලබා දෙන්න, එම ගෙවීම ගෙවූ විට හෝ එහි සබැඳිය කල් ඉකුත් වූ විට අපි ප්‍රතිඵලය ඔබේ සේවාදායකයට POST කරන්නෙමු, එබැවින් ඔබට ගෙවීමේ තත්ත්වය නැවත නැවත පරීක්ෂා කිරීමට අවශ්‍ය නැත. සෑම ගෙවීමකටම වෙනස් callback_url එකක් භාවිත කළ හැක.

සිදුවීම්
සිදුවීම යවන්නේ කවදාද
payment.paid ගෙවීම සම්පූර්ණ වී ක්‍රෙඩිට් එකතු කළා (හෝ වෙන් කළා).
payment.expired ගෙවීම් සබැඳිය නොගෙවා කල් ඉකුත් විය.
අප යවන දේ

JSON අන්තර්ගතයක් (Content-Type: application/json) සහ මෙම headers සහිත POST ඉල්ලීමක්:

Header අගය
X-SMSlenz-Event සිදුවීම, උදා. payment.paid.
X-SMSlenz-Event-Id සෑම සිදුවීමකටම අනන්‍යයි. එකම සිදුවීම නැවත යවන විට එයම භාවිත වේ.
X-SMSlenz-Signature t=<unix timestamp>,v1=<signature> — පහත කෝල්බැක් එකක් තහවුරු කිරීම බලන්න.
JSON
{
    "event": "payment.paid",
    "event_id": "evt_01k6ztg3m8q2v7r4c1x9n5b0wd",
    "created_at": "2026-10-08T14:42:11+05:30",
    "data": {
        "order_id": "PRU3FTX7HUJP8RAHY4",
        "amount": "5,000.00",
        "status": "paid",
        "last_attempt": null,
        "client_reference": "INV-1001",
        "sender_id": "YOURBRAND",
        "allocation_status": "allocated",
        "callback_url": "https://example.com/smslenz-callback",
        "expires_at": "2026-10-08T15:30:00+05:30",
        "paid_at": "2026-10-08T14:42:10+05:30",
        "sms_credit_balance": "2,515.72",
        "sender_id_balance": "6,500.00"
    }
}

data හි ගෙවීමේ තත්ත්වය ප්‍රතිචාරයේ ඇති ක්ෂේත්‍රම ඇත.

ප්‍රතිචාර දැක්වීම
  • තත්පර 10ක් ඇතුළත ඕනෑම 2xx තත්ත්වයකින් පිළිතුරු දෙන්න. කාලය ගත වන වැඩ පිළිතුරු දීමෙන් පසු කරන්න.
  • වෙනත් ඕනෑම ප්‍රතිචාරයක් මිනිත්තු 1, මිනිත්තු 5, මිනිත්තු 30, පැය 2 සහ පැය 6 කට පසු නැවත උත්සාහ කෙරේ, ඉන්පසු අපි නවත්වමු. Redirects අනුගමනය නොකෙරේ.
  • එකම සිදුවීම එක් වරකට වඩා ලැබිය හැක. සෑම event_id එකක්ම එක් වරක් පමණක් සකසන්න.
  • ගෙවීමේ තත්ත්වය සැමවිටම නිවැරදි තොරතුරු මූලාශ්‍රය වන බැවින්, කෝල්බැක් එකක් නොලැබුණත් ඔබට එය පරීක්ෂා කළ හැක.
කෝල්බැක් එකක් තහවුරු කිරීම

v1 අත්සන යනු ඔබේ API key එක යතුර ලෙස යොදා {t}.{raw request body} හි HMAC-SHA256 අගයයි. එය ඔබම ගණනය කර සසඳන්න; t මිනිත්තු 5කට වඩා පැරණි කෝල්බැක් ද ප්‍රතික්ෂේප කරන්න. ඔබ API key එක අලුත් කළහොත්, ඉන් පසු යවන කෝල්බැක් නව key එකෙන් අත්සන් කෙරේ.

PHP
<?php
$body = file_get_contents('php://input');
parse_str(str_replace(',', '&', $_SERVER['HTTP_X_SMSLENZ_SIGNATURE'] ?? ''), $sig);

$expected = hash_hmac('sha256', ($sig['t'] ?? '') . '.' . $body, 'YOUR_API_KEY');

if (! hash_equals($expected, $sig['v1'] ?? '') || abs(time() - (int) ($sig['t'] ?? 0)) > 300) {
    http_response_code(400);
    exit;
}

$event = json_decode($body, true);
// Skip $event['event_id'] if you've already processed it, then:
if ($event['event'] === 'payment.paid') {
    // $event['data']['order_id'] is paid
}

http_response_code(200);
Node.js
const crypto = require("crypto");
const express = require("express");
const app = express();

// Use the raw body: the signature covers the exact bytes we sent.
app.post("/smslenz-callback", express.raw({ type: "application/json" }), (req, res) => {
    const sig = Object.fromEntries(
        (req.get("X-SMSlenz-Signature") || "").split(",").map(part => part.split("="))
    );
    const expected = crypto.createHmac("sha256", "YOUR_API_KEY")
        .update(`${sig.t}.${req.body}`)
        .digest("hex");

    const valid = sig.v1 && sig.v1.length === expected.length
        && crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(sig.v1))
        && Math.abs(Date.now() / 1000 - Number(sig.t)) <= 300;
    if (!valid) return res.sendStatus(400);

    const event = JSON.parse(req.body);
    // Skip event.event_id if you've already processed it, then handle event.event
    res.sendStatus(200);
});
Python
import hashlib, hmac, json, time
from flask import Flask, abort, request

app = Flask(__name__)

@app.post("/smslenz-callback")
def smslenz_callback():
    body = request.get_data()  # raw bytes, exactly as sent
    sig = dict(part.split("=", 1) for part in request.headers.get("X-SMSlenz-Signature", "").split(",") if "=" in part)

    expected = hmac.new(b"YOUR_API_KEY", f"{sig.get('t')}.".encode() + body, hashlib.sha256).hexdigest()
    if not hmac.compare_digest(expected, sig.get("v1", "")) or abs(time.time() - int(sig.get("t", 0))) > 300:
        abort(400)

    event = json.loads(body)
    # Skip event["event_id"] if you've already processed it, then handle event["event"]
    return "", 200

ඔබේ user ID සහ API key එක API සැකසුම් පිටුවේ ඇත.

යමක් අඩුයිද? අප අමතා අපට දන්වන්න. ඒකාබද්ධ කිරීම් සඳහා උදව් කිරීමට අපි සැමවිටම සතුටින් සිටිමු.

ඒකාබද්ධ කිරීම්

smslenz PHP ඒකාබද්ධ කිරීම smslenz WooCommerce ඒකාබද්ධ කිරීම smslenz Node.js ඒකාබද්ධ කිරීම smslenz Zapier ඒකාබද්ධ කිරීම smslenz Java ඒකාබද්ධ කිරීම smslenz Python ඒකාබද්ධ කිරීම smslenz C# ඒකාබද්ධ කිරීම