From f2b9e723fd1cd790467c9819e6c28659d8feaa79 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 11:04:40 +0100 Subject: [PATCH 01/52] Create keep --- docs/global SMS/keep | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/global SMS/keep diff --git a/docs/global SMS/keep b/docs/global SMS/keep new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/docs/global SMS/keep @@ -0,0 +1 @@ + From baa3c86387c0b6b09caf4853fe97264f71e095f1 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 11:07:16 +0100 Subject: [PATCH 02/52] Add files via upload --- docs/global SMS/delivery-report.md | 210 ++++++++++++ docs/global SMS/development-libraries.md | 161 +++++++++ docs/global SMS/inbound-messages.md | 55 +++ docs/global SMS/index.md | 51 +++ docs/global SMS/overview.md | 323 ++++++++++++++++++ .../global SMS/requests-and-authentication.md | 60 ++++ docs/global SMS/scheduled-messages.md | 116 +++++++ docs/global SMS/sender-name.md | 38 +++ docs/global SMS/sms-message.md | 126 +++++++ 9 files changed, 1140 insertions(+) create mode 100644 docs/global SMS/delivery-report.md create mode 100644 docs/global SMS/development-libraries.md create mode 100644 docs/global SMS/inbound-messages.md create mode 100644 docs/global SMS/index.md create mode 100644 docs/global SMS/overview.md create mode 100644 docs/global SMS/requests-and-authentication.md create mode 100644 docs/global SMS/scheduled-messages.md create mode 100644 docs/global SMS/sender-name.md create mode 100644 docs/global SMS/sms-message.md diff --git a/docs/global SMS/delivery-report.md b/docs/global SMS/delivery-report.md new file mode 100644 index 00000000..6019ebb5 --- /dev/null +++ b/docs/global SMS/delivery-report.md @@ -0,0 +1,210 @@ +# Delivery Report + +Delivery reports are a way to track if your messages are getting sent properly. + +--- + +## What is a delivery report? + +After receiving a message, the handset responds to the operator with Delivery Report (DLR) so that Messente knows if and when the message was delivered. + +Each time you send a message, Messente generates an ID that is unique to this particular message. + +!!! note + There are 2 ways you can get the status of the sent messages: + + * Add a callback URL to your message. Messente will make a POST request with the relevant information to the callback any time the message status changes (suggested option). + * You can request a delivery report by manually making a call to the API. + +!!! tip + The easiest way to use Omnichannel API is with our [official libraries](development-libraries.md). They will take care of authentication, request validation and response handling automatically. + +--- + +## Option 1. Add a callback URL to the message + +Messente will make a HTTP POST request to the URL in dlr_url property for every status update. + +### Callback URL + +The provided Delivery report URL (dlr_url) endpoint should respond with a HTTP status code within the range 200-399, otherwise the DRL will be considered undelivered. + +To [validate the authenticity](https://messente.com/documentation/api-setup/security/) of callback request, you can use the X-Messente-Signature header. + +=== "Python" + + ```python + {!> code-samples/messaging/global-business/get-dlr.py !} + ``` + +=== "Node" + + ```javascript + {!> code-samples/messaging/global-business/get-dlr.js !} + ``` + +=== "PHP" + + ```php + {!> code-samples/messaging/global-business/get-dlr.php !} + ``` + +=== "Java" + + ```java + {!> code-samples/messaging/global-business/get-dlr.java !} + ``` + +=== "Ruby" + + ```ruby + {!> code-samples/messaging/global-business/get-dlr.rb !} + ``` + +=== ".NET" + + ```csharp + {!> code-samples/messaging/global-business/get-dlr.cs !} + ``` + +=== "cURL" + + ```bash + {!> code-samples/messaging/global-business/get-dlr.sh !} + ``` + +### Report structure in callback request + +Example of a successful message. + +```json +{ + "status": "DELIVRD", + "sender": "MySender", + "err": 0, + "message_id": "3e28ec48-d620-4191-a96e-d91ba8ecc949", + "to": "+3725555555", + "channel": "sms", + "error": null, + "omnimessage_id": "d7248cda-6c1a-4436-acf5-aaf249bb67d3", + "timestamp": "2020-02-04T08:09:42.389630", + "price_info": { + "part_price": "0.1", + "parts_count": 2, + "total_price": "0.2" + } +} +``` + +--- + +## Option 2. Make an API call + +For most cases using dlr_url is a more suitable approach. Sometimes it's useful (usually for debugging purposes) to request the status of a specific message. In that case you can make a request to the API with the Omnimessage ID you need status of. + +=== "Python" + + ```python + {!> code-samples/messaging/global-business/get-sync-dlr.py !} + ``` + +=== "Node" + + ```javascript + {!> code-samples/messaging/global-business/get-sync-dlr.js !} + ``` + +=== "PHP" + + ```php + {!> code-samples/messaging/global-business/get-sync-dlr.php !} + ``` + +=== "Java" + + ```java + {!> code-samples/messaging/global-business/get-sync-dlr.java !} + ``` + +=== "Ruby" + + ```ruby + {!> code-samples/messaging/global-business/get-sync-dlr.rb !} + ``` + +=== ".NET" + + ```csharp + {!> code-samples/messaging/global-business/get-sync-dlr.cs !} + ``` + +=== "cURL" + + ```bash + {!> code-samples/messaging/global-business/get-sync-dlr.sh !} + ``` + +!!! danger "Caution" + Requesting regular updates for every message via API calls is very resource-heavy and costly approach. Before implementing, please consider using Option 1. + +### Report structure in API response + +Example of a successful message. + +```json +{ + "omnimessage_id": "6e29aeef-f43d-4dc0-bd12-195374c845fa", + "statuses": [ + { + "status": "DELIVRD", + "sender": "MySender", + "err": 0, + "message_id": "3e28ec48-d620-4191-a96e-d91ba8ecc949", + "to": "+3725555555", + "channel": "sms", + "error": null, + "omnimessage_id": "d7248cda-6c1a-4436-acf5-aaf249bb67d3", + "timestamp": "2020-02-04T08:09:42.389630", + "price_info": { + "part_price": "0.1", + "parts_count": 2, + "total_price": "0.2" + } + } + ], + "to": "RECIPIENT" +} +``` + +### Difference between `omnimessage_id` and `message_id` +`message_id` is a unique identifier for a single message and `omnimessage_id` groups messages that are sent with multi-channel fallback. + +Although Omnichannel API can easily be used to send single messages we've built it with multi-channel capabilities in mind. To allow easy migration between the two we add `omnimessage_id` to every message. + +--- + +## List of Message Statuses + +There can be various reasons why a message wasn't delivered or hasn't been delivered yet. + +| Status Constant | Description | +| --- | --- | +| ACK | Operator has accepted the message for delivery | +| DELIVRD | The message has been successfully delivered to the handset | +| UNDELIV | Unable to deliver message to the handset | +| FAILED | Failed to deliver message to the handset | +| UNKNOWN | Unknown status has been reported by the operator | +| ACCEPTD | Message has been accepted for the delivery and is in the operators's delivery queue | +| REJECTD | The message was rejected by the operator | +| EXPIRED | Delivery of the message expired | +| NACK | The message delivery has been rejected | +| SEEN | The message has been seen by the recipient | + +[Complete API Specification](https://messente.com/documentation/messente-api/omnimessage/) + +## Our IP Addresses + +For security reasons, you might want to restrict access to your callback URL. Here is the list of IP addresses we use to send requests from, which you can whitelist: + +* 95.216.221.43 +* 159.69.33.20 diff --git a/docs/global SMS/development-libraries.md b/docs/global SMS/development-libraries.md new file mode 100644 index 00000000..a4b29720 --- /dev/null +++ b/docs/global SMS/development-libraries.md @@ -0,0 +1,161 @@ +# Development Libraries + +Develop with our API libraries to get the fastest integration experience. + +--- + +!!! warning + Make sure you have [signed up](https://dashboard.messente.com/register) and have your [API keys](https://dashboard.messente.com/api-settings). + +## Install a library + +We have API libraries for various programming languages. Select your preferred programming language and follow the instructions. + +=== "Python" + + ### With PIP + + To install the API client library, simply execute: + + ```bash + pip install messente-api + ``` + + ### Or with Setuptools + + To install the API client library, simply execute: + + ```bash + python setup.py install --user + ``` + + then import the package: + + ```python + import messente_api + ``` + + Take a look at the library's [GitHub](https://github.com/messente/messente-api-python) and [PyPI](https://pypi.org/project/messente-api) pages. + +=== "Node" + + ### Install with npm + + ```bash + npm i messente_api + ``` + + Take a look at the library's [GitHub](https://github.com/messente/messente-api-node) and [npm](https://www.npmjs.com/package/messente_api) pages. + +=== "PHP" + + ### Install with composer + + ```bash + composer require messente/messente-api-php + ``` + + Take a look at the library's [GitHub](https://github.com/messente/messente-api-php) and [packagist](https://packagist.org/packages/messente/messente-api-php) pages. + +=== "Java" + + ### Maven users + + Allow fetching messente-api from jcenter by placing a settings.xml file to ~/.m2 maven folder containing the following: + + ```xml + + + + + bintray + + + central + bintray + https://jcenter.bintray.com + + false + + + + + + + bintray + + + ``` + + To install the API client library to your local Maven repository, add the dependency to your project's POM: + + ```xml + + com.messente.api + messente-api + 4.2.0 + + ``` + + Now, you can install the library by running: + + ```bash + mvn clean install + ``` + + ### Gradle users + + Add jcenter repository to your project's build file: + + ```groovy + repositories { jcenter() } + ``` + + Also add the dependency to your project's build file: + + ```groovy + dependencies { implementation 'com.messente.api:messente-api' } + ``` + + ### Others + + Firstly, generate the JAR by executing: + + ```bash + mvn package -Dmaven.javadoc.skip=true + ``` + + Then manually install the following JARs: + + * target/messente-api-$VERSION_NUMBER.jar + * target/messente-api-$VERSION_NUMBER-sources.jar + * target/lib/*.jar + + Take a look at the library's [GitHub](https://github.com/messente/messente-api-java) and [Bintray](https://bintray.com/messente/messente-api/messente-api) pages. + +=== "Ruby" + + ### Install using gem + + ```bash + gem install messente_api + ``` + + Take a look at the library's [GitHub](https://github.com/messente/messente-api-ruby) page and [RubyGems](https://rubygems.org/gems/messente_api) pages. + +=== ".NET" + + ### Install using NuGet + + ```powershell + Install-Package com.Messente.Api + ``` + + Take a look at the library's [GitHub](https://github.com/messente/messente-api-csharp) and [NuGet](https://www.nuget.org/packages/com.Messente.Api) pages. + +[Let us know if your preferred language is not in the list](https://messente.com/contact) + +!!! warning + These libraries only contain Omnichannel and Phonebook API features. For other Messente features, you need to install different set of libraries. [Libraries page](https://messente.com/documentation/tools/libraries/) contains the list of all our SDKs. diff --git a/docs/global SMS/inbound-messages.md b/docs/global SMS/inbound-messages.md new file mode 100644 index 00000000..0dc8aea9 --- /dev/null +++ b/docs/global SMS/inbound-messages.md @@ -0,0 +1,55 @@ +--- +id: inbound-messages +title: Inbound Messages +slug: /omnichannel-api/inbound-messages +--- + +# Inbound Messages + +Handling inbound SMS for two-way communication. + +--- + +!!! tip + The easiest way to use Omnichannel API is with our [official libraries](development-libraries.md). Libraries will take care of authentication, request validation and response handling. + +## Inbound Message Callback + +Messente makes a HTTP POST request with JSON content to configured Inbound Number Callback URL with the following request parameters: + +* msg_id +* sub_msg_id +* channel +* recipient +* time +* text +* sender + +### Example request +```json +POST / HTTP/1.1 +Content-Type: application/json +X-Messente-Signature: 9a398f4a9ce4f96077e70b65d208420640aabb158c224bd0f29391d673ba6b3d + +{ + "msg_id": "1f5197ec-b4d7-4d5f-8bba-e005d1cadba1", + "sub_msg_id": "d276e75e-e9f5-4b44-88aa-d5c7b38a1e4a", + "channel": "sms", + "recipient": "1234", + "time": "2021-02-23T14:51:13.000000Z", + "text": "This is a test message content", + "sender": "+44000000000" +} +``` + +## Validating the request authenticity + +Messente provides every request with signature calculated using [HMAC](https://en.wikipedia.org/wiki/HMAC). The signature is calculated using the Shared Secret, available in the Inbound Numbers section of the Developers view. + +Calculated signature is provided in the HTTP headers called `X-Messente-Signature`. + +### Signature calculation formula + +```php +HMAC_SHA256("$shared_secret", "$http_request_body") +``` diff --git a/docs/global SMS/index.md b/docs/global SMS/index.md new file mode 100644 index 00000000..7b66dd53 --- /dev/null +++ b/docs/global SMS/index.md @@ -0,0 +1,51 @@ + +# Introduction to Global Business SMS + + +Welcome to the RingCentral developer community! As part of our commitment to expanding our global communications suite, **Messente is now a RingCentral company**. + +While we work behind the scenes to deeply integrate Messente’s infrastructure into the core RingCentral developer platform, developers can immediately leverage Messente’s powerful Omnichannel messaging APIs to scale their global user engagement. + +!!! info "Independent Account Required: To use the capabilities detailed below, you will need to sign up for a separate account directly via the Messente team. [Contact Messente to Sign-up →](https://messente.com/talk-to-sales)" + + +## What You Can Build +Messente specializes in high-volume, global bulk messaging with smart routing across 190+ countries. Using the Messente Omnichannel API, you can send notifications, verification codes (2FA), and marketing campaigns across multiple conversational platforms using a single, unified payload. + +| Channel | Core Capabilities | Best For | +| :--- | :--- | :--- | +| **SMS** | Global reach, carrier-level routing, fallback protection. | 2FA codes, critical alerts, urgent notifications. | +| **WhatsApp** | Rich media (images, PDFs), interactive buttons, verified business profiles. | Customer support, delivery tracking, rich marketing. | +| **RCS** | Branded carousels, suggested actions, high-engagement native Android messaging. | Interactive product showcases, deep link click-throughs. | +| **Viber** | Long-form text (up to 1,000 characters), images, CTA buttons, cost-effective routing. | European and Asian market campaigns, transactional receipts. | + +--- + +## Key Features for Developers + +* **Smart Fallback Routing:** If a rich message (like WhatsApp or Viber) fails to deliver due to connectivity or app availability, the API can automatically fall back to standard SMS within seconds to guarantee delivery. +* **Global Compliance Built-In:** Built-in tools to manage sender IDs, templates, and local country regulations automatically, ensuring high deliverability rates. +* **Unified Analytics:** Track delivery statuses, open rates, and conversion metrics across all channels via webhooks or the Messente dashboard. +* **Number lookup:** Check number validity and identify mobile vs. landline phones. + +--- + +## Ready to Explore? + +To begin testing or moving your high-volume messaging workloads to Messente, please reach out to their team to get your API keys and sandbox environment provisioned. + +### Implementation Flow + +1. **Request an Account** + Visit [Messente](https://messente.com/) and register for a business account + +2. **Explore the API Reference** *(Authentication & Endpoints)* + Review the specialized [Messente Omnichannel Documentation](https://messente.com/documentation/) for authentication protocols and base URLs. + +3. **Configure Webhooks** *(Real-time Delivery Status)* + Set up your server endpoints to listen for live delivery receipts (DLRs) and incoming user replies. + +--- + +### Behind the Scenes: What's Next? +We are actively designing a unified developer experience where you will eventually be able to manage your RingCentral UCaaS/CCaaS APIs and Messente bulk messaging tools from a single login, contract, and credential set. Stay tuned to our developer newsletter for integration timelines! \ No newline at end of file diff --git a/docs/global SMS/overview.md b/docs/global SMS/overview.md new file mode 100644 index 00000000..1ab48812 --- /dev/null +++ b/docs/global SMS/overview.md @@ -0,0 +1,323 @@ +# Overview + +Follow the guide to add SMS messages to your application in minutes. + +--- + +Sending a message using the API is a three-step process. + +1. [Sign up](https://dashboard.messente.com/register) to Messente and [receive your API keys](https://dashboard.messente.com/api-settings) (no credit card required). +2. Verify your phone number as sender ID or request a [branded Sender name](sender-name.md). +3. Using the API keys, make an API request with the desired message and recipient. + +!!! tip + Upon sign up we will add you some free credits so you can test out the service immediately. With it you can send a few test messages. + +!!! warning "API key required" + Follow this guide to send a message, once you have [received your API keys](https://dashboard.messente.com/api-settings). + +## Install a library + +The fastest way to get started with the API is to use our official libraries. + +Select your preferred programming language and follow the instructions. + +=== "Python" + + ### With PIP + + To install the API client library, simply execute: + + ```bash + pip install messente-api + ``` + + ### Or with Setuptools + + To install the API client library, simply execute: + + ```bash + python setup.py install --user + ``` + + then import the package: + + ```python + import messente_api + ``` + + Take a look at the library's [GitHub](https://github.com/messente/messente-api-python) and [PyPI](https://pypi.org/project/messente-api) pages. + +=== "Node" + + ### Install with npm + + ```bash + npm i messente_api + ``` + + Take a look at the library's [GitHub](https://github.com/messente/messente-api-node) and [npm](https://www.npmjs.com/package/messente_api) pages. + +=== "PHP" + + ### Install with composer + + ```bash + composer require messente/messente-api-php + ``` + + Take a look at the library's [GitHub](https://github.com/messente/messente-api-php) and [packagist](https://packagist.org/packages/messente/messente-api-php) pages. + +=== "Java" + + ### Maven users + + Allow fetching messente-api from jcenter by placing a settings.xml file to ~/.m2 maven folder containing the following: + + ```xml + + + + + bintray + + + central + bintray + https://jcenter.bintray.com + + false + + + + + + + bintray + + + ``` + + To install the API client library to your local Maven repository, add the dependency to your project's POM: + + ```xml + + com.messente.api + messente-api + 4.2.0 + + ``` + + Now, you can install the library by running: + + ```bash + mvn clean install + ``` + + ### Gradle users + + Add jcenter repository to your project's build file: + + ```groovy + repositories { jcenter() } + ``` + + Also add the dependency to your project's build file: + + ```groovy + dependencies { implementation 'com.messente.api:messente-api' } + ``` + + ### Others + + Firstly, generate the JAR by executing: + + ```bash + mvn package -Dmaven.javadoc.skip=true + ``` + + Then manually install the following JARs: + + * target/messente-api-$VERSION_NUMBER.jar + * target/messente-api-$VERSION_NUMBER-sources.jar + * target/lib/*.jar + + Take a look at the library's [GitHub](https://github.com/messente/messente-api-java) and [Bintray](https://bintray.com/messente/messente-api/messente-api) pages. + +=== "Ruby" + + ### Install using gem + + ```bash + gem install messente_api + ``` + + Take a look at the library's [GitHub](https://github.com/messente/messente-api-ruby) page and [RubyGems](https://rubygems.org/gems/messente_api) pages. + +=== ".NET" + + ### Install using NuGet + + ```powershell + Install-Package com.Messente.Api + ``` + + Take a look at the library's [GitHub](https://github.com/messente/messente-api-csharp) and [NuGet](https://www.nuget.org/packages/com.Messente.Api) pages. + +[Let us know if your preferred language is not in the list](https://messente.com/contact) + +!!! warning + These libraries only contain Omnichannel and Phonebook API features. For other Messente features, you need to install different set of libraries. [Libraries page](https://messente.com/documentation/tools/libraries/) contains the list of all our SDKs. + +## Send a single SMS + +Use the following example to send an SMS using Omnichannel API. + +=== "Python" + + ```python + {!> code-samples/messaging/global-business/send-single-sms.py !} + ``` + +=== "Node" + + ```javascript + {!> code-samples/messaging/global-business/send-single-sms.js !} + ``` + +=== "PHP" + + ```php + {!> code-samples/messaging/global-business/send-single-sms.php !} + ``` + +=== "Java" + + ```java + {!> code-samples/messaging/global-business/send-single-sms.java !} + ``` + +=== "Ruby" + + ```ruby + {!> code-samples/messaging/global-business/send-single-sms.rb !} + ``` + +=== ".NET" + + ```csharp + {!> code-samples/messaging/global-business/send-single-sms.cs !} + ``` + +=== "cURL" + + ```bash + {!> code-samples/messaging/global-business/send-single-sms.sh !} + ``` + +[Detailed API Reference on sending an SMS](https://messente.com/documentation/messente-api/omnimessage/) + +## Get delivery reports + +Messente tracks your sent message and reports [status updates](delivery-report.md) back to you. + +To be able to view the status, you must add a callback URL to the message. Messente will use this URL to make HTTP POST requests, if there is a status update. + +Here is a code snippet for you to test it out quickly. + +=== "Python" + + ```python + {!> code-samples/messaging/global-business/get-dlr.py !} + ``` + +=== "Node" + + ```javascript + {!> code-samples/messaging/global-business/get-dlr.js !} + ``` + +=== "PHP" + + ```php + {!> code-samples/messaging/global-business/get-dlr.php !} + ``` + +=== "Java" + + ```java + {!> code-samples/messaging/global-business/get-dlr.java !} + ``` + +=== "Ruby" + + ```ruby + {!> code-samples/messaging/global-business/get-dlr.rb !} + ``` + +=== ".NET" + + ```csharp + {!> code-samples/messaging/global-business/get-dlr.cs !} + ``` + +=== "cURL" + + ```bash + {!> code-samples/messaging/global-business/get-dlr.sh !} + ``` + +[Learn more about the delivery status](delivery-report.md) + +## Send an SMS with Omnichannel API + +You can also use the Omnichannel API to send an SMS message directly. + +=== "Python" + + ```python + {!> code-samples/messaging/global-business/send-fallback.py !} + ``` + +=== "Node" + + ```javascript + {!> code-samples/messaging/global-business/send-fallback.js !} + ``` + +=== "PHP" + + ```php + {!> code-samples/messaging/global-business/send-fallback.php !} + ``` + +=== "Java" + + ```java + {!> code-samples/messaging/global-business/send-fallback.java !} + ``` + +=== "Ruby" + + ```ruby + {!> code-samples/messaging/global-business/send-fallback.rb !} + ``` + +=== ".NET" + + ```csharp + {!> code-samples/messaging/global-business/send-fallback.cs !} + ``` + +=== "cURL" + + ```bash + {!> code-samples/messaging/global-business/send-fallback.sh !} + ``` + +## Next steps + +Integrating SMS to your application should never take more than a day. +Now that you have things set up it's time to get yourself a proper [sender name](sender-name.md). diff --git a/docs/global SMS/requests-and-authentication.md b/docs/global SMS/requests-and-authentication.md new file mode 100644 index 00000000..7bf92512 --- /dev/null +++ b/docs/global SMS/requests-and-authentication.md @@ -0,0 +1,60 @@ +--- +id: requests-and-authentication +title: Requests & Authentication +slug: /omnichannel-api/requests-and-authentication +--- + +# Requests & Authentication + +Learn the basics of how to make a request and authenticate yourself. + +--- + +!!! tip + The easiest way to use Omnichannel API is with our [official libraries](development-libraries.md). They will take care of authentication, request validation and response handling automatically. + +## Request + +### Authentication + +Authentication is done using HTTP Basic Authentication with your API username and password. [Sign up](https://dashboard.messente.com/register) to Messente and [receive your API credentials](https://dashboard.messente.com/api-settings) (no credit card required). + +### Making a Request + +API requests are made to the following server: + +```text +https://api.messente.com +``` + +You need to pass the Content-Type headers to the API so the response would be in the correct format. + +```text +Accept: application/json +Content-Type: application/json +``` + +!!! warning + You need to pass Content-Type and Authentication headers with every request. + +Basic request example: + +```bash +curl -X POST \ + 'https://api.messente.com/v1/omnimessage' \ + -u MESSENTE_API_USERNAME:MESSENTE_API_PASSWORD \ + -H "Content-Type: application/json" \ + -H "Accept: application/json" \ + -d '{ "to": "RECIPIENT_PHONE_NUMBER", "messages": [{ "channel": "sms", "sender": "YOUR_PHONE_NUMBER", "text": "Happy messaging!" }] }, "dlr_url": "YOUR_WEBHOOK_URL"' +``` + +### IP Address Whitelisting + +Configure your account in the [dashboard](https://dashboard.messente.com/api-settings) to allow API requests only from certain IPs. + +If you do not have a fixed IP address, you can also specify the [IP address ranges](https://messente.com/blog/messente/whitelist-ip-address-range-sms-api) in CIDR notation. + +If you need to disable IP address validation, you can set the value to 0.0.0.0/0 (enable all IPv4 addresses). + +!!! danger "Security Warning" + It is strongly encouraged to whitelist only IP addresses that are used to make HTTP calls to Messente's API. diff --git a/docs/global SMS/scheduled-messages.md b/docs/global SMS/scheduled-messages.md new file mode 100644 index 00000000..0daacadc --- /dev/null +++ b/docs/global SMS/scheduled-messages.md @@ -0,0 +1,116 @@ +--- +id: scheduled-messages +title: Scheduled Messages +slug: /omnichannel-api/scheduled-messages +--- + +# Scheduled Messages + +Schedule messages to be sent for later. + +--- + +!!! tip + The easiest way to use Omnichannel API is with our [official libraries](development-libraries.md). They will take care of authentication, request validation and response handling automatically. + +## Schedule a message + +Send a message with `time_to_send` parameter to schedule it for later. Learn how to compose a message in our [quickstart guide](index.md). + +=== "Python" + + ```python + {!> code-samples/messaging/global-business/schedule-message.py !} + ``` + +=== "Node" + + ```javascript + {!> code-samples/messaging/global-business/schedule-message.js !} + ``` + +=== "PHP" + + ```php + {!> code-samples/messaging/global-business/schedule-message.php !} + ``` + +=== "Java" + + ```java + {!> code-samples/messaging/global-business/schedule-message.java !} + ``` + +=== "Ruby" + + ```ruby + {!> code-samples/messaging/global-business/schedule-message.rb !} + ``` + +=== ".NET" + + ```csharp + {!> code-samples/messaging/global-business/schedule-message.cs !} + ``` + +=== "cURL" + + ```bash + {!> code-samples/messaging/global-business/schedule-message.sh !} + ``` + +!!! note "Time format" + * Time must be specified in the ISO 8601 format. + * Default timezone is UTC. + + For example, both of the cases below are allowed: + + * `2019-06-22T09:05` - UTC is set as timezone + * `2019-06-22T09:05:07+04:00` - Default timezone is ignored and UTC+4 is used + + +## Cancel a scheduled message + +To cancel a scheduled message you need to know the omnimessage_id that you got when you sent out the message. + +=== "Python" + + ```python + {!> code-samples/messaging/global-business/cancel-message.py !} + ``` + +=== "Node" + + ```javascript + {!> code-samples/messaging/global-business/cancel-message.js !} + ``` + +=== "PHP" + + ```php + {!> code-samples/messaging/global-business/cancel-message.php !} + ``` + +=== "Java" + + ```java + {!> code-samples/messaging/global-business/cancel-message.java !} + ``` + +=== "Ruby" + + ```ruby + {!> code-samples/messaging/global-business/cancel-message.rb !} + ``` + +=== ".NET" + + ```csharp + {!> code-samples/messaging/global-business/cancel-message.cs !} + ``` + +=== "cURL" + + ```bash + {!> code-samples/messaging/global-business/cancel-message.sh !} + ``` diff --git a/docs/global SMS/sender-name.md b/docs/global SMS/sender-name.md new file mode 100644 index 00000000..1649dbbd --- /dev/null +++ b/docs/global SMS/sender-name.md @@ -0,0 +1,38 @@ +--- +id: sender-name +title: Sender Name +slug: /omnichannel-api/sender-name +--- + +# Sender Name + +Identify yourself with a telephone number or as a brand. + +--- + +## What is a Sender Name? +Your sender name (or Sender ID) is the phone number or name that the recipient sees as the sender of the message. +![Sender Name](https://messente.com/documentation/img/guides/sender_name_example.png) + +## Sender types +Messente supports 3 different types of sender IDs: + +* Regular phone number (eg +372 5555 6666) +* Shortcode (usually 3-6 characters) (eg 123, 20010) +* Branded sender name (Messente, Volvo, Coca Cola) + +!!! tip + You can have multiple Sender IDs connected to your account and they are free of charge. + +!!! info + Registering a branded sender name is a manual process and might take up to 24 hours. Registration for regular phone number as sender name is automatic and instantaneous. + +## Restrictions +**Phone numbers** as numeric Sender IDs can be up to 15 digits long (excluding the "+" sign) and can include country codes, mobile operator codes, individual phone numbers, destination codes, identifying the subscriber's operator, etc. It's also possible to reply to a phone number by just hitting the reply button. + +**Short codes** are special numbers, that are usually shorter than the standard phone numbers and are typically used for things like customer support service, voting or premium rate mobile services. + +**Alphanumeric Sender IDs** (or Branded sender names) may include characters from the alphabet (A-Z) numeric characters (0-9) and have the maximum length up to 11 characters. Please note that the SMS recipients cannot reply to alphanumeric Sender IDs. + +!!! warning + In some countries branded Sender IDs as a feature is not supported due to local legislation or local mobile operators. In these cases most often a random phone number will be displayed as the sender. Contact us for more details. diff --git a/docs/global SMS/sms-message.md b/docs/global SMS/sms-message.md new file mode 100644 index 00000000..dbb0fe40 --- /dev/null +++ b/docs/global SMS/sms-message.md @@ -0,0 +1,126 @@ +# SMS Message + +Sending SMS messages with Omnichannel API. + +--- + +!!! tip + The easiest way to use Omnichannel API is with our [official libraries](development-libraries.md). Libraries will take care of authentication, request validation and response handling. + +## Send a single SMS + +Use the following example to send an SMS using Omnichannel API. + +=== "Python" + + ```python + {!> code-samples/messaging/global-business/send-single-sms.py !} + ``` + +=== "Node" + + ```javascript + {!> code-samples/messaging/global-business/send-single-sms.js !} + ``` + +=== "PHP" + + ```php + {!> code-samples/messaging/global-business/send-single-sms.php !} + ``` + +=== "Java" + + ```java + {!> code-samples/messaging/global-business/send-single-sms.java !} + ``` + +=== "Ruby" + + ```ruby + {!> code-samples/messaging/global-business/send-single-sms.rb !} + ``` + +=== ".NET" + + ```csharp + {!> code-samples/messaging/global-business/send-single-sms.cs !} + ``` + +=== "cURL" + + ```bash + {!> code-samples/messaging/global-business/send-single-sms.sh !} + ``` + +The API will return a response with an **omnimessage_id**, as well as a **message_id** for each "sub-message" (fallback channel). You can use these IDs to track the [delivery status](delivery-report.md) of the message. + +```json +{ + "messages": [ + { + "channel": "sms", + "message_id": "fr593ce7-68de-5e44-bc50-044a3ad0a7fa", + "sender": "YOUR_PHONE_NUMBER" + } + ], + "omnimessage_id": "632c6f3d-49d0-4a8f-5k2n-74023d31e51d", + "to": "RECIPIENT_PHONE_NUMBER" +} +``` + +--- + +## Constructing Messages + +There are few things to keep in mind when composing SMS messages. + +### Be aware of non-GSM friendly characters + +A single SMS can contain 160 characters. However, SMS is built to use 7-bit GSM 03.38 character encoding set and this means that certain unicode characters (that are not in GSM character set) don't fit into the message. You can use our [SMS calculator](https://messente.com/sms-length-calculator) to check how many characters your message contains and how many SMS messages it will take to send it. + +If your message contains any characters not listed in the 7-bit alphabet then the message encoding will be set to UCS-2. With it, the message length is limited to 70 characters. + +**By default, the API will [convert all non-GSM](https://messente.com/documentation/tools/autoreplace/) friendly characters to similar characters in GSM 03.38 encoding set.** This allows you to send messages with non-unicode characters and not worry about the GSM specification. + +!!! info + You can turn the character replace feature off by configuring the `autoconvert` parameter in the message. + + ```text + autoconvert: on(default)|full|off + ``` + +[SMS Length Calculator](https://messente.com/sms-length-calculator) + +[How to configure which characters get replaced](https://messente.com/documentation/tools/autoreplace/) + +## Message Validity and Retry Policy + +Messente forwards the SMS request to the operators, who, in turn, will retry SMS delivery for a **minimum of 6 hours.** + +That being said, operators differ in their policies so some may retry SMS delivery up to 48 hours in total, starting with shorter retry intervals and switching to longer retry intervals towards the end. Some, on the other hand, may only retry for the required minimum of 6 hours indicated by us. + +!!! info "SMPP protocol" + Although we don't encourage it, we also support SMPP protocol for sending SMS messages. Learn how to set up [SMPP integration](https://messente.com/documentation/smpp-api/). + +### Error example + +```json +{ + "errors": [ + { + "code": "105", + "detail": "Invalid or disallowed sender Messente", + "source": "payload[sms][sender]", + "title": "Invalid data" + } + ] +} +``` + +| Field | Description | +| --- | --- | +| `title` | Error message | +| `detail` | Longer description of the error message | +| `source` | Location in the request body for this error message | +| `code` | Machine-readable error code:
101 - Not found
102 - Forbidden
103 - Unauthorized
104 - Internal Server Error
105 - Invalid data
106 - Missing data
107 - Method not allowed | From a91145e93f3225684e5d7e3d810c4c6361cd1ddd Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 11:34:23 +0100 Subject: [PATCH 03/52] Update overview.md --- docs/global SMS/overview.md | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/docs/global SMS/overview.md b/docs/global SMS/overview.md index 1ab48812..9123df81 100644 --- a/docs/global SMS/overview.md +++ b/docs/global SMS/overview.md @@ -1,21 +1,10 @@ # Overview -Follow the guide to add SMS messages to your application in minutes. - ---- - -Sending a message using the API is a three-step process. - -1. [Sign up](https://dashboard.messente.com/register) to Messente and [receive your API keys](https://dashboard.messente.com/api-settings) (no credit card required). -2. Verify your phone number as sender ID or request a [branded Sender name](sender-name.md). -3. Using the API keys, make an API request with the desired message and recipient. +To get started [contact Developer Relations](https://developers.ringcentral.com/sms-api#requestinfo) !!! tip Upon sign up we will add you some free credits so you can test out the service immediately. With it you can send a few test messages. -!!! warning "API key required" - Follow this guide to send a message, once you have [received your API keys](https://dashboard.messente.com/api-settings). - ## Install a library The fastest way to get started with the API is to use our official libraries. From 18982dec9b5965bc7bfdf46d236d258612623623 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 11:40:37 +0100 Subject: [PATCH 04/52] Update index.md --- docs/global SMS/index.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/global SMS/index.md b/docs/global SMS/index.md index 7b66dd53..764af047 100644 --- a/docs/global SMS/index.md +++ b/docs/global SMS/index.md @@ -6,11 +6,11 @@ Welcome to the RingCentral developer community! As part of our commitment to exp While we work behind the scenes to deeply integrate Messente’s infrastructure into the core RingCentral developer platform, developers can immediately leverage Messente’s powerful Omnichannel messaging APIs to scale their global user engagement. -!!! info "Independent Account Required: To use the capabilities detailed below, you will need to sign up for a separate account directly via the Messente team. [Contact Messente to Sign-up →](https://messente.com/talk-to-sales)" +!!! info "Independent Account Required: To get started [contact developer relations](https://developers.ringcentral.com/sms-api#requestinfo)" ## What You Can Build -Messente specializes in high-volume, global bulk messaging with smart routing across 190+ countries. Using the Messente Omnichannel API, you can send notifications, verification codes (2FA), and marketing campaigns across multiple conversational platforms using a single, unified payload. +Global Business SMS is ideal for high-volume, global bulk messaging with smart routing across 190+ countries. You can send notifications, verification codes (2FA), and marketing campaigns across multiple conversational platforms using a single, unified payload. | Channel | Core Capabilities | Best For | | :--- | :--- | :--- | @@ -37,10 +37,10 @@ To begin testing or moving your high-volume messaging workloads to Messente, ple ### Implementation Flow 1. **Request an Account** - Visit [Messente](https://messente.com/) and register for a business account + [Contact developer relations](https://developers.ringcentral.com/sms-api#requestinfo) and register for a business account 2. **Explore the API Reference** *(Authentication & Endpoints)* - Review the specialized [Messente Omnichannel Documentation](https://messente.com/documentation/) for authentication protocols and base URLs. + Review the documentation for authentication protocols and base URLs. 3. **Configure Webhooks** *(Real-time Delivery Status)* Set up your server endpoints to listen for live delivery receipts (DLRs) and incoming user replies. @@ -48,4 +48,4 @@ To begin testing or moving your high-volume messaging workloads to Messente, ple --- ### Behind the Scenes: What's Next? -We are actively designing a unified developer experience where you will eventually be able to manage your RingCentral UCaaS/CCaaS APIs and Messente bulk messaging tools from a single login, contract, and credential set. Stay tuned to our developer newsletter for integration timelines! \ No newline at end of file +We are actively designing a unified developer experience where you will eventually be able to manage your RingCentral UCaaS/CCaaS APIs and Messente bulk messaging tools from a single login, contract, and credential set. Stay tuned to our developer newsletter for integration timelines! From 071ac098dbbed96faf9af0fd1a8f4736153271f5 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 11:41:55 +0100 Subject: [PATCH 05/52] Update delivery-report.md --- docs/global SMS/delivery-report.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/global SMS/delivery-report.md b/docs/global SMS/delivery-report.md index 6019ebb5..2900e0c7 100644 --- a/docs/global SMS/delivery-report.md +++ b/docs/global SMS/delivery-report.md @@ -6,14 +6,14 @@ Delivery reports are a way to track if your messages are getting sent properly. ## What is a delivery report? -After receiving a message, the handset responds to the operator with Delivery Report (DLR) so that Messente knows if and when the message was delivered. +After receiving a message, the handset responds to the operator with Delivery Report (DLR) to indicate if and when the message was delivered. -Each time you send a message, Messente generates an ID that is unique to this particular message. +Each time you send a message, we generate an ID that is unique to this particular message. !!! note There are 2 ways you can get the status of the sent messages: - * Add a callback URL to your message. Messente will make a POST request with the relevant information to the callback any time the message status changes (suggested option). + * Add a callback URL to your message. The service will make a POST request with the relevant information to the callback any time the message status changes (suggested option). * You can request a delivery report by manually making a call to the API. !!! tip From 7b4237dad8da8d433004deb2b13b50d40def5255 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 11:42:31 +0100 Subject: [PATCH 06/52] Update development-libraries.md --- docs/global SMS/development-libraries.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/docs/global SMS/development-libraries.md b/docs/global SMS/development-libraries.md index a4b29720..0a21f0e0 100644 --- a/docs/global SMS/development-libraries.md +++ b/docs/global SMS/development-libraries.md @@ -154,8 +154,3 @@ We have API libraries for various programming languages. Select your preferred p ``` Take a look at the library's [GitHub](https://github.com/messente/messente-api-csharp) and [NuGet](https://www.nuget.org/packages/com.Messente.Api) pages. - -[Let us know if your preferred language is not in the list](https://messente.com/contact) - -!!! warning - These libraries only contain Omnichannel and Phonebook API features. For other Messente features, you need to install different set of libraries. [Libraries page](https://messente.com/documentation/tools/libraries/) contains the list of all our SDKs. From 4bfa5218aad9939be54225ab9dfeb9b9664e5011 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 11:43:52 +0100 Subject: [PATCH 07/52] Update inbound-messages.md --- docs/global SMS/inbound-messages.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/global SMS/inbound-messages.md b/docs/global SMS/inbound-messages.md index 0dc8aea9..e5720f67 100644 --- a/docs/global SMS/inbound-messages.md +++ b/docs/global SMS/inbound-messages.md @@ -11,11 +11,11 @@ Handling inbound SMS for two-way communication. --- !!! tip - The easiest way to use Omnichannel API is with our [official libraries](development-libraries.md). Libraries will take care of authentication, request validation and response handling. + The easiest way to use Global Business SMS is with our [official libraries](development-libraries.md). Libraries will take care of authentication, request validation and response handling. ## Inbound Message Callback -Messente makes a HTTP POST request with JSON content to configured Inbound Number Callback URL with the following request parameters: +We makes a HTTP POST request with JSON content to configured Inbound Number Callback URL with the following request parameters: * msg_id * sub_msg_id From 48c35ec7cd96243a5e02b418706e73b1d2600c46 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 11:44:17 +0100 Subject: [PATCH 08/52] Update index.md --- docs/global SMS/index.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/docs/global SMS/index.md b/docs/global SMS/index.md index 764af047..7da1c5b5 100644 --- a/docs/global SMS/index.md +++ b/docs/global SMS/index.md @@ -1,11 +1,6 @@ # Introduction to Global Business SMS - -Welcome to the RingCentral developer community! As part of our commitment to expanding our global communications suite, **Messente is now a RingCentral company**. - -While we work behind the scenes to deeply integrate Messente’s infrastructure into the core RingCentral developer platform, developers can immediately leverage Messente’s powerful Omnichannel messaging APIs to scale their global user engagement. - !!! info "Independent Account Required: To get started [contact developer relations](https://developers.ringcentral.com/sms-api#requestinfo)" From 092856e525840acbc987a558326cd70fafb06c0b Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 11:46:15 +0100 Subject: [PATCH 09/52] Update index.md --- docs/global SMS/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/global SMS/index.md b/docs/global SMS/index.md index 7da1c5b5..10ad0923 100644 --- a/docs/global SMS/index.md +++ b/docs/global SMS/index.md @@ -27,7 +27,7 @@ Global Business SMS is ideal for high-volume, global bulk messaging with smart r ## Ready to Explore? -To begin testing or moving your high-volume messaging workloads to Messente, please reach out to their team to get your API keys and sandbox environment provisioned. +To begin testing or moving your high-volume messaging workloads to Ring Central, please reach out to their team to get your API keys and sandbox environment provisioned. ### Implementation Flow @@ -43,4 +43,4 @@ To begin testing or moving your high-volume messaging workloads to Messente, ple --- ### Behind the Scenes: What's Next? -We are actively designing a unified developer experience where you will eventually be able to manage your RingCentral UCaaS/CCaaS APIs and Messente bulk messaging tools from a single login, contract, and credential set. Stay tuned to our developer newsletter for integration timelines! +We are actively designing a unified developer experience where you will eventually be able to manage your RingCentral UCaaS/CCaaS APIs and Global Bussiness SMS messaging tools from a single login, contract, and credential set. Stay tuned to our developer newsletter for integration timelines! From bb047f64626b0fad1adfd5aca33d4edd22eb0fe5 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 11:47:02 +0100 Subject: [PATCH 10/52] Update overview.md --- docs/global SMS/overview.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/docs/global SMS/overview.md b/docs/global SMS/overview.md index 9123df81..514c5b95 100644 --- a/docs/global SMS/overview.md +++ b/docs/global SMS/overview.md @@ -155,10 +155,7 @@ Select your preferred programming language and follow the instructions. Take a look at the library's [GitHub](https://github.com/messente/messente-api-csharp) and [NuGet](https://www.nuget.org/packages/com.Messente.Api) pages. -[Let us know if your preferred language is not in the list](https://messente.com/contact) -!!! warning - These libraries only contain Omnichannel and Phonebook API features. For other Messente features, you need to install different set of libraries. [Libraries page](https://messente.com/documentation/tools/libraries/) contains the list of all our SDKs. ## Send a single SMS @@ -212,7 +209,7 @@ Use the following example to send an SMS using Omnichannel API. Messente tracks your sent message and reports [status updates](delivery-report.md) back to you. -To be able to view the status, you must add a callback URL to the message. Messente will use this URL to make HTTP POST requests, if there is a status update. +To be able to view the status, you must add a callback URL to the message. We will use this URL to make HTTP POST requests, if there is a status update. Here is a code snippet for you to test it out quickly. From b9ba90c4689eca49f9f96154708ad74b1f79f6a0 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 11:48:57 +0100 Subject: [PATCH 11/52] Update requests-and-authentication.md --- docs/global SMS/requests-and-authentication.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/global SMS/requests-and-authentication.md b/docs/global SMS/requests-and-authentication.md index 7bf92512..a2633238 100644 --- a/docs/global SMS/requests-and-authentication.md +++ b/docs/global SMS/requests-and-authentication.md @@ -17,7 +17,7 @@ Learn the basics of how to make a request and authenticate yourself. ### Authentication -Authentication is done using HTTP Basic Authentication with your API username and password. [Sign up](https://dashboard.messente.com/register) to Messente and [receive your API credentials](https://dashboard.messente.com/api-settings) (no credit card required). +Authentication is done using HTTP Basic Authentication with your API username and password. [Contact developer relations](https://developers.ringcentral.com/sms-api#requestinfo) to get started ### Making a Request @@ -50,7 +50,7 @@ curl -X POST \ ### IP Address Whitelisting -Configure your account in the [dashboard](https://dashboard.messente.com/api-settings) to allow API requests only from certain IPs. +We recommend configuring your account to allow API requests only from certain IPs. If you do not have a fixed IP address, you can also specify the [IP address ranges](https://messente.com/blog/messente/whitelist-ip-address-range-sms-api) in CIDR notation. From 104ce46a6847503940b86e2bb2a6a10a7e500565 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 11:52:41 +0100 Subject: [PATCH 12/52] Update sender-name.md --- docs/global SMS/sender-name.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/global SMS/sender-name.md b/docs/global SMS/sender-name.md index 1649dbbd..b3a211e3 100644 --- a/docs/global SMS/sender-name.md +++ b/docs/global SMS/sender-name.md @@ -12,10 +12,9 @@ Identify yourself with a telephone number or as a brand. ## What is a Sender Name? Your sender name (or Sender ID) is the phone number or name that the recipient sees as the sender of the message. -![Sender Name](https://messente.com/documentation/img/guides/sender_name_example.png) ## Sender types -Messente supports 3 different types of sender IDs: +Global Business SMS supports 3 different types of sender IDs: * Regular phone number (eg +372 5555 6666) * Shortcode (usually 3-6 characters) (eg 123, 20010) From 0cdce278847f8a5646bc9ff2d709d19b0069e856 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 11:54:38 +0100 Subject: [PATCH 13/52] Update sms-message.md --- docs/global SMS/sms-message.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/global SMS/sms-message.md b/docs/global SMS/sms-message.md index dbb0fe40..697c6f5d 100644 --- a/docs/global SMS/sms-message.md +++ b/docs/global SMS/sms-message.md @@ -100,8 +100,6 @@ Messente forwards the SMS request to the operators, who, in turn, will retry SMS That being said, operators differ in their policies so some may retry SMS delivery up to 48 hours in total, starting with shorter retry intervals and switching to longer retry intervals towards the end. Some, on the other hand, may only retry for the required minimum of 6 hours indicated by us. -!!! info "SMPP protocol" - Although we don't encourage it, we also support SMPP protocol for sending SMS messages. Learn how to set up [SMPP integration](https://messente.com/documentation/smpp-api/). ### Error example From aa44c6fb3dd56119daf41d897f9d756e9d6a8064 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 11:55:48 +0100 Subject: [PATCH 14/52] Update delivery-report.md --- docs/global SMS/delivery-report.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/global SMS/delivery-report.md b/docs/global SMS/delivery-report.md index 2900e0c7..02cb93d8 100644 --- a/docs/global SMS/delivery-report.md +++ b/docs/global SMS/delivery-report.md @@ -200,7 +200,6 @@ There can be various reasons why a message wasn't delivered or hasn't been deliv | NACK | The message delivery has been rejected | | SEEN | The message has been seen by the recipient | -[Complete API Specification](https://messente.com/documentation/messente-api/omnimessage/) ## Our IP Addresses From 7c5af823d27202a28484928c7f86c5b6a908b57a Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 11:56:49 +0100 Subject: [PATCH 15/52] Update development-libraries.md --- docs/global SMS/development-libraries.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/global SMS/development-libraries.md b/docs/global SMS/development-libraries.md index 0a21f0e0..dfa91e00 100644 --- a/docs/global SMS/development-libraries.md +++ b/docs/global SMS/development-libraries.md @@ -5,7 +5,7 @@ Develop with our API libraries to get the fastest integration experience. --- !!! warning - Make sure you have [signed up](https://dashboard.messente.com/register) and have your [API keys](https://dashboard.messente.com/api-settings). + To get started contact [Developer Relations](https://developers.ringcentral.com/sms-api#requestinfo). ## Install a library From 88a41f249d845a3ee787be35315f49cb0ff661b0 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 12:00:23 +0100 Subject: [PATCH 16/52] Update sms-message.md --- docs/global SMS/sms-message.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/docs/global SMS/sms-message.md b/docs/global SMS/sms-message.md index 697c6f5d..44a982a5 100644 --- a/docs/global SMS/sms-message.md +++ b/docs/global SMS/sms-message.md @@ -77,11 +77,11 @@ There are few things to keep in mind when composing SMS messages. ### Be aware of non-GSM friendly characters -A single SMS can contain 160 characters. However, SMS is built to use 7-bit GSM 03.38 character encoding set and this means that certain unicode characters (that are not in GSM character set) don't fit into the message. You can use our [SMS calculator](https://messente.com/sms-length-calculator) to check how many characters your message contains and how many SMS messages it will take to send it. +A single SMS can contain 160 characters. However, SMS is built to use 7-bit GSM 03.38 character encoding set and this means that certain unicode characters (that are not in GSM character set) don't fit into the message. You can use an SMS length calculator to check how many characters your message contains and how many SMS messages it will take to send it. If your message contains any characters not listed in the 7-bit alphabet then the message encoding will be set to UCS-2. With it, the message length is limited to 70 characters. -**By default, the API will [convert all non-GSM](https://messente.com/documentation/tools/autoreplace/) friendly characters to similar characters in GSM 03.38 encoding set.** This allows you to send messages with non-unicode characters and not worry about the GSM specification. +**By default, the API will convert all non-GSM friendly characters to similar characters in GSM 03.38 encoding set.** This allows you to send messages with non-unicode characters and not worry about the GSM specification. !!! info You can turn the character replace feature off by configuring the `autoconvert` parameter in the message. @@ -90,10 +90,6 @@ If your message contains any characters not listed in the 7-bit alphabet then th autoconvert: on(default)|full|off ``` -[SMS Length Calculator](https://messente.com/sms-length-calculator) - -[How to configure which characters get replaced](https://messente.com/documentation/tools/autoreplace/) - ## Message Validity and Retry Policy Messente forwards the SMS request to the operators, who, in turn, will retry SMS delivery for a **minimum of 6 hours.** From 202c17b2f0027e13bcc16ba1072b1be7c4b9040f Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 12:01:26 +0100 Subject: [PATCH 17/52] Update delivery-report.md --- docs/global SMS/delivery-report.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/global SMS/delivery-report.md b/docs/global SMS/delivery-report.md index 02cb93d8..d7a0c455 100644 --- a/docs/global SMS/delivery-report.md +++ b/docs/global SMS/delivery-report.md @@ -29,7 +29,7 @@ Messente will make a HTTP POST request to the URL in dlr_url property for every The provided Delivery report URL (dlr_url) endpoint should respond with a HTTP status code within the range 200-399, otherwise the DRL will be considered undelivered. -To [validate the authenticity](https://messente.com/documentation/api-setup/security/) of callback request, you can use the X-Messente-Signature header. +To validate the authenticity of callback request, you can use the X-Messente-Signature header. === "Python" From 12cb4dfb10b4b6a483661e990cf6a0f13aa64220 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 12:02:17 +0100 Subject: [PATCH 18/52] Update overview.md --- docs/global SMS/overview.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/global SMS/overview.md b/docs/global SMS/overview.md index 514c5b95..9ff56e8d 100644 --- a/docs/global SMS/overview.md +++ b/docs/global SMS/overview.md @@ -203,8 +203,6 @@ Use the following example to send an SMS using Omnichannel API. {!> code-samples/messaging/global-business/send-single-sms.sh !} ``` -[Detailed API Reference on sending an SMS](https://messente.com/documentation/messente-api/omnimessage/) - ## Get delivery reports Messente tracks your sent message and reports [status updates](delivery-report.md) back to you. From 95e6bcef48b4c4bc5f0716660f88fc2b19268b96 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 12:02:39 +0100 Subject: [PATCH 19/52] Update requests-and-authentication.md --- docs/global SMS/requests-and-authentication.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/global SMS/requests-and-authentication.md b/docs/global SMS/requests-and-authentication.md index a2633238..fe4fb918 100644 --- a/docs/global SMS/requests-and-authentication.md +++ b/docs/global SMS/requests-and-authentication.md @@ -52,7 +52,7 @@ curl -X POST \ We recommend configuring your account to allow API requests only from certain IPs. -If you do not have a fixed IP address, you can also specify the [IP address ranges](https://messente.com/blog/messente/whitelist-ip-address-range-sms-api) in CIDR notation. +If you do not have a fixed IP address, you can also specify the IP address ranges in CIDR notation. If you need to disable IP address validation, you can set the value to 0.0.0.0/0 (enable all IPv4 addresses). From fda2f960e08302410a1e98f5a2ea47330011eb82 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 14:02:43 +0100 Subject: [PATCH 20/52] Update mkdocs.yml --- mkdocs.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/mkdocs.yml b/mkdocs.yml index 5b0c89db..564d0b5c 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -174,6 +174,16 @@ nav: - 'A2P SMS Messaging': 'https://ringcentral-tutorials.github.io/a2p-sms-messaging-nodejs-demo/' - 'Two-factor Authentication': 'https://ringcentral-tutorials.github.io/sms-2fa-nodejs-demo/' - 'Custom Fax Cover Pages': 'https://ringcentral-tutorials.github.io/fax-cover-page-nodejs-demo/' + - 'Global Business SMS': + - 'Overview': 'global SMS/index.md' + - 'Getting Started': 'global SMS/overview.md' + - 'Sender name': 'global SMS/sender-name.md' + - 'Requests & Authentication': 'global SMS/requests-and-authentication.md' + - 'Development Libraries': 'global SMS/development-libraries.md' + - 'SMS Message': 'global SMS/sms-message.md' + - 'Delivery Report': 'global SMS/delivery-report.md' + - 'Scheduled Messages': 'global SMS/scheduled-messages.md' + - 'Inbound Messages': 'global SMS/inbound-messages.md' - 'Team Messaging': - 'Overview': 'team-messaging/index.md' - 'Getting Started': 'team-messaging/quick-start.md' From c5b56e299903cc4d9c09546a4378fd2888e9bb64 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 14:03:23 +0100 Subject: [PATCH 21/52] Update extra.css --- docs/extra.css | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/extra.css b/docs/extra.css index 89afa6ed..af562fc2 100644 --- a/docs/extra.css +++ b/docs/extra.css @@ -165,6 +165,12 @@ #sidebar-nav #nav-item-sms-and-fax:hover { background-image: url('https://netstorage.ringcentral.com/dpw/api-reference/icons/group_icon_messaging_hover.svg'); } +#sidebar-nav #nav-item-global-business-sms { + background-image: url('https://netstorage.ringcentral.com/dpw/api-reference/icons/group_icon_messaging.svg?v=2020032620200227-0720'); +} +#sidebar-nav #nav-item-global-business-sms:hover { + background-image: url('https://netstorage.ringcentral.com/dpw/api-reference/icons/group_icon_messaging_hover.svg'); +} #sidebar-nav #nav-item-team-messaging { background-image: url('https://netstorage.ringcentral.com/dpw/api-reference/icons/group_icon_glip.svg?v=2020032620200227-0720'); } From 7d160bd5aeb8f5e5fb941d521e0ce9483d2cc36a Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 14:04:47 +0100 Subject: [PATCH 22/52] Update index.md --- docs/global SMS/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/global SMS/index.md b/docs/global SMS/index.md index 10ad0923..3d7a3601 100644 --- a/docs/global SMS/index.md +++ b/docs/global SMS/index.md @@ -1,7 +1,7 @@ # Introduction to Global Business SMS -!!! info "Independent Account Required: To get started [contact developer relations](https://developers.ringcentral.com/sms-api#requestinfo)" +!!! info "Independent Account Required: To get started contact [developer relations](https://developers.ringcentral.com/sms-api#requestinfo)" ## What You Can Build @@ -32,7 +32,7 @@ To begin testing or moving your high-volume messaging workloads to Ring Central, ### Implementation Flow 1. **Request an Account** - [Contact developer relations](https://developers.ringcentral.com/sms-api#requestinfo) and register for a business account + Contact [developer relations](https://developers.ringcentral.com/sms-api#requestinfo) and register for a business account 2. **Explore the API Reference** *(Authentication & Endpoints)* Review the documentation for authentication protocols and base URLs. From 02356d70ab5d4dd2b0e4ba90b3d3a45b29327ae5 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 14:07:02 +0100 Subject: [PATCH 23/52] Update overview.md --- docs/global SMS/overview.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/global SMS/overview.md b/docs/global SMS/overview.md index 9ff56e8d..001cece8 100644 --- a/docs/global SMS/overview.md +++ b/docs/global SMS/overview.md @@ -1,6 +1,6 @@ -# Overview +# Getting Started -To get started [contact Developer Relations](https://developers.ringcentral.com/sms-api#requestinfo) +To get started contact [Developer Relations](https://developers.ringcentral.com/sms-api#requestinfo) !!! tip Upon sign up we will add you some free credits so you can test out the service immediately. With it you can send a few test messages. @@ -205,7 +205,7 @@ Use the following example to send an SMS using Omnichannel API. ## Get delivery reports -Messente tracks your sent message and reports [status updates](delivery-report.md) back to you. +[Status updates](delivery-report.md) are reported back to you. To be able to view the status, you must add a callback URL to the message. We will use this URL to make HTTP POST requests, if there is a status update. From e825b89f7fd846211fbc4c1df4d17fac48fa54d1 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 14:07:57 +0100 Subject: [PATCH 24/52] Update sender-name.md --- docs/global SMS/sender-name.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/global SMS/sender-name.md b/docs/global SMS/sender-name.md index b3a211e3..c27384f7 100644 --- a/docs/global SMS/sender-name.md +++ b/docs/global SMS/sender-name.md @@ -18,13 +18,13 @@ Global Business SMS supports 3 different types of sender IDs: * Regular phone number (eg +372 5555 6666) * Shortcode (usually 3-6 characters) (eg 123, 20010) -* Branded sender name (Messente, Volvo, Coca Cola) +* Branded sender name (Volvo, Coca Cola) !!! tip You can have multiple Sender IDs connected to your account and they are free of charge. !!! info - Registering a branded sender name is a manual process and might take up to 24 hours. Registration for regular phone number as sender name is automatic and instantaneous. + Registering a branded sender name is a manual process and might take 24 hours or longer in some markets. Registration for regular phone number as sender name is automatic and instantaneous. ## Restrictions **Phone numbers** as numeric Sender IDs can be up to 15 digits long (excluding the "+" sign) and can include country codes, mobile operator codes, individual phone numbers, destination codes, identifying the subscriber's operator, etc. It's also possible to reply to a phone number by just hitting the reply button. From 82cc619eafc9bf6e82167d8fd45292f7d197a0f9 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 14:08:42 +0100 Subject: [PATCH 25/52] Update requests-and-authentication.md --- docs/global SMS/requests-and-authentication.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/global SMS/requests-and-authentication.md b/docs/global SMS/requests-and-authentication.md index fe4fb918..aff4e3d3 100644 --- a/docs/global SMS/requests-and-authentication.md +++ b/docs/global SMS/requests-and-authentication.md @@ -17,7 +17,7 @@ Learn the basics of how to make a request and authenticate yourself. ### Authentication -Authentication is done using HTTP Basic Authentication with your API username and password. [Contact developer relations](https://developers.ringcentral.com/sms-api#requestinfo) to get started +Authentication is done using HTTP Basic Authentication with your API username and password. Contact [developer relations](https://developers.ringcentral.com/sms-api#requestinfo) to get started ### Making a Request @@ -57,4 +57,4 @@ If you do not have a fixed IP address, you can also specify the IP address range If you need to disable IP address validation, you can set the value to 0.0.0.0/0 (enable all IPv4 addresses). !!! danger "Security Warning" - It is strongly encouraged to whitelist only IP addresses that are used to make HTTP calls to Messente's API. + It is strongly encouraged to whitelist only IP addresses that are used to make HTTP calls to the Global SMS API. From fc6d8c3633c3eaac424898a0f84dd081d394a3c2 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 14:12:06 +0100 Subject: [PATCH 26/52] Update mkdocs.yml --- mkdocs.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/mkdocs.yml b/mkdocs.yml index 5b0c89db..564d0b5c 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -174,6 +174,16 @@ nav: - 'A2P SMS Messaging': 'https://ringcentral-tutorials.github.io/a2p-sms-messaging-nodejs-demo/' - 'Two-factor Authentication': 'https://ringcentral-tutorials.github.io/sms-2fa-nodejs-demo/' - 'Custom Fax Cover Pages': 'https://ringcentral-tutorials.github.io/fax-cover-page-nodejs-demo/' + - 'Global Business SMS': + - 'Overview': 'global SMS/index.md' + - 'Getting Started': 'global SMS/overview.md' + - 'Sender name': 'global SMS/sender-name.md' + - 'Requests & Authentication': 'global SMS/requests-and-authentication.md' + - 'Development Libraries': 'global SMS/development-libraries.md' + - 'SMS Message': 'global SMS/sms-message.md' + - 'Delivery Report': 'global SMS/delivery-report.md' + - 'Scheduled Messages': 'global SMS/scheduled-messages.md' + - 'Inbound Messages': 'global SMS/inbound-messages.md' - 'Team Messaging': - 'Overview': 'team-messaging/index.md' - 'Getting Started': 'team-messaging/quick-start.md' From bebac74e22f1c0011e322abd009bc73b0d6e8120 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 14:12:46 +0100 Subject: [PATCH 27/52] Update extra.css --- docs/extra.css | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/extra.css b/docs/extra.css index 89afa6ed..af562fc2 100644 --- a/docs/extra.css +++ b/docs/extra.css @@ -165,6 +165,12 @@ #sidebar-nav #nav-item-sms-and-fax:hover { background-image: url('https://netstorage.ringcentral.com/dpw/api-reference/icons/group_icon_messaging_hover.svg'); } +#sidebar-nav #nav-item-global-business-sms { + background-image: url('https://netstorage.ringcentral.com/dpw/api-reference/icons/group_icon_messaging.svg?v=2020032620200227-0720'); +} +#sidebar-nav #nav-item-global-business-sms:hover { + background-image: url('https://netstorage.ringcentral.com/dpw/api-reference/icons/group_icon_messaging_hover.svg'); +} #sidebar-nav #nav-item-team-messaging { background-image: url('https://netstorage.ringcentral.com/dpw/api-reference/icons/group_icon_glip.svg?v=2020032620200227-0720'); } From 4eacdae38a723aa6c715e8753cc2f6fdbe8a904e Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 14:13:58 +0100 Subject: [PATCH 28/52] Update index.md --- docs/global SMS/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/global SMS/index.md b/docs/global SMS/index.md index 10ad0923..0c557d10 100644 --- a/docs/global SMS/index.md +++ b/docs/global SMS/index.md @@ -1,7 +1,7 @@ # Introduction to Global Business SMS -!!! info "Independent Account Required: To get started [contact developer relations](https://developers.ringcentral.com/sms-api#requestinfo)" +!!! info "Independent Account Required: To get started contact [developer relations](https://developers.ringcentral.com/sms-api#requestinfo)" ## What You Can Build @@ -20,7 +20,7 @@ Global Business SMS is ideal for high-volume, global bulk messaging with smart r * **Smart Fallback Routing:** If a rich message (like WhatsApp or Viber) fails to deliver due to connectivity or app availability, the API can automatically fall back to standard SMS within seconds to guarantee delivery. * **Global Compliance Built-In:** Built-in tools to manage sender IDs, templates, and local country regulations automatically, ensuring high deliverability rates. -* **Unified Analytics:** Track delivery statuses, open rates, and conversion metrics across all channels via webhooks or the Messente dashboard. +* **Unified Analytics:** Track delivery statuses, open rates, and conversion metrics across all channels via webhooks or the dashboard. * **Number lookup:** Check number validity and identify mobile vs. landline phones. --- @@ -32,7 +32,7 @@ To begin testing or moving your high-volume messaging workloads to Ring Central, ### Implementation Flow 1. **Request an Account** - [Contact developer relations](https://developers.ringcentral.com/sms-api#requestinfo) and register for a business account + Contact [developer relations](https://developers.ringcentral.com/sms-api#requestinfo) and register for a business account 2. **Explore the API Reference** *(Authentication & Endpoints)* Review the documentation for authentication protocols and base URLs. From 19c2c43c8572acb96c973ef380dc6bc09fb4b50a Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 14:15:19 +0100 Subject: [PATCH 29/52] Update overview.md --- docs/global SMS/overview.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/global SMS/overview.md b/docs/global SMS/overview.md index 9ff56e8d..ddb13c67 100644 --- a/docs/global SMS/overview.md +++ b/docs/global SMS/overview.md @@ -1,6 +1,6 @@ -# Overview +# Getting Started -To get started [contact Developer Relations](https://developers.ringcentral.com/sms-api#requestinfo) +To get started contact [Developer Relations](https://developers.ringcentral.com/sms-api#requestinfo) !!! tip Upon sign up we will add you some free credits so you can test out the service immediately. With it you can send a few test messages. @@ -205,7 +205,7 @@ Use the following example to send an SMS using Omnichannel API. ## Get delivery reports -Messente tracks your sent message and reports [status updates](delivery-report.md) back to you. +[Status updates](delivery-report.md) are reported back to you. To be able to view the status, you must add a callback URL to the message. We will use this URL to make HTTP POST requests, if there is a status update. @@ -257,7 +257,7 @@ Here is a code snippet for you to test it out quickly. ## Send an SMS with Omnichannel API -You can also use the Omnichannel API to send an SMS message directly. +You can also use the Global Business API to send an SMS message directly. === "Python" From e1fce39c0fe47ef540fd91cffdc7fdc27b4052ba Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 14:16:03 +0100 Subject: [PATCH 30/52] Update sender-name.md --- docs/global SMS/sender-name.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/global SMS/sender-name.md b/docs/global SMS/sender-name.md index b3a211e3..da72dd1e 100644 --- a/docs/global SMS/sender-name.md +++ b/docs/global SMS/sender-name.md @@ -18,13 +18,13 @@ Global Business SMS supports 3 different types of sender IDs: * Regular phone number (eg +372 5555 6666) * Shortcode (usually 3-6 characters) (eg 123, 20010) -* Branded sender name (Messente, Volvo, Coca Cola) +* Branded sender name (Volvo, Coca Cola) !!! tip You can have multiple Sender IDs connected to your account and they are free of charge. !!! info - Registering a branded sender name is a manual process and might take up to 24 hours. Registration for regular phone number as sender name is automatic and instantaneous. + Registering a branded sender name is a manual process and might take 24 hours or more in some markets. Registration for regular phone number as sender name is automatic and instantaneous. ## Restrictions **Phone numbers** as numeric Sender IDs can be up to 15 digits long (excluding the "+" sign) and can include country codes, mobile operator codes, individual phone numbers, destination codes, identifying the subscriber's operator, etc. It's also possible to reply to a phone number by just hitting the reply button. From 0bc554b6ff3fb2e34eefda4eefc45c65a06e3df5 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 14:16:50 +0100 Subject: [PATCH 31/52] Update requests-and-authentication.md --- docs/global SMS/requests-and-authentication.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/global SMS/requests-and-authentication.md b/docs/global SMS/requests-and-authentication.md index fe4fb918..f8d7367b 100644 --- a/docs/global SMS/requests-and-authentication.md +++ b/docs/global SMS/requests-and-authentication.md @@ -11,13 +11,13 @@ Learn the basics of how to make a request and authenticate yourself. --- !!! tip - The easiest way to use Omnichannel API is with our [official libraries](development-libraries.md). They will take care of authentication, request validation and response handling automatically. + The easiest way to use Global Business API is with our [official libraries](development-libraries.md). They will take care of authentication, request validation and response handling automatically. ## Request ### Authentication -Authentication is done using HTTP Basic Authentication with your API username and password. [Contact developer relations](https://developers.ringcentral.com/sms-api#requestinfo) to get started +Authentication is done using HTTP Basic Authentication with your API username and password. Contact [developer relations](https://developers.ringcentral.com/sms-api#requestinfo) to get started ### Making a Request @@ -57,4 +57,4 @@ If you do not have a fixed IP address, you can also specify the IP address range If you need to disable IP address validation, you can set the value to 0.0.0.0/0 (enable all IPv4 addresses). !!! danger "Security Warning" - It is strongly encouraged to whitelist only IP addresses that are used to make HTTP calls to Messente's API. + It is strongly encouraged to whitelist only IP addresses that are used to make HTTP calls to the Global Business API. From 1f2404a75608c1ba22e7d4f1134e04c18f1205d8 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 14:18:06 +0100 Subject: [PATCH 32/52] Update sms-message.md --- docs/global SMS/sms-message.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/global SMS/sms-message.md b/docs/global SMS/sms-message.md index 44a982a5..a79d7f74 100644 --- a/docs/global SMS/sms-message.md +++ b/docs/global SMS/sms-message.md @@ -1,11 +1,11 @@ # SMS Message -Sending SMS messages with Omnichannel API. +Sending SMS messages with the Global Business SMS API. --- !!! tip - The easiest way to use Omnichannel API is with our [official libraries](development-libraries.md). Libraries will take care of authentication, request validation and response handling. + The easiest way to use the Global Business SMS API is with our [official libraries](development-libraries.md). Libraries will take care of authentication, request validation and response handling. ## Send a single SMS @@ -92,7 +92,7 @@ If your message contains any characters not listed in the 7-bit alphabet then th ## Message Validity and Retry Policy -Messente forwards the SMS request to the operators, who, in turn, will retry SMS delivery for a **minimum of 6 hours.** +The SMS request is forwarded to the operators, who, in turn, will retry SMS delivery for a **minimum of 6 hours.** That being said, operators differ in their policies so some may retry SMS delivery up to 48 hours in total, starting with shorter retry intervals and switching to longer retry intervals towards the end. Some, on the other hand, may only retry for the required minimum of 6 hours indicated by us. From 5a4492ed030ab079f90270bae0cb6e7b52ad8e85 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 14:19:28 +0100 Subject: [PATCH 33/52] Update delivery-report.md --- docs/global SMS/delivery-report.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/global SMS/delivery-report.md b/docs/global SMS/delivery-report.md index d7a0c455..e7c19d06 100644 --- a/docs/global SMS/delivery-report.md +++ b/docs/global SMS/delivery-report.md @@ -17,13 +17,13 @@ Each time you send a message, we generate an ID that is unique to this particula * You can request a delivery report by manually making a call to the API. !!! tip - The easiest way to use Omnichannel API is with our [official libraries](development-libraries.md). They will take care of authentication, request validation and response handling automatically. + The easiest way to use the Global Business SMS API is with our [official libraries](development-libraries.md). They will take care of authentication, request validation and response handling automatically. --- ## Option 1. Add a callback URL to the message -Messente will make a HTTP POST request to the URL in dlr_url property for every status update. +A HTTP POST request is made to the URL in dlr_url property for every status update. ### Callback URL @@ -179,7 +179,7 @@ Example of a successful message. ### Difference between `omnimessage_id` and `message_id` `message_id` is a unique identifier for a single message and `omnimessage_id` groups messages that are sent with multi-channel fallback. -Although Omnichannel API can easily be used to send single messages we've built it with multi-channel capabilities in mind. To allow easy migration between the two we add `omnimessage_id` to every message. +Although the API can easily be used to send single messages we've built it with multi-channel capabilities in mind. To allow easy migration between the two we add `omnimessage_id` to every message. --- From 56cfde28bd6465610d118f800b625e92b88bcca6 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 14:19:57 +0100 Subject: [PATCH 34/52] Update scheduled-messages.md --- docs/global SMS/scheduled-messages.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/global SMS/scheduled-messages.md b/docs/global SMS/scheduled-messages.md index 0daacadc..1d081c10 100644 --- a/docs/global SMS/scheduled-messages.md +++ b/docs/global SMS/scheduled-messages.md @@ -11,7 +11,7 @@ Schedule messages to be sent for later. --- !!! tip - The easiest way to use Omnichannel API is with our [official libraries](development-libraries.md). They will take care of authentication, request validation and response handling automatically. + The easiest way to use the Global Business SMS API is with our [official libraries](development-libraries.md). They will take care of authentication, request validation and response handling automatically. ## Schedule a message From 7f8a75e78bc679bd607ec049f16ba420aef69b9f Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 14 Jul 2026 14:20:38 +0100 Subject: [PATCH 35/52] Update inbound-messages.md --- docs/global SMS/inbound-messages.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/global SMS/inbound-messages.md b/docs/global SMS/inbound-messages.md index e5720f67..595abf80 100644 --- a/docs/global SMS/inbound-messages.md +++ b/docs/global SMS/inbound-messages.md @@ -44,7 +44,7 @@ X-Messente-Signature: 9a398f4a9ce4f96077e70b65d208420640aabb158c224bd0f29391d673 ## Validating the request authenticity -Messente provides every request with signature calculated using [HMAC](https://en.wikipedia.org/wiki/HMAC). The signature is calculated using the Shared Secret, available in the Inbound Numbers section of the Developers view. +Every request is provided with a signature calculated using [HMAC](https://en.wikipedia.org/wiki/HMAC). The signature is calculated using the Shared Secret, available in the Inbound Numbers section of the Developers view. Calculated signature is provided in the HTTP headers called `X-Messente-Signature`. From 9d4f867c97fb163772c76e67c8781eb2d3a7b80a Mon Sep 17 00:00:00 2001 From: harry-peek Date: Thu, 16 Jul 2026 08:54:58 +0100 Subject: [PATCH 36/52] Create keep --- docs/global SMS/Number-lookup/keep | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/global SMS/Number-lookup/keep diff --git a/docs/global SMS/Number-lookup/keep b/docs/global SMS/Number-lookup/keep new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/docs/global SMS/Number-lookup/keep @@ -0,0 +1 @@ + From 5067050179147d64ca3dba5ec83b8f9e8cee182f Mon Sep 17 00:00:00 2001 From: harry-peek Date: Thu, 16 Jul 2026 08:55:15 +0100 Subject: [PATCH 37/52] Add files via upload --- docs/global SMS/Number-lookup/index.md | 88 ++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 docs/global SMS/Number-lookup/index.md diff --git a/docs/global SMS/Number-lookup/index.md b/docs/global SMS/Number-lookup/index.md new file mode 100644 index 00000000..c0bae2a1 --- /dev/null +++ b/docs/global SMS/Number-lookup/index.md @@ -0,0 +1,88 @@ +# Number Lookup + +REST API to find out statuses and network info of phone numbers. + +
+ +
+ +--- + +## Setup + +This tutorial will guide you through the setup of the Number Lookup API. + +!!! info "Independent Account Required: To use the capabilities detailed below, you will need to sign up for a separate account directly via the Messente team. [Contact Messente to Sign-up →](https://messente.com/talk-to-sales)" + +1. Log in to your Messente account*. +2. Obtain your Messente API username and API password from [API Settings page](https://dashboard.messente.com/api-settings). +3. Start using the API. + +!!! note + Please [contact sales](https://messente.com/talk-to-sales) if you don't have an account yet. + +## Pricing + +The cost for Number Lookup API is a fixed **€199 monthly fee** plus a **0.002€ per number lookup** charge. + +## API request authentication + +### API endpoint + +Number Lookup API requests are made to the following server: + +```text +https://api.messente.com +``` + +### Authentication + +Authentication is done using HTTP Basic Authentication using your Messente API username and password. + +### Request and response body + +All request and response bodies for the API calls are JSON encoded strings according to the specification. + +### Response HTTP status codes + +API call responses have status codes according to REST specifications. + +Always set Accept and Content-Type headers to application/json as well. + +Only 2xx response codes indicate a successful response. + +### Number Lookup Call + +Request to lookup a number will be made to the following URL: + +```text +POST https://api.messente.com/v1/hlr/sync +``` + +### Request Headers + +| HTTP header | Value | Required | +| :--- | :--- | :--- | +| Content-Type | application/json | Yes | +| Accept | application/json | Yes | + +### Example request + +```bash +curl -X POST \ + https://api.messente.com/v1/hlr/sync \ + -u YOUR_MESSENTE_API_USERNAME:YOUR_MESSENTE_API_PASSWORD \ + -H 'Content-Type: application/json' \ + -d '{ + "numbers": [ + "+37251000000", + "+37251000001" + ] + }' +``` + +--- + +## Next Steps + +Check out a more detailed [Number Lookup API reference](https://messente.com/documentation/messente-api/number-lookup/). From 9bb18d45a268a390d0731796aeb8b473c89ee70b Mon Sep 17 00:00:00 2001 From: harry-peek Date: Thu, 16 Jul 2026 08:59:01 +0100 Subject: [PATCH 38/52] Update mkdocs.yml --- mkdocs.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/mkdocs.yml b/mkdocs.yml index 564d0b5c..a079b9a5 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -184,6 +184,7 @@ nav: - 'Delivery Report': 'global SMS/delivery-report.md' - 'Scheduled Messages': 'global SMS/scheduled-messages.md' - 'Inbound Messages': 'global SMS/inbound-messages.md' + - 'Number Lookup': 'number-lookup.md' - 'Team Messaging': - 'Overview': 'team-messaging/index.md' - 'Getting Started': 'team-messaging/quick-start.md' From e277f8e83218f10de49df03efcdf8a9044e64328 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Thu, 16 Jul 2026 09:00:33 +0100 Subject: [PATCH 39/52] Delete docs/global SMS/Number-lookup/index.md --- docs/global SMS/Number-lookup/index.md | 88 -------------------------- 1 file changed, 88 deletions(-) delete mode 100644 docs/global SMS/Number-lookup/index.md diff --git a/docs/global SMS/Number-lookup/index.md b/docs/global SMS/Number-lookup/index.md deleted file mode 100644 index c0bae2a1..00000000 --- a/docs/global SMS/Number-lookup/index.md +++ /dev/null @@ -1,88 +0,0 @@ -# Number Lookup - -REST API to find out statuses and network info of phone numbers. - -
- -
- ---- - -## Setup - -This tutorial will guide you through the setup of the Number Lookup API. - -!!! info "Independent Account Required: To use the capabilities detailed below, you will need to sign up for a separate account directly via the Messente team. [Contact Messente to Sign-up →](https://messente.com/talk-to-sales)" - -1. Log in to your Messente account*. -2. Obtain your Messente API username and API password from [API Settings page](https://dashboard.messente.com/api-settings). -3. Start using the API. - -!!! note - Please [contact sales](https://messente.com/talk-to-sales) if you don't have an account yet. - -## Pricing - -The cost for Number Lookup API is a fixed **€199 monthly fee** plus a **0.002€ per number lookup** charge. - -## API request authentication - -### API endpoint - -Number Lookup API requests are made to the following server: - -```text -https://api.messente.com -``` - -### Authentication - -Authentication is done using HTTP Basic Authentication using your Messente API username and password. - -### Request and response body - -All request and response bodies for the API calls are JSON encoded strings according to the specification. - -### Response HTTP status codes - -API call responses have status codes according to REST specifications. - -Always set Accept and Content-Type headers to application/json as well. - -Only 2xx response codes indicate a successful response. - -### Number Lookup Call - -Request to lookup a number will be made to the following URL: - -```text -POST https://api.messente.com/v1/hlr/sync -``` - -### Request Headers - -| HTTP header | Value | Required | -| :--- | :--- | :--- | -| Content-Type | application/json | Yes | -| Accept | application/json | Yes | - -### Example request - -```bash -curl -X POST \ - https://api.messente.com/v1/hlr/sync \ - -u YOUR_MESSENTE_API_USERNAME:YOUR_MESSENTE_API_PASSWORD \ - -H 'Content-Type: application/json' \ - -d '{ - "numbers": [ - "+37251000000", - "+37251000001" - ] - }' -``` - ---- - -## Next Steps - -Check out a more detailed [Number Lookup API reference](https://messente.com/documentation/messente-api/number-lookup/). From 562f612ae564e85180ae6a803708de77a96e933a Mon Sep 17 00:00:00 2001 From: harry-peek Date: Thu, 16 Jul 2026 09:00:44 +0100 Subject: [PATCH 40/52] Delete docs/global SMS/Number-lookup/keep --- docs/global SMS/Number-lookup/keep | 1 - 1 file changed, 1 deletion(-) delete mode 100644 docs/global SMS/Number-lookup/keep diff --git a/docs/global SMS/Number-lookup/keep b/docs/global SMS/Number-lookup/keep deleted file mode 100644 index 8b137891..00000000 --- a/docs/global SMS/Number-lookup/keep +++ /dev/null @@ -1 +0,0 @@ - From 8bf0bb4307cd647d79abb43a48928a05afb31d79 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Thu, 16 Jul 2026 09:00:57 +0100 Subject: [PATCH 41/52] Add files via upload --- docs/global SMS/number-lookup.md | 88 ++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 docs/global SMS/number-lookup.md diff --git a/docs/global SMS/number-lookup.md b/docs/global SMS/number-lookup.md new file mode 100644 index 00000000..c0bae2a1 --- /dev/null +++ b/docs/global SMS/number-lookup.md @@ -0,0 +1,88 @@ +# Number Lookup + +REST API to find out statuses and network info of phone numbers. + +
+ +
+ +--- + +## Setup + +This tutorial will guide you through the setup of the Number Lookup API. + +!!! info "Independent Account Required: To use the capabilities detailed below, you will need to sign up for a separate account directly via the Messente team. [Contact Messente to Sign-up →](https://messente.com/talk-to-sales)" + +1. Log in to your Messente account*. +2. Obtain your Messente API username and API password from [API Settings page](https://dashboard.messente.com/api-settings). +3. Start using the API. + +!!! note + Please [contact sales](https://messente.com/talk-to-sales) if you don't have an account yet. + +## Pricing + +The cost for Number Lookup API is a fixed **€199 monthly fee** plus a **0.002€ per number lookup** charge. + +## API request authentication + +### API endpoint + +Number Lookup API requests are made to the following server: + +```text +https://api.messente.com +``` + +### Authentication + +Authentication is done using HTTP Basic Authentication using your Messente API username and password. + +### Request and response body + +All request and response bodies for the API calls are JSON encoded strings according to the specification. + +### Response HTTP status codes + +API call responses have status codes according to REST specifications. + +Always set Accept and Content-Type headers to application/json as well. + +Only 2xx response codes indicate a successful response. + +### Number Lookup Call + +Request to lookup a number will be made to the following URL: + +```text +POST https://api.messente.com/v1/hlr/sync +``` + +### Request Headers + +| HTTP header | Value | Required | +| :--- | :--- | :--- | +| Content-Type | application/json | Yes | +| Accept | application/json | Yes | + +### Example request + +```bash +curl -X POST \ + https://api.messente.com/v1/hlr/sync \ + -u YOUR_MESSENTE_API_USERNAME:YOUR_MESSENTE_API_PASSWORD \ + -H 'Content-Type: application/json' \ + -d '{ + "numbers": [ + "+37251000000", + "+37251000001" + ] + }' +``` + +--- + +## Next Steps + +Check out a more detailed [Number Lookup API reference](https://messente.com/documentation/messente-api/number-lookup/). From 2c63f7e6e7f122f90821e0778c6057e60d6d4f0c Mon Sep 17 00:00:00 2001 From: harry-peek Date: Thu, 16 Jul 2026 09:23:53 +0100 Subject: [PATCH 42/52] Update mkdocs.yml --- mkdocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkdocs.yml b/mkdocs.yml index a079b9a5..618f2f8b 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -184,7 +184,7 @@ nav: - 'Delivery Report': 'global SMS/delivery-report.md' - 'Scheduled Messages': 'global SMS/scheduled-messages.md' - 'Inbound Messages': 'global SMS/inbound-messages.md' - - 'Number Lookup': 'number-lookup.md' + - 'Number Lookup': 'global SMS/number-lookup.md' - 'Team Messaging': - 'Overview': 'team-messaging/index.md' - 'Getting Started': 'team-messaging/quick-start.md' From 925527fd0ea0183a22db1c76db040786ee4aec86 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Thu, 16 Jul 2026 09:29:36 +0100 Subject: [PATCH 43/52] Update number-lookup.md --- docs/global SMS/number-lookup.md | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/docs/global SMS/number-lookup.md b/docs/global SMS/number-lookup.md index c0bae2a1..a86299dc 100644 --- a/docs/global SMS/number-lookup.md +++ b/docs/global SMS/number-lookup.md @@ -12,18 +12,8 @@ REST API to find out statuses and network info of phone numbers. This tutorial will guide you through the setup of the Number Lookup API. -!!! info "Independent Account Required: To use the capabilities detailed below, you will need to sign up for a separate account directly via the Messente team. [Contact Messente to Sign-up →](https://messente.com/talk-to-sales)" +!!! info "Independent Account Required: To get started contact [developer relations](https://developers.ringcentral.com/sms-api#requestinfo)" -1. Log in to your Messente account*. -2. Obtain your Messente API username and API password from [API Settings page](https://dashboard.messente.com/api-settings). -3. Start using the API. - -!!! note - Please [contact sales](https://messente.com/talk-to-sales) if you don't have an account yet. - -## Pricing - -The cost for Number Lookup API is a fixed **€199 monthly fee** plus a **0.002€ per number lookup** charge. ## API request authentication @@ -37,7 +27,7 @@ https://api.messente.com ### Authentication -Authentication is done using HTTP Basic Authentication using your Messente API username and password. +Authentication is done using HTTP Basic Authentication using your API username and password. ### Request and response body @@ -83,6 +73,3 @@ curl -X POST \ --- -## Next Steps - -Check out a more detailed [Number Lookup API reference](https://messente.com/documentation/messente-api/number-lookup/). From ac4f595054a46904a54a8bcd9259fc173aac5ee0 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 21 Jul 2026 11:23:42 +0100 Subject: [PATCH 44/52] Update number-lookup.md --- docs/global SMS/number-lookup.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/docs/global SMS/number-lookup.md b/docs/global SMS/number-lookup.md index a86299dc..314b9f2d 100644 --- a/docs/global SMS/number-lookup.md +++ b/docs/global SMS/number-lookup.md @@ -71,5 +71,22 @@ curl -X POST \ }' ``` +### Result fields + +Field,Description,Example +number,Number queried in e.164 format,+15073040148 +currentNetwork,Detailed network information object,— +currentNetwork.mccmnc,"Mobile Country Code and Network Code (e.g., 310 = USA, 170 = AT&T)",310170 +currentNetwork.networkName,Mobile network name,AT&T Mobility +currentNetwork.countryName,Country name,United States +currentNetwork.countryPrefix,Country dialling prefix,+1 +currentNetwork.countryCode,Country code,USA +ported,Indicates if a number is ported,true +portedNetwork,Network information for the network the number was ported to,null +roaming,Indicates if a number is roaming,false +roamingNetwork,Network information for the network the number is roaming on,null +status,"Status of phone number: ON, OFF, INVALID, UNKNOWN (Live Toll-Free numbers not text-enabled show as INVALID)",ON +type,Indicates SMS capability: MOBILE (Mobiles/text-enabled landlines) or LANDLINE (Cannot receive SMS),MOBILE + --- From 187929d57213df9acde5b2fcfea7d0517c43634d Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 21 Jul 2026 11:24:58 +0100 Subject: [PATCH 45/52] Update number-lookup.md --- docs/global SMS/number-lookup.md | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/docs/global SMS/number-lookup.md b/docs/global SMS/number-lookup.md index 314b9f2d..4a5728f1 100644 --- a/docs/global SMS/number-lookup.md +++ b/docs/global SMS/number-lookup.md @@ -73,20 +73,21 @@ curl -X POST \ ### Result fields -Field,Description,Example -number,Number queried in e.164 format,+15073040148 -currentNetwork,Detailed network information object,— -currentNetwork.mccmnc,"Mobile Country Code and Network Code (e.g., 310 = USA, 170 = AT&T)",310170 -currentNetwork.networkName,Mobile network name,AT&T Mobility -currentNetwork.countryName,Country name,United States -currentNetwork.countryPrefix,Country dialling prefix,+1 -currentNetwork.countryCode,Country code,USA -ported,Indicates if a number is ported,true -portedNetwork,Network information for the network the number was ported to,null -roaming,Indicates if a number is roaming,false -roamingNetwork,Network information for the network the number is roaming on,null -status,"Status of phone number: ON, OFF, INVALID, UNKNOWN (Live Toll-Free numbers not text-enabled show as INVALID)",ON -type,Indicates SMS capability: MOBILE (Mobiles/text-enabled landlines) or LANDLINE (Cannot receive SMS),MOBILE +| Field | Description | Example | +| :--- | :--- | :--- | +| `number` | Number queried in e.164 format | `+15073040148` | +| `currentNetwork` | Detailed network information object | — | +| `currentNetwork.mccmnc` | Mobile Country Code and Network Code (e.g., 310 = USA, 170 = AT&T) | `310170` | +| `currentNetwork.networkName` | Mobile network name | `AT&T Mobility` | +| `currentNetwork.countryName` | Country name | `United States` | +| `currentNetwork.countryPrefix` | Country dialling prefix | `+1` | +| `currentNetwork.countryCode` | Country code | `USA` | +| `ported` | Indicates if a number is ported | `true` | +| `portedNetwork` | Network information for the network the number was ported to | `null` | +| `roaming` | Indicates if a number is roaming | `false` | +| `roamingNetwork` | Network information for the network the number is roaming on | `null` | +| `status` | Status of phone number: `ON`, `OFF`, `INVALID`, `UNKNOWN` *(Live Toll-Free numbers not text-enabled show as `INVALID`)* | `ON` | +| `type` | Indicates SMS capability: `MOBILE` (Mobiles/text-enabled landlines) or `LANDLINE` (Cannot receive SMS) | `MOBILE` | --- From 6ae6a65d3ce1b39f06f54fbe40fd8475b3780d44 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 21 Jul 2026 11:26:46 +0100 Subject: [PATCH 46/52] Update number-lookup.md --- docs/global SMS/number-lookup.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/global SMS/number-lookup.md b/docs/global SMS/number-lookup.md index 4a5728f1..cb5c0d48 100644 --- a/docs/global SMS/number-lookup.md +++ b/docs/global SMS/number-lookup.md @@ -77,11 +77,11 @@ curl -X POST \ | :--- | :--- | :--- | | `number` | Number queried in e.164 format | `+15073040148` | | `currentNetwork` | Detailed network information object | — | -| `currentNetwork.mccmnc` | Mobile Country Code and Network Code (e.g., 310 = USA, 170 = AT&T) | `310170` | -| `currentNetwork.networkName` | Mobile network name | `AT&T Mobility` | -| `currentNetwork.countryName` | Country name | `United States` | -| `currentNetwork.countryPrefix` | Country dialling prefix | `+1` | -| `currentNetwork.countryCode` | Country code | `USA` | +| ├─`currentNetwork.mccmnc` | Mobile Country Code and Network Code (e.g., 310 = USA, 170 = AT&T) | `310170` | +| ├─`currentNetwork.networkName` | Mobile network name | `AT&T Mobility` | +| ├─`currentNetwork.countryName` | Country name | `United States` | +| ├─`currentNetwork.countryPrefix` | Country dialling prefix | `+1` | +| ├─`currentNetwork.countryCode` | Country code | `USA` | | `ported` | Indicates if a number is ported | `true` | | `portedNetwork` | Network information for the network the number was ported to | `null` | | `roaming` | Indicates if a number is roaming | `false` | From 253e0be36abfae28a463cb2781d3aacd26f9c12c Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 21 Jul 2026 11:27:06 +0100 Subject: [PATCH 47/52] Update number-lookup.md --- docs/global SMS/number-lookup.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/global SMS/number-lookup.md b/docs/global SMS/number-lookup.md index cb5c0d48..58551516 100644 --- a/docs/global SMS/number-lookup.md +++ b/docs/global SMS/number-lookup.md @@ -77,11 +77,11 @@ curl -X POST \ | :--- | :--- | :--- | | `number` | Number queried in e.164 format | `+15073040148` | | `currentNetwork` | Detailed network information object | — | -| ├─`currentNetwork.mccmnc` | Mobile Country Code and Network Code (e.g., 310 = USA, 170 = AT&T) | `310170` | -| ├─`currentNetwork.networkName` | Mobile network name | `AT&T Mobility` | -| ├─`currentNetwork.countryName` | Country name | `United States` | -| ├─`currentNetwork.countryPrefix` | Country dialling prefix | `+1` | -| ├─`currentNetwork.countryCode` | Country code | `USA` | +| ├`currentNetwork.mccmnc` | Mobile Country Code and Network Code (e.g., 310 = USA, 170 = AT&T) | `310170` | +| ├`currentNetwork.networkName` | Mobile network name | `AT&T Mobility` | +| ├`currentNetwork.countryName` | Country name | `United States` | +| ├`currentNetwork.countryPrefix` | Country dialling prefix | `+1` | +| ├`currentNetwork.countryCode` | Country code | `USA` | | `ported` | Indicates if a number is ported | `true` | | `portedNetwork` | Network information for the network the number was ported to | `null` | | `roaming` | Indicates if a number is roaming | `false` | From 588f02c58a88683dfbce00efe4f7cb809e88c8f2 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 21 Jul 2026 11:27:45 +0100 Subject: [PATCH 48/52] Update number-lookup.md --- docs/global SMS/number-lookup.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/global SMS/number-lookup.md b/docs/global SMS/number-lookup.md index 58551516..40ce5411 100644 --- a/docs/global SMS/number-lookup.md +++ b/docs/global SMS/number-lookup.md @@ -77,11 +77,11 @@ curl -X POST \ | :--- | :--- | :--- | | `number` | Number queried in e.164 format | `+15073040148` | | `currentNetwork` | Detailed network information object | — | -| ├`currentNetwork.mccmnc` | Mobile Country Code and Network Code (e.g., 310 = USA, 170 = AT&T) | `310170` | -| ├`currentNetwork.networkName` | Mobile network name | `AT&T Mobility` | -| ├`currentNetwork.countryName` | Country name | `United States` | -| ├`currentNetwork.countryPrefix` | Country dialling prefix | `+1` | -| ├`currentNetwork.countryCode` | Country code | `USA` | +| ├─`currentNetwork.mccmnc` | Mobile Country Code and Network Code (e.g., 310 = USA, 170 = AT&T) | `310170` | +| ├─`currentNetwork.networkName` | Mobile network name | `AT&T Mobility` | +| ├─`currentNetwork.countryName` | Country name | `United States` | +| ├─`currentNetwork.countryPrefix` | Country dialling prefix | `+1` | +| └─`currentNetwork.countryCode` | Country code | `USA` | | `ported` | Indicates if a number is ported | `true` | | `portedNetwork` | Network information for the network the number was ported to | `null` | | `roaming` | Indicates if a number is roaming | `false` | From 344ba2b9a0a1bd90ef5a94ef576806e800de8121 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 21 Jul 2026 11:28:36 +0100 Subject: [PATCH 49/52] Update number-lookup.md --- docs/global SMS/number-lookup.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/global SMS/number-lookup.md b/docs/global SMS/number-lookup.md index 40ce5411..a4598b38 100644 --- a/docs/global SMS/number-lookup.md +++ b/docs/global SMS/number-lookup.md @@ -77,11 +77,11 @@ curl -X POST \ | :--- | :--- | :--- | | `number` | Number queried in e.164 format | `+15073040148` | | `currentNetwork` | Detailed network information object | — | -| ├─`currentNetwork.mccmnc` | Mobile Country Code and Network Code (e.g., 310 = USA, 170 = AT&T) | `310170` | -| ├─`currentNetwork.networkName` | Mobile network name | `AT&T Mobility` | -| ├─`currentNetwork.countryName` | Country name | `United States` | -| ├─`currentNetwork.countryPrefix` | Country dialling prefix | `+1` | -| └─`currentNetwork.countryCode` | Country code | `USA` | +|   `currentNetwork.mccmnc` | Mobile Country Code and Network Code (e.g., 310 = USA, 170 = AT&T) | `310170` | +|   `currentNetwork.networkName` | Mobile network name | `AT&T Mobility` | +|   `currentNetwork.countryName` | Country name | `United States` | +|   `currentNetwork.countryPrefix` | Country dialling prefix | `+1` | +|   `currentNetwork.countryCode` | Country code | `USA` | | `ported` | Indicates if a number is ported | `true` | | `portedNetwork` | Network information for the network the number was ported to | `null` | | `roaming` | Indicates if a number is roaming | `false` | From a3326b08569351fc12a0280aa61e019b261cf274 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 21 Jul 2026 14:10:28 +0100 Subject: [PATCH 50/52] Update number-lookup.md --- docs/global SMS/number-lookup.md | 46 +++++++++++++++++++++++--------- 1 file changed, 33 insertions(+), 13 deletions(-) diff --git a/docs/global SMS/number-lookup.md b/docs/global SMS/number-lookup.md index a4598b38..fb936ed2 100644 --- a/docs/global SMS/number-lookup.md +++ b/docs/global SMS/number-lookup.md @@ -75,19 +75,39 @@ curl -X POST \ | Field | Description | Example | | :--- | :--- | :--- | -| `number` | Number queried in e.164 format | `+15073040148` | +| `number` | Number queried in e.164 format | e.g. `+15073040148` | | `currentNetwork` | Detailed network information object | — | -|   `currentNetwork.mccmnc` | Mobile Country Code and Network Code (e.g., 310 = USA, 170 = AT&T) | `310170` | -|   `currentNetwork.networkName` | Mobile network name | `AT&T Mobility` | -|   `currentNetwork.countryName` | Country name | `United States` | -|   `currentNetwork.countryPrefix` | Country dialling prefix | `+1` | -|   `currentNetwork.countryCode` | Country code | `USA` | -| `ported` | Indicates if a number is ported | `true` | -| `portedNetwork` | Network information for the network the number was ported to | `null` | -| `roaming` | Indicates if a number is roaming | `false` | -| `roamingNetwork` | Network information for the network the number is roaming on | `null` | -| `status` | Status of phone number: `ON`, `OFF`, `INVALID`, `UNKNOWN` *(Live Toll-Free numbers not text-enabled show as `INVALID`)* | `ON` | -| `type` | Indicates SMS capability: `MOBILE` (Mobiles/text-enabled landlines) or `LANDLINE` (Cannot receive SMS) | `MOBILE` | - +|   `currentNetwork.mccmnc` | Mobile Country Code and Network Code (e.g., 310 = USA, 170 = AT&T) | e.g. `310170` | +|   `currentNetwork.networkName` | Mobile network name | e.g. `AT&T Mobility` | +|   `currentNetwork.countryName` | Country name | e.g. `United States` | +|   `currentNetwork.countryPrefix` | Country dialling prefix | e.g. `+1` | +|   `currentNetwork.countryCode` | Country code | e.g. `USA` | +| `ported` | Indicates if a number is ported | `true`, `false` | +| `portedNetwork` | Network information for the network the number was ported to | `null` / e.g. `T-Mobile` | +| `roaming` | Indicates if a number is roaming | `true`, `false` | +| `roamingNetwork` | Network information for the network the number is roaming on | `null` / e.g. `Vodafone` | +| `status` | Status of phone number. *(Live Toll-Free numbers not text-enabled show as `INVALID`)* | `ON`, `OFF`, `INVALID`, `UNKNOWN` | +| `type` | Indicates SMS capability: `MOBILE` (Mobiles/text-enabled landlines) or `LANDLINE` (Cannot receive SMS) | `MOBILE`, `LANDLINE` | + +##Example response + +```"numbers": [ + { + "number": "+15713152421", + "currentNetwork": { + "mccmnc": "310160", + "networkName": "T-Mobile US", + "countryName": "United States", + "countryPrefix": "+1", + "countryCode": "USA" + }, + "ported": true, + "portedNetwork": null, + "originalNetwork": null, + "roaming": false, + "roamingNetwork": null, + "status": "ON", + "type": "MOBILE" + }``` --- From 62ae5e339fd9baf3dfe3a6d206011b472c0ca2da Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 21 Jul 2026 14:10:57 +0100 Subject: [PATCH 51/52] Update number-lookup.md --- docs/global SMS/number-lookup.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/global SMS/number-lookup.md b/docs/global SMS/number-lookup.md index fb936ed2..fee62136 100644 --- a/docs/global SMS/number-lookup.md +++ b/docs/global SMS/number-lookup.md @@ -89,7 +89,7 @@ curl -X POST \ | `status` | Status of phone number. *(Live Toll-Free numbers not text-enabled show as `INVALID`)* | `ON`, `OFF`, `INVALID`, `UNKNOWN` | | `type` | Indicates SMS capability: `MOBILE` (Mobiles/text-enabled landlines) or `LANDLINE` (Cannot receive SMS) | `MOBILE`, `LANDLINE` | -##Example response +## Example response ```"numbers": [ { @@ -108,6 +108,7 @@ curl -X POST \ "roamingNetwork": null, "status": "ON", "type": "MOBILE" - }``` + } +``` --- From f231439eb5979c906616371a1a4cdad57ac7fb41 Mon Sep 17 00:00:00 2001 From: harry-peek Date: Tue, 21 Jul 2026 14:11:24 +0100 Subject: [PATCH 52/52] Update number-lookup.md --- docs/global SMS/number-lookup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/global SMS/number-lookup.md b/docs/global SMS/number-lookup.md index fee62136..49eed6ec 100644 --- a/docs/global SMS/number-lookup.md +++ b/docs/global SMS/number-lookup.md @@ -89,7 +89,7 @@ curl -X POST \ | `status` | Status of phone number. *(Live Toll-Free numbers not text-enabled show as `INVALID`)* | `ON`, `OFF`, `INVALID`, `UNKNOWN` | | `type` | Indicates SMS capability: `MOBILE` (Mobiles/text-enabled landlines) or `LANDLINE` (Cannot receive SMS) | `MOBILE`, `LANDLINE` | -## Example response +#### Example response ```"numbers": [ {