Skip to main content
Question

Sandbox Removed — Should I Use Production Directly? Developer Number Invalid Issue

  • November 22, 2025
  • 4 replies
  • 59 views

Hello,

I read the official announcement here:
“Important changes coming to our developer sandbox”
https://community.ringcentral.com/developer-platform-apis-integrations-5/important-changes-coming-to-our-developer-sandbox-9893

From the announcement it is clear that RingCentral has permanently removed the Sandbox environment.

I want to confirm the following:

1. Should I create a new developer account?

Or can I continue to use my existing developer account and directly use my Production RingEX organization to build and test my app?

Since there is no sandbox anymore, I want to know:

  • Is it acceptable to skip “testing mode”?

  • Should I build the app directly in Production using my real admin extension + real phone number?

2. Developer Number is showing “invalid” — why?

In my Developer Console → Organization Info, I have this:

 

Developer List Name: A1 auto export Email: [removed by moderator] Contact Phone: [removed by moderator] Role: Developer Admin

However, when I attempt to send SMS or make a call using this developer phone number [removed by moderator] , the API returns:

“Failed to send SMS: Parameter [from] value cannot be found. The phone number does not belong to the user.”

My questions:

a. Why is the developer phone number considered invalid?

If sandbox is gone, shouldn’t the production developer account be usable for real calls/SMS?

b. How can I get additional numbers for testing?

Since test numbers/extensions were previously provided by the sandbox, what is the correct process now to:

  • Add more numbers for development/testing

  • Use them for API calls

  • Use them for SMS or voice testing

Do I need to purchase extra extensions now?

3. Regional Question

I am working from Pakistan, but my RingEX production account is working fine (voice, SIP softphone, etc.).
Is there any regional restriction that prevents developer numbers from being used with APIs?

Thank you — I just want to make sure I am using the correct approach now that sandbox is retired.

4 replies

ByrneReese
Community Manager
Forum|alt.badge.img+3
  • Product Manager
  • November 26, 2025

@Faisal_absdeveloper You have a lot of questions. Let’s go one-by-one:

  1. Should I create a new developer account?
    It appears you already have a developer account, so creating a new one is not necessary. Your account however may have expired - that is entirely possible. If you were previously using a free developer account, that account should have been upgrading to the new system with a 6 month free trial. If you never activated your account by providing a credit card number, then the account is now expired and probably gone. This may explain why your phone number is invalid. 
    If this is the case, then you will need to create a new developer account. 
    UNLESS you are an existing RingCentral customer using RingEX for your business. In which case, you can use that account to do all your development. There is no REQUIREMENT that customers have a separate developer account any more. Customers are free to do all development in their existing account in “production.”
    But even the concept of “production” is unnecessary now, as all apps operate in production now, as there is no sandbox. 
  2. Developer Number is showing “invalid” — why?
    1. Why is the developer phone number considered invalid?
      See above. Chances are the phone number you were using has been released or is associated with a new defunct account. 
    2. How can I get additional numbers for testing?
      You can purchase more phone numbers through the Admin Portal, whether you are a RingEX customer or have a “Developer environment” account. You will need to go through the same process as any RingEX customer to purchase extra phone numbers, purchase SMS bundles, get phone numbers approved through TCR, etc. 
  3. Regional Question - using developer account from Pakistan
    We do not currently support Pakistan for dedicated developer environment accounts. If you wish to have a separate developer account from the account used by your business to conduct phone calls, then you would need to purchase a separate RingEX account. It will be slightly more expensive, but it is the only option we have right now. We currently only offer developer accounts in the UK, UK, Canada, EU and Australia. 

Hello ​@ByrneReese ,

Thank you for your previous response. I’m following up because I need clarification regarding the Call-Out API. I have already resolved some parts through my own research, but I still face one core issue.

I am using a regular (production) RingCentral account, not the Developer Sandbox, because it’s unnecessary and I guess the Call-Out API works only with a production account. However, the endpoint continues to return:

 

POST restapi/v1.0/account/~/telephony/call-out 400 Bad Request

📌 Request Details

  • Environment: Production

  • Endpoint: restapi/v1.0/account/~/telephony/call-out

  • Status: 400

  • Throttling Group: Heavy

  • App Scope: CallControl

  • Direct number: [removed by moderator]

✔ Things Already Confirmed

I can successfully:

  • Authenticate with OAuth

  • Read call logs

  • Send and receive SMS

  • Use other API endpoints

