Sie sind auf Seite 1von 81

Bandwidth Dashboard API Users Guide

Bandwidth 900 Main Campus Drive Raleigh, NC 27606 1855 Blake Street, Suite 101 Denver, CO 80202

Bandwidth Inc. - Confidential / Proprietary Information

1 Document History
Version Number 1.3 1.3.1 Date Created January 10, 2013 February 8, 2013 Description First Version Addition of Orders, SIP Peer Management Functions and Reporting Updates to Origination and SMS configuration for Site and SIP Peer Management, addition of Termination to SIP Peer Management.
Addition of LNP Capabilities and addition of LNP Reporting

1.3.2

March 28, 2013

1.3.3

May 30, 2013

Bandwidth Inc. - Confidential / Proprietary Information

1 2 3 4 5 6 7 8 9

DOCUMENT HISTORY ............................................................................................ 2 OVERVIEW .............................................................................................................. 4 GETTING STARTED ................................................................................................ 4 SECURITY ................................................................................................................ 5 BASE URLS AND ENVIRONMENTS....................................................................... 6 WADL SCHEMA DEFINITIONS ............................................................................... 7 PROVISIONING MODEL.......................................................................................... 8 MANAGING SITES................................................................................................... 9 MANAGING SIP PEERS ........................................................................................ 12

10 SEARCHING FOR PHONE NUMBERS ................................................................. 25 11 ORDERING PHONE NUMBERS ............................................................................ 38 12 PORTING-IN PHONE NUMBERS .......................................................................... 52 13 DISCONNECTING PHONE NUMBERS ................................................................. 64 14 REPORTING .......................................................................................................... 65 15 LNP......................................................................................................................... 76 16 APPENDIX ............................................................................................................. 77

Bandwidth Inc. - Confidential / Proprietary Information

2 Overview
The Bandwidth Dashboard's API provides a set of programmable interfaces for customers to easily configure their services, search for phone numbers, order phone numbers, and provision phone numbers on Bandwidth's inetwork. The API is designed to provide customer's applications with fast and simple access to the services provided by Bandwidth, and is designed to provide a fast response times at high volumes in order to support our customer's needs.

3 Getting Started

Contact the Bandwidth Customer Experience Team at support@bandwidth.com to request login credentials to our test environment. To verify your login credentials, point a web browser to the URL of a REST WADL of a service for which you've been enabled, and provide your credentials when queried by the web browser. If you are unable to access the WADL, please contact the customer experience team. Reference URL in Section 6. Test your application against the new API. Contact the customer experience team for access to the production environment.

3.1

API Methods REST

