<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Gurrom Software</title>
    <description>The latest articles on DEV Community by Gurrom Software (@gurrom_software).</description>
    <link>https://dev.to/gurrom_software</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3886054%2F57f0b18d-173d-418a-9d6d-13b8ab3c8065.jpg</url>
      <title>DEV Community: Gurrom Software</title>
      <link>https://dev.to/gurrom_software</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gurrom_software"/>
    <language>en</language>
    <item>
      <title>How to Send SMS in South Africa Using a Simple REST API (C# Example)</title>
      <dc:creator>Gurrom Software</dc:creator>
      <pubDate>Sat, 18 Apr 2026 13:09:20 +0000</pubDate>
      <link>https://dev.to/gurrom_software/how-to-send-sms-in-south-africa-using-a-simple-rest-api-c-example-2b27</link>
      <guid>https://dev.to/gurrom_software/how-to-send-sms-in-south-africa-using-a-simple-rest-api-c-example-2b27</guid>
      <description>&lt;h2&gt;
  
  
  How to Send SMS in South Africa Using a Simple REST API (C# Example)
&lt;/h2&gt;

&lt;p&gt;Sending SMS from your application shouldn’t be complicated.&lt;/p&gt;

&lt;p&gt;If you’ve worked with global providers before, you’ve probably run into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Complex onboarding flows
&lt;/li&gt;
&lt;li&gt;Confusing pricing models
&lt;/li&gt;
&lt;li&gt;Over-engineered APIs for simple use cases
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sometimes, you just want to send a message and move on.&lt;/p&gt;

&lt;p&gt;In this guide, I’ll show you how to send an SMS in under 60 seconds using a simple REST API built specifically for South Africa.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡ What You’ll Build
&lt;/h2&gt;

&lt;p&gt;By the end of this article, you’ll be able to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Send an SMS via API
&lt;/li&gt;
&lt;li&gt;Integrate messaging into a C# application
&lt;/li&gt;
&lt;li&gt;Understand the request and response flow
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🚀 The API
&lt;/h2&gt;

&lt;p&gt;We’ll be using the &lt;strong&gt;Gurrom Flow SMS API&lt;/strong&gt; — a lightweight messaging API designed for transactional use cases.&lt;/p&gt;

&lt;p&gt;👉 GitHub Repo: &lt;a href="https://github.com/gurrom/gurrom-flow-api" rel="noopener noreferrer"&gt;https://github.com/gurrom/gurrom-flow-api&lt;/a&gt;&lt;br&gt;&lt;br&gt;
👉 Get API Access: &lt;a href="https://flow.gurrom.co.za/get-access" rel="noopener noreferrer"&gt;https://flow.gurrom.co.za/get-access&lt;/a&gt; &lt;/p&gt;


&lt;h2&gt;
  
  
  📤 API Endpoint
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;POST https://api.flow.gurrom.co.za/api/messageapi/sendmessage
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;🔐 Authentication&lt;/p&gt;

&lt;p&gt;All requests require an API key: Authorization: Bearer YOUR_API_KEY&lt;/p&gt;

&lt;p&gt;📦 Request Body&lt;/p&gt;

&lt;p&gt;Here’s a minimal request:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"AccountID"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"YOUR_ACCOUNT_ID"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"To"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2782870XXXX"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"MessageText"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Hello from Gurrom Flow"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;📥 Example Response&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"isSuccess"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"messageStatus"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"SUCCESS"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"messageTrackingNumber"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"3727691"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"creditsAvailable"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;76825&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;💻 C# Example&lt;/p&gt;

&lt;p&gt;Here’s a simple .NET example using HttpClient:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;System.Net.Http&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;System.Text&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;System.Threading.Tasks&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;HttpClient&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;DefaultRequestHeaders&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Authorization&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt;
    &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Net&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Http&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Headers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;AuthenticationHeaderValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Bearer"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"YOUR_API_KEY"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;@"{
  ""AccountID"": ""YOUR_ACCOUNT_ID"",
  ""To"": ""2782870XXXX"",
  ""MessageText"": ""Hello from Gurrom Flow""
}"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;content&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;StringContent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Encoding&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;UTF8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"application/json"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;PostAsync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="s"&gt;"https://api.flow.gurrom.co.za/api/messageapi/sendmessage"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;content&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Content&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ReadAsStringAsync&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;WriteLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;🧪 Testing Without Code (Postman)&lt;/p&gt;

&lt;p&gt;If you want to test quickly without writing code, you can use Postman.&lt;/p&gt;

&lt;p&gt;👉 Open the collection: &lt;a href="https://www.postman.com/universal-eclipse-579716/gurrom-flow-api/overview" rel="noopener noreferrer"&gt;https://www.postman.com/universal-eclipse-579716/gurrom-flow-api/overview&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Then:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Set your apiKey&lt;/li&gt;
&lt;li&gt;Set your accountId&lt;/li&gt;
&lt;li&gt;Click Send&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;🇿🇦 Why Use a Local SMS API?&lt;/p&gt;

&lt;p&gt;If you’re building for South Africa, using a local provider has real advantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better delivery reliability&lt;/li&gt;
&lt;li&gt;Lower latency&lt;/li&gt;
&lt;li&gt;Simpler pricing&lt;/li&gt;
&lt;li&gt;Faster support&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Global platforms are powerful, but often overkill for straightforward transactional messaging.&lt;/p&gt;




&lt;p&gt;🚀 Common Use Cases&lt;/p&gt;

&lt;p&gt;You can use this API for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OTP / verification messages&lt;/li&gt;
&lt;li&gt;Payment confirmations&lt;/li&gt;
&lt;li&gt;Delivery notifications&lt;/li&gt;
&lt;li&gt;System alerts&lt;/li&gt;
&lt;li&gt;Customer communication&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;⚡ Send Your First SMS&lt;/p&gt;

&lt;p&gt;You can get started in minutes with free SMS credits:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://flow.gurrom.co.za/get-access" rel="noopener noreferrer"&gt;https://flow.gurrom.co.za/get-access&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No credit card required.&lt;/p&gt;




&lt;p&gt;🔥 Final Thoughts&lt;/p&gt;

&lt;p&gt;For most applications, you don’t need a complex messaging platform.&lt;/p&gt;

&lt;p&gt;You just need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A simple API&lt;/li&gt;
&lt;li&gt;Reliable delivery&lt;/li&gt;
&lt;li&gt;Fast integration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s exactly what Gurrom Flow is designed for.&lt;/p&gt;




&lt;p&gt;📌 Resources&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Website: &lt;a href="https://flow.gurrom.co.za" rel="noopener noreferrer"&gt;https://flow.gurrom.co.za&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Get API Access: &lt;a href="https://flow.gurrom.co.za/get-access" rel="noopener noreferrer"&gt;https://flow.gurrom.co.za/get-access&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/gurrom/gurrom-flow-api" rel="noopener noreferrer"&gt;https://github.com/gurrom/gurrom-flow-api&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Postman: &lt;a href="https://www.postman.com/universal-eclipse-579716/gurrom-flow-api/overview" rel="noopener noreferrer"&gt;https://www.postman.com/universal-eclipse-579716/gurrom-flow-api/overview&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;If you’re building anything that needs messaging, this should get you up and running in minutes.&lt;/p&gt;

</description>
      <category>api</category>
      <category>csharp</category>
      <category>sms</category>
      <category>southafrica</category>
    </item>
  </channel>
</rss>
