WooCommerce & WordPress ஒருங்கிணைப்பு
smslenz.lk ஒரு பிரத்யேக WooCommerce செருகுநிரலை வழங்குகிறது, எனவே உங்கள் WordPress கடையில் SMS அறிவிப்புகளைச் சேர்க்கலாம். கொள்முதல் நிகழ்வுகளுக்கு வாடிக்கையாளர்களுக்குத் தானியங்கி SMS புதுப்பிப்புகளை அனுப்பி, ஒவ்வொரு கட்டத்திலும் அவர்களுக்குத் தகவல் தெரிவியுங்கள்.
SMSlenz for WooCommerce-ஐப் பதிவிறக்கி, உங்கள் WordPress கடையிலிருந்து இன்றே SMS அறிவிப்புகளை அனுப்பத் தொடங்குங்கள்.
REST API எண்ட்பாயிண்ட் வழிகாட்டி
உங்கள் தனிப்பயன் மென்பொருளுடன் SMSlenz.lk-ஐ ஒருங்கிணைக்க வேண்டுமா? எங்கள் நேரடி API எண்ட்பாயிண்ட்களுக்கான முழுமையான வழிகாட்டியை வழங்குகிறோம்: அவற்றை உங்கள் பயன்பாட்டிலிருந்து அழைத்து உடனடியாக எங்கள் SMS சேவைகளைப் பயன்படுத்தத் தொடங்குங்கள்.
எங்கள் API PHP, JavaScript, Python, Java, C#, Ruby, Go மற்றும் Node.js உட்பட அனைத்து முக்கிய நிரலாக்க மொழிகளையும் ஆதரிக்கிறது. இணையத் தளம், டெஸ்க்டாப் மென்பொருள் அல்லது மொபைல் பயன்பாடு (Android அல்லது iOS) என எந்த வகைப் பயன்பாட்டுடனும் இது செயல்படும்.
smslenz.lk SMS செயல்களுக்கான நேரடி எண்ட்பாயிண்ட்கள்
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 எழுத்துகள்). தொடர்பு புதியதாக இருந்தால் அல்லது இன்னும் பெயர் இல்லாவிட்டால் மட்டுமே இது பயன்படுத்தப்படும்; எனவே உங்கள் டாஷ்போர்டில் நீங்கள் திருத்திய பெயர்கள் ஒருபோதும் மாற்றப்படாது. |
மாதிரிக் கோரிக்கை உள்ளடக்கம் (POST · JSON)
{
"user_id": "12",
"api_key": "YOUR_API_KEY",
"sender_id": "SMSlenzDEMO",
"contact": "+9476XXXXXXX",
"message": "Welcome to SMSlenz!",
"contact_name": "Kamal"
}
மாதிரி GET கோரிக்கை 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 -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
$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;
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));
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
உள்ளடக்கம்:
{
"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)
{
"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 -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
$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;
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));
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
உள்ளடக்கம்:
{
"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)
{
"user_id": "12",
"api_key": "YOUR_API_KEY"
}
மாதிரி GET கோரிக்கை URL
https://mail.smslenz.lk/api/account-status?user_id=12&api_key=YOUR_API_KEY
குறியீட்டு எடுத்துக்காட்டுகள்
curl -X POST "https://mail.smslenz.lk/api/account-status" \
-d "user_id=12" \
-d "api_key=YOUR_API_KEY"
<?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;
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));
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
உள்ளடக்கம்:
{
"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-க்கு அதன் ஒதுக்கப்பட்ட இருப்பிலிருந்து மட்டுமே கட்டணம் வசூலிக்கப்படும்.
தொடர்பைச் சேமி
POSTSMS அனுப்பாமல் உங்கள் கணக்கில் ஒரு தொடர்பைச் சேர்க்க இந்த 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)
{
"user_id": "12",
"api_key": "YOUR_API_KEY",
"contact": "+9476XXXXXXX",
"name": "Kamal Perera",
"group": "VIP Customers"
}
குறியீட்டு எடுத்துக்காட்டுகள்
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
$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;
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));
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
உள்ளடக்கம்:
{
"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-இல் அட்டை மூலம் செலுத்துவார். அட்டை விவரங்கள் உங்கள் அல்லது எங்கள் அமைப்பின் வழியாகச் செல்வதில்லை.
இது எவ்வாறு செயல்படுகிறது
- இந்த எண்ட்பாயிண்டை அழையுங்கள். உங்களுக்கு ஒரு
order_idமற்றும் ஒருpayment_urlகிடைக்கும். payment_url-ஐ உலாவியில் திறக்கவும், அல்லது உங்கள் பயனரை அதற்குத் திருப்பிவிடவும். அது அவர்களை அட்டை checkout-க்கு அழைத்துச் செல்லும். SMSlenz உள்நுழைவு தேவையில்லை.- முடிவைப் பெறுங்கள்:
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)
{
"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 -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
$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']);
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));
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
உள்ளடக்கம்:
{
"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_url60 நிமிடங்களுக்கு (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)
{
"user_id": "12",
"api_key": "YOUR_API_KEY",
"order_id": "PRU3FTX7HUJP8RAHY4"
}
குறியீட்டு எடுத்துக்காட்டுகள்
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
$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
}
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));
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
உள்ளடக்கம்:
{
"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> — கீழே உள்ள கால்பேக்கைச் சரிபார்த்தல் பார்க்கவும். |
{
"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
$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);
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);
});
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 அமைப்புகள் பக்கத்தில் காணலாம்.
ஏதேனும் குறைவாக உள்ளதா? எங்களைத் தொடர்பு கொண்டு தெரியப்படுத்துங்கள். ஒருங்கிணைப்புகளுக்கு உதவ நாங்கள் எப்போதும் மகிழ்ச்சியடைகிறோம்.