---
title: "Register Device"
method: POST
path: "/restapi/v1.0/client-info/sip-provision"
tags: ["Device SIP Registration"]
---

# Register Device

`POST /restapi/v1.0/client-info/sip-provision`

Creates SIP registration of a device/application (WebPhone, Mobile, Softphone).

## Request body

- CreateSipRegistrationRequest
  - `device` DeviceInfoRequest — Device information
    - `id` string — Device unique identifier, retrieved at previous session (if any)
    - `appExternalId` string — Supported for iOS devices only. Certificate name (used by iOS applications for APNS subscription)
    - `computerName` string — Computer name (for devices of `SoftPhone` type only)
    - `serial` string — Endpoint/device instance identifier for Softphone and mobile applications
  - `sipInfo` SIPInfoRequest[] — SIP settings for device
    - `transport` 'UDP' | 'TCP' | 'TLS' | 'WSS' — Supported transport. SIP info will be returned for this transport if supported
  - `softPhoneLineReassignment` 'None' | 'Initialize' | 'Reassign' — Supported for Softphone clients only. If 'SoftphoneLineReassignment' feature is enabled the reassignment process can be initialized, however if there is no DL for the given user's device then SPR-131 error code will be returned.

## Response `200`

Success

- CreateSipRegistrationResponse
  - `device` SipRegistrationDeviceInfo, required
    - `uri` string, uri — Canonical URI of the resource
    - `id` string — Internal identifier of a device
    - `type` 'HardPhone' | 'SoftPhone' | 'OtherPhone' | 'Paging' | 'WebPhone' | 'Room' — Device type
    - `sku` string — Device identification number (SKU, Stock Keeping Unit) in the format TP-ID [-AT-AC], where TP is device type (HP for RC desk phones, DV for all other devices including soft phones); ID - device model ID; AT - add-on type ID; AC - add-on count (if any). For example 'HP-56-2-2'
    - `status` 'Online' | 'Offline'
    - `name` string — Device name. Mandatory if ordering SoftPhone or OtherPhone. Optional for HardPhone. If not specified for HardPhone, then device model name is used as device name
    - `serial` string — Serial number for HardPhone (is returned only when the phone is shipped and provisioned); endpoint_id for Softphone and mobile applications
    - `computerName` string — Computer name (for devices of `SoftPhone` type only)
    - `model` DeviceModelInfo — HardPhone model information
      - `id` string — Addon identifier. For HardPhones of certain types, which are compatible with this add-on identifier
      - `name` string — Device name
      - `addons` DeviceAddonInfo[], required — Add-ons description
        - `id` string
        - `name` string
        - `count` integer
      - `features` string[] — Device feature or multiple features supported
    - `extension` DeviceExtensionInfo
      - `id` integer — Internal identifier of an extension
      - `uri` string, uri — Canonical URL of an extension resource
      - `extensionNumber` string — Short extension number
    - `emergencyServiceAddress` DeviceEmergencyServiceAddressResourceDefault — Address for emergency cases. The same emergency address is assigned to all the numbers of one device
      - `street` string
      - `street2` string
      - `city` string
      - `zip` string
      - `customerName` string
      - `state` string — State/province name
      - `stateId` string — Internal identifier of a state
      - `stateIsoCode` string — ISO code of a state
      - `stateName` string — Full name of a state
      - `countryId` string — Internal identifier of a country
      - `countryIsoCode` string — ISO code of a country
      - `country` string — Country name
      - `countryName` string — Full name of a country
      - `outOfCountry` boolean — Specifies if emergency address is out of country
    - `emergency` SipRegistrationDeviceEmergencyInfo — Emergency response location settings of a device
      - `address` union
        - DeviceEmergencyServiceAddressResourceDefault — Address for emergency cases. The same emergency address is assigned to all the numbers of one device
          - `street` string
          - `street2` string
          - `city` string
          - `zip` string
          - `customerName` string
          - `state` string — State/province name
          - `stateId` string — Internal identifier of a state
          - `stateIsoCode` string — ISO code of a state
          - `stateName` string — Full name of a state
          - `countryId` string — Internal identifier of a country
          - `countryIsoCode` string — ISO code of a country
          - `country` string — Country name
          - `countryName` string — Full name of a country
          - `outOfCountry` boolean — Specifies if emergency address is out of country
        - DeviceEmergencyServiceAddressResourceAu — Address for emergency cases. The same emergency address is assigned to all the numbers of one device
          - `street` string
          - `street2` string
          - `city` string
          - `zip` string
          - `customerName` string
          - `state` string — State/province name
          - `stateId` string — Internal identifier of a state
          - `stateIsoCode` string — ISO code of a state
          - `stateName` string — Full name of a state
          - `countryId` string — Internal identifier of a country
          - `countryIsoCode` string — ISO code of a country
          - `country` string — Country name
          - `countryName` string — Full name of a country
          - `outOfCountry` boolean — Specifies if emergency address is out of country
          - `buildingName` string — (Optional) Building name
          - `streetType` string — Street type
          - `buildingNumber` string — Building/street number
        - DeviceEmergencyServiceAddressResourceFr — Address for emergency cases. The same emergency address is assigned to all the numbers of one device
          - `street` string
          - `street2` string
          - `city` string
          - `zip` string
          - `customerName` string
          - `state` string — State/province name
          - `stateId` string — Internal identifier of a state
          - `stateIsoCode` string — ISO code of a state
          - `stateName` string — Full name of a state
          - `countryId` string — Internal identifier of a country
          - `countryIsoCode` string — ISO code of a country
          - `country` string — Country name
          - `countryName` string — Full name of a country
          - `outOfCountry` boolean — Specifies if emergency address is out of country
          - `buildingName` string — (Optional) Building name
          - `buildingNumber` string — Building/street number
      - `location` SipRegistrationDeviceLocationInfo — Company emergency response location details
        - `id` string — Internal identifier of an emergency response location
        - `name` string — Emergency response location name
        - `addressFormatId` string — Address format ID
      - `outOfCountry` boolean — Specifies if emergency address is out of country
      - `addressStatus` 'Valid' | 'Invalid' | 'Processing' — Emergency address status
      - `visibility` 'Private' | 'Public' — Specifies whether to return only private or only public (company) ERLs (Emergency Response Locations)
      - `syncStatus` 'Verified' | 'Updated' | 'Deleted' | 'NotRequired' | 'Unsupported' | 'Failed' — Resulting status of emergency address synchronization. Returned if `syncEmergencyAddress` parameter is set to `true`
      - `addressEditableStatus` 'MainDevice' | 'AnyDevice' — Ability to register new emergency address for a phone line using devices sharing this line or only main device (line owner)
      - `addressRequired` boolean — Indicates if emergency address is required for the country of a phone line
      - `addressLocationOnly` boolean — Indicates if out of country emergency address is not allowed for the country of a phone line
    - `shipping` ShippingInfo — Shipping information, according to which devices (in case of HardPhone) or e911 stickers (in case of SoftPhone and OtherPhone) will be delivered to the customer
      - `status` 'Initial' | 'Accepted' | 'Shipped' — Order item shipping status. It is set to `Initial` when the order is submitted. Then it is changed to `Accepted` when a distributor starts processing the order. Finally, it is changed to `Shipped` which means that the distributor has shipped the device.
      - `carrier` string — Shipping carrier name. Appears only if the device status is 'Shipped'
      - `trackingNumber` string — Carrier-specific tracking number. Appears only if the device status is 'Shipped'
      - `method` ShippingMethodInfo — Devices shipping method. It is required if devices are ordered. Availability of different shipping methods depends on package definition.
        - `id` '1' | '2' | '3', required — Shipping method ID: - "1" - Ground Shipping (5-7 business days) - "2" - Expedited Shipping (2-days) - "3" - Overnight Shipping
        - `name` 'Ground' | '2 Day' | 'Overnight' — Method name, corresponding to the identifier
      - `address` ShippingAddressInfo — Shipping address for the order. If it coincides with the Emergency Service Address, then can be omitted. By default, the same value as the emergencyServiceAddress. Multiple addresses can be specified; in case an order contains several devices, they can be delivered to different addresses
        - `customerName` string — Name of a primary contact person (receiver)
        - `additionalCustomerName` string — Name of an additional contact person. Should be specified for countries except the US, Canada, the UK and Australia.
        - `customerEmail` string, email — Email of a primary contact person (receiver). Should be specified for countries except the US, Canada, the UK and Australia.
        - `additionalCustomerEmail` string, email — Email of an additional contact person. Should be specified for countries except the US, Canada, the UK and Australia.
        - `customerPhone` string — Phone number of a primary contact person (receiver). Should be specified for countries except the US, Canada, the UK and Australia
        - `additionalCustomerPhone` string — Phone number of an additional contact person. Should be specified for countries except the US, Canada, the UK & Australia.
        - `street` string — Street address, line 1 - street address, P.O. box, company name, c/o
        - `street2` string — Street address, line 2 - apartment, suite, unit, building, floor, etc.
        - `city` string — City name
        - `state` string — State/province name
        - `stateId` string — Internal identifier of a state
        - `stateIsoCode` string — ISO code of a state
        - `stateName` string — Full name of a state
        - `countryId` string — Internal identifier of a country
        - `countryIsoCode` string — ISO code of a country
        - `country` string — Country name
        - `countryName` string — Full name of a country
        - `zip` string — Zip code
        - `taxId` string — National taxpayer identification number. Should be specified for Brazil (CNPJ/CPF number) and Argentina (CUIT number).
    - `phoneLines` DevicePhoneLinesInfo[] — Phone lines information
      - `id` string — Internal identifier of a phone line
      - `lineType` 'Standalone' | 'StandaloneFree' | 'BlaPrimary' | 'BlaSecondary' — Type of phone line
      - `emergencyAddress` DevicePhoneLinesEmergencyAddressInfo
        - `required` boolean — Indicates that emergency address is required
        - `localOnly` boolean — Indicates that only local emergency address can be specified
      - `phoneInfo` DevicePhoneNumberInfo — Phone number information
        - `id` integer — Internal identifier of a phone number
        - `country` DevicePhoneNumberCountryInfo — Brief information on a phone number country
          - `id` string — Internal identifier of a home country
          - `uri` string, uri — Canonical URI of a home country
          - `name` string — Official name of a home country
        - `paymentType` 'External' | 'TollFree' | 'Local' — Payment type. 'External' is returned for forwarded numbers which are not terminated in the RingCentral phone system = ['External', 'TollFree', 'Local']
        - `phoneNumber` string — Phone number
        - `usageType` 'CompanyNumber' | 'MainCompanyNumber' | 'AdditionalCompanyNumber' | 'DirectNumber' | 'CompanyFaxNumber' | 'ForwardedNumber' | 'ForwardedCompanyNumber' | 'ContactCenterNumber'
        - `type` 'VoiceFax' | 'FaxOnly' | 'VoiceOnly' — Type of phone number
    - `boxBillingId` integer — Box billing identifier of a device. Applicable only for devices of `HardPhone` type.
    - `useAsCommonPhone` boolean — Supported only for devices assigned to Limited extensions. If true, enables users to log in to this phone as a common phone.
    - `linePooling` 'Host' | 'Guest' | 'None' — Pooling type of device: - `Host` - device with a standalone paid phone line which can be linked to soft phone client instance; - `Guest` - device with a linked phone line; - `None` - device without a phone line or with a specific line (free, BLA, etc.)
    - `inCompanyNet` boolean — Network location status. `true` if the device is located in the configured corporate network (On-Net); `false` for Off-Net location. Parameter is not returned if `EmergencyAddressAutoUpdate` feature is not enabled for the account/user, or if device network location is not determined
    - `site` DeviceSiteInfo — Site data
      - `id` string — Internal identifier of a site
      - `name` string — Name of a site
    - `lastLocationReportTime` string, date-time — Timestamp of receiving last location report in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format including timezone, for example *2016-03-10T18:07:52.534Z
  - `sipInfo` SipInfoResponse[], required — SIP settings for device
    - `username` string — User credentials
    - `password` string, password — User password. Not returned if SipDigest is not enabled
    - `authorizationTypes` AuthorizationType[] — Supported authorization types and their priority for clients
    - `authorizationId` string — Identifier for SIP authorization
    - `domain` string — SIP domain
    - `outboundProxy` string — SIP outbound proxy server address (in the format <host:port>)
    - `outboundProxyIPv6` string — SIP outbound IPv6 proxy server address (in the format <host:port>)
    - `outboundProxyBackup` string — SIP outbound proxy server backup address (in the format <host:port>)
    - `outboundProxyIPv6Backup` string — SIP outbound IPv6 proxy server backup address (in the format <host:port>)
    - `transport` 'UDP' | 'TCP' | 'TLS' | 'WSS' — Preferred transport. SIP info will be returned for this transport if supported
    - `certificate` string — For TLS transport only, Base64 encoded certificate
    - `switchBackInterval` integer — The interval in seconds after which the app must try to switch back to primary proxy if it was previously switched to backup. If this parameter is not returned, the app must stay on backup proxy and try to switch to primary proxy after the next SIP-provision call.
    - `stunServers` string[] — List of stun servers in the format <host:port>
  - `sipInfoPstn` SipInfoResponse[] — SIP PSTN settings for device
    - `username` string — User credentials
    - `password` string, password — User password. Not returned if SipDigest is not enabled
    - `authorizationTypes` AuthorizationType[] — Supported authorization types and their priority for clients
    - `authorizationId` string — Identifier for SIP authorization
    - `domain` string — SIP domain
    - `outboundProxy` string — SIP outbound proxy server address (in the format <host:port>)
    - `outboundProxyIPv6` string — SIP outbound IPv6 proxy server address (in the format <host:port>)
    - `outboundProxyBackup` string — SIP outbound proxy server backup address (in the format <host:port>)
    - `outboundProxyIPv6Backup` string — SIP outbound IPv6 proxy server backup address (in the format <host:port>)
    - `transport` 'UDP' | 'TCP' | 'TLS' | 'WSS' — Preferred transport. SIP info will be returned for this transport if supported
    - `certificate` string — For TLS transport only, Base64 encoded certificate
    - `switchBackInterval` integer — The interval in seconds after which the app must try to switch back to primary proxy if it was previously switched to backup. If this parameter is not returned, the app must stay on backup proxy and try to switch to primary proxy after the next SIP-provision call.
    - `stunServers` string[] — List of stun servers in the format <host:port>
  - `sipFlags` SipFlagsResponse, required — SIP flags information
    - `voipFeatureEnabled` boolean — Indicates that VoIP calling feature is enabled
    - `voipCountryBlocked` boolean — Indicates that the request is sent from IP address of a country where VoIP calling is disallowed
    - `outboundCallsEnabled` boolean — Indicates that outbound calls are enabled
    - `dscpEnabled` boolean
    - `dscpSignaling` integer
    - `dscpVoice` integer
    - `dscpVideo` integer
  - `sipErrorCodes` string[]
  - `pollingInterval` integer — Suggested interval in seconds to periodically call SIP-provision API and update the local cache

## Other responses

- `400` — General response with **HTTP 400 "Bad request"** status.<br> Reasons: unparsable request, path, query or body parameters are invalid. The error description may contain reference to particular parameter(s) which haven't passed the validation.
- `500` — General response with **HTTP 500 "Internal Server Error"** status.<br> Reasons: general server-side error.
- `503` — General response with **HTTP 503 "Service not available"** status.<br> Reasons: server cannot process the request because of being overloaded, misconfiguration or other issues.

---

[API](https://skmtc.net/ringcentral/apis/ringcentral-api.md) · [All operations](https://skmtc.net/ringcentral/apis/ringcentral-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ringcentral/ringcentral-api/revisions/8d602198ec97/schema)