Bandwidth APIs support REST web service technologies. The Bandwidth APIs are designed to provide customers with a simple way of interfacing with the number intelligence platform following standard industry practices. Wikipedia (reference http://en.wikipedia.org/wiki/Representational_state_transfer) defines REST as: A RESTful web service (also called a RESTful web API) is a simple web service implemented using HTTP and the principles of REST. It is a collection of resources, with four defined aspects:

A base URI for the web service, such as http://example.com/resources/ An Internet media type of the data supported by the web service. This is often JSON, XML or YAML but can be any other valid Internet media type. A set of operations supported by the web service using HTTP methods (e.g., GET, PUT, POST, or DELETE). The API must be hypertext driven.

Bandwidth Inc. - Confidential / Proprietary Information

4 Security
The Bandwidth API methods are accessed through HTTPS to protect sensitive customer data against eavesdropping and man-in-the-middle attacks. Basic HTTP authentication is used with encryption via TLS. Basic HTTP authentication is supported by all browsers commonly in use, and the HTTP clients of most programming languages, and is straightforward to implement. For examples on client authentication, please review http://hc.apache.org/httpcomponents-client-ga/examples.html information at:

Contact the Bandwidth Customer Experience Team for new credentials, password resets or access to additional purchased features. Available APIs and features are listed below. Search available number inventory o REST HTTP GET Ordering numbers o REST HTTP SIP Peer Management o REST HTTP Reporting o REST HTTP GET

Bandwidth Inc. - Confidential / Proprietary Information

5 BASE URLs and Environments


All resources are located at: 5.1 Base URL for Interop https://api.test.inetwork.com/v1.0 Base URL for Production https://api.inetwork.com/v1.0 Figure 1: Environments

Bandwidth Dashboard webui.test.inetwork.com

Rest Request over HTTPS

api.test.inetwork.com/v1.0

Test DB

RESTFUL API CLIENT APPLICATION

XSD encapsulated objects

api.inetwork.com/v1.0 Rest Response over HTTPS

Production DB

Bandwidth Dashboard webui.inetwork.com/

Bandwidth Inc. - Confidential / Proprietary Information

6 WADL Schema Definitions


The WADLs for accessing the APIs through REST are defined below. Note: For each of the locations noted, prefix the URLs defined in Base URL and Environments Section. 6.1 WADL WADL Location /inventory_search?_wadl /orders?_wadl /sippeers?_wadl /sites?_wadl /lnp?_wadl /port/loa?_wadl

API SEARCH ORDER SIP PEER MANAGEMENT SITES LNP LNP LOA

Bandwidth Inc. - Confidential / Proprietary Information

7 Provisioning Model
Authentication Site Exists? No CREATE SITE Each site can have multiple PEERS

Yes

Create a Site is a one time action. SIP Peers are assigned to Site. Example, POST /accounts/<accountid>/sites No

Site 1 Peer Site N Peer

Peer Exists?

CREATE SIP PEER SIP GW Name, Site ID, Default Designation IP address, failover options, bidirectional trunks etc SEARCH TNS

Yes

Creating a SIP PEER is a one time action. You can create multiple SIP PEERS and map different TNs with those peers. You cannot have the same TN in multiple Peers

Searching provides details on the TNs for ordering. This is an optional step. You can place an order for TNs without searching When creating each new SIP Peer you will have the option to make it the default SIP Peer. TNs will automatically be assigned to that Peer unless a new Peer is created and designated as the default. CallForwarding is provisioned on a per TN basis

ORDER TNS

Example, POST /accounts/<acctid>/sites/<siteid>/sippeers

Call Forwarding

Bandwidth Inc. - Confidential / Proprietary Information

8 Managing Sites
Each account may have one or more Sites defined. Each Site may have one or more SIP Peers defined, which are the objects that contain the endpoints used to send and receive voice and data traffic. Most customers may only need a single Site and SIP Peer, but this structure allows customers with many products, channels, customers and physical locations to easily model their endpoints. In the Bandwidth Dashboard UI, "Sites" are referred to as "Sub-account", which is their most frequent use. SIP Peers are referred to as "Locations" as they are most frequently used to model customer's physical locations. Telephone numbers are associated with a single SIP Peer within a Site. These same rules are applied in the Bandwidth Dashboard UI's account structure. The input parameters for creating and updating sites are: Parameter AccountID Name Description Address CustomerProvidedID Description The numerical account ID assigned to your account The name of the site. Max length restricted to 10 characters. Customer provided description of the site Service Address for the site Customer can provide an optional id (max 10 digits). Note that the customer can use the same id across multiple orders Customer can provide an optional name

CustomerName

Bandwidth Inc. - Confidential / Proprietary Information

8.1 Example Configuration of Sites and SIP Peers SIP Peer - 1 to N Parent Account Info (Name, ID, Address etc) SIP Peer 1
Parent Account (CORPORATION A) Site 1 (aka SubAccount 1) Site Attributes CUSTOMER A 123 Main Drive, City A, State Customer ID: Optional Customer Name: Optional SITE NAME: SIte Address: (aka Location1) SIP Peer Attributes PEER NAME: Gateway 1 Origination IPs: 1.2.3.4 SMS IPs: smsa.com Termination IP: 1.2.3.4 TNs ordered per Peer Trks ordered per Peer SIP Peer 2 (aka Location2) SIP Peer Attributes PEER NAME: Gateway 2 Origination IPs: 2.3.4.5 SMS IPs: smsb.com Termination IP: 2.3.4.5 TNs ordered per Peer Trks ordered per Peer SIP Peer - 1 to N SIP Peer 1 (aka Location1) SIP Peer Attributes PEER NAME: Gateway 3 Origination IPs: 9.8.7.6 SMS IPs: smsc.com Termination IP: 9.8.7.6 TNs ordered per Peer Trks ordered per Peer SIP Peer 2 (aka Location2) SIP Peer Attributes PEER NAME: Gateway4 Origination IPs: 4.5.6.7 SMS IPs: smsd.com Termination IP: 4.5.6.7 TNs ordered per Peer Trks ordered per Peer

Site 2 (aka SubAccount 2) Site Attributes SITE NAME: SIte Address: CUSTOMER B 456 Main Drive, City B, State Customer ID: Optional Customer Name: Optional

Bandwidth Inc. - Confidential / Proprietary Information

10

8.2

Site Creation: HTTP POST Request Format

Creating a site is done by: /accounts/<account-id>/sites <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Site> <Name>Raleigh</Name> <Description>SIP gateway</Description> <CustomerName>BW</CustomerName> <Address> <HouseNumber>900</HouseNumber> <StreetName>Main Campus Drive</StreetName> <City>Raleigh</City> <StateCode>NC</StateCode> <ZipCode>27606</ZipCode> <AddressType>Service</AddressType> </Address> </Site> 8.3 Site Creation Response Format

A 201 Location header message is returned for creating a new site. The 201 location header messages contain the system generated site id. 8.4 HTTP PUT Request Format

To update the contents of a site, use: /accounts/<account-id>/sites/<site-id> <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Site> <Name>Raleigh</Name> <Description>SIP gateway</Description> <CustomerName>BW</CustomerName> <CustomerProvidedId>1234567890</CustomerProvidedId> <CustomerName>ABC Corp</CustomerName> <Address> <HouseNumber>900</HouseNumber> <StreetName>Main Campus Drive</StreetName> <City>Raleigh</City> <StateCode>NC</StateCode> <ZipCode>27606</ZipCode> <AddressType>Service</AddressType>

Bandwidth Inc. - Confidential / Proprietary Information

11

</Address> </Site> 8.5 Site Update Response Format

A 200 OK message is returned for updating a new site. 8.6 Site Creation/Update Errors

A sample error message response is shown below. Standard HTTP codes are used to indicate the type of error encountered. <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <SiteResponse> <ResponseStatus> <ErrorCode>12544</ErrorCode> <Description>Customer provided id '12345678904' is not valid</Description> </ResponseStatus> </SiteResponse> 8.7 Deleting a Site

Note: You cannot delete a site if a SIP Peer is on the site. DELETE /accounts/<id>/sites/<id>

9 Managing SIP Peers


SIP Peer Management enables customers to configure and manage IP addresses and other attributes for their network connections to Bandwidth. Per section 9, the SIP Peer(s) are set up on the Site to manage the numbers assigned to the account. In the User Interface, the SIP Peer is referenced as a Location instead of a SIP Peer just as a Site is referenced as a Sub Account. 9.1 Create a SIP Peer A SIP Peer is a gateway that sends or receives voice and data traffic to/from Bandwidths inetwork. Customer must configure a default SIP Peer on the Site within an Account. Before you can create a SIP Peer, a Site (location) must be created. You can have multiple SIP Peers on a Site. Only one default SIP Peer is allowed per Site. Reference Section 8.1.

Bandwidth Inc. - Confidential / Proprietary Information

12

9.1.1 SIP Peer Parameters Parameter AccountID SiteID PeerName Description IsDefaultPeer VoiceHostGroups/VoiceH ostGroup VoiceHosts SMSHosts FinalDestinationURI TerminationHosts Port CustomerTrafficAllowed Description The numerical Account ID assigned to your Account The Site or location id for the SIP Peer Mandatory name for the SIP Peer (Max 10 chars) Optional description for the SIP Peer Value is True or False. Each site can have only 1 default SIP Peer. You can configure multiple SIP Peers on a Site Used for round robin configuration. Maximum of 5 groups. Each group can have a maximum of 10 hosts. Used for active/standby configuration. Maximum of 10 hosts Used for SMS traffic only Last attempt for routing of calls Applies to Outbound Calling (Voice and/or SMS). List of IP or hostnames. Port Number for voice/SMS. If not specified, defaults to 0. A TerminationHost can be configured to allow different customer traffic types. Allowed values are LITE,DOMESTIC and ALL. This is an optional parameter. True or False (Enables or Disables SMS messaging for a TerminationHost). Optional parameter.

DataAllowed

9.1.2 Voice/Data Traffic There are three different types of customer calls and messages to and from Bandwidth:

Bandwidth Inc. - Confidential / Proprietary Information

13

1. Origination - Voice calls from PSTN phone numbers that are delivered to customer-owned telephone numbers. 2. Termination - Voice calls from customer-owned telephone numbers that are delivered to PSTN or other on-net telephone numbers. 3. SMS - Inbound text messages that are delivered to customer-owned telephone numbers and outbound text messages that are delivered to PSTN or other on-net telephone numbers These services can be used independently. The following sections outline how SIP Peers should be configured when different combinations of these services are used.

9.1.3 SIP Peer configuration for use of Origination service only You can define a SIP Peer for receiving inbound calls (from Bandwidth to customer). There are two options for this configuration. 1. Round Robin 2. Active/Standby 9.1.4 SIP Peer Round Robin Configuration This section describes the request format for a round-robin host configuration on the SIP Peer. In round robin configuration, the network allows a maximum of 5 destination host groups. Each host group can accommodate a maximum of 10 host names (or IP addresses). A group is selected in random order and every host in the group is attempted in random order. For example, you have two data centers in New York and California. Each data center has a set of 2 hosts (DNS names or IP addresses can be used the example uses IP addresses). New York Hosts 10.10.10.1 (Gateway #1) 10.10.10.2 (Gateway #2) California Hosts 10.10.10.3 (Gateway #3) 10.10.10.4 (Gateway #4) In this configuration, we want calls to be distributed between New York and California. Bandwidth selects the New York or California data centers in random order. If New York is selected, call will be attempted at Gateway #1 or Gateway #2, again in random order. The configuration for this option is: POST /accounts/<account-id>/sites/<site-id>/sippeers

Bandwidth Inc. - Confidential / Proprietary Information

14

<SipPeer> <PeerName>DataCenter</PeerName> <Description>Data Center Gateways</Description> <IsDefaultPeer>true</IsDefaultPeer> <VoiceHostGroups> <VoiceHostGroup> <Host>10.10.10.1</Host> <Host>10.10.10.2</Host> </VoiceHostGroup> <VoiceHostGroup> <Host>10.10.10.3</Host> <Host>10.10.10.4</Host> </VoiceHostGroup> </VoiceHostGroups> </SipPeer> 9.1.5 SIP Peer Active/Standby Configuration This section describes the active/standby host configuration for a SIP Peer. In active/standby configuration, the network allows a maximum of 10 destination hosts/IP Addresses. For example, you have one data centers in New York. The data center has 2 hosts (DNS names or IP addresses can be used). New York Hosts 10.10.10.1 (Gateway #1) - Active 10.10.10.2 (Gateway #2) - Standby In this configuration, all calls are routed to the New York data center and specifically to the Active host. The configuration for this option is: POST /accounts/<account-id>/sites/<site-id>/sippeers <SipPeer> <PeerName>NewYork</PeerName> <Description>NewYork SIP Gateway</Description> <IsDefaultPeer>true</IsDefaultPeer> <VoiceHosts> <Host>10.10.10.1</Host> <Host>10.10.10.2</Host> </VoiceHosts> </SipPeer>

Bandwidth Inc. - Confidential / Proprietary Information

15

9.1.6 SIP Peer configuration for use of Origination and SMS services This section provides information on defining a SIP Peer for receiving inbound calls (from Bandwidth to customer) and text messages. In the example below, the same host is used for receiving and SMS messages. If there is a different host for origination and SMS, the same can be identified in the tags. Note: You cannot make outbound calls using this configuration. Also, port number defaults to zero.

POST /accounts/<account-id>/sites/<site-id>/sippeers <SipPeer> <PeerName>Raleigh</PeerName> <Description>Raleigh SIP Gateway</Description> <IsDefaultPeer>true</IsDefaultPeer> <TerminationHosts> <TerminationHost> <Host>2.1.1.9</Host> <DataAllowed>true</DataAllowed> </TerminationHost> </TerminationHosts> <VoiceHosts> <Host>2.1.1.9</Host> </VoiceHosts> <SmsHosts> <Host>2.1.1.9</Host> </SmsHosts> </SipPeer> 9.1.7 SIP Peer configuration for use of Termination service only To define a SIP Peer for sending outbound calls (from customer to Bandwidth, the example configuration is: POST /accounts/<account-id>/sites/<site-id>/sippeers <SipPeer> <PeerName>Raleigh</PeerName> <Description>Raleigh SIP Gateway</Description> <IsDefaultPeer>true</IsDefaultPeer> <TerminationHosts> <TerminationHost> <Host>mygateway.com</Host>

Bandwidth Inc. - Confidential / Proprietary Information

16

<Port>5060</Port> </TerminationHost> </TerminationHosts> </SipPeer>

9.1.8 SIP Peer configuration for use of Termination and SMS services This section defines a SIP Peer for sending outbound calls (from customer to Bandwidth) and text messages. For example, POST /accounts/<account-id>/sites/<site-id>/sippeers <SipPeer> <PeerName>Raleigh</PeerName> <Description>Raleigh SIP Gateway</Description> <IsDefaultPeer>true</IsDefaultPeer> <TerminationHosts> <TerminationHost> <Host>mygateway.com</Host> <Port>5060</Port> <DataAllowed>true</DataAllowed> </TerminationHost> </TerminationHosts> <SmsHosts> <Host>mygateway.com</Host> </SmsHosts> </SipPeer> 9.1.9 SIP Peer configuration for use of Origination and Termination services A SIP Peer can also be configured to send and receive voice calls. An example XML specification for this configuration is: POST /accounts/<account-id>/sites/<site-id>/sippeers <SipPeer> <PeerName>Raleigh</PeerName> <Description>Raleigh SIP Gateway</Description> <IsDefaultPeer>true</IsDefaultPeer> <TerminationHosts> <TerminationHost> <Host>2.2.2.2</Host> <Port>5060</Port> <DataAllowed>false</DataAllowed> </TerminationHost>

Bandwidth Inc. - Confidential / Proprietary Information

17

</TerminationHosts> <VoiceHosts> <Host>2.2.2.2</Host> </VoiceHosts> </SipPeer> 9.1.10 SIP Peer configuration for use of Origination, Termination and SMS services A SIP Peer can also be configured to send, receive voice and text messages. An example XML specification for this configuration is: POST /accounts/<account-id>/sites/<site-id>/sippeers <SipPeer> <PeerName>Raleigh</PeerName> <Description>Raleigh SIP Gateway</Description> <IsDefaultPeer>true</IsDefaultPeer> <TerminationHosts> <TerminationHost> <Host>2.2.2.2</Host> <Port>5060</Port> <DataAllowed>true</DataAllowed> </TerminationHost> </TerminationHosts> <VoiceHosts> <Host>2.2.2.2</Host> </VoiceHosts> <SmsHosts> <Host>2.2.2.2</Host> </SmsHosts> </SipPeer> 9.1.11 SIP Peer configuration for use of SMS service only You can define a SIP Peer for sending and receiving text messages only. An example configuration for this service is: POST /accounts/<account-id>/sites/<site-id>/sippeers <SipPeer> <PeerName>Raleigh</PeerName> <Description>Raleigh SIP Gateway</Description> <IsDefaultPeer>true</IsDefaultPeer> <TerminationHosts> <TerminationHost>

Bandwidth Inc. - Confidential / Proprietary Information

18

<Host>1.2.3.4</Host> <Port>5060</Port> <DataAllowed>true</DataAllowed> </TerminationHost> </TerminationHosts> <SmsHosts> <Host>1.2.3.4</Host> </SmsHosts> </SipPeer> The SMSHosts Tag allows only inbound SMS traffic. The TerminationHost enables outbound SMS traffic. Therefore it is essential to include both tags in the XML format. Failure to do so, results in the error message: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <SipPeerResponse> <ResponseStatus> <ErrorCode>13541</ErrorCode> <Description>At least one Termination host is required</Description> </ResponseStatus> </SipPeerResponse> 9.1.12 Final Destination URI The network configuration of a SIP Peer includes an optional attribute called finaldestinationuri. This is used when network connectivity to all previously provided hosts/IPs fails. Request format for the configuration of the SIP Peer, using this attribute, is: <SipPeer> <PeerName>Raleigh</PeerName> <Description>Raleigh SIP Gateway</Description> <IsDefaultPeer>false</IsDefaultPeer> <TerminationHosts> <TerminationHost> <Host>2.1.1.1</Host> <Port>5060</Port> </TerminationHost> </TerminationHosts> <VoiceHosts> <Host>2.2.3.1</Host> <Host>2.2.3.2</Host> <Host>2.2.3.3</Host> <Host>2.2.3.4</Host>

Bandwidth Inc. - Confidential / Proprietary Information

19

</VoiceHosts> <SmsHosts> <Host>2.1.1.1</Host> </SmsHosts> <FinalDestinationUri>sip:+9876541234@1.2.3.4:5060</FinalDestinationUri> </SipPeer> 9.1.13 Removing a SIP Peer API allows users to delete a SIP Peer if there are no TNs or termination hosts on the SIP Peer. DELETE /accounts/<id>/sites/<id>/sippeers/<id> Note: SIP Peer cannot have any TNs or termination hosts. 9.2 Enable Call Forwarding

The user can enable call forwarding on inservice numbers using the HTTP PUT Request Format method. 9.2.1 HTTP PUT Request Format /accounts/<account-id>/sites/<site-id>/sippeers/<sippeer-id>/tns <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <SipPeerTelephoneNumber> <FullNumber>9192000046</FullNumber> <CallForward>9194394706</CallForward> </SipPeerTelephoneNumber> 9.2.2 HTTP PUT Response Format The response format to the PUT request in 9.2.1 is a 201 Create message 9.2.3 HTTP PUT Error Response Format One possible error response format to the PUT request in 9.2.1 is: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <SipPeerTelephoneNumberResponse> <ResponseStatus> <ErrorCode>13521</ErrorCode> <Description>Telephone number '9192000036' is not on this site</Description></Resp onseStatus>

Bandwidth Inc. - Confidential / Proprietary Information

20

</SipPeerTelephoneNumberResponse>

9.2.4 Retrieve Call Forwarding Information The user can determine the call forwarding status on a TN using the call format below. 9.2.5 HTTP GET Request Format /accounts/<account-id>/sites/<site-id>/sippeers/<sippeer-id>/tns/<tn#> <SipPeerTelephoneNumberResponse> <SipPeerTelephoneNumber> <FullNumber>9192000046</FullNumber> <CallForward>9194394706</CallForward> </SipPeerTelephoneNumber> </SipPeerTelephoneNumberResponse> 9.2.6 HTTP GET Error Response Format One possible response format to the GET request in 9.2.5 is: <SipPeerTelephoneNumberResponse> <ResponseStatus> <ErrorCode>13536</ErrorCode> <Description> Telephone number 9192000036 does not exist on Account 14, Site 3, and Sip Peer 301455 </Description> </ResponseStatus> </SipPeerTelephoneNumberResponse> 9.3 Inbound Calls Number Format

The user can format inbound calls to 10 digit, 11 digit or e164. The system defaults to e164. The request format is: 9.3.1 HTTP POST Request Format /accounts/<account-id>/sites/<site-id>/sippeers/<sippeer-id>/tns <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <SipPeerTelephoneNumber> <FullNumber>9192000046</FullNumber>

Bandwidth Inc. - Confidential / Proprietary Information

21

<NumberFormat>10digit</NumberFormat> </SipPeerTelephoneNumber> Note this is optional. 9.4 Retrieve Number Format Information

The user can determine the number format status on a TN using the same call format shown in Section 10.2.5. 9.5 Rewrite User Format

To change the username on a URI for inbound calls, use the format: 9.5.1 HTTP POST Request Format /accounts/<account-id>/sites/<site-id>/sippeers/<sippeer-id>/tns <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <SipPeerTelephoneNumber> <FullNumber>9192000046</FullNumber> <RewriteUser>JohnDoe</RewriteUser> </SipPeerTelephoneNumber> Note: this is optional. 9.6 Retrieve Rewrite User Format Information

The user can determine the rewrite user format status on a TN using the same call format shown in Section 10.2.5. 9.7 Remote Party ID Format

To change the username on a URI for inbound calls, use the format: 9.7.1 HTTP POST Request Format /accounts/<account-id>/sites/<site-id>/sippeers/<sippeer-id>/tns <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <SipPeerTelephoneNumber> <FullNumber>9192000046</FullNumber> <RPIDFormat>e164</RPIDFormat > </SipPeerTelephoneNumber>

Bandwidth Inc. - Confidential / Proprietary Information

22

9.8

Allowed values are 10digit, 11digit and e164.

Note: this is optional. 9.9 Retrieve Remote Party ID Format Information

The user can determine the remote party identification status on a TN using the same call format shown in Section 10.2.4 9.10 Deleting a SIP Peer Request A SIP peer can be deleted using the following format: DELETE /accounts/<account-id>/sites/<sites-id>/sippeers/<sippeer-id> Note: A SIP peer can be deleted only if there are no TNs. 9.11 Moving TNs across SIP Peers To move TNs across SIP Peers within a site, the format of the API is: POST /accounts/<account-id>/sites/<sites-id>/sippeers/<sippeer-id>/movetns Where sippeer-id is the destination id for the tns. Source sippeer id is determined from the TNs being moved. A maximum of 5000 TNs can be moved in one operation. The XML format is: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <SipPeerTelephoneNumbers> <FullNumber>9192000046</FullNumber> <FullNumber>9192000047</FullNumber> <FullNumber>9192000048</FullNumber> <FullNumber>9192000049</FullNumber> </SipPeerTelephoneNumbers> 9.11.1 PUT and DELETE operations are not supported for movetns

9.12 SIP Peers Status Codes The status codes are:

Bandwidth Inc. - Confidential / Proprietary Information

23

Code Description 200 201 400 401 500 The request has been successfully received. Location header for create request returned Client side error. For example one of the telephone numbers is not formatted correctly. User is not authorized to perform operation The system encountered an error and could not fulfill your request. Please attempt the request at a later time or contact inetwork customer experience team for help.

Bandwidth Inc. - Confidential / Proprietary Information

24

10 Searching for Phone Numbers


There are a number of different resource paths for querying available telephone numbers in the number intelligence platform. These are: 1. Area Code or NPA 2. AvailableNpaNxx (List of NPA NXX quantities) 3. NPA-NXX with Local Calling Area 4. NPA-NXX-X with Local Calling Area 5. Rate Center 6. Toll Free Vanity 7. Toll Free Wild Card 8. State 9. City, State 10. Zip code 11. Lata (Telecom terminology)

Access a resource by sending an HTTP request to the number intelligence API server. The server replies with a response containing data and/or a status code. All resources are referenced in Section 5. 10.1 Search HTTP GET Request Format See the different parameters starting in Section 10.6. 10.2 Search HTTP GET Response Format Our APIs return XML in response to a query. The XML format is shown below: <SearchResult> <ResultCount>1</ResultCount> <TelephoneNumberDetailList> <TelephoneNumberDetail> <City>KNIGHTDALE</City> <LATA>426</LATA> <RateCenter>KNIGHTDALE</RateCenter> <State>NC</State> <FullNumber>9192956932</FullNumber> <Tier>0</Tier> <VendorId>49</VendorId> <VendorName>Bandwidth CLEC</VendorName> </TelephoneNumberDetail> </TelephoneNumberDetailList>

Bandwidth Inc. - Confidential / Proprietary Information

25

</SearchResult> 10.2.1 Example HTTP GET Response (without TNDetail) An example XML response to a query is: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <SearchResult> <ResultCount>5</ResultCount> <TelephoneNumberList> <TelephoneNumber>9194390154</TelephoneNumber> <TelephoneNumber>9194390158</TelephoneNumber> <TelephoneNumber>9194390176</TelephoneNumber> <TelephoneNumber>9194390179</TelephoneNumber> <TelephoneNumber>9194390185</TelephoneNumber> </TelephoneNumberList> </SearchResult> 10.2.2 Example HTTP GET Response (with TNDetail) An example XML response to a query is: <SearchResult> <ResultCount>5</ResultCount> <TelephoneNumberDetailList> <TelephoneNumberDetail> <City>KNIGHTDALE</City> <LATA>426</LATA> <RateCenter>KNIGHTDALE</RateCenter> <State>NC</State> <FullNumber>9192956932</FullNumber> <Tier>0</Tier> <VendorId>49</VendorId> <VendorName>Bandwidth CLEC</VendorName> </TelephoneNumberDetail> <TelephoneNumberDetail> <City>KNIGHTDALE</City> <LATA>426</LATA> <RateCenter>KNIGHTDALE</RateCenter> <State>NC</State> <FullNumber>9192956984</FullNumber> <Tier>0</Tier> <VendorId>49</VendorId> <VendorName>Bandwidth CLEC</VendorName> </TelephoneNumberDetail>

Bandwidth Inc. - Confidential / Proprietary Information

26

<TelephoneNumberDetail> <City>KNIGHTDALE</City> <LATA>426</LATA> <RateCenter>KNIGHTDALE</RateCenter> <State>NC</State> <FullNumber>9192956935</FullNumber> <Tier>0</Tier> <VendorId>49</VendorId> <VendorName>Bandwidth CLEC</VendorName> </TelephoneNumberDetail> <TelephoneNumberDetail> <City>KNIGHTDALE</City> <LATA>426</LATA> <RateCenter>KNIGHTDALE</RateCenter> <State>NC</State> <FullNumber>9192956943</FullNumber> <Tier>0</Tier> <VendorId>49</VendorId> <VendorName>Bandwidth CLEC</VendorName> </TelephoneNumberDetail> <TelephoneNumberDetail> <City>KNIGHTDALE</City> <LATA>426</LATA> <RateCenter>KNIGHTDALE</RateCenter> <State>NC</State> <FullNumber>9192956833</FullNumber> <Tier>0</Tier> <VendorId>49</VendorId> <VendorName>Bandwidth CLEC</VendorName> </TelephoneNumberDetail> </TelephoneNumberDetailList> </SearchResult> 10.2.3 Example HTTP Get Error Response Format If the request is malformed or contains some other error, the response to the query is: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <SearchResult> <Error> <Code>4000</Code> <Description> The area code of telephone numbers can not end with 11. </Description>

Bandwidth Inc. - Confidential / Proprietary Information

27

</Error> <ResultCount>0</ResultCount> </SearchResult> 10.3 Search Query Response Fields The fields returned in the search response XML are: Parameter ResultCount TelephoneNumberList Description Number of results returned. Contains 0 or more Telephone Number values. The TelephoneNumber field value is 10 digits in length. The quantity of TelephoneNumbers should equal the number displayed in ResultCount.

TelephoneNumberDetailList Contains 0 or more TelephoneNumberDetail fields containing the telephone number and the rate center abbreviation, city, state, and LATA for the telephone number. This list will only be displayed for Non-TollFree number searches if the EnableTNDetail value is set to true. Error Contains a code value indicating an error sub code and a description field with detailed information on the error. See search error codes table for all possible values returned.

10.4 Search Status Codes The various status codes are: Code Description 200 200 400 Search request is complete and results returned. Search request is complete and no results found (empty set returned). This occurs when numbers are not available for a search parameter. Validation failed on one or more search filter input parameters. Please check the error code to see the possible cause.

Bandwidth Inc. - Confidential / Proprietary Information

28

500

The system encountered an error and could not fulfill your request. Please attempt the search request at a later time or contact Bandwidth Customer Experience Team for help.

10.5 Search Error Codes The various error codes are: Code Description 4000 Validation on the area code search input parameters failed due to one of following: 1. An area code was not supplied. 2. The value was not a 3 digit number. 3. The value started with a 0 or 1. 4. The value started with a 37 or 96. 5. The second digit of the value was a 9. 6. The value ended with 11. 7. Was a TollFree NPA (800, 855, 866, 877, 888) 8. If a Quantity value was supplied and that value was less than zero. Validation on the rate center search input parameters failed due to one of the following: 1. The rate center abbreviation was not supplied. 2. The rate center abbreviation specified was invalid. a) Needs to be a 1-15 letter word. b) Is case-insensitive. 3. The rate center state abbreviation was not supplied. 4. The rate center state abbreviation was invalid: a) Needs to be two-letter state abbreviation. b) Is case-insensitive. 5. If a Quantity value was supplied and that value was less than zero. Validation on the NPA-NXX and NPA-NXX-X search input parameters failed due to one of the following: 1. A NPANXX or NPANXXX value was not supplied. 2. The NPANXX or NPANXXX supplied was not a 6 or 7 digit number, respectively. 3. The NPA started with a 0 or 1. 4. The NPA started with a 37 or 96. 5. The second digit of the NPA was a 9. 6. The NPA ended with 11. 7. The NXX value did not contain [2-9] for the first digit and [0-9] for both the

