question

matt-spinks2179 avatar image
matt-spinks2179 asked Patrick Boston answered

Clarification about accounts and extensions

I want to get some clarification on account structure, and how it relates to data we get back from the RingCentral api.


  1. Are there just two levels of account structure: Account-> Extensions (One main account identifier, and multiple extension identifiers underneath that)? Or, are there more levels?
  2. When performing the 3-legged OAuth sequence, we are getting back one identifier: when getting the token (https://platform.ringcentral.com/restapi/oauth/token), we get back "owner_id" among other things. Second, we make a call to extension endpoint (https://platform.ringcentral.com/restapi/v1.0/account/~/extension/~) to retrieve more account info. From this second call, we get back "id" and "account.id". Does "owner_id" == "id", or does "owner_id" == "account.id", or is "owner_id" a completely separate identifier from the other two?
  3. Does a service account have it's own identifier within the context of the api? I ask this question because I have created a service account for testing. But when I log in to our app integration with that service account, I am getting the same identifiers as my main Super User account (in the "owner_id", "id", and "account.id" fields).


My main goal here is to be able to distinguish between different accounts while maintaining their relationship to the parent account when logging into our app integration using both regular extensions as well as service accounts.

getting startedextension
1 |3000

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

anton-nikitin avatar image
anton-nikitin answered
Hi Matt,

1. Yes, there are two levels: account (company business entity) and extensions (real users or special non-user extension types). Both account IDs and extension IDs are globally unique, but the extension ID of a main account administrator is always the same as account ID.
2. When the API is accessed it is done on behalf of extension user. So OAuth token is issued for extension user, that's the reason why "owner_id" in this case is the same as "extensionId" (or just "id" if you call Extension Info API).
3. Can you clarify what is the "service account" in your case?
1 |3000

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

matt-spinks2179 avatar image
matt-spinks2179 answered
Thank you Anton. I think this clears up my questions. For #3, I realize now that the "service account" was still just another extension. Some of my users call it a "service account". It's just an extension they set up strictly to be used with our app integration.
1 |3000

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

Patrick Boston avatar image
Patrick Boston answered

@matt-spinks I'm curious about the service account you implemented. Was this in production? We are having an issue trying to reset the main account's number for our production RC application and we are getting no where with support. Did you just create another extension and assign a user to it, set the password, then use that account for authentication?

1 |3000

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

Developer sandbox tools

Using the RingCentral Phone for Desktop, you can dial or receive test calls, send and receive test SMS or Fax messages in your sandbox environment.

Download RingCentral Phone for Desktop:

Tip: switch to the "sandbox mode" before logging in the app:

  • On MacOS: press "fn + command + f2" keys
  • On Windows: press "Ctrl + F2" keys