> For the complete documentation index, see [llms.txt](https://docs.etelecom.vn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.etelecom.vn/api-etelecom-english/sms-brandname/sms-api/send-sms.md).

# Send SMS

**Request:**

```
curl --location 'https://omni.incom.vn/api/OmniMessage/SendMessage' \
--header 'Content-Type: application/json' \
--data '{
    "username": "string",
    "password": "string",
    "phonenumber":"string",
    "routerule": ["3"],
    "templatecode":"string",
    "list_param":{
        "property1":"string",
        "property2": "string"
    }
}'
```

**Request body structure:**

<table><thead><tr><th width="167">Parameters</th><th width="169">Data type</th><th>Describe</th></tr></thead><tbody><tr><td>username</td><td>string</td><td>Account provided by eTelecom</td></tr><tr><td>password</td><td>string</td><td>Password provided by eTelecom</td></tr><tr><td>phonenumber</td><td>string</td><td>Phone number to receive message (Recommended standard format 84)</td></tr><tr><td>routerule</td><td>string</td><td>The channel routing will follow the smart channel sliding mechanism (the first channel that fails will be forwarded to the next channels): 1: ZNS 2: AutoCall 3: SMS</td></tr><tr><td>templatecode</td><td>string</td><td>Template code when registering</td></tr><tr><td>list_param</td><td>object</td><td>List of variables (depending on the template there will be different variables)</td></tr></tbody></table>

**The returned response structure:**

<table><thead><tr><th width="118">Status</th><th width="249">Response</th><th>Description</th></tr></thead><tbody><tr><td>200</td><td>{ "status": "1", "code": "Success", " <strong>idOmniMess</strong> ": "ICOMNI prefix string and 30 characters" }</td><td>Success: eTelecom has received the message request. The status will be updated in the GetStatus API or the webhook registered with eTelecom based on the received idOmniMess.</td></tr><tr><td>401</td><td>Unauthorized</td><td>Wrong username and password</td></tr><tr><td>401</td><td>Can't access from this IP</td><td>User's IP is not in the system whitelist</td></tr><tr><td>200</td><td>{ <br>"status": "-1", "code": "PhoneNumber Wrong Format" <br>}</td><td>The phone number received is not in the correct format.</td></tr><tr><td>200</td><td>{ <br>"status": "-2", "code": "Wrong Format Parameter: xxxxxx" <br>}</td><td>Variable xxxxxx is in wrong format</td></tr><tr><td>200</td><td><p>{ <br>"status": "-3", "code": "You have run out of messages" </p><p>}</p></td><td>Omni message sent number has run out of business contacts to issue more.</td></tr><tr><td>200</td><td>{ <br>"status": "-6", "code": "Can't find template with templatecode: xxxxxx "<br> }</td><td>Cannot find template with requested id</td></tr><tr><td>200</td><td>{<br> "status": "-8", "code": "Can't find any routing for this request" <br>}</td><td>No routerule found for template code, contact engineering for reconfiguration.</td></tr><tr><td>200</td><td>{<br> "status": "-9", "code": "Can't find any information about channel: XXXXX" <br>}</td><td>Error Channel XXXXX in routerule contact technical for reconfiguration.</td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.etelecom.vn/api-etelecom-english/sms-brandname/sms-api/send-sms.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
