🏠 Home ℹ️ About Us
📩 Contact Us 🔔 Notice
🔑 Log In 📝 Free Sign Up
HomeAPI & DevSend SMS with VB.net

Send SMS with 🔷 VB.net

Send SMS from your VB.NET application using HttpClient — modern async pattern, compatible with .NET 5+ and .NET Framework 4.6+.

VB.net · HttpClient HTTPS POST v2.1
⚠️
IP whitelist required. Every API request must originate from a whitelisted server IP. Email [email protected] to whitelist your IP before your first call — non-whitelisted requests are rejected with -1003.
ℹ️
You will also need to register a free iSMS account and purchase SMS credits. Full parameters, response codes and delivery callbacks are in the SMS API documentation.
API Endpoints
Classic HTTPS GET / POST — point your integration at the primary
// 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
ℹ️
Use 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.
💡
Sending different text to each recipient? The newer JSON API (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.
Send SMS — VB.net
VB.net · HttpClient PostAsync
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 Module
✅ Success
2000 = SUCCESS:1143007207
// 1143007207 is the TRX_ID — store it
// to match delivery callbacks later
❌ Error codes
-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 AGREEMENT
⚠️
Delivery status scope (Malaysia): a 2000 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.

Ready to Integrate?

Register free, get your API credentials, and start sending in minutes.

📱 SMS Coverage — Every Country We Reach Jump to a country's rate by first letter

A B C D E F G H I J K L M N O P Q R S T U V Y Z