4001

4002

Bandwidth Inc. - Confidential / Proprietary Information

29

second and third digits. 8. The last X value in NPANXXX was not [0-9]. 9. The NPANXX or NPANXXX field indicated a TollFree NPA (800, 855, 866, 877, 888) 10. If a Quantity value was supplied and that value was less than zero. 4003 Validation on the TollFree vanity search input parameters failed due to one of the following: 1. A TollFree vanity value was not supplied. 2. The value supplied was not seven or more characters. 3. The characters supplied were not a combination of the letters [A-Z] (case-insensitive) or numbers [0-9]. 4. If a Quantity value was supplied and that value was less than zero. Validation on the TollFree wildcard search input parameters failed due to: 1. A TollFreewildcardpattern value was not supplied. 2. The value was not in the form of 8**, 80*, 88*, 87*, 86*, or 85*. 3. If a quantity value was supplied and that value was less than zero. Validation on the city search parameters failed due to: 1. A city and/or state value was not supplied. 2. The city value was invalid: a) The characters supplied were not a combination of the letters [A-Z] (case-insensitive) or numbers [0-9]. b) Spaces, commas, dashes, and the ` character are acceptable. 3. The state abbreviation was invalid: a) Needs to be two-letter state abbreviation. b) Is case-insensitive. 4. If a quantity value was supplied and that value was less than zero. Validation on the state search parameters failed due to: 1. A state value was not supplied. 2. The state abbreviation was invalid: a) Needs to be two-letter state abbreviation. b) Is case-insensitive. 3. If a quantity value was supplied and that value was less than zero. Validation on the zip code search parameters failed due to: 1. A zip code value was not supplied. 2. The value should be a 5 digit format (XXXXX) or 9 digit format (XXXXXXXXX). 3. If a quantity value was supplied and that value was less than zero.

4004

4005

4006

4007

Bandwidth Inc. - Confidential / Proprietary Information

30

4008

Validation on the LATA search parameters failed due to: 1. A lata value was not supplied. 2. The value should be 5 digits or less. 3. If a quantity value was supplied and that value was less than zero. The system encountered an error and could not fulfill your request. Please attempt the search request at a later time or contact Bandwidth Customer Experience Team for help. The search type filter is null or does not contain a valid search type

4009

4010

10.6 Search Parameters Note: parameters are case sensitive. 10.7 AreaCode or NPA Search for available numbers in a specified area code. Parameter AccountId AreaCode Quantity Description The desired account on which search is performed. This has to be the current customer account. The allowed number ranges are [2-9] for the first digit and [0-9] for both the second and third digits. The desired quantity of requested numbers. Values range from 15000. If no quantity is specified, the default of 5000 is returned.

EnableTNDetail If set to true, a list of details associated with the telephone number (rate center abbreviation, city, state, and LATA) will be displayed along with the telephone number. This value is set to false by default.

10.7.1 HTTP GET Request Format To access a resource, append the resource name to the base URL. /accounts/<accountid>/availableNumbers?areaCode=919 /accounts/<accountid>/availableNumbers?areaCode=919&quantity=5 /accounts/<accountid>/availableNumbers?areaCode=919&quantity=5&enableTNDetai l=true

Bandwidth Inc. - Confidential / Proprietary Information

31

10.8 Available NPA NXX Quantities This method returns a list of quantities per NPA-NXX for a user supplied area code.

Parameter Description AccountId AreaCode The desired account on which search is performed. This has to be the current customer account. The allowed number ranges are [2-9] for the first digit and [0-9] for both the second and third digits.

10.8.1 HTTP GET Request Format To access a resource, append the resource name to the base URL. /accounts/<accountid>/availableNpaNxx?areaCode=919 10.8.2 Example HTTP GET Response <?xml version="1.0" encoding="UTF-8" standalone="no"?> <SearchResultForAvailableNpaNxx> <AvailableNpaNxxList> <AvailableNpaNxx> <City>NASHVILLE</City> <Npa>252</Npa> <Nxx>220</Nxx> <Quantity>1</Quantity> <State>NC</State> </AvailableNpaNxx> <AvailableNpaNxx> <City>FARMVILLE</City> <Npa>252</Npa> <Nxx>228</Nxx> <Quantity>1</Quantity> <State>NC</State> </AvailableNpaNxx> </AvailableNpaNxxList> </SearchResultForAvailableNpaNxx>

Bandwidth Inc. - Confidential / Proprietary Information

32

10.9 NPA-NXX or NPA-NXX-X with Local Area Calling Search for available numbers in a specified NPA-NXX or NPA-NXX-X. An enhanced feature of this method is to search for numbers in a Local Calling Area (LCA).

Parameter AccountId NpaNxx or NpaNxxx

Description The desired account on which search is performed. This has to be the current customer account. NPA NXX combination to be searched. Valid npa values: [2-9] for the first digit, and [0-9] for both the second and third digits. Valid Nxx values: [2-9] for the first digit, and [0-9] for both the second and third digits. Valid x values [0-9]. The desired quantity of requested numbers. Values range from 15000. If no quantity is specified, the default of 5000 is returned. Values are true or false. Default is true.

Quantity LCA

EnableTNDetail If set to true, a list of details associated with the telephone number (rate center abbreviation, city, state, and LATA) will be displayed along with the telephone number. This value is set to false by default. 10.9.1 HTTP GET Request Format /accounts/<accountid>/availableNumbers?npaNxx=919439 /accounts/<accountid>/availableNumbers?npaNxx=919439&quantity=1 /accounts/<accountid>/availableNumbers?npaNxx=919439&LCA=true&quantity=1 /accounts/<accountid>/availableNumbers?npaNxx=919439&LCA=true&quantity=1&en ableTNDetail=true 10.10 RateCenter with Local Area Calling Search for available numbers in a specified rate center. An enhanced feature of this method is to search for numbers in a Local Calling Area (LCA). Parameter Description

Bandwidth Inc. - Confidential / Proprietary Information

33

AccountId RateCenter State Quantity LCA

The desired account on which search is performed. This has to be the current customer account. The abbreviation for the RateCenter. The two letter abbreviation of the state the RateCenter is in. The desired quantity of requested numbers. Values range from 1-5000. If no quantity is specified, the default of 5000 is returned. Values are true or false. Default is true.

EnableTNDetail If set to true, a list of details associated with the telephone number (rate center abbreviation, city, state, and LATA) will be displayed along with the telephone number. This value is set to false by default. 10.10.1 HTTP GET Request Format

/accounts/<accountid>/availableNumbers?rateCenter=Cary&state=NC /accounts/<accountid>/availableNumbers?rateCenter=Cary&state=NC&quantity=10 /accounts/<accountid>/availableNumbers?rateCenter=cary&state=NC&quantity=1&LC A=false 10.11 TollFree Vanity Search for available TollFree numbers using a vanity format. Parameter AccountId Description The desired account on which search is performed. This has to be the current customer account.

TollFreeVanity The Toll Free requested vanity number. Valid range is 7+ digits alphanumeric. Quantity The desired quantity of requested numbers. Values range from 1-5000. If no quantity is specified, the default of 5000 is returned. HTTP GET Request Format

10.11.1

/accounts/<accountid>/availableNumbers?tollFreeVanity=NEWCARS /accounts/<accountid>/availableNumbers?tollFreeVanity=NEWCARS&quantity=5

Bandwidth Inc. - Confidential / Proprietary Information

34

10.12 TollFree WildCard Search for available TollFree numbers in a wildcard format. Parameter AccountId Description The desired account on which search is performed. This has to be the current customer account.

TollFreeWildCardPattern The Toll Free requested wild card pattern. Valid range is 3 digits. Examples:- 8**, 80*, 87* etc. Quantity The desired quantity of requested numbers. Values range from 1-5000. If no quantity is specified, the default of 5000 is returned. HTTP GET Request Format

10.12.1

/accounts/<accountid>/availableNumbers?tollFreeWildCardPattern=8** /accounts/<accountid>/availableNumbers?tollFreeWildCardPattern=8**&quantity=10 /accounts/<accountid>/availableNumbers?tollFreeWildCardPattern=88*&quantity=10 /accounts/<accountid>/availableNumbers?tollFreeWildCardPattern=87*&quantity=10 /accounts/<accountid>/availableNumbers?tollFreeWildCardPattern=86*&quantity=10 /accounts/<accountid>/availableNumbers?tollFreeWildCardPattern=85*&quantity=10 /accounts/<accountid>/availableNumbers?tollFreeWildCardPattern=80*&quantity=10 10.13 State Search for available numbers in the specified state. Parameter AccountId State Quantity Description The desired account on which search is performed. This has to be the current customer account. The two letter abbreviation of the state. The desired quantity of requested numbers. Values range from 15000. If no quantity is specified, the default of 5000 is returned.

Bandwidth Inc. - Confidential / Proprietary Information

35

EnableTNDetail If set to true, a list of details associated with the telephone number (rate center abbreviation, city, state, and LATA) will be displayed along with the telephone number. This value is set to false by default. 10.13.1 HTTP GET Request Format

/accounts/<accountid>/availableNumbers?state=NC /accounts/<accountid>/availableNumbers?state=NC&quantity=10 10.14 City/State Search for available numbers in the specified city and state. Note: Due to the inaccuracies that inherently reside with determining the exact location of telephone numbers, geography based searches are likely to have marginal errors. Parameter AccountId State City Quantity Description The desired account on which search is performed. This has to be the current customer account. The two letter abbreviation of the state. The name of the city. The desired quantity of requested numbers. Values range from 15000. If no quantity is specified, the default of 5000 is returned.

enableTNDetail If set to true, a list of details associated with the telephone number (rate center abbreviation, city, state, and LATA) will be displayed along with the telephone number. This value is set to false by default. 10.14.1 HTTP GET Request Format

/accounts/<accountid>/availableNumbers?city=CARY&state=NC /accounts/<accountid>/availableNumbers?city=CARY&state=NC&quantity=1 /accounts/<accountid>/availableNumbers?city=CARY&state=NC&quantity=1&enableT NDetail=true

Bandwidth Inc. - Confidential / Proprietary Information

36

10.15 Zip Code Search for available numbers in the specified zipcode. Note: Due to the inaccuracies that inherently reside with determining the exact location of telephone numbers, geography based searches are likely to have marginal errors.

Parameter AccountId Zip Quantity

Description The desired account on which search is performed. This has to be the current customer account. A five digit (XXXXX) or nine digit (XXXXX-XXXX) format value. The desired quantity of requested numbers. Values range from 15000. If no quantity is specified, the default of 5000 is returned.

enableTNDetail If set to true, a list of details associated with the telephone number (rate center abbreviation, city, state, and LATA) will be displayed along with the telephone number. This value is set to false by default. 10.15.1 HTTP GET Request Format

/accounts/<accountid>/availableNumbers?zip=27513 /accounts/<accountid>/availableNumbers?zip=27513&quantity=1 /accounts/<accountid>/availableNumbers?zip=27513&quantity=1&enableTNDetail=tru e 10.16 LATA Search the network for available numbers in the specified LATA. Parameter AccountId Lata Description The desired account on which search is performed. This has to be the current customer account. A maximum five digit (XXXXX) numeric format.

Bandwidth Inc. - Confidential / Proprietary Information

37

Quantity

The desired quantity of requested numbers. Values range from 15000. If no quantity is specified, the default of 5000 is returned.

enableTNDetail If set to true, a list of details associated with the telephone number (rate center abbreviation, city, state, and LATA) will be displayed along with the telephone number. This value is set to false by default. 10.16.1 HTTP GET Request Format

/accounts/<accountid>/availableNumbers?lata=244 /accounts/<accountid>/availableNumbers?lata=244&quantity=1 /accounts/<accountid>/availableNumbers?lata=244&quantity=1&enableTNDetail=true

11 Ordering Phone Numbers


11.1 Creating an Order The user can order numbers to their account using the HTTP POST Request Format method. This can be done either through a search for available numbers or by passing an order criterion. The creation of an order resource would return an order ID; which should be used in querying for the status for an order. 11.1.1 Order Request Format for REST See the different parameters for various criteria starting in Section 11.5. 11.1.2 Order Response Format for REST The inetwork APIs return XML in response to a query. In addition, an HTTP 201 location header message is returned for all requests. Sample is shown here: Location: https://BASEURL/accounts/<accountid>/orders/order-id The XML format is shown below: <OrderResponse> <CompletedQuantity>10</CompletedQuantity> <CreatedByUser>userid</CreatedByUser> <OrderCompleteDate>2013-02-11T18:35:05.203Z</OrderCompleteDate> <Order> <CustomerOrderId>123456789</CustomerOrderId> <Name>Area Code order</Name> <OrderCreateDate>2013-02-11T18:35:05.018Z</OrderCreateDate>

Bandwidth Inc. - Confidential / Proprietary Information

38

<PeerId>301557</PeerId> <AreaCodeSearchAndOrderType> <AreaCode>919</AreaCode> <Quantity>10</Quantity> </AreaCodeSearchAndOrderType> <SiteId>385</SiteId> </Order> <OrderStatus>COMPLETE</OrderStatus> <CompletedNumbers> <TelephoneNumber> <FullNumber>9192956833</FullNumber> </TelephoneNumber> <TelephoneNumber> <FullNumber>9192956835</FullNumber> </TelephoneNumber> <TelephoneNumber> <FullNumber>9192956836</FullNumber> </TelephoneNumber> <TelephoneNumber> <FullNumber>9192956895</FullNumber> </TelephoneNumber> <TelephoneNumber> <FullNumber>9192956898</FullNumber> </TelephoneNumber> <TelephoneNumber> <FullNumber>9192956915</FullNumber> </TelephoneNumber> <TelephoneNumber> <FullNumber>9192956932</FullNumber> </TelephoneNumber> <TelephoneNumber> <FullNumber>9192956935</FullNumber> </TelephoneNumber> <TelephoneNumber> <FullNumber>9192956943</FullNumber> </TelephoneNumber> <TelephoneNumber> <FullNumber>9192956984</FullNumber> </TelephoneNumber> </CompletedNumbers> <FailedQuantity>0</FailedQuantity> </OrderResponse>

Bandwidth Inc. - Confidential / Proprietary Information

39

11.2 ExistingTelephoneNumberOrderType Prior to using this criterion, a search request is required to retrieve the desired telephone numbers. Once the numbers have been obtained, use this type to order the telephone numbers. Note: you can also use this method to order numbers that were incorrectly disconnected and are in aging status. The input parameters are: Parameter AccountID Description The numerical account ID that you will be ordering the numbers for.

Name TelephoneN umberList

The name of the order. Max length restricted to 50 characters. A list of telephone numbers to order.

EnableTNDe If set to true, a list of details associated with the telephone number (rate tail center abbreviation, city, state, and LATA) will be displayed along with the telephone number. This value is set to false by default. CustomerOr derId SiteId Optional value for Id set by customer. The Site or location id for the SIP Peer

11.2.1 HTTP POST Request Format /accounts/<accountid>/orders <Order> <Name>Available Telephone Number order</Name> <SiteId>385</SiteId> <CustomerOrderId>123456789</CustomerOrderId> <ExistingTelephoneNumberOrderType> <TelephoneNumberList> <TelephoneNumber>9193752369</TelephoneNumber> <TelephoneNumber>9193752720</TelephoneNumber> <TelephoneNumber>9193752648</TelephoneNumber>

Bandwidth Inc. - Confidential / Proprietary Information

40

</TelephoneNumberList> </ExistingTelephoneNumberOrderType> </Order> 11.3 Order Response Format The order response format parameters are:

Parameter OrderId

Description The unique UUID returned which should be used to poll the order status using the getOrderStatus method.

UnAvailableQuantity The total numbers not available for ordering. For the create order response, this field will always have an value of 0. ErrorList Contains a list of errors (error code and description) indicating detailed information on a problematic input parameter. Certain responses may contain a TelephoneNumber field, indicating the telephone number in which the error is associated with. Contains a Code field indicating an overall status code for the response. For REST responses, this field maps to a HTTP status code. The user should then inspect the ErrorList field, if present, to see more detailed information on the issue and the specific error code. See the Order Status Codes table for all possible status codes returned. The Description field explains the general cause of the problem (if any).

Status

Description

11.3.1 Example HTTP POST Response Format <OrderResponse> <CompletedQuantity>3</CompletedQuantity> <CreatedByUser>userid</CreatedByUser> <FailedNumbers/> <OrderCompleteDate>2013-02-11T18:49:46.915Z</OrderCompleteDate> <Order> <CustomerOrderId>123456789</CustomerOrderId> <Name>Available Telephone Number order</Name> <OrderCreateDate>2013-02-11T18:49:46.854Z</OrderCreateDate>

Bandwidth Inc. - Confidential / Proprietary Information

41

<PeerId>301557</PeerId> <ExistingTelephoneNumberOrderType/> <SiteId>385</SiteId> </Order> <OrderStatus>COMPLETE</OrderStatus> <CompletedNumbers> <TelephoneNumber> <FullNumber>9193752369</FullNumber> </TelephoneNumber> <TelephoneNumber> <FullNumber>9193752648</FullNumber> </TelephoneNumber> <TelephoneNumber> <FullNumber>9193752720</FullNumber> </TelephoneNumber> </CompletedNumbers> <FailedQuantity>0</FailedQuantity> </OrderResponse> 11.4 Order Status Codes The various status codes for Ordering are: Code Description 201 400 401 404 500 Successful creation of order with Order Id Invalid parameters in request User is not authorized to initiate order request Resource not found The system encountered an error and could not fulfill the request. Resubmit the request at a later time or contact inetwork customer experience team for help.

11.5 AreaCode or NPA Search and Order Use this method to search and order available numbers in a specified area code. Parameter Description

Bandwidth Inc. - Confidential / Proprietary Information

42

AccountId AreaCode Quantity Name EnableTNDetail

The desired account on which search is performed. This has to be the current customer account. Allowed ranges: [2-9] for the first digit and [0-9] for both the second and third digits. The desired quantity of requested numbers. Values range from 15000. If no quantity is specified, the default of 5000 is returned. The name of the order. Maximum length is restricted to 50 characters. If set to true, a list of details associated with the telephone number (rate center abbreviation, city, state, and LATA) will be displayed along with the telephone number. This value is set to false by default.

CustomerOrderId Optional value for Id set by customer.

SiteId

The Site or location id for the SIP Peer

11.5.1 HTTP POST Request Format /accounts/<accountid>/orders <Order> <Name>Area Code Order</Name> <SiteId>385</SiteId> <CustomerOrderId>123456789</CustomerOrderId> <AreaCodeSearchAndOrderType> <AreaCode>617</AreaCode> <Quantity>1</Quantity> </AreaCodeSearchAndOrderType> </Order> 11.6 Rate Center with Local Area Calling Search and Order Use this method to search and order available numbers in a specified rate center. An enhanced feature of this method is to order numbers in a Local Calling Area (LCA).

Bandwidth Inc. - Confidential / Proprietary Information

43

Parameter AccountId RateCenter State Quantity EnableLCA

Description The desired account on which search is performed. This has to be the current customer account. The abbreviation for the RateCenter. The two letter abbreviation of the state the RateCenter is in. The desired quantity of requested numbers. Values range from 15000. If no quantity is specified, the default of 5000 is returned. If set to true, enables the ability to get local calling access numbers if numbers are not available for the given criteria. Default is true. The name of the order. Max length restricted to 50 characters. If set to true, a list of details associated with the telephone number (rate center abbreviation, city, state, and LATA) will be displayed along with the telephone number. This value is set to false by default.

Name enableTNDetail

CustomerOrderId Optional value for Id set by customer.

SiteId

The Site or location id for the SIP Peer

11.6.1 HTTP POST Request Format /accounts/<accountid>/orders <Order> <Name>Rate Center Order</Name> <SiteId>385</SiteId> <CustomerOrderId>123456789</CustomerOrderId> <RateCenterSearchAndOrderType> <RateCenter>RALEIGH</RateCenter> <State>NC</State> <Quantity>1</Quantity>

Bandwidth Inc. - Confidential / Proprietary Information

44

</RateCenterSearchAndOrderType> </Order> 11.7 NPA-NXX or NPA-NXX-X with Local Calling Search and Order Use this method to search and order available numbers in a specified NPA-NXX or NPA-NXX-X. An enhanced feature of this method is to order numbers in a Local Calling Area (LCA). Parameter AccountId NPA-NXX or NPA-NXX-X Description The desired account on which search is performed. This has to be the current customer account. NPA NXX combination to be searched. Valid NPA values: [2-9] for the first digit, and [0-9] for both the second and third digits. Valid NXX values: [2-9] for the first digit, and [0-9] for both the second and third digits. Valid X values [0-9]. The desired quantity of requested numbers. Values range from 15000. If no quantity is specified, the default of 5000 is returned. If set to true, enables the ability to get local calling access numbers if numbers are not available for the given criteria. Default is true. The name of the order. Max length restricted to 50 characters. If set to true, a list of details associated with the telephone number (rate center abbreviation, city, state, and LATA) will be displayed along with the telephone number. This value is set to false by default.

Quantity EnableLCA

Name enableTNDetail

CustomerOrderId Optional value for Id set by customer.

SiteId

The Site or location id for the SIP Peer

Bandwidth Inc. - Confidential / Proprietary Information

45

11.7.1 HTTP POST Request Format /accounts/<accountid>/orders <Order> <Name>NPANXX Order</Name> <SiteId>385</SiteId> <CustomerOrderId>123456789</CustomerOrderId> <NPANXXSearchAndOrderType> <NpaNxx>919439</NpaNxx> <EnableTNDetail>true</EnableTNDetail> <EnableLCA>false</EnableLCA> <Quantity>1</Quantity> </NPANXXSearchAndOrderType> </Order> 11.8 TollFree Vanity Search and Ordering Use this method to search and order available TollFree numbers in vanity format. Parameter Description AccountId The desired account on which search is performed. This has to be the current customer account. The TollFree requested vanity number. Valid range is 7 alphanumeric characters. More than 7 characters will be ignored. The desired quantity of requested numbers. Values range from 1-5000. If no quantity is specified, the default of 5000 is returned. The name of the order. Max length restricted to 50 characters.

Vanity Quantity Name

11.8.1 HTTP POST Request Format /accounts/<accountid>/orders <Order> <Name>TF Vanity Order</Name> <SiteId>385</SiteId> <CustomerOrderId>123456789</CustomerOrderId> <TollFreeVanitySearchAndOrderType>

Bandwidth Inc. - Confidential / Proprietary Information

46

<Quantity>1</Quantity> <TollFreeVanity>newcars</TollFreeVanity> </TollFreeVanitySearchAndOrderType> </Order> 11.9 TollFree WildCard Search and Ordering Use this method to search and order available TollFree numbers in a wildcard format.

Parameter AccountId

Description The desired account on which search is performed. This has to be the current customer account.

TollFreeWildCardPattern The Toll Free requested wild card pattern. Valid range is 3 digits. Examples:- 8**, 80*, 87* etc. Quantity The desired quantity of requested numbers. Values range from 1-5000. If no quantity is specified, the default of 5000 is returned. The name of the order. Max length restricted to 50 characters. Optional value for Id set by customer. The Site or location id for the SIP Peer

Name CustomerOrderId SiteId

11.9.1 HTTP POST Request Format /accounts/<accountid>/orders <Order> <Name>TF Order</Name> <SiteId>385</SiteId> <CustomerOrderId>123456789</CustomerOrderId> <TollFreeWildCharSearchAndOrderType> <Quantity>1</Quantity> <TollFreeWildCardPattern>8**</TollFreeWildCardPattern> </TollFreeWildCharSearchAndOrderType>

Bandwidth Inc. - Confidential / Proprietary Information

47

11.10 State Search and Ordering Use this method to search and order available numbers in the specified state. Note: Due to the inaccuracies that inherently reside with determining the exact location of telephone numbers, geography based searches are likely to have marginal errors.

Parameter AccountId

Description The desired account on which search is performed. This has to be the current customer account. The two letter abbreviation of the state. The desired quantity of requested numbers. Values range from 15000. If no quantity is specified, the default of 5000 is returned. The name of the order. Max length restricted to 50 characters. If set to true, a list of details associated with the telephone number (rate center abbreviation, city, state, and LATA) will be displayed along with the telephone number. This value is set to false by default.

State Quantity

Name EnableTNDetail

CustomerOrderId Optional value for Id set by customer.

SiteId

The Site or location id for the SIP Peer

11.10.1

HTTP POST Request Format

/accounts/<accountid>/orders <Order> <Name>State Order</Name> <SiteId>385</SiteId>

Bandwidth Inc. - Confidential / Proprietary Information

48

<CustomerOrderId>123456789</CustomerOrderId> <StateSearchAndOrderType> <Quantity>1</Quantity> <State>NC</State> </StateSearchAndOrderType> </Order> 11.11 City/State Search and Ordering Use this method to search and order available numbers in the specified city and state. Note: Due to the inaccuracies that inherently reside with determining the exact location of telephone numbers, geography based searches are likely to have marginal errors.

Parameter

Description The desired account on which search is performed. This has to be the current customer account. The two letter abbreviation of the state. The name of the city. The desired quantity of requested numbers. Values range from 15000. If no quantity is specified, the default of 5000 is returned. The name of the order. Max length restricted to 50 characters. If set to true, a list of details associated with the telephone number (rate center abbreviation, city, state, and LATA) will be displayed along with the telephone number. This value is set to false by default.

AccountId State City Quantity Name enableTNDetail

CustomerOrderId Optional value for Id set by customer.

SiteId

The Site or location id for the SIP Peer

Bandwidth Inc. - Confidential / Proprietary Information

49

11.11.1

HTTP POST Request Format

/accounts/<accountid>/orders <Order> <Name>City/State Order</Name> <SiteId>385</SiteId> <CustomerOrderId>123456789</CustomerOrderId> <CitySearchAndOrderType> <Quantity>1</Quantity> <City>RALEIGH</City> <State>NC</State> </CitySearchAndOrderType> </Order> 11.12 Zip Code Search and Ordering Use this method to search and order available numbers in the specified zip code. Note: Due to the inaccuracies that inherently reside with determining the exact location of telephone numbers, geography based searches are likely to have marginal errors. Parameter AccountId Zip Quantity Name EnableTNDetail Description The desired account on which search is performed. This has to be the current customer account. A five digit (XXXXX) or nine digit (XXXXX-XXXX) format value. The desired quantity of requested numbers. Values range from 15000. If no quantity is specified, the default of 5000 is returned. The name of the order. Max length restricted to 50 characters. If set to true, a list of details associated with the telephone number (rate center abbreviation, city, state, and LATA) will be displayed along with the telephone number. This value is set to false by default.

Bandwidth Inc. - Confidential / Proprietary Information

50

CustomerOrderId Optional value for Id set by customer.

SiteId

The Site or location id for the SIP Peer

11.12.1

HTTP POST Request Format

/accounts/<accountid>/orders <Order> <Name>Zip Order</Name> <SiteId>385</SiteId> <CustomerOrderId>123456789</CustomerOrderId> <ZIPSearchAndOrderType> <Quantity>1</Quantity> <Zip>27606</Zip> </ZIPSearchAndOrderType> </Order> 11.13 LATA Search and Ordering Use this method to search and order available numbers in a specified LATA. Parameter AccountId LATA Quantity Name enableTNDetail Description The desired account on which search is performed. This has to be the current customer account. A maximum five digit (XXXXX) numeric format. The desired quantity of requested numbers. Values range from 15000. If no quantity is specified, the default of 5000 is returned. The name of the order. Max length restricted to 50 characters. If set to true, a list of details associated with the telephone number (rate center abbreviation, city, state, and LATA) will be displayed along with the telephone number. This value is set to false by default.

Bandwidth Inc. - Confidential / Proprietary Information

51

CustomerOrderId Optional value for Id set by customer.

SiteId

The Site or location id for the SIP Peer

11.13.1

HTTP POST Request Format

/accounts/<accountid>/orders <Order> <Name>Lata Order</Name> <SiteId>385</SiteId> <CustomerOrderId>123456789</CustomerOrderId> <LATASearchAndOrderType> <Quantity>1</Quantity> <Lata>224</Lata> </LATASearchAndOrderType> </Order>

12 Porting-in Phone Numbers


The Bandwidth Dashboard provides an API that can be used to submit Port-In requests. These requests to move phone numbers from a "losing carrier" to Bandwidth are part of the Local Number Portability (LNP) process. These LNP requests are automatically validated and processed. If the order fails during processing, it will be held for exception processing. Customer's can catch and fix exceptions 2 different ways: The customer's application can check the status of orders, and re-submit or cancel them through the API. The customer's LNP team can check the status of orders, and re-submit or cancel them through the Bandwidth Dashboard UI.

Bandwidth Inc. - Confidential / Proprietary Information

52

12.1 Overview of the Port-in Process


Create Port-In Request

Check LNP Availability

User Input Validation

Valid?

NO

Example - TN is formatted correctly - TN does not exist in our inventory

YES
RateCenter Coverage?

NO

YES
Losing Carrier Validations?

NO

Example - Trading Partner - Account Number - FOC Date Cancel Port-In Process
Wireline?

YES NO

YES Modify Port-In Request Cancel Port-In Request

API or UI

Submit LOA

Exception Example - Feature active on line

FOC Accepted

Port-In Complete

NOTE: Exceptions are outlined as synchronous and asynchronous in the Appendix A: LNP Exception Codes.

Bandwidth Inc. - Confidential / Proprietary Information

53

12.2 Status Codes These are common to all LNP API calls. Code Parameter 200 400 500 SUCCESS ERROR Description Request is complete and results returned. Please see error list for more details.

SYSTEM_ERROR The system encountered an error and could not fulfill your request. Please attempt the request at a later time or contact Bandwidth Customer Experience Team for help.

12.3 Error Codes These are common to all LNP API calls. Additional detail may be passed in the description tag. Reference Appendix A LNP Error Codes for a detailed list of all LNP error codes. 12.4 Check LNP Availability Check if a number can be ported to the Bandwidth network. 12.4.1 HTTP POST Request Format POST /accounts/<accountid>/lnpchecker <NumberPortabilityRequest> <TnList> <Tn>4109255199</Tn> <Tn>9196190594</Tn> </TnList> </NumberPortabilityRequest> 12.4.2 Check LNP Availability Response The response XML to the lnpchecker method is: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <NumberPortabilityResponse> <SupportedRateCenters>

Bandwidth Inc. - Confidential / Proprietary Information

54

<RateCenterGroup> <RateCenter>BALTIMORE</RateCenter> <City>BALTIMORE</City> <State>MD</State> <LATA>238</LATA> <Tiers> <Tier>0</Tier> <Tier>1</Tier> </Tiers> <TnList> <Tn>4109256100</Tn> </TnList> </RateCenterGroup> <RateCenterGroup> <RateCenter>CHAPELHILL</RateCenter> <City>CHAPEL HILL</City> <State>NC</State> <LATA>426</LATA> <Tiers> <Tier>0</Tier> <Tier>1</Tier> </Tiers> <TnList> <Tn>9196190594</Tn></TnList> </RateCenterGroup> </SupportedRateCenters> <UnsupportedRateCenters/> </NumberPortabilityResponse> 12.4.3 Check LNP Availability Error Response The error response XML to the lnpchecker method is: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <NumberPortabilityResponse> <Errors> <Code>7201</Code> <Description>919 is not a valid NANPA telephone number.</Description> </Errors> </NumberPortabilityResponse> The error response XML to the lnpchecker method is:

Bandwidth Inc. - Confidential / Proprietary Information

55

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <NumberPortabilityResponse> <Errors> <Code>7201</Code> <Description>919 is not a valid NANPA telephone number.</Description> </Errors> </NumberPortabilityResponse> 12.5 Create LNP Order This method allows a user to create a new LNP order. An order number will be autogenerated and provided to the customer. The order must pass synchronous and asynchronous validation. Synchronous validation will return validation failures immediately in the response. Note: If synchronous validation passes, but asynchronous validation fails, the customer will not receive the error response until they check the order status. For Wireline Ports only, after the order is received, it will initially go into PENDING_DOCUMENTS status until an LOA is uploaded. See the section 13.6 LOA Upload. The input parameters for Create LNP Order are: Parameter Required Description

AccountId CustomerOrderId RequestedFocDate

Yes No No

The account ID for porting the numbers. Internal customer order id for tracking the order If not entered, the next available FOC date will be used. It if is entered, order will be rejected if date is earlier than losing carriers minimum number of days to port-out or if date is a weekend or holiday. Format is ISO8601.

AlternateSpid BillingTelephoneNumber

No Yes Account or Billing telephone number for order. Porting telephone number for most wireline ports. (BUSINESS, RESIDENTIAL) If residential,

SubscriberType

Yes

Bandwidth Inc. - Confidential / Proprietary Information

56

order will be rejected if a BusinessName is entered. BusinessName FirstName MiddleInitial LastName HouseNumber HouseSuffix PreDirectional StreetName StreetSuffix PostDirectional AddressLine2 City StateCode Zip PlusFour Country LoaAuthorizingPerson AccountNumber PinNumber PhoneNumber No No No No Yes No No Yes No No No Yes Yes Yes No No Yes No for Wireline No for Wireline Yes Subscriber business name. Subscriber first name. Subscriber middle initial. Subscriber last name. Street address number. Street address number suffix. Street address pre-directional. Street name. Street suffix. Street address post directional. Put unit, suite, floor, etc. here. City. Two letter state code. Zip code. Zip + 4. Country. First and last name of person who authorized LOA. Wireless account number, required for wireless port. Wireless pin number, required for wireless port. Ten digit phone number with no dots or dashes. One or more is required. Use a PhoneNumber tag for each phone number in

Bandwidth Inc. - Confidential / Proprietary Information

57

the list. SiteId PeerId Yes No See section on Sites See section on SIP Peers

12.5.1 HTTP POST Request Format The example below shows a Wireline port order. /accounts/<accountid>/portins <LnpOrder> <BillingTelephoneNumber>6882015002</BillingTelephoneNumber> <Subscriber> <SubscriberType>BUSINESS</SubscriberType> <BusinessName>Acme Corporation</BusinessName> <ServiceAddress> <HouseNumber>1623</HouseNumber> <StreetName>Brockton Ave #1</StreetName> <City>Los Angeles</City> <StateCode>CA</StateCode> <Zip>90025</Zip> <Country>USA</Country> </ServiceAddress> </Subscriber> <LoaAuthorizingPerson>John Doe</LoaAuthorizingPerson> <ListOfPhoneNumbers> <PhoneNumber>6882015025</PhoneNumber> <PhoneNumber>6882015026</PhoneNumber> </ListOfPhoneNumbers> <SiteId>385</SiteId> </LnpOrder> 12.5.2 HTTP POST Response Format The example below shows a Wireless port order.

<LnpOrderResponse> <ProcessingStatus>PENDING_DOCUMENTS</ProcessingStatus> <RequestedFocDate>2013-05-10T15:14:22Z</RequestedFocDate> <LoaAuthorizingPerson>John Doe</LoaAuthorizingPerson> <Subscriber>

Bandwidth Inc. - Confidential / Proprietary Information

58

<SubscriberType>BUSINESS</SubscriberType> <BusinessName>Acme Corporation</BusinessName> <ServiceAddress> <HouseNumber>1623</HouseNumber> <StreetName>Brockton Ave #1</StreetName> <City>Los Angeles</City> <StateCode>CA</StateCode> <Zip>90025</Zip> <County>USA</County> <Country>United States</Country> <AddressType>Service</AddressType> </ServiceAddress> </Subscriber> <WirelessInfo/> <BillingTelephoneNumber>6882015002</BillingTelephoneNumber> <ListOfPhoneNumbers> <PhoneNumber>6882015025</PhoneNumber> <PhoneNumber>6882015026</PhoneNumber> </ListOfPhoneNumbers> <SiteId>385</SiteId> <LosingCarrierName>Test Carrier</LosingCarrierName> <LastModifiedDate>2013-05-06T15:16:26Z</LastModifiedDate> <userId>jbm</userId> </LnpOrderResponse>

12.5.3 HTTP POST Error Response Format <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <LnpOrderResponse> <Status> <Code>435</Code> <Description>Validation Failed. Please check your input parameters. </Description> </Status> <Errors> <Code>7001</Code> <Description>Invalid requested FOC date.</Description> </Errors> <ProcessingStatus>PENDING_DOCUMENTS</ProcessingStatus> <AlternateSpid>X455</AlternateSpid> <RequestedFocDate>2012-07-10T00:00:00Z</RequestedFocDate> <LoaAuthorizingPerson>Jonathon Loaguy</LoaAuthorizingPerson>

Bandwidth Inc. - Confidential / Proprietary Information

59

<Subscriber> <SubscriberType>RESIDENTIAL</SubscriberType> <FirstName>Jonathon</FirstName> <LastName>Testguy</LastName> <ServiceAddress> <HouseNumber>1623</HouseNumber> <StreetName>Brockton Ave #1</StreetName> <City>Los Angeles</City> <StateCode>CA</StateCode> <Zip>90025</Zip> <County>USA</County> </ServiceAddress> </Subscriber> <BillingTelephoneNumber>3125457778</BillingTelephoneNumber> <ListOfPhoneNumbers> <PhoneNumber>3125457778</PhoneNumber> </ListOfPhoneNumbers> </LnpOrderResponse> </detail> 12.6 LOA Upload (Wireline only) After successfully submitting the Create LNP Order request, an LOA must be uploaded using our LOA API. 12.6.1 HTTP POST Request Format The command to upload a file: POST /accounts/<accountid>/portins/<orderid>/loas 12.6.2 HTTP PUT Request Format The command to update a previously provided LOA is: PUT /accounts/<accountid>/portins/<orderid>/loas/<filename> 12.6.3 HTTP GET Request Format The command to retrieve an LOA is: GET /accounts/<accountid>/portins/<orderid>/loas/<filename> 12.6.4 HTTP DELETE Request Format The command to delete a previously provided LOA is: DELETE /accounts/<accountid>/portins/<orderid>/loas/<filename>

Bandwidth Inc. - Confidential / Proprietary Information

60

12.6.5 Supported File Types The following MIME types are supported for the LOA upload file: PDF(application/pdf) PLAIN(text/plain) JPG(image/jpeg) TIFF(image/tiff) CSV(text/csv) XML(application/xml) WAV(audio/x-wav) ZIP(application/zip) 12.6.6 Example using CURL Example using CURL command: Use the order-id returned in the Create LNP Order response. curl -H 'Content-Type: <MIME Type>' --data-binary "@<Filename>" iv <Base URL>/portins/loas/<order-id> Example: curl -H 'Content-Type: application/pdf' --data-binary "@Test_LOA.pdf" -iv <BASE URL>/portins/loas/<order-id> Refer to the correct name for <BASE URL>. 12.7 Modifying an LNP Order (Supp LNP Order) This method allows a user to modify an existing LNP order. The order number that was generated in the create LNP order request must be provided. Modifications are only allowed for orders that are not yet complete or cancelled. After the FOC date has been received, the billing telephone number and subscriber information cannot be modified, only the FOC date/time can be updated. The input parameters for a LNP SUPP order are: Parameter AccountId OrderId Required Description Yes Yes The account ID to which you will be porting the numbers. The OrderId returned by the Create LNP Order response.

Bandwidth Inc. - Confidential / Proprietary Information

61

RequestedFocDate

No

If not entered, the next available FOC date will be used. It if is entered, order will be rejected if date is earlier than losing carriers minimum number of days to port-out or if date is a weekend or holiday. Format is ISO8601. Billing telephone number for order. (BUSINESS, RESIDENTIAL) If residential, supp will be rejected if a BusinessName is entered. Subscriber business name. Subscriber first name. Subscriber middle initial. Subscriber last name. Street address number. Street address number suffix. Street address pre-directional. Street name. Street suffix. Street address post directional. Put unit, suite, floor, etc. here. City. Two letter state code. Zip code. Zip + 4. Country. Wireless account number, required for wireless port.

BillingTelephoneNumber SubscriberType

No No

BusinessName FirstName MiddleInitial LastName HouseNumber HouseSuffix PreDirectional StreetName StreetSuffix PostDirectional AddressLine2 City StateCode Zip PlusFour Country AccountNumber

No No No No Yes No No Yes No No No Yes Yes Yes No No Optional for Wireline

Bandwidth Inc. - Confidential / Proprietary Information

62

PinNumber

Optional for Wireline No No

Wireless pin number, required for wireless port.

SiteId PeerId

See section on Sites See section on SIP Peers

12.7.1 HTTP PUT Request Format /accounts/<accountid>/portins/<order-id> <?xml version=1.0 encoding=UTF-8 standalone=yes?> <LnpOrderSupp> <RequestedFocDate>2012-08-30T00:00:00.000Z</RequestedFocDate> <WirelessInfo> <AccountNumber>77129766500001</AccountNumber> <PinNumber>6232</PinNumber> </WirelessInfo> </LnpOrderSupp> 12.7.2 HTTP PUT Response Format <?xml version=1.0 encoding=UTF-8 standalone=yes?> <LnpOrderResponse> <OrderId>0fe651a2-6ffc-4758-b7b7-e3eed66409ec</OrderId> <Status> <Code>200</Code> <Description>Supp request received. Please use the order id to check the status of your order later. </Description> <ProcessingStatus>REQUESTED_SUPP</ProcessingStatus> </Status> <RequestedFocDate>2012-08-30T00:00:00Z</RequestedFocDate> </LnpOrderResponse> 12.8 Cancel LNP Order This method allows a user to cancel an existing LNP order. The order number that was generated in the create request must be provided. The status of the order shall not be marked as COMPLETE i.e. you cannot cancel a completed order .

Bandwidth Inc. - Confidential / Proprietary Information

63

Parameter Required Type AccountId OrderId Yes Yes numeric

Description The account ID to which you will be porting the numbers.

char(50) The OrderId returned by the Create Lnp Order request.

12.8.1 HTTP DELETE Format /accounts/<accountid>/portins/<order-id> 12.8.2 HTTP DELETE Response Format <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <LnpOrderResponse> <OrderId>9c81c4d0-edcc-40f2-89a1-449e36cb1fda</OrderId> <Status> <Code>200</Code> <Description>Cancellation request received. Please use the order id to check the status of your order later.</Description> </Status> <ProcessingStatus>REQUESTED_CANCEL</ProcessingStatus> </LnpOrderResponse>

13 Disconnecting Phone Numbers


Use this method to disconnect telephone numbers from the account. The input parameters are: Parameter AccountID Description The numerical Account ID that you will be disconnecting the numbers from. The name of the order. Max length restricted to 50 characters. A list of telephone numbers to disconnect.

Name TelephoneNumberList

Bandwidth Inc. - Confidential / Proprietary Information

64

13.1.1 HTTP POST Request Format /accounts/<accountid>/disconnects <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <DisconnectTelephoneNumberOrder> <name>test disconnect order 4</name> <DisconnectTelephoneNumberOrderType> <TelephoneNumberList> <TelephoneNumber>9192755378</TelephoneNumber> <TelephoneNumber>9192755703</TelephoneNumber> </TelephoneNumberList> </DisconnectTelephoneNumberOrderType> </DisconnectTelephoneNumberOrder> Note: An OrderID is returned immediately which can be queried for status similar to the regular orders.

14 Reporting
14.1.1 Pagination Since an account may have a very large number of orders or TNs, the system uses the pagination mechanism to control the number of results that are returned. When a query is issued and no pagination parameters are specified, the system returns the http status code of 404 (Not found) with a link in the body of the message that indicates how to specify the pagination parameters. For example, to retrieve all orders for an account, the call is GET /accounts/<account-id>/orders?page=1&size=300 Note: If the page and size parameters are not specified (GET /accounts/<accountid>/orders) the command returns a 404 error shown below: (Note: The actual response will have the correct production link and account ids) <ResponseSelectWrapper> <ListOrderIdUserIdDate> <Links> <first> Link=<BASEURL/accounts/<accountid>/orders?page=1&size=300>;rel="first"; </first> </Links>

Bandwidth Inc. - Confidential / Proprietary Information

65

</ListOrderIdUserIdDate> </ResponseSelectWrapper> The calls that require pagination are identified with an (*) in the relevant sections. 14.1.2 Sites Reporting 14.1.2.1 All Sites on an account

GET /accounts/<account-id>/sites 14.1.2.2 Specific Site details

GET /accounts/<account-id>/sites/<sites-id> 14.1.3 SIP Peer Reporting 14.1.3.1 All SIP Peers on a site id

GET /accounts/<account-id>/sites/<sites-id>/sippeers 14.1.3.2 Specific SIP Peer details

GET /accounts/<account-id>/sites/<sites-id>/sippeers/<sippeer-id> 14.1.3.3 SIP Peer TNs

GET /accounts/<account-id>/sites/<sites-id>/sippeers/<sippeer-id>/tns 14.2 Rate Centers 14.2.1 States GET /rateCenters?state=<value> - State is a 2 character code (Ex. GET /rateCenters?state=NC) 14.2.2 Bandwidth Supported Rate Centers GET /rateCenters?state=<value>&supported=true 14.2.3 Available Numbers in Supported Rate Centers GET /rateCenters?state=<value>&available=true

Bandwidth Inc. - Confidential / Proprietary Information

66

14.3 Cities 14.3.1 All Cities in a State GET /cities?state=<value> - State is a 2 character code (Ex. GET /cities?state=NC) 14.3.2 Bandwidth Supported Cities GET /cities?state=<value>&supported=true 14.3.3 Available Numbers in Supported Cities GET /cities?state=<value>&available=true 14.4 GET Order Status The user can retrieve the status of their orders by querying on the unique identifier returned in the initial response. There are several different ways of querying the system. These are: 14.4.1 Retrieve all TNs for an order id /accounts/<accountid>/orders/<order-id> 14.4.2 Retrieve all TNs for an order with details /accounts/<accountid>/orders/<order-id>?tndetail=true 14.4.3 Retrieve all orders for a user id * /accounts/<accountid>/orders?userid=<userid> 14.4.4 Retrieve all orders for an account id * /accounts/<accountid>/orders 14.4.5 Retrieve all orders placed within a date range * /accounts/<accountid>/orders?startdate=YY-MM-DD&enddate=YY-MM-DD 14.4.6 Retrieve all TNs ordered within a date range * /accounts/<accountid>/orders;type=tn?startdate=YY-MM-DD&enddate=YY-MM-DD Parameters used in the order status calls are:

Bandwidth Inc. - Confidential / Proprietary Information

67

Parameter OrderID Userid Startdate Enddate Tndetail

Description The unique identifier associated with the create order request. Credentials used to place an order Starting date for the order. Format is YY-MM-DD Ending date for the order. Format is YY-MM-DD If set to true, a list of details associated with the telephone number (rate center abbreviation, city, state, and LATA) will be displayed along with the telephone number. Default value is false.

14.4.7 Retrieve all TNs based on CustomerOrderId /accounts/<account-id>/orders?customerOrderId=<value> Note: The same CustomerOrderId can be used for multiple orders by entering in the same CustomerOrderId for the additional orders placed. For example, if you order 10K TNs (since the API limit is 5000 TNs per order), two separate orders must be submitted. Each order will generate a unique external ID with the option of entering the CustomerOrderId that can be used to retrieve all TNs associated with the same CustomerOrderId on different orders. 14.5 Get Order Error Codes The various error codes are: Code Description 5000 5001 5002 5003 The account id specified does not exist or is incorrect. The input telephone number list required by the order request was not supplied. Validation error occurred on an input parameter. The description of the error indicates a potential cause for the failure in validation. Provisioning of the telephone numbers was not successful and the order could not be completed. The order can be resubmitted at a later time. If this error persists, please contact Bandwidth customer experience team for assistance. The vendor id specified does not exist or is incorrect.

5004

Bandwidth Inc. - Confidential / Proprietary Information

68

5005

The telephone number specified is unavailable to be ordered or cannot be imported. Possible causes that a telephone number cannot be ordered include: 1. The number is already in-service (either on your account or someone elses account). 2. The number does not exist in our system. Possible cause that a telephone number cannot be imported: 1. The number already exists in our system. The telephone number specified cannot be disconnected because it is not associated with your account or does not exist in the system. Exceeded the maximum number of telephone numbers that can be imported or ordered. None of the telephone numbers supplied in the request are valid. Please recheck that all of the numbers specified in the input list are correct. The quantity specified in the order request is invalid. The LNP operation specified is undefined. No tiers are defined for the account specified in the order. The account is locked. Please contact inetwork customer experience team for further assistance. The holding account could not be resolved. Please contact inetwork customer experience team for further assistance. The dlda request timed out. Please resubmit your request. The lidb request timed out. Please resubmit your request. The site ID you submitted is not valid Only a partial quantity of the total telephonenumbers ordered could be fulfilled The entire quantity of telephonenumbers ordered is unavailable Order is pending. Please check the status of your order later.

5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019

Bandwidth Inc. - Confidential / Proprietary Information

69

14.6 TNs 14.6.1 List of TNs against an Order Id

HTTP GET /accounts/<accountid>/orders/orderid/tns 14.6.2 TN Status Check In service

HTTP GET /tns/<#> 14.6.3 Sites associated with a TN

HTTP GET /tns/<#>/sites 14.6.4 SIP Peers Associated with a TN

HTTP GET /tns/<#>/sippeers 14.6.5 List of Inservice Numbers on account *

GET /accounts/<accountid>/inserviceNumbers 14.6.6 Count of Inservice TNs Total

GET /accounts/<accountid>/inserviceNumbers/totals 14.6.7 List of Inservice TNs for NPA

GET /accounts/<id>/inserviceNumbers;type=NPA 14.6.8 List of Inservice TNs for NPA NXX

GET /accounts/<id>/inserviceNumbers;type=NPANXX 14.6.9 List of Inservice TNs for NPA NXX X

GET /accounts/<id>/inserviceNumbers;type=NPANXXX 14.6.10 List of Inservice TNs for a Rate Center

GET /accounts/<id>/inserviceNumbers;type=RC 14.6.11 List of Inservice TNs for a State

GET /accounts/<id>/inserviceNumbers;type=ST 14.6.12 List of Inservice TNs for a specific Area Code

GET /accounts/<accountid>/inserviceNumbers?areaCode=<areacode>

Bandwidth Inc. - Confidential / Proprietary Information

70

14.6.13

List of Inservice TNs for a specific NPANXX

GET /accounts/<accountid>/inserviceNumbers?NpaNxx=<NPANXX> 14.6.14 List of Inservice TNs for a specific NPANXX X

GET /accounts/<accountid>/inserviceNumbers?NpaNxxx=<NPANXXX> 14.6.15 List of Inservice TNs for a specific City and State

GET /accounts/<accountid>/inserviceNumbers?city=<city>&state=<state> 14.6.16 List of Inservice TNs for a specific Rate Center

GET/accounts/<accountid>/inserviceNumbers?rateCenter=<rateCenter>&state=<stat e> 14.6.17 List of Inservice TNs for a specific LATA

GET /accounts/<accountid>/inserviceNumbers?lata=<latavalue> 14.6.18 List of Inservice TNs for a specific TollFree

GET /accounts/<accountid>/inserviceNumbers?areaCode=8** To get specific TollFree numbers enter an additional digit: Example: (87*, 86*, 85*) 14.6.19 List of Inservice TNs for a specific Date Range *

GET /accounts/<accountid>/inserviceNumbers?startdate=YY-MM-DD&enddate=YYMM-DD 14.6.20 List of Inservice TNs for a specific Area Code and Date Range

GET /accounts/<accountid>/inserviceNumbers?areCode=<areaCode>&startdate=YYMM-DD&enddate=YY-MM-DD 14.6.21 List of Inservice TNs for a specific NPANXX and Date Range

GET /accounts/<accountid>/inserviceNumbers?npaNxx=<NPANXX>&startdate=YYMM-DD&enddate=YY-MM-DD 14.6.22 List of Inservice TNs for a specific NPANXX X and Date Range

GET /accounts/<accountid>/inserviceNumbers?npaNxxx=<NPANXXX>&startdate=YY-MMDD&enddate=YY-MM-DD

Bandwidth Inc. - Confidential / Proprietary Information

71

14.6.23

List of Inservice TNs for a specific Rate Center and Date Range

GET /accounts/<accountid>/inserviceNumbers?rateCenter=<rateCenter>&state=<state>&st artdate=YY-MM-DD&enddate=YY-MM-DD 14.6.24 List of Inservice TNs for a specific State and Date Range

GET /accounts/<accountid>/inserviceNumbers?rateCenter=<rateCenter>&state=<state>&st artdate=YY-MM-DD&enddate=YY-MM-DD 14.6.25 List of Inservice TNs for a specific City, State and Date Range

GET /accounts/<accountid>/inserviceNumbers?city=<city>&state=<state>&startdate=YYMM-DD&enddate=YY-MM-DD 14.6.26 List of Inservice TNs for a specific LATA and Date Range

GET /accounts/<accountid>/inserviceNumbers?lata=<lata>&startdate=YY-MMDD&enddate=YY-MM-DD 14.7 GET List of Inservice TNs for a specific SIP Peer with Call Forwarding enabled Note: GET will list all inservice TNs associated with a SIP Peer and Call Forwarding will be identified if applicable. GET /accounts/<account-id>/sites/<site-id>/sippeers/<sippeer-id>/tns/ 14.8 GET Disconnect Order Status The user can retrieve the status of their disconnect orders by querying on the unique identifier returned in the initial response. There are several different ways of querying the system. These are: 14.8.1 Retrieve all TNs for a disconnect order id /accounts/<accountid>/disconnects/order-id 14.8.2 Retrieve all TNs for a disconnect order with details /accounts/<accountid>/disconnects/order-id?tndetail=true

Bandwidth Inc. - Confidential / Proprietary Information

72

14.8.3 Retrieve all disconnect orders for a userid * /accounts/<accountid>/disconnects?userid=<userid> 14.8.4 Retrieve all disconnect orders for an accountid * /accounts/<accountid>/disconnects 14.8.5 Retrieve all disconnect orders placed within a date range * /accounts/<accountid>/disconnects?startdate=YY-MM-DD&enddate=YY-MM-DD 14.8.6 Retrieve all TNs disconnected within a date range * /accounts/<accountid>/disconnects;type=tn?startdate=YY-MM-DD&enddate=YY-MMDD 14.9 GET Disconnect TN Details 14.9.1 List of Disconnected TNs for an account * HTTP GET /accounts/<accountid>/discNumbers 14.9.2 Count of Disconnected TNs Total GET /accounts/<accountid>/discNumbers/totals 14.9.3 List of Disconnected TNs for NPA GET /accounts/<id>/discNumbers;type=NPA 14.9.4 List of Disconnected TNs for NPA NXX GET /accounts/<id>/discNumbers;type=NPANXX 14.9.5 List of Disconnected TNs for NPA NXX X GET /accounts/<id>/discNumbers;type=NPANXXX 14.9.6 List of Disconnected TNs for a Rate Center GET /accounts/<id>/discNumbers;type=RC 14.9.7 List of Disconnected TNs for a State GET /accounts/<id>/discNumbers;type=ST 14.9.8 List of Disconnected TNs for a specific Area Code GET /accounts/<accountid>/discNumbers?areaCode=<areacode>

Bandwidth Inc. - Confidential / Proprietary Information

73

14.9.9

List of Disconnected TNs for a specific NPANXX

GET /accounts/<accountid>/discNumbers?npaNxx=<NPANXX> 14.9.10 List of Disconnected TNs for a specific NPANXX X

GET /accounts/<accountid>/discNumbers?npaNxxx=<NPANXXX> 14.9.11 List of Disconnected TNs for a specific City and State

GET /accounts/<accountid>/discNumbers?city=<city>&state=<state> 14.9.12 List of Disconnected TNs for a specific Rate Center

GET /accounts/<accountid>/discNumbers?rateCenter=<rateCenter>&state=<state> 14.9.13 List of Disconnected TNs for a specific LATA

GET /accounts/<accountid>/discNumbers?lata=<latavalue> 14.9.14 List of Disconnected TNs for a specific TollFree

GET /accounts/<accountid>/discNumbers?areaCode=8** To get specific TollFree numbers enter an additional digit: Example: (87*, 86*, 85*) 14.9.15 List of Disconnected TNs for a specific Date Range *

GET /accounts/<accountid>/discNumbers?startdate=YY-MM-DD&enddate=YY-MMDD 14.9.16 List of Disconnected TNs for a specific Area Code and Date Range

GET /accounts/<accountid>/discNumbers?areCode=<areaCode>&startdate=YY-MMDD&enddate=YY-MM-DD 14.9.17 List of Disconnected TNs for a specific NPANXX and Date Range

GET /accounts/<accountid>/discNumbers?npaNxx=<NPANXX>&startdate=YY-MMDD&enddate=YY-MM-DD 14.9.18 List of Disconnected TNs for a specific NPANXX X and Date Range

GET /accounts/<accountid>/discNumbers?npaNxxx=<NPANXXX>&startdate=YY-MMDD&enddate=YY-MM-DD

Bandwidth Inc. - Confidential / Proprietary Information

74

14.9.19

List of Disconnected TNs for a specific Rate Center and Date Range

GET /accounts/<accountid>/discNumbers?rateCenter=<rateCenter>&state=<state>&startd ate=YY-MM-DD&enddate=YY-MM-DD 14.9.20 List of Disconnected TNs for a specific State and Date Range

GET /accounts/<accountid>/discNumbers?rateCenter=<rateCenter>&state=<state>&startd ate=YY-MM-DD&enddate=YY-MM-DD 14.9.21 List of Disconnected TNs for a specific City, State and Date Range

GET /accounts/<accountid>/discNumbers?city=<city>&state=<state>&startdate=YYMM-DD&enddate=YY-MM-DD 14.9.22 List of Disconnected TNs for a specific LATA and Date Range

GET /accounts/<accountid>/discNumbers?lata=<lata>&startdate=YY-MMDD&enddate=YY-MM-DD

Parameters used in the disconnect order status calls are: Parameter OrderID Userid Startdate Enddate Tndetail Description The unique identifier associated with the disconnect order request. Credentials used to place a disconnect order Starting date for the disconnect order. Format is YY-MM-DD Ending date for the disconnect order. Format is YY-MM-DD If set to true, a list of details associated with the telephone number (rate center abbreviation, city, state, and LATA) will be displayed along with the telephone number. Default value is false.

14.10 GET Disconnect Error Codes The error codes are the same as those defined in Section 14.5.

Bandwidth Inc. - Confidential / Proprietary Information

75

15 LNP
15.1.1 Portins 15.1.1.1 Retrieve portin order details

GET /accounts/<account-id>/portins/<portin-order-id> 15.1.1.2 Retrieve all portin orders for an account

GET /accounts/<account-id>/portins (Note all statuses are included in this call) 15.1.1.3 Retrieve portin orders for a certain date

Here date refers to portin order submission date GET /accounts/<account-id>/portins?startdate=YY-MM-DD&enddate=YY-MD 15.1.1.4 Retrieve portin orders for a specific status

Allowed status values are PENDING_DOCUMENTS, SUBMITTED, FOC, CANCELLED, EXCEPTION, COMPLETE GET /accounts/<account-id>/portins?status=<value> 15.1.1.5 Retrieve portin orders for a specific status value on a specific date

GET /accounts/<accountid>/portins?status=<value>&date=YY-MM-DD 15.1.1.6 Retrieve portin orders for a specific status value on a date range

GET /accounts/<accountid>/portins?status=<value>&startdate=YY-MMDD&enddate=YY-MM-DD 15.1.1.7 Total portins for account (all statuses)

GET /accounts/<account-id>/portins/totals 15.1.1.8 Total portins for a specific status

GET /accounts/<account-id>/portins/totals?status=<value>

Bandwidth Inc. - Confidential / Proprietary Information

76

15.1.2 Portouts Note: Portouts are triggered from the winning carrier. The calls below provide information on portouts associated with your account. 15.1.2.1 Retrieve all portouts for an account

GET /accounts/<account-id>/portouts 15.1.2.2 Retrieve portout order details

GET /accounts/<account-id>/portouts/< portout-order-id> 15.1.2.3 Retrieve portouts orders for a certain date

GET /accounts/<account-id>/portouts?date=YY-MM-DD 15.1.2.4 Total portins for account

GET /accounts/<account-id>/portouts/totals

16 Appendix

Bandwidth Inc. - Confidential / Proprietary Information

77

16.1.1.1 Appendix A LNP Error Codes Code 7000 7001 7002 7003 7004 7005 7100 7101 7102 7103 7104 7105 7106 7107 7108 7109 7110 7111 7112 7113 7114 7115 7116 7117 7118 7119 7200 7201 7202 7203 7204 Meaning API request has timed out The account ID is required The account ID is invalid Unauthorized user Unable to provide coverage Unable to determine the next available FOC date The order ID is required At least one number must be specified to port Telephone number is required The billing telephone number (BTN) is required Subscriber information is required The subscriber name is required The subscriber type is required The service address is required The service address house number is required The service address street name is required The service address city is required The service address state code is required The service address zip code is required Wireless information is required The account number is required The LOA authorizing person is required The new network SPID is required The personal identification number (PIN) is required The port out action is required The requested FOC date is required Category SYSTEM SYSTEM SYSTEM SYSTEM SYSTEM SYSTEM MISSING_DATA MISSING_DATA MISSING_DATA MISSING_DATA MISSING_DATA MISSING_DATA MISSING_DATA MISSING_DATA MISSING_DATA MISSING_DATA MISSING_DATA MISSING_DATA MISSING_DATA MISSING_DATA MISSING_DATA MISSING_DATA MISSING_DATA MISSING_DATA MISSING_DATA MISSING_DATA INVALID_DATA INVALID_DATA INVALID_DATA INVALID_DATA INVALID_DATA Port In/Out BOTH BOTH PORTIN PORTIN PORTIN PORTIN PORTIN BOTH PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTOUT PORTOUT PORTOUT PORTOUT BOTH BOTH PORTOUT PORTIN PORTIN Sync/Async SYNC SYNC BOTH BOTH ASYNC ASYNC SYNC SYNC SYNC ASYNC SYNC SYNC BOTH SYNC BOTH BOTH BOTH BOTH SYNC ASYNC ASYNC SYNC SYNC SYNC SYNC SYNC BOTH SYNC ASYNC SYNC ASYNC

The order ID was not found Telephone number is invalid Telephone number was not found The billing telephone number (BTN) is invalid All telephone numbers, including the billing telephone number when provided, must belong to the same carrier 7205 Telephone number is already being processed on another order 7206 Telephone number is already in service 7207 The requested FOC date is invalid

INVALID_DATA INVALID_DATA INVALID_DATA

PORTIN PORTIN BOTH

BOTH BOTH BOTH

Bandwidth Inc. - Confidential / Proprietary Information

78

7208 The requested FOC date cannot be in the past 7209 The requested FOC date is too soon 7210 The requested FOC date is too far in the future. Date must be within 30 days 7211 A residential subscriber type may not have a business name 7300 The order cannot be modified while pending a response from the losing carrier 7301 The order cannot be modified or cancelled because the pending FOC date is too soon 7302 The order cannot be cancelled after the FOC date has passed 7303 The order is already cancelled and cannot be modified or cancelled 7304 The order is already complete and cannot be modified or cancelled 7305 The billing telephone number (BTN) cannot be modified at this time 7306 Subscriber information cannot be modified at this time 7307 The subscriber address cannot be modified at this time 7308 Wireless information cannot be modified at this time 7309 The site id was not supplied or is invalid. 7310 The site id submitted does not have a default SIP peer associated to it. 7311 The sippeer id is invalid for this site. 7312 The sippeer id is invalid. 7313 The time is outside business hours. FOC time must be within processing hours of 8:00AM and 3:30PM EDT 7314 The number of telephone numbers provided exceeds the maximum 7315 The date is during a weekend or holiday. 7316 At least one telephone number must be provided. 7317 Requested FOC date is before the next available FOC date. 7400 7401 7402 7403 7404 7405 Tollfree on the account cannot be retained Account number required or incorrect Address Mismatch Non-portable telephone number Business name required or incorrect Losing carrier is unable to process an order with multiple TNs 7406 Order is rejected for Centrex Service

INVALID_DATA INVALID_DATA INVALID_DATA INVALID_DATA

PORTIN BOTH PORTIN PORTIN

SYNC ASYNC ASYNC SYNC

WORK_FLOW WORK_FLOW WORK_FLOW WORK_FLOW WORK_FLOW WORK_FLOW WORK_FLOW WORK_FLOW WORK_FLOW INVALID_DATA INVALID_DATA INVALID_DATA INVALID_DATA INVALID_DATA INVALID_DATA INVALID_DATA INVALID_DATA INVALID_DATA

PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN

ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC SYNC SYNC SYNC SYNC SYNC SYNC ASYNC SYNC ASYNC

PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR

PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN

ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC

PROCESSING_ERROR PORTIN

Bandwidth Inc. - Confidential / Proprietary Information

79

7407 One or more telephone numbers are already on a pending order 7408 Customer information mismatch 7409 One or more telephone numbers is already disconnected or no longer on the account 7410 Order is rejected for Distinctive Ring 7411 Order is rejected due to having DSL services 7412 Requested due date / time cannot be met 7413 End user is not ready to port their number at this time 7414 First name required or incorrect 7415 Order is rejected for Foreign Exchange (FX) 7416 Order is rejected for a freeze on the line 7417 An error has occurred while processing this order 7418 The losing carrier is reporting a high volume of orders at this time and as such, the due date on your order may be extended. 7419 Order is rejected for a Hunt Group 7420 Order is rejected for an illegible fax 7421 Order is rejected due to having ISDN services 7422 Last name required or incorrect 7423 Errors with LNUMs/MDNs in request 7424 A Letter of Authorization (LOA) has been requested 7425 Order is rejected for port protection 7426 Mobile number is not active 7427 Mobile number is not found 7428 Order is rejected for multiple telephone numbers 7429 Customer name mismatch 7430 Service provider is not ready 7431 Number is an internal port 7432 Order can no longer be cancelled 7433 Order can no longer be supped 7434 The main billing telephone number (BTN) is being ported, but there are other numbers on the account 7435 Password/PIN and account number are required or incorrect 7436 Order contains a prepaid mobile number 7437 Order is rejected for Remote Call Forwarding 7438 Request received outside of business hours 7439 Requested Due Date less than Published Interval 7440 Required fields are missing 7441 Number is an internal port 7442 Scheduling/Work load 7443 SSN/Tax ID required or incorrect 7444 The losing carrier is reporing system outages and thus

PROCESSING_ERROR PORTIN PROCESSING_ERROR PORTIN PROCESSING_ERROR PORTIN PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN

ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC

PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR

PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN

ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC

PROCESSING_ERROR PORTIN PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN

Bandwidth Inc. - Confidential / Proprietary Information

80

7445 7446 7447 7448 7449 7450 7451 7452 7453 7454 7455 7456 7457 7458 7459 7460 7461 7462 7463 7464 7465 7466 7467 7468 7469

the due date requested on the order may be extended. The billing telephone number (BTN) is being rejected on this order A bill copy dated within 30-days is being requested to proceed with this order Order contains multiple billing telephone numbers (BTNs) End user has decided not to port their number Order contains numbers that are currently resold FOC date received for this order is no longer valid Losing carrier is experiencing a blackout period at this time Order contains telephone numbers with Ring Mate One or more numbers specified is on on the CSR Losing carrier has placed the order into conflict Unbundled Network Element Platform exists on the line Interconnection agreement does not exist Name/Address mismatch Invalid zip/state combination Address provided is a PO Box Service address is in a disaster area The Authorized Persons name on the Letter of Authorization is illegible or missing The Authorized Persons name on the Letter of Authorization is not the current name on record Incorrect subscriber type The Letter of Authorization is rejected The account number provided does not match The social security number provided does not match The wireless account pin number does not match Order contains wireless and wireline TNs Telephone number is a managed modem and is not portable

PROCESSING_ERROR PORTIN PROCESSING_ERROR PORTIN PROCESSING_ERROR PORTIN PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN

ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC ASYNC

PROCESSING_ERROR PORTIN PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PROCESSING_ERROR PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN PORTIN

7999 An internal error has occurred. Please contact support if this issue is not resolved in 1 business day

GENERIC

BOTH

BOTH

Bandwidth Inc. - Confidential / Proprietary Information

81