So authentication and permissions are working.

All required OAuth scopes are already added:

  • CallControl

  • RingOut

  • VoipCalling

  • ReadAccounts

The payload is valid and formatted correctly.

Remaining Issue

From what I understand, this error occurs because my RingCentral account itself does not have Call Control + RingOut features activated, even though the API app has the scopes enabled.

Scopes on the app are not enough — the account and the user/device must also have these features turned on by RingCentral.

Because these permissions are not enabled, the API always returns 400 Bad Request.

🙏 Request I Made In Developer Ticket

Please enable the following features on my production RingCentral account:

📌 Enable for account + assigned user

  • Call Control API

  • RingOut API

  • Telephony Session API

  • VoIP calling for API usage

  • Allow my number [removed by moderator] for RingOut / Call-Out API

  • Ensure my device (Cisco CP6821) is authorized for Call Control

Without these features activated at the account level, the Call-Out API cannot work — even if the app scopes are correct.

ℹ Why I’m Posting Here

I previously opened a developer support ticket but did not receive a reply. You seem active on the community forum, so I’m hoping you can help confirm:

👉 Does RingCentral need to manually enable these Call-Control/RingOut capabilities on my production account for the API to work?

If yes, then waiting for developer support would be necessary — otherwise no matter what I try, it will keep failing with 400.

Thank you!


PhongVu
Community Manager
Forum|alt.badge.img
  • Community Manager
  • December 1, 2025

Call-out and ring-out APIs are very different ways of initiating a new call. From the above, the first part you mentioned the call-out endpoint

POST restapi/v1.0/account/~/telephony/call-out 400 Bad Request

And in the second part, you mentioned the ring-out endpoint

---

  • Call Control API

  • RingOut API

  • Telephony Session API

  • VoIP calling for API usage

  • Allow my number [removed by moderator] for RingOut / Call-Out API

  • Ensure my device (Cisco CP6821) is authorized for Call Control

---

So which endpoint do you exactly want to call?

The /call-out endpoint requires the CallControl app scope and only the user who owns the device can make a /call-out call. In other words, the user who is authenticated to use your app can make a /call-out API call for himself.

Now, the /call-out API does not make a call based on the from phone number. It requires the deviceId of the user owned device and that device must be online. Here is the example how you can check the user device status and make the call-out API call using the RingCentral  Node JS SDK. I assume that you have installed the SDK and initialize the platform instance before calling the API using the platform object.

async function get_extension_devices() {
try{
var resp = await platform.get('/restapi/v1.0/account/~/extension/~/device')
var jsonObj = await resp.json()
for (var record of jsonObj.records){
console.log(JSON.stringify(record))
console.log("===========")
console.log(record.status)
if (record.status == "Online"){
call_out(record.id)
break
}
}
}catch(e){
console.log(e.message)
}
}

async function call_out(deviceId) {
var params = {
from: {
deviceId: deviceId
},
to: {
phoneNumber: "+1650XXXYYYY"
}
}
try{
var resp = await platform.post('/restapi/v1.0/account/~/telephony/call-out', params)
var jsonObj = await resp.json()
console.log(JSON.stringify(jsonObj))
}catch(e){
console.log(e.message)
}
}

 




Hi, RingCentral Community! ​@PhongVu 

I'm working on integrating RingCentral's API into my application and am currently facing an issue with setting up webhook events and handling RingOut calls.

While I can successfully initiate a RingOut call and receive an authentication token, the webhook events for Call Received or Message Received are not being triggered as expected. I have already configured the webhook URL and subscribed to the required events, but I haven't been able to see any webhook logs or event data coming through.

A community manager previously pointed out:

"Call-out and ring-out APIs are very different ways of initiating a new call. The /call-out endpoint requires the CallControl app scope, and only the user who owns the device can make a /call-out call. The /call-out API does not make a call based on the 'from' phone number; it requires the deviceId of the user-owned device, and that device must be online."

In my case, I am looking for the RingOut functionality, not Call-Out, and his reply gave me much-needed information to figure out my issue.

However, I am still struggling with webhook events not triggering for Call Received or Message Received, even though I have configured everything on the RingCentral platform.

Has anyone else faced this issue? Any tips or advice on how to troubleshoot webhook event subscriptions, or perhaps additional configurations I might have missed? I'm also unsure if my webhook subscription scope is configured correctly.

I’d appreciate any guidance or pointers to get this resolved.

Looking forward to hearing from you!