-1003.// 1 — PRIMARY — use this
https://www.isms.com.my/isms_send_all_id.php
// 2 — Mirror — backup only
https://smtpapi2.vocotext.com/isms_send_all_id.php
// 3 — Mirror — backup only
https://smtpapi.vocotext.com/isms_send_all_id.php
// 4 — Mirror — backup only
https://ww3.isms.com.my/isms_send_all_id.php
www.isms.com.my as your production endpoint. The other hosts are mirrors for failover only — switch to one automatically if the primary is unreachable, but do not point your integration at a mirror by default.isms_send_json.php) takes up to 50 recipients per call, each with its own message, and returns structured per-recipient results. Same credentials, same sender IDs, same whitelist.Imports System.Net.Http
Imports System.Collections.Generic
Module IsmsSender
' Reuse HttpClient — do not create per request
Private ReadOnly _client As New HttpClient()
Async Function SendSmsAsync(mobile As String, message As String) As Task(Of String)
Dim payload = New Dictionary(Of String, String) From {
{"un", "your_username"}, ' iSMS username
{"pwd", "your_password"}, ' iSMS password
{"dstno", mobile}, ' e.g. "601X-XXXXXXX"
{"msg", message},
{"type", "1"}, ' 1 = ASCII, 2 = Unicode
{"agreedterm", "YES"},
{"sendid", "MyBrand"} ' Optional, max 11 chars
}
Dim content = New FormUrlEncodedContent(payload)
Dim response = Await _client.PostAsync(
"https://www.isms.com.my/isms_send_all_id.php", content)
Return Await response.Content.ReadAsStringAsync()
End Function
Sub Main()
Dim result = SendSmsAsync("601X-XXXXXXX", "Hello from iSMS!").Result
If result.StartsWith("2000") Then
Dim trxId = result.Split(":"c)(1)
Console.WriteLine("SMS sent! Transaction ID: " & trxId)
Else
Console.WriteLine("Failed: " & result)
End If
End Sub
End Module2000 = SUCCESS:1143007207
// 1143007207 is the TRX_ID — store it
// to match delivery callbacks later-1000 UNKNOWN ERROR
-1001 AUTHENTICATION FAILED
-1002 ACCOUNT SUSPENDED / EXPIRED
-1003 IP NOT ALLOWED
-1004 INSUFFICIENT CREDITS
-1005 INVALID SMS TYPE
-1006 INVALID BODY LENGTH
-1007 INVALID HEX BODY
-1008 MISSING PARAMETER
-1009 INVALID MESSAGE CONTENT
-1010 MAX DESTINATION NUMBERS EXCEEDED
-1012 INVALID MESSAGE TYPE
-1013 INVALID TERM AGREEMENT2000 response confirms submission to the Telco SMSC only — not delivery to the handset. Malaysian telcos do not provide handset-level DLR by default. For confirmed Sent → Received → Read tracking, consider WhatsApp Business API.Register free, get your API credentials, and start sending in minutes.