SMS Sending Numbers

Last updated: 2020-10-15 Contributors Paco VuNoneByrne Reese
Edit this page

RingCentral numbers have SMS and MMS capabilities depending on the account plan. Users can send and receive SMS from enabled phone numbers assigned to their extension. The operator extension can further send and receive SMS from the Main Company Number. See more below on using the Main Company Number.

Phone numbers can have different capabilities determined by the presence of the following values in the features property of the Phone Number info object:

Feature Description
SmsSender send and receive regular texts
A2PSmsSender send and receive high volume SMS. To be used with the a2p-sms APIs
MmsSender send and receive group texts and files
InternationalSmsSender send and receive regular texts to international numbers

Listing Valid SMS Numbers

To determine which numbers a user can use to send and receive SMS, retrieve the user's list of phone numbers from the extension/phone-number endpoint and then filter by numbers with the SmsSender and/or MmsSender feature. The extension/phone-number is as follows where {accountId} and {extensionId} can be replaced by actual values or ~ for the current user's account and extension values.

GET /restapi/v1.0/account/{accountId}/extension/{extensionId}/phone-number
const RingCentral = require('@ringcentral/sdk').SDK

var rcsdk = new RingCentral( {server: "server_url", clientId: "client_id", clientSecret: "client_secret"} );
var platform = rcsdk.platform();

platform.login( {username: "username", password: "password", extension: "extension_number"} )

platform.on(, function(e){
    console.log("Login success")

async function detect_sms_feature(){
    var resp = await platform.get("/restapi/v1.0/account/~/extension/~/phone-number")
    var jsonObj = await resp.json()
    for (var record of jsonObj.records){
      if (record.usageType == "DirectNumber"){
        for (feature of record.features){
          if (feature == "SmsSender"){
            console.log(`This phone number ${record.phoneNumber} has SMS feature`)
from ringcentral import SDK

sdk = SDK( "client_id", "client_secret", "server_url" )
platform = sdk.platform()
platform.login( "username", "extension", "password" )

response = platform.get('/restapi/v1.0/account/~/extension/~/phone-number')
for record in response.json().records:
    for feature in record.features:
        if feature == "SmsSender":
            print "This phone number " + record.phoneNumber + " has SMS feature"

$rcsdk = new RingCentral\SDK\SDK( "client_id", "client_secret", "server_url" );
$platform = $rcsdk->platform();
$platform->login( "username", "extension_number", "password" );

$response = $platform->get('/account/~/extension/~/phone-number');
foreach ($response->json()->records as $record)
    foreach ($record->features as $feature)
        if ($feature == "SmsSender")
            print_r ("This phone number" $record->phoneNumber ." has SMS feature\n");
using System;
using System.Threading.Tasks;
using RingCentral;

namespace Read_Phone_Number
    class Program
        static void Main(string[] args)
        static private async Task detect_phone_number_feature()
        RestClient rc = new RestClient("client_id", "client_secret", "server_url");
        await rc.Authorize("username", "extension_number", "password");

            var response = await rc.Restapi().Account().Extension().PhoneNumber().Get();

        foreach (var record in response.records)
                foreach (var feature in record.features) {
                    if (feature == "SmsSender"){
                        Console.WriteLine("This phone number " + record.phoneNumber + " has SMS feature");
import com.ringcentral.*;
import com.ringcentral.definitions.*;

public class Read_Phone_Number {
    public static void main(String[] args) {
        try {
        } catch (RestException | IOException e) {

    public static void detect_phone_number_feature() throws RestException, IOException{
        RestClient restClient = new RestClient("client_id", "client_secret", "server_url");
        restClient.authorize("username", "extension_number", "password");

        var response = restClient.restapi().account().extension().phonenumber().get();
        for (var record : response.records) {
            for (var feature : record.features) {
                if (feature == "SmsSender"){
                    System.out.println("This phone number " + record.phoneNumber + " has SMS feature");
require 'ringcentral'

rc = 'client_id', 'client_secret', 'server_url')
rc.authorize( username:  'username', extension: 'extension_number', password:  'password')
response = rc.get ('/restapi/v1.0/account/~/extension/~/phone-number')

for record in response.body['records'] do
        for feature in record['features'] do
            if feature == "SmsSender"
                puts "This phone number " + record['phoneNumber'] + " has SMS feature"

This example response shows the SmsSender, MmsSender and InternationalSmsSender features:

        "name":"United States"

SMS and the Main Company Number

You can send and receive SMS messages from the main company phone number when authorized as the Operator Extension. By default, the Operator Extension is set to extension 101. This can be edited and assigned to other extensions in the Online Account Portal under "Auto-Receptionist" > "Operator Extension.""