Control Center API Guide Ops Adv Enus
Control Center API Guide Ops Adv Enus
Application
Programming Interface
User Guide
OPERATOR ADVANTAGE
NOVEMBER 12, 2020 © 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved.
TABLE OF CONTENTS
APPLICATION PROGRAMMING INTERFACE USER GUIDE 1
API Overview 6
API Policies and Best Practices 7
Backward Compatibility 10
API Sandbox 11
REST APIs 12
Getting Started 14
Roles with Access 14
Base URL 15
API Sandbox 16
API Key 16
Authentication 17
Resources 18
Requests and Responses 19
Pagination 27
Date/Time Formats 28
Error Handling 29
SIM Status Values 29
Language Values 30
Currency Values 30
User Role Values 31
Industry Vertical Values 32
SMS Validity Period 33
Try It Tool 34
Accounts 36
Get Account Details 36
Get All Accounts 53
Create Account 59
Edit Account Details 65
Get Account Application Settings 70
Edit Account Application Settings 77
Get Account Billing Settings 86
Edit Account Billing Settings 91
Get Available Rate Plans for an Account 98
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 2
Edit Available Rate Plans for an Account 100
API Key 102
Create/Reset API Key for Given User 102
Get API Key 104
Reset API Key for Current User 106
Customers 108
Get Customer Details 108
Edit Customer Details 111
Create Customer 116
Devices 121
Search Devices 121
Get Device Details 125
Edit Device Details 129
Get Device Audit History 135
Get Device Location 140
Get Device Usage 145
Get Device Usage by Zone 149
Get Session Details 155
Echo 158
Echo 158
Multi-Party Billing 161
Get Partner Accounts for Device 161
Assign Device to Partner Account 163
Change Partner Rate Plan for Device 166
Remove Device from Partner Account 168
Rate Plans 170
Get Rate Plans 170
SMS Messages 183
Search SMS 183
Get SMS Details 187
Send SMS 191
Usages 195
Get Usage by Rate Plan 195
Users 201
Get User Details 201
Get All User Details 205
Create User 208
Edit User Details 212
Reset User Password 216
Delete User 218
REST Error Messages 220
REST API/Role Matrix 230
REST API Troubleshooting Checklist 231
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 3
SOAP APIs 234
Getting Started 235
SOAP API Development Process 236
SOAP API Code Standards 238
WSDL Files 241
SOAP API Error Handling 242
SOAP API Functions 243
Devices 243
Global SIMs 245
Messages (SMS) 246
Rate Plans 248
Usage 249
Invoices 249
Users 250
Test 250
SOAP API Use Cases 251
Analyzing Device Usage 251
Synchronizing Databases 252
Working with Multiple Operators 253
Understanding Log-in Credentials 253
Storing Log-in Credentials 254
Tutorials 256
Java 256
C# 258
Perl 260
PHP 261
Ruby 262
XML Samples 263
SOAP Error Messages 264
SOAP API/Role Matrix 273
SOAP API Troubleshooting Checklist 273
Push APIs 280
Typical Event Sequence 281
Implementing a Push Receiver 282
Sample Push API Message 285
SSL Certificates 286
Push API Reference 290
AccountTransfer 292
AvailableStaticIpAddress 293
CtdUsage 294
CtdVoiceUsage 295
CtdVoiceZUsage 296
CtdZUsage 297
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 4
ImeiWhitelist 298
LbsCellIdChange 299
MonthlyDataUsage 300
MonthlySmsUsage 301
MsisdnChange 302
NetworkRegistrationInZone 303
NoConnection 304
OrderCallback 305
Past24HDataUsage 307
Past24HVoiceUsage 308
PremiumServiceOrderType 309
RegistrationInZone 312
SecureSimAlert 313
Session 314
SimDataLimit 315
SimExpiration 316
SimFieldChange 317
SimImeiChange 318
SimPlanComplete 319
SimRatePlanChange 320
SimStateChange 321
SmsMoReceived 322
SmsUsage 323
TooFewDailyConnection 324
TooManyCtdConnection 325
TooManyDailyConnection 326
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 5
API OVERVIEW
The Cisco Control Center platform provides an application programming
interface (API) that allows you to access and edit data in Control Center
from an external application. Using the API, you can perform many of the
same tasks you can handle through Control Center’s web interface,
including:
l Managing the device lifecycle
l Monitoring usage
l Sending messages to a device
l Assigning a rate plan to a device
SOAP APIs
The SOAP APIs have been available for many years and
provide a wide range of functions. Basic access to these
APIs is available to all accounts. Learn more
REST APIs
The REST APIs provide device attributes, usage
information, session details, and more. Over time this set
of APIs will grow. Learn more
Push APIs
Control Center uses push APIs to notify you when an
automation rule triggers. You must implement a push
receiver to interpret the messages. Learn more
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 6
Real Time Data. REST and SOAP APIs are not intended to provide real-
time monitoring of service usage. For immediate feedback when certain
conditions occur, use automation rules.
Concurrent Connections
Cisco advises enterprises to avoid concurrent processing because it has the
potential to slow down response time considerably. We recommend using
APIs in single-threaded applications or routines only. Accounts using APIs
in multi-threaded scenarios may experience throttling or other restrictions,
depending on the circumstances.
As we continue to refine the platform for speed and reliability, Cisco may
update the calls per second limit from time to time. These updates may
occur without advance notice, however we will document them in the
Release Notes.
Be aware that this limit includes API calls made by both the account and
the account's customers. For example, if an account has two API users and
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 7
they, along with five of their customers, made simultaneous API calls,
Control Center would attribute a total of 7 calls per second to the account.
The initial API calls would succeed, but after the limit is hit, the rest of the
API calls would return one of the messages shown above.
The limit also applies to the combination of REST and SOAP API calls. For
example, suppose an account made 1 REST API call and 1 SOAP API call
simultaneously and, at the same time, one of the account's customers made
a single REST API call. Control Center would attribute 3 calls per second to
the account.
Best Practices
The following tips can help you avoid throttling or other usage restrictions
that may occur when your API use is excessive.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 8
Pseudo Code Example. The following pseudo code illustrates how rate
limiting code might work.
// API call returns the "limit exceeded" error, increase loop delay
IF ( response == ERROR_LIMIT_EXCEEDED )
{
delay += ADJUST_DELAY_INCR
}
ELSE
{ // ensure delay never goes below 0
IF ( delay > ADJUST_DELAY_DECR )
{
delay -= ADJUST_DELAY_DECR
}
ELSE
{
delay = 0
}
}
sleep( delay )
}
Use Caching
Cisco encourages local caching. For example, instead of calling an API on
every page load, create a simple routine to check the cache once a day.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 9
Lengthen Times Between Searches
If you receive API responses that are empty or unchanged, increase your
query time. For example, consider running your queries once a day rather
than every two hours.
FTP Reports. For enterprises that require access to large amounts of data
on a daily basis, FTP reports may be a better solution than APIs. See the
reports chapter in the Control Center User Guide for more information.
Backward Compatibility
Cisco regularly updates our APIs to provide new or enhanced functionality.
Our goal is to keep our API changes backward-compatible within the same
API version (see API Versions on the facing page) so that you don't have to
update your code whenever we make these changes.
Backward-compatible changes for our SOAP and REST APIs include:
l Adding new APIs
l Adding optional API request parameters
l Adding new fields to existing API responses
l Adding new values to existing API parameters that have enumerated
sets of values
l Adding HTTP response headers or adding values to existing response
headers
You should write your API clients (for SOAP and REST APIs) and push
receivers (for push APIs) with the expectation that these API changes will
happen, so that they can handle such changes gracefully. For example, do
not hard-code to a fixed set of API response fields, since new response
fields may be added in the future; instead, look for only the fields that you
are interested in, and ignore any other fields.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 10
While Cisco strives to ensure that the majority of API changes are
backward-compatible, there are times when incompatible changes need to
be made. Backward-incompatible changes include:
l Removing or renaming an API, request parameter, response field, or
enum value
l Changing the visible behavior of existing APIs
Through the Release Notes, Cisco will provide at least six months' notice
before backward-incompatible changes go into effect. This notice will
include specific information about the change along with instructions for
upgrading your code without service disruption.
API Versions
Every API function includes a version number that identifies the API’s
structure and behavior. Cisco increments this version number under the
following circumstances:
l The API receives a backward-incompatible change AND
l The previous version of the API continues to be supported.
API Sandbox
For API development purposes, Control Center maintains a sandbox
environment, completely separate from the production environment. In this
protected environment, you can familiarize yourself with the APIs and try
your applications on test data.
If you decide to develop in the sandbox environment, you must submit a
change request in Control Center asking for sandbox access. You can use
this sandbox account to access Control Center through either the web
interface or the APIs. If your enterprise accounts want to use the sandbox
environment, Cisco will work with you to set up an account for them.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 11
Chapter 1
REST APIS
The following table lists all the available REST API functions. For general
information about how to use these APIs, see Getting Started.
Accounts
Get Available Rate Plans Returns information about available rate plan for
for an Account a given account.
Edit Available Rate Plans Modifies attributes about available rate plans for
for an Account a given account.
API Key
Create/Reset API Key for Creates or resets a given user's API key.
Given User
Get API Key Returns the API key for a given user.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 12
API Function Description
Reset API Key for Current Resets the API key for the current user.
User
Customers
Devices
Edit Device Details Modifies any device attributes such as SIM status,
rate plan, communication plan, custom fields and
other identifiers.
Get Device Usage by Zone Returns usage details for a given device, based on
a specified zone and billing cycle.
Multi-Party Billing
Change Partner Rate Plan Change partner rate plan for device.
for Device
Rate Plans
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 13
API Function Description
SMS Messages
Usages
Get Usage by Rate Plan Returns usage information for all devices using a
given rate plan.
Users
Reset User Password Resets the web interface password for a given
user.
General
Getting Started
Roles with Access
Service provider, account, and customer users can use the APIs. However,
user access is limited by the following:
l Access Type. The user must have an Access Type of API Only or Both
API and UI in order to access the APIs. You can find that information
on the User Details page: Admin > Users > User Name link > Access
Type.
l Role. If a user with UI access can perform the function within the
Control Center web interface, then a user with the same role and
API access will be able to complete the task via an API call. There is
no single role that will guarantee access for all function calls. See the
API/Role matrix in the Knowledge Base for a complete list of roles
and the APIs they can use.
Typically, an enterprise will create user accounts with access to both the UI
and the APIs for their engineering team during development. For auditing
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 14
purposes, Cisco recommends that production code use a dedicated Control
Center user whose sole purpose is to execute API functions. When you
create the user, you can specify that the user has API-only access to Control
Center.
Field Restrictions. While multiple roles may have access to the same API,
not every role will have access to all the fields listed in the documentation.
You can verify field access for a particular role by logging into the web
interface as a user with the same role who also has web interface access
and then looking for the field.
Base URL
The Control Center REST API is securely available over HTTPS. The
Knowledge Base displays your base URL on the REST API Getting Started
page. The base URL also appears as part of the resource URL on every
REST API reference page.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 15
API Sandbox
For API development purposes, Control Center maintains a sandbox
environment, completely separate from the production environment, that
you can use to test your code. If you decide to develop in the sandbox
environment, you must submit a change request in Control Center asking
for sandbox access.
Base URL for Sandbox: https://rws-jpotest.jasper.com/rws/api/
If you use the sandbox account to test your code, you'll need to replace the
credentials and URL in your calls when you’re ready to put your code into
production. Be aware that you cannot migrate any data from the sandbox
environment to the production environment or vice versa.
API Key
Each user with API access has a unique API key that they must use in the
function calls. Be aware that you'll need different API keys for the
production and sandbox environments.
There are two ways to request a unique API Key for your user name:
From the Knowledge Base. Click the "Generate new key" link on any
REST API reference page.
After you generate your API key, it appears at the top of every function
page in the Knowledge Base.
A user with API-only access can also reset their API key using the
Create/Reset API Key for Given User API, if needed.
From the User Profile page. Click the Generate API Key button on the
User Profile or User Details page.
The new key appears as a series of asterisks. Click the Show API Key button
to view and copy the actual values. Click the Reset API Key button to reset
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 16
an existing key that has been compromised.
A user must have web interface access to Control Center in order to create
or view their API key. Users with API Only access must rely on an
administrative user with appropriate privileges to generate an API key for
them in the User Details page. Although administrator users can generate
and view API keys for users with the API Only access type, they cannot
perform those functions for users with Both API and UI access types.
Authentication
All API calls must be authenticated through the HTTP Basic Authentication
scheme. To do this, you create an authorization header that you send as
part of the API request. This header contains encoded versions of a Control
Center user name and its associated API key.
Follow these instructions to create an authorization header:
1. Combine the user name and API key into a single string with a colon
separating the values. For example, if the user name is starterkit and
the API key is d703f52b-1200-4318-ae0d-0f6092b2e6ab, the
concatenated string would be:
starterkit:d703f52b-1200-4318-ae0d-0f6092b2e6ab
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 17
Resources
Control Center supports the following resources and their associated
functions:
Resource Functions
Echo l Echo
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 18
Requests and Responses
When you make a REST API request, Control Center returns a JSON-
formatted response. The documentation for each API function lists the
request parameters and contains a sample JSON response for that function.
For all GET functions, you can request a partial response to return just the
data of interest to you. For example, if you want to get the rate plan for a
particular device, you can instruct the Get Device Details function to return
the rate plan name only and no other fields. You can request one or more
fields, including subfields, subfields within an array, and subfields of any
depth in a hierarchy.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 19
l API Functions. You can request partial responses for all GET
functions. The "fields=" request parameter does not work with PUT,
POST, or DELETE functions.
l Try It Support. Currently, you cannot request partial responses in
the Knowledge Base Try It tool.
{
"status": "ACTIVATED"
}
{
"iccid": "8988216716970004975",
"status": "ACTIVATED",
"ratePlan": "Monthly Flexible Pool 2GB"
}
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 20
Partial Response Use Case #3: Subfields
Syntax: fields=field1/subfield1,field1/subfield2
Example: Get Customer Details
https://restapi1.jasper.com/rws/api/v1/customers/16716970?fields=
name,
billingAddress/addressLine1,
billingAddress/postalCode
Sample Response:
{
"name": "Northwest Region",
"billingAddress": {
"addressLine1": "123 Main Street",
"postalCode": "10155"
}
}
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 21
Partial Response Use Case #4: Subfields in an array
Syntax: fields=field1/subfield1,field1/subfield2
Example: Get Device Usage in a Zone
https://restapi1.jasper.com/rws/api/v1/devices/89302720396916972826
/usageInZone?fields=
iccid, cycleStartDate, cycleEndDate,
deviceCycleUsageInZones/ratePlan,
deviceCycleUsageInZones/ratePlanVersion,
deviceCycleUsageInZones/zone,
deviceCycleUsageInZones/dataUsage,
deviceCycleUsageInZones/dataUsageUnit
Sample Response:
{
"iccid": "89302720396916972826",
"cycleStartDate": "2019-04-18T00:00:00.000Z",
"cycleEndDate": "2019-05-17T23:59:59.000Z",
"deviceCycleUsageInZones": {
"Acme Monthly Individual, 3": [
{
"ratePlan": "Acme Monthly Individual",
"ratePlanVersion": "3",
"zone": "Roaming",
"dataUsage": 20971924,
"dataUsageUnit": "bytes"
},
{
"ratePlan": "Acme Monthly Individual",
"ratePlanVersion": "3",
"zone": "Other Usage",
"dataUsage": 1375776,
"dataUsageUnit": "bytes"
}
]
}
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 22
Partial Response Use Case #5: All subfields
Syntax: fields=field1/*
Notes: To include subfields in the response, you must specify the individual
field names or use an asterisk (*) to return all fields. If you use a forward
slash alone, the function returns no subfields.
Example: Get Customer Details
https://restapi1.jasper.com/rws/api/v1/customers/16716970?fields=
name,
contacts/name,
contacts/email,
billingAddress/*
Sample Response:
{
"name": "Northwest Region",
"contacts": [
{
"name": "John Doe",
"email": "jdoe@acme.com"
},
{
"name": "Annette Wong",
"email": "awong@acme.com"
}
]
"billingAddress": {
"addressLine1": "593 Palm Dr.",
"addressLine2": null,
"city": "Los Angeles",
"state": "CA",
"country": "USA",
"postalCode": "91201"
}
}
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 23
Partial Response Use Case #6: Subfields of any depth
Syntax: fields=field1/subfield1/subsubfield1
Example: Get Account Details
https://restapi1.jasper.com/rws/api/v1/accounts/100020704?fields=
accountName,
security/passwordPolicySettings/ui/passwordExpirationInDays,
security/passwordPolicySettings/ui/content/minLength
Sample Response:
{
"accountName": "Acme Widgets",
"security": {
"passwordPolicySettings": {
"ui": {
"passwordExpirationInDays": "90",
"content": {
"minLength": "6"
}
}
}
}
}
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 24
Partial Response Code Samples
Make sure to use your own URL and user credentials.
Python
import requests
import json
import base64
import pprint
Node.js
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 25
Ruby
#!/usr/bin/ruby -w
require 'rest-client'
require 'json'
response = RestClient::Request.execute(
method: :get,
url: url,
user: 'user_name',
password: 'password',
headers => {:accept => :json}
)
puts JSON.pretty_generate(JSON.parse(response))
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 26
Pagination
For functions that typically return numerous records (such as Search
Devices and Search SMS), the API provides pagination controls that allow
you to process one set of results and then request more.
These request parameters manage the pagination process:
These response values allow your code to process the returns properly:
For example, the first API request would define the number of records to
include in the response (pageSize=50) and ask for the first page of records
(pageNumber=1). The response would send an array containing the first 50
records and then let you know if there are any more pages to return
(lastPage=false).
The second request would define the page size again (pageSize=50) and
ask for the second page of results (pageNumber=2). The second response
would return the next 50 records and alert you if there were more records
to retrieve (lastPage=false). This process would continue until one of the
responses indicates that the current page is the last page of results
(lastPage=true).
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 27
Date/Time Formats
The REST APIs use the following date and time formats for requests and
responses.
Response timestamps (some) UNIX Epoch clock format. This format counts
the number of seconds since the start of the
UNIX Epoch on January 1, 1970 (UTC). There
are a number of converters available online.
Example: 1571416432
(equivalent to October 18, 2019 at 4:33pm
UTC)
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 28
Error Handling
The REST APIs use standard HTTP status codes as well as business-specific
error messages. If an error occurs, Control Center will return a JSON
response containing an error code and an error message. For example:
{
"errorMessage": "The API credentials are invalid.",
"errorCode": "10000001"
}
The documentation for each API function contains a list of the errors that
may occur for that function.
The standard HTTP status codes are shown below.
200 Success
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 29
Language Values
Several API functions take the language preference as a request parameter
or return the information in the response. Here are the valid values:
l "English"
l "English (UK)"
l "Portuguese (BR)"
l "Portuguese (PT)"
l "Spanish (MX)"
l "Spanish (ES)"
l "German"
l "French"
l "Japanese"
l "Russian"
l "Dutch"
l "Chinese (Simple)"
l "Chinese (Traditional)"
l "Indonesian"
l "Italian"
l "Thai"
l "Swedish"
l "Korean"
Currency Values
Several API functions take currency as a request parameter or return the
information in the response. Here are the valid values:
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 30
User Role Values
For API functions that take user role as a request parameter or return the
information in a response, here is a list of valid values:
l SERVICEPROVIDERACCOUNTREP
l SERVICEPROVIDERADMIN
l SERVICEPROVIDERCSRUSER
l SERVICEPROVIDERDATAHELPDESK
l SERVICEPROVIDERDEVICESORDERS
l SERVICEPROVIDERFINANCE
l SERVICEPROVIDERFINANCEAPPROVAL
l SERVICEPROVIDERFINANCEOPERATIONS
l SERVICEPROVIDERGLOBALADMIN
l SERVICEPROVIDERREADONLY
l SERVICEPROVIDERSERVICEADMIN
l SERVICEPROVIDERSUPPORTONLY
l SERVICEPROVIDERTECHSUPPORT
l SERVICEPROVIDERUSER
l SPSECURITYADMIN
l SPSECURITYADMINAPPROVER
l ACCOUNTADMIN
l ACCOUNTAPIONLY
l ACCOUNTDEMO
l ACCOUNTFINANCE
l ACCOUNTFINANCEAPPROVAL
l ACCOUNTFINANCEREADONLY
l ACCOUNTGLOBALADMIN
l ACCOUNTLBSUSER
l ACCOUNTORGADMIN
l ACCOUNTREADONLY
l ACCOUNTSECURITYADMIN
l ACCOUNTUSER
l TRIALUSER
l CUSTOMERADMIN
l CUSTOMERDEMO
l CUSTOMERREADONLY
l CUSTOMERSUPERVISOR
l CUSTOMERTERMINALEDIT
l CUSTOMERTRIALUSER
l CUSTOMERUSER
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 31
Industry Vertical Values
For API functions that take vertical industry as a request parameter or
return the information in a response, here is a list of the valid values:
l ASSET_MANAGEMENT
l AVIATION
l CONNECTED_CAR
l CONSUMER_ELECTRONICS
l DIGITAL_SIGNAGE
l FLEET_MANAGEMENT
l INDUSTRIAL
l INSURANCE
l MEDICAL_DEVICES
l MOBILITY
l OIL_AND_GAS
l OTHER
l PAYMENT_SOLUTIONS
l RETAIL
l ROBOTICS
l SECURITY_AND_AUTOMATION
l SMART_BIKES
l SMART_METERS
l TELEMATICS
For information on the available industry verticals, see the Control Center
User Guide or the Knowledge Base (Reference > Admin > Account Wizard
Page 1 > Industry Vertical Descriptions).
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 32
SMS Validity Period
The Send SMS function uses a tpvp request parameter for time-sensitive
messages. This value defines the length of time the message is available
before expiring. The SMSC will attempt to deliver the SMS message to the
mobile device within this validity period. If the message cannot be
delivered to the device by the end of this period (because the device is off
or out of coverage, for example), the message will be dropped.
For example, suppose you have an application that sends a Door
Lock/Unlock command to a vehicle via SMS. If the car is out of coverage
when the message is sent, you wouldn't necessarily want to deliver the
message hours later when the car is back in coverage. In this scenario, you
might choose to expire the message after a 5 minute validity period.
The tpvp parameter supports validity periods between 5 minutes and 63
weeks in length using the TP-VP relative format defined by the GSM 03.40
standards:
In the Door Lock/Unlock example, if you pass a value of 0 for tpvp, the
message would expire in 5 minutes: (0 + 1) x 5 = 5 minutes.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 33
Try It Tool
From within the Knowledge Base, you can execute individual REST APIs
without writing any code.
Location: Help > Find everything you need in the Knowledge Base > APIs >
REST APIs > Devices > Search Devices
1. Scroll down to the bottom of any REST API reference page until you see
the Try It section. Click the function name to open the Try It tool.
2. Click the Try it out button to activate the parameter fields.
3. Enter the desired request parameter values. For functions that require a
date, copy and paste the sample date (which uses the correct date
format) and then edit the date to suit your use case.
4. Click Execute to send the request.
Control Center displays both the request code and the JSON response. You
can copy and paste the request code into a separate code file for future use.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 34
Caution. The Try It tool acts on the environment you are currently logged
into — production or test (sandbox). Be aware that any PUT or POST calls
will update the current database. If you are interested in setting up a
sandbox environment, submit a project request in Cisco IoT Connect Portal.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 35
Accounts
Get Account Details
Description
Returns the account details for a given account. See the Response
Parameters section for a list of the specific account details returned.
You must have the ServiceProviderAdmin role to perform this function.
Resource URL
GET BaseURL/v{apiVersion}/accounts/{accountId}
Request Parameters
Parameter Description
apiVersion The version number for this API. The current version
for all functions is 1.
Response Parameters
defaultSIMState This field defines the default SIM state that devices
receive when the operator transfers them from the
inventory account into the enterprise account. For
valid values, see SIM Status Values on page 29.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 36
Return Value Description
type The type of account. Here are some values you may
see:
l STANDARD. For enterprise accounts.
l OPERATOR. For operator accounts. Each operator
has only one of these accounts. This account should
contain all service provider users, but no devices.
l MASTER. For operator inventory accounts. Every
operator has a least one inventory account. An
inventory account contains devices that have not
been assigned to an enterprise account. The devices
in this account have a special status called Start. In
the web interface, this account type is called
Inventory.
currency The currency value is the unit of measure used for the
rate plan and billing information.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 37
Return Value Description
security All the security settings appear in this section. See the
Security Parameters table below.
Parameter Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 38
Rate Plan Parameters
Control Center applies the default rate plan to any SIMs you transfer into
the account unless you specify a different rate plan.
Parameter Description
Address Parameters
These parameters are the same for all three types of addresses: billing,
shipping, and primary place of use.
Parameter Description
countryCode A two character country code. See ISO 3166 for two-
letter codes (alpha-2).
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 39
Contact Parameters
These parameters are the same for both the primary contact and the billing
contact, with one exception. The primary contact can have a job title, but
the billing contact does not.
Parameter Description
name This string is the combination of the first and last name
values. Control Center uses the string for the Primary
Contact field on the Accounts list and the Account Details
pages. String, up to 100 characters.
jobTitle The primary contact can have a job title, but the billing
contact does not. String, up to 100 characters.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 40
Application Settings > Application Feature Parameters
Parameter Description
smsAccess If this toggle is set to true, then the SMS fields in the
user interface are visible to account users. If this
toggle is set to false, then the SMS fields are not
visible.
voiceAccess If this toggle is set to true, then the voice fields in the
user interface are visible to account users. If this
toggle is set to false, then the voice fields are not
visible.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 41
Application Settings > SIM Feature Parameters
Parameter Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 42
Parameter Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 43
Billing Settings > General Parameters
Parameter Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 44
Parameter Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 45
Parameter Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 46
Parameter Description
Security Parameters
Parameter Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 47
Password Parameters
Parameter Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 48
Request Example
Make sure to use your own URL and user credentials.
Response Example
{
"accountName": "Widgets Inc.",
"accountId": "100020704",
"defaultSIMState": "TEST_READY",
"type": "STANDARD",
"currency": "USD",
"language": "English",
"operatorAccountId":"123",
"status": "Active",
"taxId": "123",
"industryVertical": "AVIATION",
"commPlanDetails": {
"defaultCommPlan": "QACP4",
"defaultOnCommProfile": "QACPR3",
"defaultOffCommProfile": "QACPR4",
"onCommProfileHlrTemplateId": "999999102236001",
"offCommProfileHlrTemplateId": "999999101669802"
},
"defaultRatePlan": {
"defaultRatePlanId": 78138,
"defaultRatePlanName": "29658_RPID_MonInd"
},
"billingAddr": {
"addr1": "123 Main St",
"addr2": null,
"city": "Danville",
"region": "CA",
"countryCode": "US",
"postalCode": "94526"
},
"shippingAddr": {
"addr1": "123 Main St",
"addr2": null,
"city": "Danville",
"region": "CA",
"countryCode": "US",
"postalCode": "94526"
},
"ppuAddress": {
"addr1": "123 Main St",
"addr2": null,
"city": "Danville",
"region": "CA",
"countryCode": "US",
"postalCode": "94526"
},
"primaryContact": {
"firstName": "Katie",
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 49
"lastName": "Duncan",
"email": "katiedu@widgets.com",
"phone": "123-345-2345",
"fax": null,
"name": null,
"jobTitle": null
},
"billingContact": {
"firstName": "Katie",
"lastName": "Duncan",
"email": "katiedu@widgets.com",
"phone": "123-345-2345",
"fax": null,
"name": null,
"jobTitle": null
},
"acctSegment": null,
"applicationSettings": {
"applicationFeature": {
"accessCommPlan": true,
"businessRulesEnabled": true,
"simOrderingEnabled": true,
"smsAccess": true,
"voiceAccess": true
},
"simFeature": {
"blockBackwardSimState": true,
"displayDiagnosticWizard": true,
"displaySpotlight": true,
"fixedIpEnabled": true,
"testReadyDataLimit": 20480,
"testReadySmsLimit": 2,
"testReadyVoiceLimit": 120,
"testReadyDataState": "ACTIVATION_READY"
}
},
"billingSettings": {
"general": {
"billable": "No",
"prorationRule": "None",
"renewalProrationRule": "None",
"simFee": null,
"activationPlan": "First Time Only",
"activationFee": null,
"vpnPlan": "None",
"retailBilling": "None",
"immediateRatePlanChange": true,
"defaultTimeZone": null,
"eventPlanEnabled": false,
"prepaidRenewalPolicy": "Deactivate",
"prepaidRenewalRatePlanId": null
}
},
"security": {
"ipLoginRestrictionEnabled": true,
"secureSimEnabled": false,
"twoStepVerification": true,
"passwordPolicySettings": {
"ui": {
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 50
"passwordExpirationInDays": "Passwords do not expire.",
"numAttemptsBeforeTempLockout": "User accounts never lock out.",
"tempLockoutPeriodInMinutes": null,
"numHistoryChecks": null,
"content": {
"minLength": "6",
"maxLength": "25",
"minUppercaseChars": null,
"minNumerics": null,
"minSpecialChars": null
}
},
"soap": {
"passwordExpirationInDays": "Passwords do not expire.",
"numAttemptsBeforeTempLockout": "User accounts never lock out.",
"tempLockoutPeriodInMinutes": null,
"numHistoryChecks": null,
"content": {
"minLength": "6",
"maxLength": "25",
"minUppercaseChars": null,
"minNumerics": null,
"minSpecialChars": null
}
}
}
}
}
Code Samples
Make sure to use your own URL and user credentials.
Python
import requests
import json
import base64
import pprint
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 51
Node.js
Ruby
#!/usr/bin/ruby -w
require 'rest-client'
require 'json'
url = 'https://restapi1.jasper.com/rws/api/v1/accounts/147060908'
response = RestClient::Request.execute(
method: :get,
url: url,
user: 'username',
password: 'password',
:headers => {:accept => :json}
)
puts JSON.pretty_generate(JSON.parse(response))
Errors
HTTP
Error Code Description
Code
10000030 400 Your role does not have access to this API function.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 52
Get All Accounts
Description
Returns all accounts associated with the operator. The response body
contains a subset of the details for each account. Use the Get Accounts
Details API to get additional information for a particular account.
You must have the ServiceProviderAdmin role to perform this function.
Resource URL
GET BaseURL/v{apiVersion}/accounts
Request Parameters
Parameter Description
apiVersion The version number for this API. The current version
for all functions is 1.
Response Parameters
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 53
Return Value Description
type The type of account. Here are some values you may
see:
l STANDARD. For enterprise accounts.
l OPERATOR. For operator accounts. Each operator
has only one of these accounts. This account should
contain all service provider users, but no devices.
l MASTER. For operator inventory accounts. Every
operator has a least one inventory account. An
inventory account contains devices that have not
been assigned to an enterprise account. The devices
in this account have a special status called Start. In
the web interface, this account type is called
Inventory.
currency The currency value is the unit of measure used for the
rate plan and billing information.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 54
Communication Plan Parameters
Control Center uses the default communication plan for any account device
that does not have a communication plan assigned to it.
Parameter Description
Parameter Description
Request Example
Make sure to use your own URL and user credentials.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 55
Response Example
{
"pageNumber": 1,
"accounts": [{
"accountName": "Acme Corp",
"accountId": "100595340",
"type": "STANDARD",
"status": "Active",
"currency": "USD",
"operatorAccountId": null,
"taxId": "78593",
"industryVertical": "AVIATION",
"commPlanDetails": {
"defaultCommPlan": "Acme Default",
"defaultOnCommProfile": "Acme ON",
"defaultOffCommProfile": "Acme OFF"
"onCommProfileHlrTemplateId": "999999108256301",
"offCommProfileHlrTemplateId": "999999109629702"
},
"defaultRatePlan": {
"defaultRatePlanId": 1126395,
"defaultRatePlanName": "Acme Flex Pool"
}
}, {
"accountName": "Widgets Inc",
"accountId": "100613714",
"type": "STANDARD",
"status": "Active",
"currency": "USD",
"operatorAccountId": "39599",
"taxId": "23090",
"industryVertical": "SMART_METERS",
"commPlanDetails": {
"defaultCommPlan": "Widgets Default",
"defaultOnCommProfile": "Widgets ON",
"defaultOffCommProfile": "Widgets OFF"
"onCommProfileHlrTemplateId": "999999105236806",
"offCommProfileHlrTemplateId": "999999129729305"
},
"defaultRatePlan": {
"defaultRatePlanId": 1993832,
"defaultRatePlanName": "Widgets Fixed Pool"
}
}],
"lastPage": true
}
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 56
Code Samples
Make sure to use your own URL and user credentials.
Python
import requests
import json
import base64
import pprint
Node.js
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 57
Ruby
#!/usr/bin/ruby -w
require 'rest-client'
require 'json'
url = 'https://restapi1.jasper.com/rws/api/v1/accounts'
response = RestClient::Request.execute(
method: :get,
url: url,
user: 'username',
password: 'password',
:headers => {:accept => :json}
)
puts JSON.pretty_generate(JSON.parse(response))
Errors
HTTP
Error Code Description
Code
10000030 400 Your role does not have access to this API function.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 58
Create Account
Description
Creates a standard enterprise account with the minimum information
required for a new account. Using this REST API is equivalent to creating an
account in the web interface with just the information on the first page of
the account creation form.
You must have the ServiceProviderAdmin role to use this function.
Resource URL
POST BaseURL/v{apiVersion}/accounts
Request Parameters
All parameters are required unless the description says otherwise.
Parameter Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 59
Parameter Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 60
Parameter Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 61
Contact Parameters
These parameters are the same for both the primary contact and the billing
contact, with one exception. The primary contact can have a job title, but
the billing contact does not.
Parameter Description
name This string is the combination of the first and last name
values. Control Center uses the string for the Primary
Contact field on the Accounts list and the Account Details
pages. String, up to 100 characters.
jobTitle The primary contact can have a job title, but the billing
contact does not. String, up to 100 characters.
Address Parameters
These parameters are the same for all three types of addresses: billing,
shipping, and primary place of use.
Parameter Description
countryCode A two character country code. See ISO 3166 for two-
letter codes (alpha-2).
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 62
Response Parameters
Control Center returns the account ID for the new account.
timestamp The date and time when the account was created. The
timestamp displays in UNIX Epoch clock format. See
Date/Time Formats on page 28 for more information.
Request Example
Make sure to use your own URL and user credentials.
Response Example
{
"accountId": 105520704,
"timestamp": 1527590173
}
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 63
Errors
Error HTTP
Description
Code Code
10000023 400 The JSON in the request is not well formed. Please
ensure that commas, colons, braces etc. are formatted
properly.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 64
Edit Account Details
Description
Changes one or more account settings for a single active account. You
cannot make changes to an inactive account.
You must have the ServiceProviderAdmin role to perform this function.
Resource URL
PUT BaseURL/v{apiVersion}/accounts/{accountId}
Request Parameters
The following tables list all the parameters you can update using this
API function. Typically, users will update one or two parameters at a time.
Parameter Description
apiVersion The version number for this API. The current version
for all functions is 1.
currency The currency value is the unit of measure used for the
rate plan and billing information. Note that you can
use only one currency type to bill an account. For valid
values, see Currency Values on page 30.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 65
Parameter Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 66
Contact Parameters
These parameters are the same for both the primary contact and the billing
contact, with one exception. The primary contact can have a job title, but
the billing contact does not.
Parameter Description
name This string is the combination of the first and last name
values. Control Center uses the string for the Primary
Contact field on the Accounts list and the Account Details
pages. String, up to 100 characters.
jobTitle The primary contact can have a job title, but the billing
contact does not. String, up to 100 characters.
Address Parameters
These parameters are the same for all three types of addresses: billing,
shipping, and primary place of use.
Parameter Description
countryCode A two character country code. See ISO 3166 for two-
letter codes (alpha-2).
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 67
Response Parameters
Control Center returns the account ID for the updated account.
timestamp The date and time when the account was updated. The
timestamp displays in UNIX Epoch clock format. See
Date/Time Formats on page 28 for more information.
Request Example
Account updates are typically brief, targeting one or two parameters at a
time. Make sure to use your own URL and user credentials.
Response Example
{
"accountId": 100020704,
"timestamp": 1527590173
}
Errors
HTTP
Error Code Description
Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 68
HTTP
Error Code Description
Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 69
Get Account Application Settings
Description
Returns account application settings for a specified account. See the
API/Role matrix in the Knowledge Base for a complete list of roles that can
use this API.
Resource URL
GET BaseURL/v{apiVersion}/accounts/{accountId}/applicationSettings
Request Parameters
Parameter Description
apiVersion The version number for this API. The current version
for all functions is 1.
Response Parameters
This function returns data organized into four different groups
corresponding to the groups you'll see in the web interface (Admin >
Account Details > Application Settings):
l Application Feature
l SIM Feature
l Site Configuration
l Support
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 70
Application Feature
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 71
Return Value Description
smsAccess If this toggle is set to true, then the SMS fields in the
user interface are visible to account users. If this
toggle is set to false, then the SMS fields are not
visible.
voiceAccess If this toggle is set to true, then the voice fields in the
user interface are visible to account users. If this
toggle is set to false, then the voice fields are not
visible.
SIM Feature
defaultSimState This field defines the default SIM state that devices
receive when the operator transfers them from the
inventory account into the enterprise account. For a
list of valid values, see SIM Status Values on page 29.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 72
Return Value Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 73
Return Value Description
Site Configuration
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 74
Support
showAcctSupport If set to yes, then the support phone number and support
email displays in the Account Support section on the
Help page.
Request Example
Make sure to use your own URL and user credentials.
Response Example
{
"applicationFeature": {
"accessCommPlan": false,
"csdAccess": false,
"businessRulesEnabled": true,
"globalAccountEnabled": false,
"policiesEnabled": false,
"simOrderingEnabled": false,
"smsAccess": true,
"subscriptionChannel": false,
"voiceAccess": false
},
"simFeature": {
"blockBackwardSimState": false,
"defaultSimState": "TEST_READY",
"displayDiagnosticWizard": true,
"displaySpotlight": true,
"fixedIpEnabled": false,
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 75
"testReadyDataLimit": 20480,
"testReadySmsLimit": 2,
"testReadyVoiceLimit": 120,
"testReadyCsdLimit": 120,
"testReadyDataState": "ACTIVATION_READY"
},
"siteConfiguration": {
"cobrandSite": null,
"fileExportMethod": "EXCEL",
"eulaEnabled": true
},
"support": {
"supportEmail": null,
"supportPhone": null,
"showAcctSupport": false,
"showSpSupport": true
}
}
Errors
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 76
Edit Account Application Settings
Description
Edits the application settings for a specific account. See the API/Role matrix
in the Knowledge Base for a complete list of roles that can use this API.
Resource URL
PUT BaseURL/v{apiVersion}/{accountId}/applicationSettings
Request Parameters
This function organizes the application settings data into four different
groups corresponding to the groups you'll see in the web interface (Admin
> Account Details > Application Settings):
l Application Feature
l SIM Feature
l Site Configuration
l Support
Parameter Description
apiVersion The version number for this API. The current version
for all functions is 1.
Application Feature
All parameters are required.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 77
Parameter Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 78
Parameter Description
smsAccess If this toggle is set to true, then the SMS fields in the
user interface are visible to account users. If this
toggle is set to false, then the SMS fields are not
visible.
voiceAccess If this toggle is set to true, then the voice fields in the
user interface are visible to account users. If this
toggle is set to false, then the voice fields are not
visible.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 79
SIM Feature
All parameters are required.
Parameter Description
defaultSimState This field defines the default SIM state that devices
receive when the operator transfers them from the
inventory account into the enterprise account. For a
list of valid values, see SIM Status Values on page 29.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 80
Parameter Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 81
Site Configuration
All parameters are required, but those marked as optional can take null
values.
Parameter Description
Support
All parameters are required, but those marked as optional can take null
values.
showAcctSupport If set to yes, then the support phone number and support
email displays in the Account Support section on the
Help page.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 82
Response Parameters
Control Center returns the account ID for the updated account.
timestamp The date and time when the account was updated. The
timestamp displays in UNIX Epoch clock format. See
Date/Time Formats on page 28 for more information.
Request Example
Make sure to use your own URL and user credentials.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 83
Response Example
{
"accountId": 100020704,
"timestamp": 1527590173
}
Errors
Error HTTP
Description
Code Code
10000301 400 Test Ready Data Limit length must be between 0 and
10.
10000302 400 Test Ready Sms Limit length must be between 0 and
10.
10000303 400 Test Ready Voice Limit length must be between 0 and
10.
10000304 400 Test Ready Csd Limit length must be between 0 and
10.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 84
Error HTTP
Description
Code Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 85
Get Account Billing Settings
Description
Retrieves the billing settings for a given account. See the API/Role matrix in
the Knowledge Base for a complete list of roles that can use this API.
Resource URL
GET BaseURL/v{apiVersion}/{accountId}/billingSettings
Request Parameters
Parameter Description
apiVersion The version number for this API. The current version
for all functions is 1.
Response Parameters
Parameter Description
General Parameters
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 86
Return Value Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 87
Return Value Description
eventPlanEnabled If set to true, then event plans are enabled for this
account. An event plan is a prepaid rate plan
that’s designed for special circumstances or
"events" that occur outside of a normal rate plan.
If set to false, then this account cannot use event
plans. The default is false.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 88
Commitments Parameters
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 89
Request Example
Make sure to use your own URL and user credentials.
Response Example
{
"general": {
"billable": "No",
"currentBillingCycleStart": "12th of month(Europe/Moscow)",
"prorationRule": "None",
"renewalProrationRule": "None",
"simFee": null,
"activationPlan": "None",
"activationFee": null,
"retailBilling": "None",
"immediateRatePlanChange": true,
"defaultTimeZone": null,
"eventPlanEnabled": false,
"prepaidRenewalPolicy": "Deactivate",
"prepaidRenewalRatePlanId": null
}
"commitments": {
"activationGracePeriod": 365,
"billActivationGracePeriod": false,
"monthlyDevicesMinimumTerm": null,
"monthlyDeviceMinimum": null,
"billMonthlyDeviceMinimum": false,
"minimumActivationTerm": null,
"billMinimumActivationTerm": false
}
}
Errors
HTTP
Error Code Description
Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 90
Edit Account Billing Settings
Description
Changes the billing settings for a given account. See the API/Role matrix in
the Knowledge Base for a complete list of roles that can use this API.
Resource URL
PUT BaseURL/v{apiVersion}/{accountId}/billingSettings
Request Parameters
All parameters are required.
Parameter Description
apiVersion The version number for this API. The current version
for all functions is 1.
General Parameters
Parameter Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 91
Parameter Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 92
Parameter Description
eventPlanEnabled If set to true, then event plans are enabled for this
account. An event plan is a prepaid rate plan
that’s designed for special circumstances or
"events" that occur outside of a normal rate plan.
If set to false, then this account cannot use event
plans. The default is false.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 93
Commitments Parameters
Parameter Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 94
Response Parameters
timestamp The date and time when the account was updated. The
timestamp displays in UNIX Epoch clock format. See
Date/Time Formats on page 28 for more information.
Request Example
Make sure to use your own URL and user credentials.
Response Example
{
"accountId": 100015068,
"timestamp": 1527590173
}
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 95
Errors
HTTP
Error Code Description
Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 96
HTTP
Error Code Description
Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 97
Get Available Rate Plans for an Account
Description
The operator can get available rate plans for an account. These rate plans
include custom rate plans associated with the account as well as shared
rate plans that the operator assigned to the account. See the API/Role
matrix in the Knowledge Base for a complete list of roles that can use this
API.
Resource URL
GET BaseURL/v{apiVersion}/accounts/{accountId}/ratePlans
Request Parameters
Parameter Description
apiVersion The version number for this API. The current version
for all functions is 1.
Response Parameters
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 98
Return Value Description
Request Example
Make sure to use your own URL and user credentials.
Response Example
{
"pageNumber": 1,
"ratePlans": [
{
"ratePlanId": 39374,
"ratePlanName": "QASPAWTRP",
"versionId": 28060,
"shared": true
}
],
"lastPage": true
}
Errors
HTTP
Error Code Description
Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 99
Edit Available Rate Plans for an Account
Description
Changes the shared rate plans associated with a specified account. The
function allows an operator to add or remove a shared rate plan from an
account. You must have a ServiceProvideFinance or
ServiceProviderCSRUser role to perform this function.
Resource URL
PUT BaseURL/v{apiVersion}/accounts/{accountId}/ratePlans
Request Parameters
This function specifies all the shared rate plans associated with the
specified account. If you remove an existing shared rate plan from your
request parameters, you will delete the shared rate plan from the account.
All request parameters are required.
Parameter Description
apiVersion The version number for this API. The current version
for all functions is 1.
Response Parameters
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 100
Request Example
Make sure to use your own URL and user credentials.
Response Example
{
"accountId": 100015068
}
Errors
HTTP
Error Code Description
Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 101
API Key
Create/Reset API Key for Given User
Description
Resets the API key for a given user and returns the new value. If the user
does not have an API key, the function creates a new key for the user. You
must have access to this user's information in order to change or create an
API key. In addition, you cannot reset or create an API key for a user if they
have web interface access and can perform these tasks for themselves.
To reset your own API key, you must use a different API (see Reset API Key
for Current User on page 106). You cannot create an API key for yourself.
This function is available to service provider and account administrators,
but not customer users. See the API/Role matrix in the Knowledge Base for
a complete list of roles that can use this API.
Warning. Resetting the API key immediately invalidates any API key in use.
To avoid a lockout, we recommend you save the response containing the
new key and then use it to update any programs using the previous key.
Resource URL
PUT BaseURL/v{apiVersion}/apikey/{userId}
Request Parameters
apiVersion The version number for this API. The current version for
all functions is 1.
userId The ID of the user whose API key you want to reset or
create. If there is no user ID, the function resets the
API key for the user making the function call. See Reset
API Key for Current User on page 106.
Response Parameters
apiKey The new API key value for the requested user.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 102
Return Value Description
timestamp The date and time when the API key was created or
updated. The timestamp displays in UNIX Epoch clock
format. See Date/Time Formats on page 28 for more
information.
Request Example
Make sure to use your own URL and user credentials.
Response Example
{
"userId": 401038105,
"apiKey": "84b5c96e-9bfb-4565-b4b5-e73fd41b998f",
"timestamp": 1549369025
}
Errors
Error HTTP
Description
Code Code
10000030 400 Your role does not have access to this API function.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 103
Get API Key
Description
Returns the API key for a given user. If the user doesn't have an API key or
if the key has expired, the function returns an empty value. You must have
access to this user's information in order to get the API key. Be aware that
you cannot get a user's API key if the user has web interface access.
This function is available to service provider and account users, but not
customer users. See the API/Role matrix in the Knowledge Base for a
complete list of roles that can use this API.
Resource URL
GET BaseURL/v{apiVersion}/apikey/{userId}
Request Parameters
apiVersion The version number for this API. The current version
for all functions is 1.
userId The ID of the user whose API key you want to get.
Response Parameters
apiKey The API key value for the requested user. If the user
doesn't have an API key or if the key has expired, the
function returns an empty value.
timestamp The date and time when the API key was returned. The
timestamp displays in UNIX Epoch clock format. See
Date/Time Formats on page 28 for more information.
Request Example
Make sure to use your own URL and user credentials.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 104
Response Example
{
"userId": 401056705,
"apiKey": "84b5c96e-9bfb-4565-b4b5-e73fd41b998f",
"timestamp": 1549365650
}
Errors
Error HTTP
Description
Code Code
10000030 400 Your role does not have access to this API function.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 105
Reset API Key for Current User
Description
Resets the API key for the user making the function call. For security
reasons, you may want to reset the key on a regular basis—or whenever
you have reason to believe the key has been compromised.
All service provider and account users have access to this function.
Customer users do not have access to this API and must request a key reset
from an account administrator. See the API/Role matrix in the Knowledge
Base for a complete list of roles that can use this API.
Warning. Resetting the API key immediately invalidates the API key in use.
To avoid a lockout, we recommend you save the response containing the
new key and then use it to update any programs using the previous key.
Resource URL
PUT BaseURL/v{apiVersion}/apikey
Request Parameters
apiVersion The version number for this API. The current version
for all functions is 1.
Response Parameters
Request Example
Make sure to use your own URL and user credentials.
Response Example
{
"apiKey": "7a8af469-fc46-40da-903a-00acaea9940d"
}
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 106
Code Samples
Make sure to use your own URL and user credentials.
Ruby
#!/usr/bin/ruby -w
require 'rest-client'
require 'json'
require 'base64'
$auth = 'Basic' + Base64.encode64( 'apiuser:469bfd67-62a2-4ab6-9df6-
d5cf5527e7a8' ).chomp
$url = 'https://restapi1.jasper.com/rws/api/v1/apikey'
@resource = RestClient::Resource.new( $url )
@response = @resource.put( :Authorization => $auth )
puts JSON.parse(response)
Errors
Error HTTP
Description
Code Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 107
Customers
Get Customer Details
Description
Returns the customer details for a given customer. Users can view detailed
information for any customers to which they have access. In general, service
provider users can view all customers, account users can view all customers
within their account, and customer users can view their own customer
information. If a user is part of an account group or a customer group,
however, the group may restrict or expand the user’s access to information.
See the API/Role matrix in the Knowledge Base for a complete list of roles
that can use this API.
Resource URL
GET BaseURL/v{apiVersion}/customers/{customerId}
Request Parameters
Parameter Description
apiVersion The version number for this API. The current version
for all functions is 1.
Response Parameters
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 108
Contacts Parameters
The function returns an array of up to four contacts.
Address Parameters
The shipping and billing address use the same response parameters.
Request Example
Make sure to use your own URL and user credentials.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 109
Response Example
{
"name": "Acme Corporation",
"accountName": "QASPAWT_Act003",
"securityQuestion": null,
"securityAnswer": null,
"shipToBillAddress": true,
"contacts": [
{
"name": "Jules Bron",
"title": "Director",
"phone": "323-948-2312",
"mobile": "408-796-9432",
"email": "julesbron@acme.com"
}
],
"billingAddress": {
"addressLine1": "123 Main Street",
"addressLine2": null,
"city": "Buckley",
"state": "Tennessee",
"country": "United States",
"postalCode": "42308"
},
"shippingAddress": {
"addressLine1": "123 Main Street",
"addressLine2": null,
"city": "Buckley",
"state": "Tennessee",
"country": "United States",
"postalCode": "42308"
},
"customerId": 100021774
}
Errors
HTTP
Error Code Description
Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 110
Edit Customer Details
Description
Updates the detailed information for any customers to which users have
access. In general, service provider users can view all customers, account
users can view all customers within their account, and customer users can
view their own customer information. If a user is part of an account group
or a customer group, however, the group may restrict or expand the user’s
access to information. See the API/Role matrix in the Knowledge Base for a
complete list of roles that can use this API.
Resource URL
PUT BaseURL/v{apiVersion}/customers/{customerId}
Request Parameters
Caution. This function overwrites existing customer information using
parameter values you supply. Control Center uses default values for any
parameters that are missing from the call. To avoid losing data, make sure
to provide existing values for any unchanged parameters.
Parameter Description
apiVersion The version number for this API. The current version
for all functions is 1.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 111
Contact Parameters
Each customer can have a maximum of four contacts.
Parameter Description
Address Parameters
The following parameters are used for both billingAddress and
shippingAddress.
Parameter Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 112
Response Parameters
timestamp The date and time when the customer was updated. The
timestamp displays in UNIX Epoch clock format. See
Date/Time Formats on page 28 for more information.
Request Example
Make sure to use your own URL and user credentials.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 113
Response Example
{
"customerId": 10008314,
"timestamp": 1527590173
}
Errors
HTTP
Error Code Description
Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 114
HTTP
Error Code Description
Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 115
Create Customer
Description
Creates a new customer. Both service provider and account users can create
customers. In general, service provider users can create customers for any
account and account users can create customers within their own account.
If a user is part of an account group or a customer group, however, the
group may restrict or expand the user’s ability to create customers within
the given account. See the API/Role matrix in the Knowledge Base for a
complete list of roles that can use this API.
Resource URL
POST BaseURL/v{apiVersion}/customers
Request Parameters
Parameter Description
apiVersion The version number for this API. The current version
for all functions is 1.
shipToBillAddress (Optional) Set this value to true if you want to use the
customer's billing address as the shipping address. The
default is false.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 116
Contact Parameters
Each customer can have a maximum of four contacts. A customer contact is
optional.
Parameter Description
Address Parameters
The following parameters are used for both billingAddress and
shippingAddress. Billing addresses are optional.
Parameter Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 117
Response Parameters
timestamp The date and time when the customer was created. The
timestamp displays in UNIX Epoch clock format. See
Date/Time Formats on page 28 for more information.
Request Example
Make sure to use your own URL and user credentials.
Response Example
{
"customerId": 1234,
"timestamp": 1527590173
}
Errors
HTTP
Error Code Description
Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 118
HTTP
Error Code Description
Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 119
HTTP
Error Code Description
Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 120
Devices
Search Devices
Description
For a given enterprise account, returns a list of devices that have changed
since a specified date. You can filter the list by SIM status.
Resource URL
GET BaseURL/v{apiVersion}/devices
Request Parameters
Parameter Description
apiVersion The version number for this API. The current version
for all functions is 1.
modifiedSince A date and time using the ISO 8601 format. The function
returns any devices that have been modified since this
time.
Response Parameters
The function returns an array of devices with the information below.
Records are sorted by modification date in ascending order with the oldest
device change listed first.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 121
Return Value Description
Request Example
Make sure to use your own URL and user credentials.
Response Example
{
"pageNumber": 1,
"devices": [
{
"iccid": "8988216716970004971",
"status": "ACTIVATION_READY",
"ratePlan": "hphlr rp1",
"communicationPlan": "CP_Basic_ON",
},
{
"iccid": "8988216716970004975",
"status": "ACTIVATED",
"ratePlan": "hphlr rp1",
"communicationPlan": "CP_Basic_ON",
}
],
"lastPage": true
}
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 122
Code Samples
Make sure to use your own URL and user credentials.
Python
import requests
import json
import base64
import pprint
Node.js
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 123
Ruby
#!/usr/bin/ruby -w
require 'rest-client'
require 'json'
url = 'https://restapi1.jasper.com/rws/api/v1/devices/?modifiedSince=2016-04-
18T17%3A31%3A34%2B00%3A00'
response = RestClient::Request.execute(
method: :get,
url: url,
user: 'username',
password: 'password',
:headers => {:accept => :json}
)
puts JSON.pretty_generate(JSON.parse(response))
Errors
Error HTTP
Description
Code Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 124
Get Device Details
Description
Returns detailed information about a specified device.
Resource URL
GET BaseURL/v{apiVersion}/devices/{iccid}
Request Parameters
Parameter Description
apiVersion The version number for this API. The current version
for all functions is 1.
Response Parameters
status The device SIM status. For a list of valid values, see
SIM Status Values on page 29.
ratePlan The name of the rate plan associated with the device.
dateActivated The date when the device was first activated. See
Date Formats for more details.
dateShipped The date when the device SIM was transferred from
the operator inventory into the enterprise account.
See Date Formats for more details.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 125
Return Value Description
operatorCustom1-5 Values for any custom device fields the operator has
created in Control Center. This information is
applicable to users with operator roles only.
accountCustom1-10 Values for any custom device fields the enterprise has
created in Control Center. This information is
applicable to users with account roles only.
customerCustom1-5 Values for any custom device fields the customer has
created in Control Center. This information is
applicable to users with customer roles only.
Request Example
Make sure to use your own URL and user credentials.
Response Example
{
"iccid": "8988216716970004975",
"imsi": "901161697004975",
"msisdn": "882351697004975",
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 126
"imei": "",
"status": "ACTIVATED",
"ratePlan": "hphlr rp1",
"communicationPlan": "CP_Basic_ON",
"customer": null,
"endConsumerId": null,
"dateActivated": "2016-06-29 00:21:33.339+0000",
"dateAdded": "2014-07-22 23:31:46.571+0000",
"dateUpdated": "2016-07-06 22:04:04.380+0000",
"dateShipped": "2016-06-27 07:00:00.000+0000",
"accountId": "100020620",
"fixedIPAddress": null,
"fixedIpv6Address": null,
"accountCustom1": "78",
"accountCustom2": "",
"accountCustom3": "",
"accountCustom4": "",
"accountCustom5": "",
"accountCustom6": "",
"accountCustom7": "",
"accountCustom8": "",
"accountCustom9": "",
"accountCustom10": "",
"simNotes": null,
"deviceID": null,
"modemID": "2221",
"globalSimType": ""
}
Code Samples
Make sure to use your own URL and user credentials.
Node.js
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 127
Python
import requests
import json
import base64
import pprint
Ruby
#!/usr/bin/ruby -w
require 'rest-client'
require 'json'
url = 'https://restapi1.jasper.com/rws/api/v1/devices/89011704252318147060'
response = RestClient::Request.execute(
method: :get,
url: url,
user: 'username',
password: 'password',
:headers => {:accept => :json}
)
puts JSON.pretty_generate(JSON.parse(response))
Errors
Error HTTP
Description
Code Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 128
Edit Device Details
Description
Modifies device attributes such as SIM status, rate plan, communication
plan, and custom fields for a specified device.
See the API/Role matrix in the Knowledge Base for a complete list of roles
that can use this API. Be aware that not all roles can edit all fields. To verify
field access for a particular role, log into the web interface as a user with
the same role (who also has web interface access) and open the Edit Device
pop-up (Devices > Device List > ICCID link > Edit button). The user can edit
only the fields that appear in the pop-up.
Resource URL
PUT BaseURL/v{apiVersion}/devices/{iccid}
Request Parameters
Parameter Description
apiVersion The version number for this API. The current version
for all functions is 1.
effectiveDate (Optional) The date when the change will take effect
(see Date Formats). If you omit this parameter, the
change occurs immediately.
status The device SIM status. For a list of valid values, see
SIM Status Values on page 29.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 129
Parameter Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 130
Parameter Description
Response Parameters
Request Example
Make sure to use your own URL and user credentials.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 131
Response Example
For changes that are effective immediately, this function returns an HTTP
status of 200. For changes that are scheduled in the future, the HTTP status
code is 202.
{
"iccid": "9088217871987000001"
}
Code Samples
Make sure to use your own URL and user credentials.
Ruby
#!/usr/bin/ruby -w
require 'rest-client'
require 'json'
url = 'https://restapi1.jasper.com/rws/api/v1/devices/89011704252318147060'
response = RestClient::Request.execute(
method: :put,
url: url,
user: 'dpSKit20',
password: 'b09c4266-83c6-411a-a475-ca4925b3bb4a',
:payload => '{"accountCustom1":"test acctCustom1: sent by ruby"}',
:headers => {:accept => :json,
:content_type => :json}
)
puts JSON.pretty_generate(JSON.parse(response))
Node.js
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 132
Python
#!/usr/local/bin/python3
import requests
import json
import base64
import pprint
Errors
Error HTTP
Description
Code Code
10000008 400 Your role does not have access to operator and
customer custom fields.
10000009 400 Your role does not have access to account custom
fields.
10000010 400 Your role does not have access to customer custom
field.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 133
Error HTTP
Description
Code Code
10000023 400 The JSON in the request is not well formed. Please
ensure that commas, colons, braces etc. are formatted
properly.
10000029 400 This SIM may not be moved back to a Pre Activation
status.
10000030 400 Your role does not have access to this API function.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 134
Get Device Audit History
Description
For a specified device, returns information about changes that occurred
within a given time period as measured from today's date. You can request
up to a year's worth of data (365 days).
Resource URL
GET BaseURL/v{apiVersion}/devices/{iccid}/auditTrails
Request Parameters
Parameter Description
apiVersion The version number for this API. The current version
for all functions is 1.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 135
Response Parameters
The function returns an array of audit history records, with the most recent
listed first.
effectiveDate The date and time the change occurred. The date
format is yyyy-MM-ddT HH:mm:ss.SSSZ. See Date
Formats for more details.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 136
Request Example
Make sure to use your own URL and user credentials.
Response Example
{
"iccid":"9901310650450118011",
"timeStamp":"2016-12-06T15:58:06.466Z",
"pageNumber": 1,
"lastPage": true,
"deviceAuditTrails":[
{
"field":"Usage Limit Reached",
"priorValue":"false",
"value":"false",
"effectiveDate":"2016-12-06T01:34:16.613Z",
"status":"Executed",
"userName":"simUsageManagementUser",
"delegatedUser":"",
"ipAddress":"10.106.232.184"
},
{
"field":"Rate Plan",
"priorValue":"Integration Test -- SP1 Default RP",
"value":"Integration Test -- SP1 PrepaidTerm",
"effectiveDate":"2016-11-11T03:39:06.570Z",
"status":"Executed",
"userName":"businessRuleUser",
"delegatedUser":"",
"ipAddress":"127.0.0.1"
}
]
}
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 137
Code Samples
Make sure to use your own URL and user credentials.
Python
import requests
import json
import base64
import pprint
Node.js
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 138
Ruby
#!/usr/bin/ruby -w
require 'rest-client'
require 'json'
url =
'https://restapi1.jasper.com/rws/api/v1/devices/89011704252318147060/auditTr
ails'
response = RestClient::Request.execute(
method: :get,
url: url,
user: 'username',
password: 'password',
:headers => {:accept => :json}
)
puts JSON.pretty_generate(JSON.parse(response))
Errors
Error HTTP
Description
Code Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 139
Get Device Location
Description
Returns location information for a given device during a specified time
period. Control Center collects location details from data session
information via RADIUS accounting records. Control Center does not track
device location information for SMS or voice usage.
The Location Based Services feature must be enabled for the account and
cell ID tracking must be turned on for the device. Only users with the
AccountLBSUser role can perform this function.
Resource URL
GET BaseURL/v{apiVersion}/devices/{iccid}/locationHistory
Request Parameters
Use the fromDate and toDate parameters to define a reporting time period.
The standard pagination parameters (pageSize and pageNumber) allow you
to control the amount of data that is returned.
Parameter Description
apiVersion The version number for this API. The current version for
all functions is 1.
iccid The ICCID for the device whose location history you want
to retrieve.
toDate (Optional) A date and time indicating the end of the time
period you want to report on. If there is no toDate, the
function returns the location history from the date
specified in fromDate to the current date and time. If
there is no fromDate, the function returns an array with
two records: the most recent device location and the
location immediately prior to that.
The date format is yyyy-MM-ddTHH:mm:ssZ. For
example, 2018-07-30T17:31:34+00:00.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 140
Parameter Description
Response Parameters
The function returns an array of locations from the specified time period.
All return values are strings unless otherwise specified.
dateReceived The date associated with the cell ID. The date format is
yyyy-MM-ddTHH:mm:ssZ. For example, 2018-07-
12T17:31:34+00:00.
cellLac The location area code (LAC) associated with the cell ID.
If cell ID tracking is disabled for the device, Control
Center returns "-1" in this field. Data type: number.
servingMcc The mobile country code (MCC) associated with the cell
ID. If cell ID tracking is disabled for the device, Control
Center returns "-1" in this field. Data type: number.
servingMnc The mobile network code (MNC) associated with the cell
ID. If cell ID tracking is disabled for the device, Control
Center returns "-1" in this field. Data type: number.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 141
Return Value Description
latitude The latitude associated with the cell ID. This field is null
if the operator doesn't upload a cell ID mapping file.
Data type: number (floating point)
longitude The longitude associated with the cell ID. This field is
null if the operator doesn't upload a cell ID mapping file.
Data type: number (floating point)
Request Example
Make sure to use your own URL and user credentials.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 142
Response Example
For a device with cell ID tracking enabled and some available location
information.
{
"pageNumber": 1,
"simLocations": [{
"iccid": "89014103255100000055",
"dateReceived": "2018-07-25T01:13:34+0000",
"cellId": 43761,
"cellLac": 10000,
"servingMcc": 302,
"servingMnc": 720,
"latitude": 37.7749,
"longitude": -122.4194,
"accuracy": 20,
"city": "Boston",
"state": "MA",
"country": "USA"
}, {
"iccid": "89014103255100000055",
"dateReceived": "2018-07-25T01:13:34+0000",
"cellId": 28312832,
"cellLac": 65534,
"servingMcc": 302,
"servingMnc": 220,
"latitude": 42.3601,
"longitude": -71.0589,
"accuracy": 50,
"city": "SF",
"state": "CA",
"country": "USA"
}],
"lastPage": true
}
{
"pageNumber": 1,
"simLocations": [],
"lastPage": true
}
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 143
For a device with cell ID tracking disabled.
{
"simLocations": [{
"iccid": "89014103255100000055",
"dateReceived": "2018-07-25T01:13:34+0000",
"cellId": -1,
"cellLac": -1,
"servingMcc": -1,
"servingMnc": -1,
}],
"pageNumber": 1,
"lastPage": true
}
Errors
Error HTTP
Description
Code Code
10000030 400 Your role does not have access to this API function.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 144
Get Device Usage
Description
Returns cycle-to-date usage information for a specified device.
Resource URL
GET BaseURL/v{apiVersion}/devices/{iccid}/ctdUsages
Request Parameters
Parameter Description
apiVersion The version number for this API. The current version
for all functions is 1.
Response Parameters
status The device SIM status. For a list of valid values, see
SIM Status Values on page 29.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 145
Return Value Description
Request Example
Make sure to use your own URL and user credentials.
Response Example
{
"iccid": "8988216716970004975",
"imsi": "901161697004975",
"msisdn": "882351697004975",
"imei": "",
"status": "ACTIVATED",
"ratePlan": "hphlr rp1",
"communicationPlan": "CP_Basic_ON",
"ctdDataUsage": 0,
"ctdSMSUsage": 0,
"ctdVoiceUsage": 0,
"ctdSessionCount": null,
"overageLimitReached": false,
"overageLimitOverride": "DEFAULT"
}
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 146
Code Samples
Make sure to use your own URL and user credentials.
Python
import requests
import json
import base64
import pprint
Node.js
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 147
Ruby
#!/usr/bin/ruby -w
require 'rest-client'
require 'json'
url =
'https://restapi1.jasper.com/rws/api/v1/devices/89011704252318147060/ctdUsag
es'
response = RestClient::Request.execute(
method: :get,
url: url,
user: 'username',
password: 'password',
:headers => {:accept => :json}
)
puts JSON.pretty_generate(JSON.parse(response))
Errors
Error HTTP
Description
Code Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 148
Get Device Usage by Zone
Description
For a specified device, returns usage information for a single billing cycle,
broken down by rate plan and zone. You can filter the usage information by
zone and/or rate plan, and specify a particular cycle start date. If no billing
cycle is specified, the API returns usage for the current billing cycle by
default. All usage is pre-invoiced and applies to wholesale rate plans. To
retrieve retail rate plan usage, you must examine the corresponding
wholesale rate plan usage.
Resource URL
GET BaseURL/v{apiVersion}/devices/{iccid}/usageInZone
Request Parameters
Parameter Description
apiVersion The version number for this API. The current version
for all functions is 1.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 149
Response Parameters
The function returns an array of usage records sorted by rate plan and
zone.
deviceCycleUsageInZones
Rate Plan Name, Version Each rate plan contains an array of zones where
Number usage occurred. If the device did not use service in
a particular zone, that zone does not appear in the
array. The function returns the rate plan version
number, because in the case of prepaid rate plans
it's possible for a device to use two versions of the
same rate plan during the billing cycle.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 150
Return Value Description
Request Example
Make sure to use your own URL and user credentials.
The first example requests all usage records for a device during the current
billing cycle. See the Response Example for the response.
To get usage for a specific cycle start date, rate plan, and zone:
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 151
Response Example
The response contains an array of rate plans. Each rate plan contains an
array of usage records. This response matches the first request example.
{
"iccid":"8988217755520000031",
"timeStamp":"2016-11-10T05:31:17.557Z",
"cycleStartDate":"2016-10-31T10:30:00.000Z",
"cycleEndDate":"2016-11-30T10:29:59.000Z",
"deviceCycleUsageInZones":{
"Rate Plan A, 1":[
{
"ratePlan":"Rate Plan A",
"ratePlanVersion":"1",
"zone":"default zone",
"dataUsage":null,
"dataUsageUnit":null,
"voiceMTUsage":null,
"voiceMTUsageUnit":null,
"voiceMOUsage":600,
"voiceMOUsageUnit":"seconds",
"smsmtusage":null,
"smsmousage":null
}
],
"Rate Plan B, 2":[
{
"ratePlan":"Rate Plan B",
"ratePlanVersion":"2",
"zone":"default zone",
"dataUsage":943718,
"dataUsageUnit":"bytes",
"voiceMTUsage":null,
"voiceMTUsageUnit":null,
"voiceMOUsage":943718,
"voiceMOUsageUnit":"seconds",
"smsmtusage":null,
"smsmousage":null
}
]
}
}
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 152
Code Samples
Make sure to use your own URL and user credentials.
Python
import requests
import json
import base64
import pprint
Node.js
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 153
Ruby
#!/usr/bin/ruby -w
require 'rest-client'
require 'json'
url =
'https://restapi1.jasper.com/rws/api/v1/devices/89011704252318147060/usageIn
Zone'
response = RestClient::Request.execute(
method: :get,
url: url,
user: 'username',
password: 'password',
:headers => {:accept => :json}
)
puts JSON.pretty_generate(JSON.parse(response))
Errors
Error HTTP
Description
Code Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 154
Get Session Details
Description
Returns information about the current or most recent data session for a
given device.
Resource URL
GET BaseURL/v{apiVersion}/devices/{iccid}/sessionInfo
Request Parameters
Parameter Description
apiVersion The version number for this API. The current version
for all functions is 1.
Response Parameters
dateSessionEnded The time when the most recent data session ended.
For a device currently in a session, this field is null.
For a device that has never had a session, this date is
null.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 155
Request Example
Make sure to use your own URL and user credentials.
Response Example
{
"iccid": "8988216716970004975",
"ipAddress": "null",
"ipv6Address": "2605:9780:309e::/64",
"dateSessionStarted": "2016-07-06 01:31:46.893+0000",
"dateSessionEnded": "2016-07-06 01:31:46.893+0000"
}
Code Samples
Make sure to use your own URL and user credentials.
Python
import requests
import json
import base64
import pprint
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 156
Node.js
Ruby
#!/usr/bin/ruby -w
require 'rest-client'
require 'json'
url =
'https://restapi1.jasper.com/rws/api/v1/devices/89011704252318147060/session
Info'
response = RestClient::Request.execute(
method: :get,
url: url,
user: 'username',
password: 'password',
:headers => {:accept => :json}
)
puts JSON.pretty_generate(JSON.parse(response))
Errors
Error HTTP
Description
Code Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 157
Echo
Echo
Description
Returns any value passed to the function. This information can be useful for
debugging.
Resource URL
GET BaseURL/v{apiVersion}/echo/{param}
Request Parameters
Parameter Description
apiVersion The version number for this API. The current version
for all functions is 1.
Response Parameters
Request Example
Make sure to use your own URL and user credentials.
Response Example
{
"context": "hello-world"
}
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 158
Code Samples
Make sure to use your own URL and user credentials.
Python
import requests
import json
import base64
Ruby
#!/usr/bin/ruby -w
require 'rest-client'
require 'json'
url = 'https://restapi1.jasper.com/rws/api/v1/echo/hello%20World'
response = RestClient.get(url)
puts JSON.parse(response)
Node.js
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 159
})
.on('end',function(){
body = Buffer.concat(body).toString();
console.log(body);
});
Errors
Error HTTP
Description
Code Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 160
Multi-Party Billing
Get Partner Accounts for Device
Description
Used in Multi-Party Billing , this function returns information about the
partner accounts currently associated with a particular device. To get
information about past associations, you must use the web interface. See
Viewing Partner Accounts for a Device in the Multi-Party Billing section of
the Control Center User Guide.
You must have a ServiceProviderAdmin role to execute this function.
Resource URL
GET BaseURL/v{apiVersion}/devices/{iccid}/partnerAccounts
Request Parameters
Parameter Description
apiVersion The version number for this API. The current version
for all functions is 1.
Response Parameters
associationDate The date and time when the device was assigned to
the partner account. If the device and the account have
been associated more than once, this timestamp
reflects the most recent association.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 161
Request Example
Make sure to use your own URL and user credentials.
Response Example
"iccid": "9846897774444000099",
"partnerAccounts": [
{
"partnerAcctId": 130222403,
"partnerAcctName": "QaAwtBillOprMPBAC001",
"associationDate": "2019-01-31 17:44:16+0000"
},
{
"partnerAcctId": 130222503,
"partnerAcctName": "QaAwtBillOprMPB_AC002",
"associationDate": "2019-02-01 03:05:57+0000"
}
]
}
Errors
Error HTTP
Description
Code Code
10000030 400 Your role does not have access to this API function.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 162
Assign Device to Partner Account
Description
Used in Multi-Party Billing , this function assigns a device to a partner
account. As part of the function call, you can also specify a partner rate
plan. The device's enterprise account must have a trust relationship with
the partner account. At the end of the current billing cycle, Control Center
determines whether the device is billable and calculates the subscription
fee and any overage charges.
This function assigns one device to one partner account. To assign multiple
devices to a partner account or a single device to multiple accounts, you
must use several function calls.
You must have a ServiceProviderAdmin role to execute this function.
Resource URL
POST BaseURL/v{apiVersion}/devices/{iccid}/partnerAccounts
Request Parameters
Parameter Description
apiVersion The version number for this API. The current version
for all functions is 1.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 163
Response Parameters
This function returns an HTTP 202 Accepted code to indicate that the
request is scheduled for processing and the task should be complete within
several seconds.
Request Example
Make sure to use your own URL and user credentials.
Response Example
{
"iccid": "9846897774444000095",
"partnerAcctId": 130222403,
"partnerRatePlanName": "QaAwtBillOprMPB_RP003"
}
Errors
Error HTTP
Description
Code Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 164
Error HTTP
Description
Code Code
10000023 400 The JSON in the request is not well formed. Please
ensure that commas, colons, braces etc. are formatted
properly.
10000030 400 Your role does not have access to this API function.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 165
Change Partner Rate Plan for Device
Description
Used in Multi-Party Billing , this function changes the partner rate plan for
a device associated with a particular partner account. You must supply the
name of a different partner rate plan linked to the partner account.
You must have a ServiceProviderAdmin role to execute this function.
Resource URL
PUT BaseURL/v{apiVersion}/devices/{iccid}/partnerAccounts/
{partnerAcctId}
Request Parameters
Parameter Description
apiVersion The version number for this API. The current version
for all functions is 1.
iccid The ICCID of the device whose partner rate plan you
want to change.
partnerRatePlanName The name of the partner rate plan you want the
device to start using. This rate plan must be
associated with the specified partner account and the
rate plan must be different from the current partner
rate plan.
Response Parameters
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 166
Request Example
Make sure to use your own URL and user credentials.
Response Example
{
"iccid": "9856897774444002318",
"partnerAcctId": 130307603,
"partnerRatePlanName": "QaAwtBillOprMPB_RP005"
}
Errors
Error HTTP
Description
Code Code
10000030 400 Your role does not have access to this API function.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 167
Remove Device from Partner Account
Description
Used in Multi-Party Billing , this function removes a device from a given
partner account. Control Center charges the full subscription fee at the end
of the billing cycle. There is no proration for subscription fees in the last
billing cycle.
You must have a ServiceProviderAdmin role to execute this function.
Resource URL
DELETE BaseURL/v{apiVersion}/devices/{iccid}/partnerAccounts/
{partnerAcctId}
Request Parameters
Parameter Description
apiVersion The version number for this API. The current version
for all functions is 1.
Response Parameters
This function returns an HTTP 202 Accepted code to indicate that the
request is scheduled for processing and the task should be complete within
several seconds.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 168
Request Example
Make sure to use your own URL and user credentials.
Response Example
{
"iccid": "9856897774444002318",
"partnerAcctId": 130307603
}
Errors
Error HTTP
Description
Code Code
10000030 400 Your role does not have access to this API function.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 169
Rate Plans
Get Rate Plans
Description
Get detailed information about a group of rate plans. The user can specify
the rate plans of interest:
l All rate plans (shared and account-specific)
l All shared rate plans
l All rate plans associated with a particular account (including shared
rate plans)
Resource URL
GET BaseURL/v{apiVersion}/ratePlans
Request Parameters
Parameter Description
apiVersion The version number for this API. The current version for
all functions is 1.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 170
Response Parameters
Rate Plans
accountName The name of the account using the rate plan. If the
rate plan is available for multiple accounts to use,
this value is Shared.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 171
Return Value Description
expireTermBasedOnUsage For prepaid rate plans, if set to true the rate plan
is capped. When the device uses up the included
usage allotment in the first zone, Control Center
shuts down access and ends the subscription term.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 172
Tiers
Parameter Description
Zones
Parameter Description
reportOverageAsRoaming label.
A list of zone names. Each zone has a value of true or
false that indicates whether or not Control Center
categorizes the usage as roaming on an invoice.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 173
Data Usage
Parameter Description
Zones
zones The zones associated with the data usage for the
rate plan.
zoneUsageLimitUnit The zone usage limit unit specifies a data usage limit
for each zone in the current billing cycle. The unit is
MB per subscriber.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 174
Parameter Description
Tiers
sharedData For fixed pool plans only. This number specifies the
size of the pool that the devices on the plan can use.
SMS Usage
Parameter Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 175
Parameter Description
Zones
zones The zones associated with the data usage for the rate
plan.
Tiers
subscribersMoreThan The number of subscribers that are more than the set
number.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 176
Parameter Description
sharedSMS For fixed pool rate plans only. This number specifies
the size of the pool that the devices on the plan can
use. If mobile-terminated (SMS MT) and mobile-
originated (SMS MO) messages are rated separately,
two values display.
sharedSMSMT For fixed pool rate plans only. This number specifies
the size of the pool that the devices on the plan can
use for rated mobile-terminated SMS (SMS MT).
sharedSMSMO For fixed pool rate plans only. This number specifies
the size of the pool that the devices on the plan can
use for rated mobile-originated SMS (SMS MO).
Voice Usage
Parameter Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 177
Parameter Description
sharedVoice For fixed pool rate plans only. This number specifies
the size of the pool that the devices on the plan can
use. If mobile-terminated (voice MT) and mobile-
originated (voice MO) calls are rated separately,
there are be two fields.
sharedVoiceMT For fixed pool rate plans only. This number specifies
the size of the pool that the devices on the plan can
use for rated mobile-terminated voice (voice MT).
sharedVoiceMO For fixed pool rate plans only. This number specifies
the size of the pool that the devices on the plan can
use for rated mobile-originated voice (voice MO).
Request Example
Make sure to use your own URL and user credentials.
Response Example
{
"operatorName": "Jasper Systems",
"operatorId": 8410,
"timeStamp": "2019-03-15T18:02:25.013Z",
"pageNumber": 1,
"ratePlans": [
{
"name": "QaAwtRP-180421030819",
"id": 30884203,
"accountName": "Shared",
"versionId": 30885703,
"version": 1,
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 178
"status": "Published",
"type": "Monthly - Individual Subscriber",
"subscriptionCharge": 0,
"numberOfTiers": 1,
"tierTreatment": "Incremental",
"tiers": [
{
"tierLevel": 0,
"subscriberThreshold": 0,
"subscriberCapacity": "And Up",
"perSubscriberCharge": 0
}
],
"expireTermBasedOnUsage": false,
"lengthOfTerm": 0,
"subscriptionChargeUnit": "USD",
"zones":
{
"reportOverageAsRoaming":
{
"default zone": "false"
}
},
"dataUsage":
{
"useDefaultRating": false,
"usageLimitUnit": "MB per cycle",
"zones":
{
"default zone":
{
"includedData": 0,
"includedDataUnit": "MB",
"zoneUsageLimitUnit": "MB per subscriber",
"bulkOverageEnabled": false,
"useTheseDataRoundingSettingsForAllZones": true,
"dataRoundingUnit": "None",
"dataRoundingFrequency": "Per CDR",
"tiers": [
{
"tierLevel": 0,
"subscribersMoreThan": 0,
"subscribersUpTo": "And Up",
"sharedData":0,
"sharedDataUnit":"MB",
"dataOverage": 0,
"dataOverageUnit": "per KB"
}
]
}
}
},
"smsUsage":
{
"useDefaultRating": false,
"type": "Subscription Tiers",
"moAndMtRating": "Rate Both Together",
"poolSMSUsage": false,
"poolSMSMOUsage": false,
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 179
"poolSMSMTUsage": false,
"zones":
{
"default zone":
{
"includedSMS": 0,
"includedSMSUnit": "msgs",
"tiers": [
{
"tierLevel": 0,
"subscribersMoreThan": 0,
"subscribersUpTo": "And Up",
"sharedSMS":0
"sharedSMSUnit":"msgs",
"smsOverage": 0,
"smsOverageUnit": "per msg"
}
]
}
}
},
"voiceUsage":
{
"useDefaultRating": true,
"poolVoiceUsage": false,
"poolVoiceMTUsage": false,
"poolVoiceMOUsage": false,
"voiceMOOverage": 0,
"voiceMOOverageUnit": "per MO min",
"voiceMTOverage": 0,
"voiceMTOverageUnit": "per MT min"
}
},
],
"lastPage": true
}
Code Samples
Make sure to use your own URL and user credentials.
Node.js
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 180
console.log(body);
});
Python
import requests
import json
import base64
import pprint
apiUrl= 'https://restapi1.jasper.com/rws/api/v1/rateplans'
Ruby
#!/usr/bin/ruby -w
require 'rest-client'
require 'json'
url = 'https://restapi1.jasper.com/rws/api/v1/rateplans?accountId=acct_
id&pageSize=page_size&pageNumber=page_number'
response = RestClient::Request.execute(
method: :get,
url: url,
user: 'user_name',
password: 'password',
:headers => {:accept => :json}
)
puts JSON.pretty_generate(JSON.parse(response))
Errors
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 181
Error Code HTTP Code Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 182
SMS Messages
Search SMS
Description
Returns a list of SMS message IDs associated with a particular account
during a specified time period. Optionally, you can restrict the search to a
specific device.
The function returns messages between Control Center and a device. You
cannot get information about messages exchanged between a device and a
non-Control Center SMS client.
Resource URL
GET BaseURL/v{apiVersion}/smsMessages
Request Parameters
Parameter Description
apiVersion The version number for this API. The current version for
all functions is 1.
fromDate A date and time using the ISO 8601 format (see Date
Formats). The function returns any messages that were
sent or received on or after this date.
toDate (Optional) A date and time using the ISO 8601 format
(see Date Formats). Use this parameter to specify a
particular period of time for the messages. If you do not
specify a toDate, Control Center returns all messages up
to the current date and time.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 183
Response Parameters
The function returns an array of SMS message IDs. Records are sorted by
modification date in ascending order with the oldest message listed first.
Request Example
Make sure to use your own URL and user credentials.
Response Example
{
"smsMsgIds": [
106184,
105025
],
"pageNumber": 1,
"lastPage": true
}
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 184
Code Samples
Make sure to use your own URL and user credentials.
Python
import requests
import json
import base64
import pprint
Node.js
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 185
Ruby
#!/usr/bin/ruby -w
require 'rest-client'
require 'json'
url =
'https://restapi1.jasper.com/rws/api/v1/smsMessages?accountId=147060908&from
Date=2016-04-18T17%3A31%3A34%2B00%3A00&pageSize=50&pageNumber=1'
response = RestClient::Request.execute(
method: :get,
url: url,
user: 'username',
password: 'password',
:headers => {:accept => :json}
)
puts JSON.pretty_generate(JSON.parse(response))
Errors
Error HTTP
Description
Code Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 186
Get SMS Details
Description
Returns detailed information about a particular SMS message sent by
Control Center to a device or sent by a device to Control Center. You cannot
get information about messages exchanged between a device and a non-
Control Center SMS client.
Resource URL
GET BaseURL/v{apiVersion}/smsMessages/{smsMsgId}
Request Parameters
Parameter Description
apiVersion The version number for this API. The current version
for all functions is 1.
Response Parameters
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 187
Return Value Description
dateSent The date and time (including the time zone) when the
message was sent. See Date Formats.
dateReceived The date and time (including the time zone) when
Control Center received the message. See Date Formats.
dateModified The date and time (including the time zone) when the
delivery status changed. See Date Formats.
Request Example
Make sure to use your own URL and user credentials.
Response Example
{
"smsMsgId": 106184,
"status": "Pending",
"messageText": "Hello world",
"senderLogin": "dpTrialUser2",
"iccid": "8988216716970004975",
"sentTo": "882351697004975",
"sentFrom": "Server",
"msgType": "MT",
"dateSent": "2016-07-06 16:05:16.280-0700",
"dateModified": "2016-07-06 16:05:16.522-0700"
}
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 188
Code Samples
Make sure to use your own URL and user credentials.
Python
import requests
import json
import base64
import pprint
Node.js
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 189
Ruby
#!/usr/bin/ruby -w
require 'rest-client'
require 'json'
url = 'https://restapi1.jasper.com/rws/api/v1/smsMessages/25830319302'
response = RestClient::Request.execute(
method: :get,
url: url,
user: 'username',
password: 'password',
:headers => {:accept => :json}
)
puts JSON.pretty_generate(JSON.parse(response))
Errors
Error HTTP
Description
Code Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 190
Send SMS
Description
Sends an SMS message to a given device or short code.
This function is available to users with the following roles:
ServiceProviderAdmin, ServiceProviderDemo, AccountAdmin,
AccountAPIOnly, TrialUser, AccountDemo, and CustomerAdmin.
Resource URL
POST BaseURL/v{apiVersion}/devices/{iccid}/smsMessages
Request Parameters
Parameter Description
apiVersion The version number for this API. The current version
for all functions is 1.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 191
Response Parameters
smsMsgId A unique identifier for the SMS message. You can use
this ID to get details about a particular message with
the Get SMS Details API.
Request Example
Make sure to use your own URL and user credentials.
Response Example
{
"smsMsgId": 106184
}
Code Samples
Make sure to use your own URL and user credentials.
Node.js
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 192
Ruby
#!/usr/bin/ruby -w
require 'rest-client'
require 'json'
url =
'https://restapi1.jasper.com/rws/api/v1/devices/89011704252318147060/smsMess
ages'
response = RestClient::Request.execute(
method: :post,
url: url,
user: 'dpSKit20',
password: 'b09c4266-83c6-411a-a475-ca4925b3bb4a',
:payload => '{"messageText":"testing from minde: sent by ruby"}',
:headers => {:accept => :json,
:content_type => :json}
)
puts JSON.pretty_generate(JSON.parse(response))
Errors
Error HTTP
Description
Code Code
10000023 400 The JSON in the request is not well formed. Please
ensure that commas, colons, braces etc. are formatted
properly.
10000030 400 Your role does not have access to this API function.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 193
Error HTTP
Description
Code Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 194
Usages
Get Usage by Rate Plan
Description
Returns usage information associated with a single rate plan during a
specified billing cycle. By default, the function returns cycle-to-date data,
SMS, and voice usage for all devices using the current version of the rate
plan. However, you can request a particular usage type, a past billing cycle,
or a different rate plan version.
Resource URL
GET BaseURL/v{apiVersion}/usages
Request Parameters
The rate plan name and API version number are required. All other
parameters are optional.
Parameter Description
apiVersion The version number for this API. The current version
for all functions is 1.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 195
Parameter Description
Response Parameters
The function returns an array of zones, where each zone contains an array
of devices. For each device, there are total usage numbers for the requested
usage types. A device may have usage in more than one zone and, as a
result, may appear multiple times in the response.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 196
Return Value Description
Zones
Devices
deviceId The ICCID for the device. This field does not contain the
Device ID found on the Device Details page. The ICCID
is a unique identifier for a device in Control Center.
Device ID is an optional identifier that the account or
customer can give to each device.
usage A label that indicates the usage fields for the current
device. The function returns all usage information
unless you specify a particular usage type. If you
request one type of usage, the function returns all
usage fields, but inserts zero values in the non-
requested usage fields, regardless of the actual values.
dataUsage The volume of data (in bytes) used by the device during
the time period (cycle to date or a particular billing
cycle). If you request a different usage type, the value
in this field will be zero, regardless of the actual value.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 197
Return Value Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 198
Request Example
Make sure to use your own URL and user credentials.
Response Example
{
"accountId": 100477039,
"accountName": "Acme Corp",
"ratePlanName": "Monthly-Flexible-Pool",
"ratePlanVersion": 1,
"zones": [
{
"zone": "Zone A",
"devices": [
{
"deviceId": "8988209000000000723",
"usage": {
"dataUsage": 54765,
"smsMOUsage": 37,
"smsMTUsage": 42,
"voiceMOUsage": 0,
"voiceMTUsage": 0
}
},
{
"deviceId": "8988209000000000747",
"usage": {
"dataUsage": 23456,
"smsMOUsage": 15,
"smsMTUsage": 11,
"voiceMOUsage": 0,
"voiceMTUsage": 0
}
}
]
"zone": "Zone B",
"devices": [
{
"deviceId": "8988209000000000859",
"usage": {
"dataUsage": 94480,
"smsMOUsage": 0,
"smsMTUsage": 0,
"voiceMOUsage": 900,
"voiceMTUsage": 0
}
}
]
}
]
"pageNumber": 2,
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 199
"lastPage": true
}
Errors
Error HTTP
Description
Code Code
10000030 400 Your role does not have access to this API function.
10000442 400 More than one RatePlan having the same name.
The rate plan name is not unique. Try using the rate
plan version number along with the name to indicate
a unique rate plan.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 200
Users
Get User Details
Description
Returns the user details for a given user ID. All users can request their own
user details. Account administrators can view details for all account and
customer users in their account. Service provider administrators can view
details for all operator, account, and customer users. Other roles may have
access to user information as well. See the API/Role matrix in the
Knowledge Base for a complete list of roles that can use this API.
Resource URL
GET BaseURL/v{apiVersion}/users/{userId}
Request Parameters
Parameter Description
apiVersion The version number for this API. The current version for
all functions is 1.
userId The ID of the user for which you want information. The
user ID is not available in the Control Center web
interface, but you can use the Get All User Details API to
find a user ID. Use a partial response to return the
username and userId only. For more information, see
Partial Response Guidelines.
Response Parameters
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 201
Return Value Description
language The language used to display all the text in the web
interface.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 202
Return Value Description
lastLogin The date and time the user last accessed the system
using the web interface.
lastPasswordReset The date and time when the user last reset the
Date password. Timestamp format: yyyy-MM-dd
HH:mm:ss:SSSZ.
dateAdded The date and time when the user was created.
Timestamp format: yyyy-MM-dd HH:mm:ss:SSSZ.
dateModified The date and time of the last change to the user
details. Timestamp format: yyyy-MM-dd
HH:mm:ss:SSSZ.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 203
Request Example
Make sure to use your own URL and user credentials.
Response Example
{
"username": "JohnDoe",
"userId": 84176,
"accountName": "Acme Inc",
"accountId": 100210811,
"operatorName": null,
"operatorId": null,
"roleName": "ACCOUNTADMIN",
"status": "Active",
"userLocked": false,
"accessType": "API_UI",
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@jasper.com",
"phone": null,
"language": "English",
"timeZone": "India Standard Time",
"customerName": null,
"customerId": null,
"customerGroup": null,
"accountGroup": null,
"lastLogin": "2017-09-18 12:28:58:828+0000",
"lastPasswordResetDate": "2017-09-18 12:26:02:000+0000",
"passwordExpirationInDays": 180,
"liveUpdateEnabled": true,
"userPrivacyEnabled": true,
"dateAdded": "2017-09-18 12:26:01:789+0000",
"dateModified": "2018-01-10 08:40:43:000+0000"
}
Errors
HTTP
Error Code Description
Code
10000030 400 Your role does not have access to this API function.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 204
Get All User Details
Description
Returns the user details for all users. See the API/Role matrix in the
Knowledge Base for a complete list of roles that can use this API.
Resource URL
GET BaseURL/v{apiVersion}/users
Request Parameters
Parameter Description
apiVersion The version number for this API. The current version
for all functions is 1.
Response Parameters
Returns an array of users along with the pagination parameters. For more
information about the user parameters, see Get User Details on page 201.
users An array of users with details about each. See Get User
Details on page 201 for information about the response
parameters.
Request Example
Make sure to use your own URL and user credentials.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 205
Response Example
{
"pageNumber": 1,
"users": [{
"username": "JohnDoe",
"userId": 84176,
"accountName": "Acme Inc",
"accountId": 100210811,
"operatorName": null,
"operatorId": null,
"roleName": "ACCOUNTADMIN",
"status": "Active",
"userLocked": false,
"accessType": "API_UI",
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@jasper.com",
"phone": null,
"language": "English",
"timeZone": "India Standard Time",
"customerName": null,
"customerId": null,
"customerGroup": null,
"accountGroup": null,
"lastLogin": "2017-09-18 12:28:58:828+0000",
"lastPasswordResetDate": "2017-09-18 12:26:02:000+0000",
"passwordExpirationInDays": 180,
"liveUpdateEnabled": true,
"userPrivacyEnabled": true,
"dateAdded": "2017-09-18 12:26:01:789+0000",
"dateModified": "2018-01-10 08:40:43:000+0000"
}, {
"username": "JaneAdmin",
"userId": 75677,
"accountName": "Network J",
"accountId": 100530743,
"operatorName": null,
"operatorId": null,
"roleName": "ACCOUNTADMIN",
"status": "Active",
"userLocked": false,
"accessType": null,
"firstName": "Jane",
"lastName": "Doe",
"email": "jane.doe@cisco.com",
"phone": null,
"language": "English",
"timeZone": "Pacific Standard Time",
"customerName": null,
"customerId": null,
"customerGroup": null,
"accountGroup": null,
"lastLogin": "2018-04-02 08:39:53:318+0000",
"lastPasswordResetDate": "2017-07-25 12:04:27:000+0000",
"passwordExpirationInDays": 180,
"liveUpdateEnabled": true,
"userPrivacyEnabled": false,
"dateAdded": "2016-07-21 08:54:09:078+0000",
"dateModified": "2018-04-02 08:40:17:103+0000"
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 206
}],
"lastPage": false
}
Errors
HTTP
Error Code Description
Code
10000030 400 Your role does not have access to this API function.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 207
Create User
Description
Creates a new user. Control Center sends a welcome email to the new user
with a link to the password set-up page in the product. If you create a
passwordless API user, Control Center does not send a welcome email. You
must send the user name and API key to the new user.
See the API/Role matrix in the Knowledge Base for a complete list of roles
that can use this API.
Resource URL
POST BaseURL/v{apiVersion}/users
Request Parameters
All parameters are required unless they are marked as optional.
Parameter Description
apiVersion The version number for this API. The current version
for all functions is 1.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 208
Parameter Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 209
Parameter Description
Response Parameters
timestamp The date and time when the user was created. The
timestamp displays in UNIX Epoch clock format. See
Date/Time Formats on page 28 for more information.
Request Example
Make sure to use your own URL and user credentials.
Response Example
{
"userId": 30466103,
"timestamp": 1527590173
}
Errors
HTTP
Error Code Description
Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 210
HTTP
Error Code Description
Code
10000030 400 Your role does not have access to this API function.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 211
Edit User Details
Description
Changes one or more attributes for a given user. See the API/Role matrix in
the Knowledge Base for a complete list of roles that can use this API.
Resource URL
PUT BaseURL/v{apiVersion}/users/{userId}
Request Parameters
You can change any of the user attributes shown below. One function call
can update multiple attributes.
Parameter Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 212
Parameter Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 213
Parameter Description
Response Parameters
timestamp The date and time when the user details were modified.
The timestamp displays in UNIX Epoch clock format. See
Date/Time Formats on page 28 for more information.
Request Example
Make sure to use your own URL and user credentials.
Response Example
{
"userId": 30466103,
"timestamp": 1527590173
}
Errors
HTTP
Error Code Description
Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 214
HTTP
Error Code Description
Code
10000030 400 Your role does not have access to this API function.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 215
Reset User Password
Description
Resets the web interface password for a given user. Control Center sends an
email to the user with instructions for resetting their password. The user
status automatically changes to PasswordReset until the user supplies a
new password.
See the API/Role matrix in the Knowledge Base for a complete list of roles
that can use this API.
Resource URL
PUT BaseURL/v{apiVersion}/users/{userId}/resetPassword
Request Parameters
Parameter Description
apiVersion The version number for this API. The current version for
all functions is 1.
Response Parameters
timestamp The date and time when the password reset process was
initiated. The timestamp displays in UNIX Epoch clock
format. See Date/Time Formats on page 28 for more
information.
Request Example
Make sure to use your own URL and user credentials.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 216
Response Example
{
"userId": 30466103,
"timestamp": 1527590173
}
Errors
HTTP
Error Code Description
Code
10000030 400 Your role does not have access to this API function.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 217
Delete User
Description
Deletes a given user so the user details are no longer available through the
web interface or the APIs. Control Center retains the data throughout the
operator's default data retention period and then begins the data erasure
process.
See the API/Role matrix in the Knowledge Base for a complete list of roles
that can use this API.
Resource URL
DELETE BaseURL/v{apiVersion}/users/{userId}
Request Parameters
Parameter Description
apiVersion The version number for this API. The current version for
all functions is 1.
userId An identifier for the user you want to delete. The user ID
is not available in the Control Center web interface, but
you can use the Get All User Details API to find a user ID.
Use a partial response to return the username and
userId only. For more information, see Partial Response
Guidelines.
Response Parameters
timestamp The date and time when the user was deleted. The
timestamp displays in UNIX Epoch clock format. See
Date/Time Formats on page 28 for more information.
Request Example
Make sure to use your own URL and user credentials.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 218
Response Example
{
"userId": 30466103,
"timestamp": 1527590173
}
Errors
HTTP
Error Code Description
Code
10000030 400 Your role does not have access to this API function.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 219
REST Error Messages
Error HTTP
Description
Code Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 220
Error HTTP
Description
Code Code
10000008 400 Your role does not have access to operator and
customer custom fields.
10000009 400 Your role does not have access to account custom
fields.
10000010 400 Your role does not have access to customer custom
field.
10000023 400 The JSON in the request is not well formed. Please
ensure that commas, colons, braces etc. are formatted
properly.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 221
Error HTTP
Description
Code Code
10000029 400 This SIM may not be moved back to a Pre Activation
status.
10000030 400 Your role does not have access to this API function.
10000301 400 Test Ready Data Limit length must be between 0 and
10.
10000302 400 Test Ready Sms Limit length must be between 0 and
10.
10000303 400 Test Ready Voice Limit length must be between 0 and
10.
10000304 400 Test Ready Csd Limit length must be between 0 and 10.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 222
Error HTTP
Description
Code Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 223
Error HTTP
Description
Code Code
10000442 400 More than one RatePlan having the same name.
The rate plan name is not unique. Try using the rate
plan version number along with the name to indicate a
unique rate plan.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 224
Error HTTP
Description
Code Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 225
Error HTTP
Description
Code Code
10000553 400 The service provider doesn't contain the charge ID.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 226
Error HTTP
Description
Code Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 227
Error HTTP
Description
Code Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 228
Error HTTP
Description
Code Code
20000058 400 Requested resource not available for Shared Rate plan.
You cannot use shared rate plans in this function.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 229
Error HTTP
Description
Code Code
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 230
REST API Troubleshooting Checklist
You can quickly troubleshoot REST API issues and identify the main points
of failure by answering the questions in the following checklist. If you
answer Yes, continue to the next question, unless the instructions tell you
otherwise. If you answer No to a question, you've found the problem.
Follow the instructions for correcting the issue.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 231
API Coding
6. Are the request parameters valid?
Typically, the returned error codes will help you identify any problems
with incorrect parameter values. Common problems include: improper
date formats (see Date/Time Formats) and invalid values for device
attributes.
7. Did you verify input parameters and output data with the Try It
feature?
If you're unsure about the request parameters or the returned data, try
executing the API function from within the Knowledge Base using the
Try It feature. This approach can help you isolate problem areas in a
particular function.
8. Is the API code able to process the error codes returned by
Control Center?
When an error occurs, Control Center returns a JSON-formatted
response that contains a human-readable error message and an error
code. Ensure that your code can handle all the errors that may be
returned. The API documentation provides a list of possible errors for
each function.
9. Does the API response coding follow best practices?
After checking your network connection to Control Center, review your
receiver code and error handling. Ensure that your code allows for
additional, unexpected items in the response. Cisco may add new return
values to the APIs.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 232
11. Did the API call return data with the expected performance?
Follow these standards to improve Control Center API performance.
l Limit the number of active calls to one at a time and avoid
concurrent API processing.
l Do not exceed the calls per second limit.
l Page size is limited to 50 records. Make sure your code handles
pagination properly.
l Align the timing of your API calls with the frequency of your
operator's record updates. For example, if your operator updates
their usage information once per 6 hours, there's no need to request
the information via API more often than once per 6 hours.
l Be aware that the API calls are not intended to provide real-time
monitoring of service usage. For more immediate feedback when
certain conditions occur, use automation rules and push APIs.
You can poll API calls that return small amounts of data more
frequently (once per minute, if necessary) without affecting the overall
performance of Control Center. See API Policies and Best Practices on
page 7 for more details.
If you haven't been able to identify the cause of the API issue, contact Cisco
Product Support.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 233
Chapter 2
SOAP APIS
SOAP API support is included with all Control Center accounts, including
trial accounts. This section provides an overview of the APIs, including the
development process and coding standards.
l Function Documentation. For reference information about
individual API functions, see the online API schema. Within the
Knowledge Base, go to the APIs > SOAP APIs page and click the Go to
API Schema button.
l Path/License Key. To access the SOAP API path and license key for
your account, go to the APIs > SOAP APIs page in the Knowledge Base.
Typically, an enterprise will create user accounts with access to both the UI
and the APIs for their engineering team during development. For auditing
purposes, Cisco recommends that production code use a dedicated Control
Center user whose sole purpose is to execute API functions. When you
create the user, you can specify that the user has API-only access to Control
Center.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 234
Field Restrictions. While multiple roles may have access to the same API,
not every role will have access to all the fields listed in the documentation.
You can verify field access for a particular role by logging into the web
interface as a user with the same role who also has web interface access
and then looking for the field.
Terminology
Terminals. Many API functions refer to a device as a “terminal.” The terms
are interchangeable.
Network Access Config. This is a legacy Control Center term for a
communication plan. We continue to use the term because several long-
standing APIs use the term in their function names.
For information about other terms, refer to the Glossary in the main user
guide.
Getting Started
To get started with the SOAP APIs, read through the following information:
Topic Description
SOAP API Development Describes the steps involved in API development from
Process setting up the environment to going live in production.
WSDL Files Describes all the WSDL files that are available.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 235
SOAP API Development Process
Here’s the overall SOAP API development process:
Customer Access. Be aware that Control Center doesn’t display the API
license key to users with customer roles. A customer must request the key
from their enterprise.
Step 4: Go live
If you are using a sandbox account to test your code, you'll need to replace
the credentials, license key, and URL in your calls when you’re ready to put
your code into production. Be aware that you cannot migrate any data from
the sandbox environment to the production environment or vice versa.
In production environments, make sure you replace the sandbox URL with
the production URL. Production URLs must use the full path URL, for
example:
l Sandbox SOAP URL: https://jpotest.jasper.com/ws/service/echo
l Production URL: https://api.jasper.com/ws/service/echo
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 236
One caveat. Cisco may, at its discretion, disrupt or remove access to the
API sandbox (testing) environment for any reason. We will do our best to
notify you in advance if we anticipate a service interruption. Also, we
cannot guarantee continuous support for the sandbox environment.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 237
SOAP API Code Standards
This section provides some high level information about how the SOAP API
calls work.
Standard Description
SOAP request and Each API function maps to two SOAP functions, a
response request that sends the input to Control Center and a
response from Control Center containing the
requested data. This document treats each API pair as
a single entity for the sake of discussion.
Role Access See the SOAP API/Role Matrix on page 273 for details
about which functions each user role can perform.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 238
Standard Description
URL When you use an API function, you must send the
request to an operator-specific URL. To get your URL,
open the Knowledge Base and go to the APIs > SOAP
APIs page. Use the HTTPS protocol for data security
and do not modify the path in any way.
If your company uses multiple operators, you’ll have a
unique SOAP URL for each of them (see Working with
Multiple Operators on page 253). Be aware that the
URL for the sandbox environment is different from the
URL for the production environment.
Effective Date Some APIs have an effective date attribute that allows
you to schedule the task at a future date. Be aware
that all dates are in UTC. For the task to take effect
immediately, pass a null value for the effective date.
Version Number Both the API request and response contain a version
number. In the API request, the version number refers
to the version of the API that you're using. Because
Control Center doesn't currently use this string, the
value is optional. However, we recommend using "1.0"
as a best practice. In the API response, the version
number refers to the current release of Control
Center, for example: 6.14. Both version numbers have
a maximum length of 100 characters.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 239
Standard Description
Input Array For APIs that take an array as input, there is a limit of
50 input items. The API returns results for any items
in the array that have data. An error occurs only when
all of the items in the array are invalid.
For example, GetSessionInfo allows you to retrieve
session information for up to 50 different ICCIDs. If you
supply an array of four ICCIDs where one of the ICCIDs
is invalid, Control Center will return data for the three
valid ICCIDs and no error for the fourth. You would
receive an error only if all four ICCIDs were invalid.
Extra Elements in the Over time, Cisco may add new elements to an API. All
Response API responses will continue to conform to the
published XML schema, but it's important to design
your code so unexpected elements in the API response
won't cause a process failure.
SSL Certificates The Cisco API server uses an SSL certificate signed by
a top tier Certificate Authority (CA) to handle HTTPS
access. We recommend that you include the root
certificate in your trust store (this is included by
default on many platforms) and use a CA-based chain
of trust, rather than hard coding the Cisco certificate
in your API code. Otherwise, you will need to update
your API code if the Cisco certificate changes in the
future.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 240
WSDL Files
The following table describes the WSDL files available for Control Center's
API functions. To download the files, open the Knowledge Base from within
Control Center and go to APIs > SOAP APIs > Getting Started > WSDL Files.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 241
SOAP API Error Handling
When a SOAP fault occurs, Control Center returns a standard Fault element.
See the W3C documentation for information about the standards. Control
Center uses the fields as follows. A safe maximum length for these fields is
100 characters.
<detail>
<jws:requestId xmlns:jws="http://api.jasperwireless.com/ws/schema">
AM6Sm6OiMPqsiF2T
</jws:requestId>
<jws:error xmlns:jws="http://api.jasperwireless.com/ws/schema">
No terminal usage found
</jws:error>
<jws:exception xmlns:jws="http://api.jasperwireless.com/ws/schema">
com.jasperwireless.ws.ApiException
</jws:exception>
<jws:message xmlns:jws="http://api.jasperwireless.com/ws/schema">
iccid=12345
</jws:message>
</detail>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 242
SOAP API Functions
This section lists all the Control Center SOAP API functions by category. For
detailed reference information about each function, look in the Knowledge
Base: APIs > SOAP APIs > SOAP API Schema.
Devices
The device APIs provide access to detailed device information, including the
current session. You can also change attribute values.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 243
API Call Description
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 244
Global SIMs
The Global SIM APIs allow you to manage over-the-air SIM swaps for
devices that contain global SIMs. These APIs mirror many of the functions
you can perform through the Control Center user interface. To identify a
device, you must use the ICCID of the SIM under the primary operator (the
Primary ICCID).
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 245
Messages (SMS)
The message APIs provide historical information about messages that a
particular device has sent to or received from Control Center. You can also
send messages to one or more devices.
GetModifiedSMS Returns a list of IDs for the messages that have been
sent by a device to Control Center or received by a
device from Control Center during a specified time
period.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 246
Field Value SMS Encoding Control Center Encoding
Be aware that only LITERAL and BASE64 encoding apply to the GetSMS
API.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 247
Rate Plans
This set of APIs allows you to manage the rate plans connected with a
particular device. You can modify a device’s standard rate plan, change the
plans in the device’s queue, and manage any events associated with the
device. These APIs do not allow you to create or edit the rate plans
themselves.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 248
Usage
You can examine the data, message, and voice usage for an individual device
with the following APIs. For information about usage across all devices and
rate plans during a billing cycle, refer to the invoice API.
Invoices
Control Center provides a single API to access the high level details of an
invoice. For more information about individual device usage during a
billing cycle, refer to the usage APIs.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 249
Users
The user API allows you to create new users.
Test
A single test API allows you to test your connection to Control Center
during development.
Echo Simple test call that returns a value you send as input.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 250
SOAP API Use Cases
This section describes several use cases or design patterns that are
common across all applications that access Control Center.
If you discover that a device has used more data than you would like, you
can assign a different rate plan to the device using one of these two APIs:
l EditTerminal. If the device is currently using a monthly rate plan,
use this function to change the rate plan.
l EditTerminalRating. If the device is currently using a prepaid plan,
you can’t change the plan until the prepaid plan expires. Then you can
use the device queue to assign the next rate plan. If you can anticipate
which rate plan will be most appropriate, you can set up the queue in
advance or you can use EditTerminalRating to dynamically add a new
rate plan to the queue. When the prepaid rate plan expires, Control
Center will automatically assign the rate plan at the top of the queue
to the device.
In this way you can cycle through all your devices and adjust their rate
plans, if necessary.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 251
Automation Rules. For certain use cases, you might consider using an
automation rule in Control Center (Automation > Rules > Actions menu >
Create New button). These rules offer a variety of ways to monitor usage,
manage subscriptions, and provision SIMs—without any programming.
Synchronizing Databases
Many enterprises maintain an internal database, separate from Control
Center, with device attributes, usage, and message information. The API set
gives you an easy way to synchronize your internal systems with Control
Center. Here’s the process:
For Messages
1. Use GetModifiedSMS to return a list of messages that have been sent
or received during a certain time period.
2. Use GetSMSDetails to return the detailed information for just the
messages returned in step 1.
3. Update your internal database with the data returned in step 2.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 252
Working with Multiple Operators
Many companies with connected devices contract with more than one
operator. As long as all these operators use the Cisco platform, you can
create a single application that can access and manage information in any
operator’s instance of Control Center. All you need to do is store log-in
parameters for each operator instance and then use the appropriate set of
parameters when necessary.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 253
Code Sample
The code sample below shows an API request for the
GetModifiedTerminals web service, with the credentials and custom
information shown in red. You must send the SOAP request to the
appropriate API URL for the operator you want to access. For example:
https://<OperatorApiHost>/ws/service/terminal
<soapenv:Envelope xmlns:sch="http://api.jasperwireless.com/ws/schema"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-
open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken-16847597"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-
wssecurity-utility-1.0.xsd">
<wsse:Username>UserName</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-
wss-username-token-profile-1.0#PasswordText">Password</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<sch:GetModifiedTerminalsRequest>
<sch:messageId>?</sch:messageId>
<sch:version>?</sch:version>
<sch:licenseKey>xxxxxxx-xxxx-xxxx-xxxx-xxxx</sch:licenseKey>
<sch:since>2009-09-01T00:00:00Z</sch:since>
</sch:GetModifiedTerminalsRequest>
</soapenv:Body>
</soapenv:Envelope>
1. Find all devices that have been updated since their last check (on
09/01/2009).
2. Retrieve current status details for each device with updates and apply
those changes to their internal device tracking application.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 254
The following table contains information for each operator serving Acme
Widgets through the Control Center platform.
Operator 1 Operator 2
API Logic
For each operator, the code must:
l Retrieve the URL, log-in credentials, and license key for the
enterprise's account with the operator.
l Construct the appropriate GetModifiedTerminalsRequest call using
the information.
l Submit the GetModifiedTerminalsRequest to the operator's API URL.
l Receive the resulting list of modified ICCIDs from
GetModifiedTerminalsResponse.
l For each modified ICCID returned in GetModifiedTerminalsResponse,
pass the ICCID to GetTerminalDetailsRequest and then store the
returned device attributes in the local device tracking system.
If the enterprise expands into a new geography, the standard API logic
above works without modification as long as you insert a new row into the
credential table for the operator serving the new region.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 255
Tutorials
This section contains instructions and tips for using various coding
languages with the Control Center APIs.
Java
Follow these steps to begin using Java:
5. Then type the following to compile and package the sample files:
mvn clean package assembly:single
6. Type the following to call Echo API (use "/" instead of "\" if you're on
Linux or Mac):
java -cp target\Sample-1.0-jar-with-dependencies.jar
com.jasperwireless.ws.client.sample.EchoClient <licenseKey>
7. Type the following to call the GetTerminalDetails API for the given
ICCID (use "/" instead of "\" if you're on Linux or Mac):
java -cp target\Sample-1.0-jar-with-dependencies.jar
com.jasperwireless.ws.client.sample.GetTerminalDetailsClient <licenseKey>
<username> <password> <iccid>
8. (Optional) If you need to pass binary text (for SMS messages, for
example), use the following code for Base64 encoding/decoding.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 256
Notes
l Request/Response XML strings are printed to System.out for
debugging purposes.
l The SAAJ library is used to handle SOAP calls.
l The XWSS library is used to secure the message with
username/password token (which requires the file
securityPolicy.xml).
l You can use an XML binding library (such as JAXB) to further simplify
your development process.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 257
C#
Follow these steps to begin using C#:
1. Right click on the project in the "Solution Explorer" window and choose
"Add Web Reference ..." In Visual Studio® 2008, right click on the
project in the "Solution Explorer" window, choose "Add Service
Reference ...", then click "Advanced...", then click "Add Web Reference..."
2. Input the correct URL for WSDL file, for example
http://apitest.jasperwireless.com/ws/schema/Terminal.wsdl. See WSDL Files on
page 241 for the production URL.
3. Add the file SecurityHeader.cs into your project to override the
generated proxy and add the XWSS security header to every request.
4. Go to the class TerminalService in the newly-created web reference (for
example, Reference.cs). You can do this by going to Object Browser,
searching for "TerminalService", and double-clicking on the
TerminalService class.
5. Add the following line above the namespace declaration at the top of
Reference.cs:
using com.jaspersystems.api;
6. Add this public member to every service class in the auto generated
Web Reference proxy, say in class TerminalService:
public SecurityHeader securityHeader;
7. Add the following line to every method that will be called in the auto
generated Web Reference proxy, say in TerminalService just above
public GetModifiedTerminalsResponse GetModifiedTerminals(...):
[System.Web.Services.Protocols.SoapHeaderAttribute("securityHeader")]
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 258
9. (Optional) If you need to pass binary text (for SMS messages, for
example), use the following code for Base64 encoding/decoding.
Sample Files
You can download the sample files from the Knowledge Base: Home >
APIs > SOAP APIs > Tutorials > C# > Sample Files.
l GetModifiedTerminals.cs
l SecurityHeader.cs
Troubleshooting
When there is a SOAP exception, Visual Studio displays the error code only.
To see the detailed message, click on "View Detail...", expand
SOAPException > Detail, and take a look at the InnerText field.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 259
Perl
Follow these steps to begin using Perl:
Note: The SOAP::Lite debug messages are enabled in the sample files, so
that you can see the request/response XML. Once you are comfortable
with the calls, you may want to turn this off by replacing SOAP::Lite
+trace => ['debug']; with SOAP::Lite;
5. (Optional) If you need to pass binary text (for SMS messages, for
example), use the following code for Base64 encoding/decoding.
Sample Files
You can download the sample files from the Knowledge Base: Home >
APIs > SOAP APIs > Tutorials > Perl > Sample Files.
l echo.pl
l getTerminalDetails.pl
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 260
PHP
Follow these steps to begin using PHP:
Sample Files
You can download the sample files from the Knowledge Base: Home >
APIs > SOAP APIs > Tutorials > PHP > Sample Files.
l echo.php
l getTerminalDetails.php
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 261
Ruby
Follow these steps to begin using Ruby:
1. Install the Savon SOAP client. Type gem install savon to install via Ruby
Gems.
2. Download the sample files below.
3. Open the echo.rb sample file in a text editor and put in your own
license key. To call the Echo API, type ruby echo.rb.
4. Open the getTerminalDetails.rb sample file in a text editor and put in
your own license key, userName, password, and ICCIDs. To call the
GetTerminalDetails API, type ruby getTerminalDetails.rb.
5. (Optional) If you need to pass binary text (for SMS messages, for
example), use the following code for Base64 encoding/decoding.
Sample Files
You can download the sample files from the Knowledge Base: Home >
APIs > SOAP APIs > Tutorials > Ruby > Sample Files.
l echo.rb
l getTerminalDetails.rb
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 262
XML Samples
The online API schema contains XML samples for some commonly used
function calls:
l GetTerminalDetails
l GetTerminalUsage
l GetInvoice
l EditTerminal (change the SIM status)
l EditTerminal (change the rate plan)
l GetModifiedTerminals
l GetTerminalUsageDataDetails
l UpdateSecureSimCredentials
You can view the samples in the Knowledge Base: Home > APIs >
SOAP APIs > XML Samples.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 263
SOAP Error Messages
Error Code Message
General
Devices
Billing
Admin
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 264
Error Code Message
API
400100 Invalid license key. Please use a valid API license key.
Make sure you're using the correct license key for the
current environment. Sometimes people mistakenly use
their sandbox license key on the production site or vice
versa.
400101 License has exceeded the rate limit for API calls.
400201 Access violation error. Please check your login; you may
be trying to access a device that belongs to a different
account or service provider.
This error can happen if the caller has accounts with
multiple operators and they're using the login from the
wrong operator.
SMS
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 265
Error Code Message
Messaging
Accounts
1000503 Internal Error - default trial rate plan not found for
service provider
1100200 Term end date must be greater than term start date
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 266
Error Code Message
1100600 Access denied. Cannot edit term start and end dates
LinePayStatus
Event Plans
Connection Manager
Users
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 267
Error Code Message
Passwords
Vault
Rate Plans
Communication Plans
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 268
Error Code Message
Global SIM
1800100 Unknown
1800116 Global SIM transfer can't be cancelled for the SIM at this
stage.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 269
Error Code Message
1800139 SIM Profile with given External Profile ID does not exist.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 270
Error Code Message
1800179 Card Profile for the chip is not allowed by profile whitelist
associated with the subscription.
1800180 Could not reserve the virtual subscription for a slot of the
chip.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 271
Error Code Message
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 272
SOAP API/Role Matrix
Control Center provides different API access for different user roles. For
details, take a look at the API/Role matrix. You can download the matrix
from the Downloads page in the Knowledge Base. The SOAP APIs appear
on the second page.
Sandbox APIs. When troubleshooting API issues, keep in mind that the
sandbox APIs do not migrate to the production environment.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 273
Knowledge Base. In production environments, make sure you replace
the sandbox URL with the production URL. Production URLs must use
the full path URL, for example:
https://api.jasper.com/ws/service/echo
2. Is the API license key valid?
Each account has one license key that you can find on the APIs > SOAP
APIs page in the Knowledge Base. You will need to use a separate
license key for the sandbox environment and the production
environment. When you get access to the sandbox, you receive a license
key. See Authentication on page 238.
3. Does the API user have login access?
Each time you use an API function call, you must supply a user name for
a user who is allowed to perform that function. You may need multiple
user roles as there is no single role that will guarantee access for all API
function calls. Cisco recommends creating a dedicated user or group of
users whose sole purpose is to execute API functions. For more
information about user roles and access, see SOAP API/Role Matrix on
the previous page.
4. Is the password/API key valid?
In addition to the user name and license key, every API call must have
either a password or an API key for authentication purposes. Ensure
that you're using the correct value.
5. Does the API user have feature access?
If the API user has access to the web interface, log into Control Center
and try to access the same feature in the web interface. (Remember the
Control Center password is different from the API key.) If you can make
the feature work in the web interface, you can make it work via API.
6. Is the SSL certificate valid and included in your trusted store?
The Cisco API server uses an SSL certificate signed by a top tier
Certificate Authority (CA) to handle HTTPS access. We recommend that
you include the root certificate in your trust store (this is included by
default on many platforms) and use a CA-based chain of trust, rather
than hard coding the Cisco certificate in your API code. For more
information see, SOAP API Code Standards on page 238.
API Coding
7. Do the SOAP tags in the request specify valid definitions?
Verify that the SOAP envelope tag specifies the Cisco schema. Also, make
sure the SOAP header tag contains the correct username and password
definitions. The correct license key should be included in the SOAP body
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 274
tag. A separate license key is used for the sandbox environment and the
production environments. The body tag should also include any method
calls and parameter values. For more examples of valid XML used in
common API calls, see XML Samples on page 263.
8. Does the API request coding follow the code standards and best
practices?
When coding with Cisco APIs, we recommend that you follow these
standards:
l Limit the number of active calls to one at a time and avoid
concurrent API processing.
l Do not exceed the calls per second limit.
l Use pagination controls to limit the number of returned records.
l Use UTC date and time formats. Pass a null value for a scheduled
task to take effect immediately.
l Specify a message ID in each request. Control Center includes the
message ID as the correlation ID in the response. You can use these
IDs to match the function requests with the corresponding
responses.
l Limit input arrays to 50 input items. Be aware that an error occurs
only when every item in the array is invalid. For example, if you
supply an array of four ICCIDs where one of the ICCIDs is invalid,
Control Center will return data for the three valid ICCIDs and no
error for the fourth.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 275
l Be aware that the version number in the request is optional and
refers to the version of the API. The maximum length is 100
characters.
For more details, see SOAP API Code Standards on page 238 and API
Policies and Best Practices on page 7. If you receive an error code
related to the API request, see SOAP Error Messages on page 264 for a
complete list of error descriptions.
9. Does the API response coding follow the code standards and
best practices?
After checking your network connection to Control Center, review your
receiver code and error handling.
l Design your code to allow for additional unexpected items in the
response. Cisco may add additional return values to the APIs.
l Be aware that the build ID in the response indicates the current
Control Center build number. This value has a maximum length of
100 characters.
l Be aware that the version number in the response indicates the
current version of Control Center. The maximum length is 100
characters.
l Be aware that Control Center includes the message ID as the
correlation ID in the response. You can use these IDs to match the
function requests with the corresponding responses.
For more information see, SOAP API Code Standards on page 238. If
you receive an error code related to the API response, see SOAP Error
Messages on page 264 for a complete list of error descriptions.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 276
10. Is the API code able to process standard SOAP fault elements
from Control Center?
When a SOAP fault occurs, Control Center returns a detail element in
the response body element that contains the standard fault elements
(faultCode, faultString, and faultActor). The maximum length for these
fields is 100 characters.
<detail>
<jws:requestId xmlns:jws="http://api.jasperwireless.com/ws/schema">
AM6Sm6OiMPqsiF2T
</jws:requestId>
<jws:error xmlns:jws="http://api.jasperwireless.com/ws/schema">
No terminal usage found
</jws:error>
<jws:exception xmlns:jws="http://api.jasperwireless.com/ws/schema">
com.jasperwireless.ws.ApiException
</jws:exception>
<jws:message xmlns:jws="http://api.jasperwireless.com/ws/schema">
iccid=12345
</jws:message>
</detail>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 277
Error Code Description/Corrective Actions
400101 License has exceeded the rate limit for API calls. This
error indicates that your account exceeded calls per
second limit. Cisco may curtail API usage by returning
error responses for any subsequent API calls within the
measurement period (one second).
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 278
13. Did the API call return data with the expected performance?
Follow these standards to improve Control Center API performance.
l Limit the number of active calls to one at a time and avoid
concurrent API processing.
l Do not exceed the rate limit for API calls. Otherwise, you may receive
error code 400101: License has exceeded the rate limit for API calls.
l Align the timing of your API calls with the frequency of your
operator's record updates. For example, if your operator updates
their usage information once per 6 hours, there's no need to request
the information via API more often than once per 6 hours.
l Be aware that the API calls are not intended to provide real-time
monitoring of service usage. For more immediate feedback when
certain conditions occur, use automation rules and push APIs.
You can poll API calls that return small amounts of data, such as
GetModifiedTerminals, more frequently (once per minute, if necessary)
without affecting the overall performance of Control Center. For more
details about API performance recommendations and coding practices,
see SOAP API Code Standards on page 238.
If you haven't been able to identify the cause of the API issue, contact Cisco
Product Support.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 279
Chapter 3
PUSH APIS
Control Center also maintains a “push API” system that sends a
programmatic notification to your application whenever a certain event
occurs. For example, you might choose to receive notification when a device
nears its data limit. Or, you might want to know if a device makes too many
connections during a certain period of time.
To receive a notification, you must create an automation rule in Control
Center and then configure it to send an API message. For this process to
work, you need to set up a push receiver, or server, on your end to listen
for messages, interpret the data, and then act on it appropriately.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 280
Typical Event Sequence
Here is the typical sequence of events for push APIs:
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 281
Implementing a Push Receiver
To receive push API notifications, you must implement a simple receiver
(for example, a Java servlet) that understands HTTPS or HTTP POST
requests — depending on which protocol you specify in the URL.
Parameter Description
eventId A unique identifier for the event that remains the same even if
the same event is re-sent multiple times due to network
problems, server downtime, and so on. See Retry Handling on the
next page.
signature An HMAC SHA2 hash of the timestamp using the API shared
secret, which can be used to verify the identity of the caller. See
Signature Verification (Optional) on the next page.
data The XML content, specific to the event type. For Session Start
and Session End, we use SessionInfoType. Refer to Push API
Reference on page 290. Here is a sample of the XML data content
for a Session End event:
<Session xmlns="http://api.jasperwireless.com/ws/schema">
<iccid>8901650500000002918</iccid>
<ipAddress>10.98.214.86</ipAddress>
<dateSessionStarted>2009-12-
10T01:16:20.026Z</dateSessionStarted>
<dateSessionEnded>2009-12-10T01:16:25.026Z</dateSessionEnded>
</Session>
For a notification sample, see Sample Push API Message on page 285.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 282
Signature Verification (Optional)
To verify that the request came from a trusted caller (such as Cisco), you
can independently construct the signature using your Push API Shared
Secret and confirm that it matches the signature in the request. You
configure the Push API Shared Secret in your account profile (Admin >
Account Profile > Edit button). Be aware that the Push API Shared Secret is
a secret value, 1-100 characters in length, that you choose. It is different
from the API license key.
To construct the signature, you take the bytes of the timestamp and apply a
standard HMAC SHA2 hash using your shared secret as the key. See the
sample code for an example. If the signatures don’t match, you should not
process the event. Instead, you should respond with the HTTP status code
“403 Forbidden”.
Data Processing
After parsing the notification, you can take the appropriate action in your
system, such as inserting the event into a database. You might also call the
Cisco APIs to take related actions on the device, such as changing the SIM
state.
Once you have successfully processed the notification, respond with the
HTTP status code “200 OK”. If you return any other status code, Control
Center will retry the notification.
Retry Handling
Although we expect your receiver to be up-and-running most of the time,
Control Center provides an automatic retry mechanism to recover from
temporary downtime or errors. If Control Center gets a time-out or a status
code other than 200 when contacting your receiver, Control Center will
wait a few minutes and then re-send the notification. Control Center will
retry each notification a maximum of 20 times (with exponential back-off
between attempts) before giving up.
After attempting the maximum number of tries, Control Center drops the
message. If the failure state persists, Control Center will disable the rule.
Control Center does not resend dropped messages; these messages are not
recoverable. Be aware that the Cisco operations team may reduce the
maximum number of retries during peak loads or error conditions in order
to protect the network.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 283
SSL Certificate
In the automation rule interface, you can supply an HTTP or HTTPS URL as
a destination for the push API. If you use an HTTPS URL, that URL must
have an SSL certificate signed by one of the common trusted Certificate
Authorities (CA). Ensure that all certificates in the chain are current and
signed, and the host name matches the certificate. You may use a third
party tool to validate the certificate setup.
Sample Code
The receiver can be written in any language that supports HTTP requests,
such as Java, C#, or PHP. See the Java sample code in the
pushApiJavaSample.zip file that you can download from the Knowledge
Base (APIs > Push APIs > Implementing a Push Receiver > Sample Code).
This archive contains a basic push receiver that prints out the events that it
receives. Sample output:
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 284
Sample Push API Message
Here is a sample push API message generated by the SIM Custom Field
Change rule. All messages have similar headers. See the Push API Reference
on page 290 for the format of the data returned in each message.
Post Parameters
key: 'eventId' value: 'SIM_CUSTOM_FIELD_CHANGE-151888917'
key: 'eventType' value: 'SIM_CUSTOM_FIELD_CHANGE'
key: 'timestamp' value: '2015-07-01T11:00:03.812Z'
key: 'signature' value: 'gBdsWXnCSllbu9uYktPY6bmu1RU='
key: 'signature2' value: '5F10RgcohjWBhlBP9h80w5i/jIiHJiv8eMsxRC+G+4I='
key: 'data' value: '<?xml version="1.0" encoding="UTF-8"
standalone="yes"?><SimFieldChange
xmlns="http://api.jasperwireless.com/ws/schema"><iccid>8986061569000000161</
iccid><oldValue>testForPush1</oldValue><newValue>testForPush2</newValue><fie
ldName>OPERATORCUSTOM1</fieldName></SimFieldChange>'
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 285
SSL Certificates
To secure the communication between Control Center and your application
server, we recommend you use an HTTPS URL as the destination for the
push API information we send. When you use HTTPS, you must purchase
an SSL certificate and install it on your server. An SSL certificate encrypts
the data connection and provides identification for your server so Control
Center doesn't send sensitive data to the wrong location.
A certificate authority (CA) is an entity that issues SSL certificates and
ensures that the owner of the certificate is who they say they are. Control
Center accepts certificates from CAs in Cisco's trusted root store. When you
purchase a certificate it must come from a trusted CA or the trusted CA
must appear in the certificate's chain of trust.
A chain of trust refers to a series of certificates where one CA issues a
certificate to another CA who in turn issues a certificate to another CA and
so on. A chain of trust has a root certificate, multiple intermediate
certificates, and the final certificate for the domain requiring certification.
As long as the chain of trust associated with your SSL certificate contains
one of the CAs in Cisco's trusted root store, Control Center will accept your
SSL certificate.
Legacy CAs. Cisco will continue to support the CAs we have supported in
the past (see Legacy Trusted Certificate Authorities). However, we
encourage users to purchase new certificates from the Cisco-approved list.
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 286
Tips for Purchasing SSL Certificates
l Talk to the CA vendor. Most CAs offer different types of
SSL certificates with varying levels of security. Before purchasing a
certificate from a CA on the list below, we recommend that you
contact the CA's support team and ask them to provide the chain of
trust for the certificate you plan to purchase. Verify that the chain of
trust contains a CA on the trusted list.
l Check the return policy. Make sure you purchase a certificate from
a CA with a reasonable return policy so you can get your money back
if if you happen to purchase a certificate Control Center doesn't
support. Many vendors offer a 15 or 30 day return policy.
l Validate the certificate. Test the certificate as soon as you receive
it. We recommend installing the certificate on a different server from
the one you're currently using so you don't disrupt a functioning
environment. Create a test rule with a push API action and specify the
location of the test server.
l Keep certificates current. SSL certificates expire. You'll need to
renew the certificate on a regular basis to ensure the push APIs
continue to function properly.
Alias: baltimorecodesigningca
Owner DN:
CN=Baltimore CyberTrust Code Signing Root,
OU=CyberTrust,
O=Baltimore, C=IE
Alias: baltimorecybertrustca
Owner DN:
CN=Baltimore CyberTrust Root,
OU=CyberTrust, O=Baltimore, C=IE
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 287
Trusted Certificate Authorities
Alias: entrust2048ca
Owner DN:
CN=Entrust.net Certification Authority (2048),
OU=(c) 1999 Entrust.net Limited,
OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.),
O=Entrust.net
Alias: entrustclientca
Owner DN:
CN=Entrust.net Client Certification Authority,
OU=(c) 1999 Entrust.net Limited,
OU=www.entrust.net/Client_CA_Info/CPS incorp. by ref. limits liab.,
O=Entrust.net, C=US
Alias: entrustglobalclientca
Owner DN:
CN=Entrust.net Client Certification Authority,
OU=(c) 2000 Entrust.net Limited,
OU=www.entrust.net/GCCA_CPS incorp. by ref. (limits liab.),
O=Entrust.net
Alias: geotrustglobalca
Owner DN:
CN=GeoTrust Global CA,
O=GeoTrust Inc., C=US
Alias: godaddyclass2ca
Owner DN:
OU=Go Daddy Class 2 Certification Authority,
O="The Go Daddy Group, Inc.", C=US
Alias: soneraclass1ca
Owner DN:
CN=Sonera Class1 CA,
O=Sonera, C=FI
Alias: soneraclass2ca
Owner DN:
CN=Sonera Class2 CA,
O=Sonera, C=FI
Alias: starfieldclass2ca
Owner DN:
OU=Starfield Class 2 Certification Authority,
O="Starfield Technologies, Inc.", C=US
Alias: verisignclass1ca
Owner DN:
OU=Class 1 Public Primary Certification Authority,
O="VeriSign, Inc.", C=US
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 288
Trusted Certificate Authorities
Alias: verisignclass2ca
Owner DN:
OU=Class 2 Public Primary Certification Authority,
O="VeriSign, Inc.", C=US
Alias: verisignclass1g2ca
Owner DN: OU=VeriSign Trust Network,
OU="(c) 1998 VeriSign, Inc. - For authorized use only",
OU=Class 1 Public Primary Certification Authority - G2,
O="VeriSign, Inc.", C=US
Alias: verisignclass1g3ca
Owner DN:
CN=VeriSign Class 1 Public Primary Certification Authority - G3,
OU="(c) 1999 VeriSign, Inc. - For authorized use only",
OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US
Alias: verisignclass2g2ca
Owner DN:
OU=VeriSign Trust Network,
OU="(c) 1998 VeriSign, Inc. - For authorized use only",
OU=Class 2 Public Primary Certification Authority - G2,
O="VeriSign, Inc.", C=US
Alias: verisignclass2g3ca
Owner DN: CN=VeriSign Class 2 Public Primary Certification Authority - G3,
OU="(c) 1999 VeriSign, Inc. - For authorized use only",
OU=VeriSign Trust Network,
O="VeriSign, Inc.", C=US
Alias: verisignclass3g2ca
Owner DN:
OU=VeriSign Trust Network,
OU="(c) 1998 VeriSign, Inc. - For authorized use only",
OU=Class 3 Public Primary Certification Authority - G2,
O="VeriSign, Inc.", C=US
Alias: verisignclass3g3ca
Owner DN: CN=VeriSign Class 3 Public Primary Certification Authority - G3,
OU="(c) 1999 VeriSign, Inc. - For authorized use only",
OU=VeriSign Trust Network,
O="VeriSign, Inc.", C=US
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 289
Push API Reference
This section contains reference information about each of the push APIs,
including the rules that call them, the format of the data contained in the
message, and the event type. The parser should look for the event type to
determine which rule caused the message.
The table below provides a quick summary of the rules and corresponding
push APIs.
No connection NoConnection
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 290
Rule Push API
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 291
AccountTransfer
Description
Contains detailed information about a device transferred from one account
to another.
Rule Name
SIM Account Change
Event Type
SIM_ACCOUNT_CHANGE
Source
<xs:complexType name="AccountTransferInfoType">
<xs:annotation>
<xs:documentation>
Detailed information about Account Transfer
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="iccid" type="xs:string" minOccurs="1"/>
<xs:element name="msisdn" type="xs:string" minOccurs="1"/>
<xs:element name="imei" type="xs:string" minOccurs="1"/>
<xs:element name="imsi" type="xs:string" minOccurs="1"/>
<xs:element name="previousSimState" type="xs:string" minOccurs="1"/>
<xs:element name="newSimState" type="xs:string" minOccurs="1"/>
<xs:element name="previousAccountId" type="xs:long" minOccurs="1"/>
<xs:element name="newAccountId" type="xs:long" minOccurs="1"/>
<xs:element name="previousAccountName" type="xs:string" minOccurs="1"/>
<xs:element name="newAccountName" type="xs:string" minOccurs="1"/>
<xs:element name="dateChanged" type="xs:dateTime" minOccurs="1"/>
<xs:element name="shippedDate" type="xs:dateTime" minOccurs="1"/>
<xs:element name="deferActionStartDate" type="xs:dateTime"/>
<xs:element name="deferActionPeriod" type="xs:int"/>
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute processContents="lax"/>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 292
AvailableStaticIpAddress
Description
Specifies the total number of fixed IP addresses in a pool and determines
how many are still available for assignment.
Rule Name
Available Static IP Address
Event Type
AVAILABLE_STATIC_IP_ADDRESS
Source
<xs:complexType name="AvailableStaticIpInfoType">
<xs:annotation>
<xs:documentation>
The detail information about Available Static IP action
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="apnName" type="xs:string" minOccurs="1"/>
<xs:element name="totalNumberOfIpAddresses" type="xs:string"
minOccurs="1/>
<xs:element name="numberOfAvailableIpAddresses" type="xs:string"
minOccurs="1"/>
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute processContents="lax"/>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 293
CtdUsage
Description
Contains cycle-to-date data usage information for the specified device
(ICCID).
Rule Name
Cycle To Date Data Usage
Event Type
CTD_USAGE
Source
<xs:complexType name="CtdUsageInfoType">
<xs:annotation>
<xs:documentation>
The information about SIM CTD Usage.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="iccid" type="xs:string"/>
<xs:element name="dataUsage" type="xs:string"/>
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute processContents="lax"/>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 294
CtdVoiceUsage
Description
Contains cycle-to-date voice usage information for the specified device
(ICCID).
Rule Name
Cycle To Date Voice Usage
Event Type
CTD_VOICE_USAGE
Source
<xs:complexType name="CtdVoiceUsageInfoType">
<xs:annotation>
<xs:documentation>
The information about SIM CTD Voice Usage
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="iccid" type="xs:string"/>
<xs:element name="ctdVoiceMoUsage" type="xs:string"/>
<xs:element name="ctdVoiceMtUsage" type="xs:string"/>
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute processContents="lax"/>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 295
CtdVoiceZUsage
Description
Contains cycle-to-date voice usage information in a zone for the specified
device (ICCID).
Rule Name
Cycle To Date Voice Usage in a Zone
Event Type
CTD_VOICE_ZUSAGE
Source
<xs:complexType name="CtdVoiceZUsageInfoType">
<xs:annotation>
<xs:documentation>
The information about SIM CTD Voice Usage in a zone.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="iccid" type="xs:string"/>
<xs:element name="ctdVoiceMoUsage" type="xs:string"/>
<xs:element name="ctdVoiceMtUsage" type="xs:string"/>
<xs:element name="zoneName" type="xs:string"/>
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute processContents="lax"/>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 296
CtdZUsage
Description
Contains cycle-to-date data usage information in a zone for the specified
device (ICCID).
Rule Name
Cycle To Date Data Usage in a Zone
Event Type
CTD_ZUSAGE
Source
<xs:complexType name="CtdZUsageInfoType">
<xs:annotation>
<xs:documentation>
The information about SIM CTD Usage in a zone.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="iccid" type="xs:string"/>
<xs:element name="dataUsage" type="xs:string"/>
<xs:element name="zoneName" type="xs:string"/>
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute processContents="lax"/>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 297
ImeiWhitelist
Description
Contains the IMEI value for a device that is not on the IMEI whitelist. Also
specifies whether Control Center blocked or allowed the data connection.
Rule Name
IMEI Whitelist Action
Event Type
IMEI_WHITELIST
Source
<xs:complexType name="ImeiWhitelistInfoType">
<xs:annotation>
<xs:documentation>
The detail information about Imei Whitelist action
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="iccid" type="xs:string" minOccurs="1"/>
<xs:element name="imsi" type="xs:string" minOccurs="1"/>
<xs:element name="msisdn" type="xs:string" minOccurs="1"/>
<xs:element name="accountName" type="xs:string" minOccurs="0"
maxOccurs="1"/>
<xs:element name="customerName" type="xs:string" maxOccurs="1"/>
<xs:element name="imei" type="xs:string" minOccurs="1"/>>
<xs:element name="whitelistAction" type="xs:string" minOccurs="1"/>
<xs:element name="dateAction" type="xs:dateTime" maxOccurs="1"/>
<xs:element name="simState" type="xs:string" maxOccurs="1"/>
<xs:element name="endConsumerId" type="xs:string" maxOccurs="1"/>
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute processContents="lax"/>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 298
LbsCellIdChange
Description
Provides location information for a device.
Rule Name
Change of Cell ID
Event Type
LBS_CELL_ID_CHANGE
Source
<xs:complexType name="LbsCellIdChangeInfoType">
<xs:annotation>
<xs:documentation>
Location based service cell Id change Info for sim
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="iccid" type="xs:string" minOccurs="1"/>
<xs:element name="msisdn" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="date" type="xs:dateTime" minOccurs="1" maxOccurs="1"/>
<xs:element name="newCellId" type="xs:long" minOccurs="1" maxOccurs="1"/>
<xs:element name="newCellLAC" type="xs:int" minOccurs="1" maxOccurs="1"/>
<xs:element name="newServingMCC" type="xs:int" minOccurs="1"
maxOccurs="1"/>
<xs:element name="newServingMNC" type="xs:int" minOccurs="1"
maxOccurs="1"/>
<xs:element name="newAccuracy" type="xs:int" minOccurs="0"
maxOccurs="1"/>
<xs:element name="newCity" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="newState" type="xs:string" minOccurs="0"
maxOccurs="1"/>
<xs:element name="newCountry" type="xs:string" minOccurs="0"
maxOccurs="1"/>
<xs:element name="oldCellId" type="xs:long" minOccurs="0" maxOccurs="1"/>
<xs:element name="oldCellLAC" type="xs:int" minOccurs="0" maxOccurs="1"/>
<xs:element name="oldServingMCC" type="xs:int" minOccurs="0"
maxOccurs="1"/>
<xs:element name="oldServingMNC" type="xs:int" minOccurs="0"
maxOccurs="1"/>
<xs:element name="oldAccuracy" type="xs:int" minOccurs="0"
maxOccurs="1"/>
<xs:element name="oldCity" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="oldState" type="xs:string" minOccurs="0"
maxOccurs="1"/>
<xs:element name="oldCountry" type="xs:string" minOccurs="0"
maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 299
MonthlyDataUsage
Description
Contains information about monthly billable data usage for pooled rate
plans.
Rule Name
Monthly Pooled Data Usage
Event Type
MONTHLY_DATA_USAGE_EXCEEDED
Source
<xs:complexType name="MonthlyDataUsageInfoType">
<xs:annotation>
<xs:documentation>
The information is about monthly billable data usage for pooled rate
plans
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="accountName" type="xs:string" minOccurs="1"
maxOccurs="1"/>
<xs:element name="zoneName" type="xs:string" minOccurs="1"
maxOccurs="1"/>
<xs:element name="ratePlanName" type="xs:string" minOccurs="1"
maxOccurs="1"/>
<xs:element name="totalIncludedZoneUsage" type="xs:decimal" minOccurs="1"
maxOccurs="1"/>
<xs:element name="totalActualZoneUsage" type="xs:decimal" minOccurs="1"
maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 300
MonthlySmsUsage
Description
Contains information about monthly billable SMS usage for pooled rate
plans.
Rule Name
Monthly Pooled SMS Usage
Event Type
MONTHLY_SMS_USAGE_EXCEEDED
Source
<xs:complexType name="MonthlySmsUsageInfoType">
<xs:annotation>
<xs:documentation>
The information is about monthly billable SMS usage for pooled rate
plans
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="accountName" type="xs:string" minOccurs="1"
maxOccurs="1"/>
<xs:element name="zoneName" type="xs:string" minOccurs="1"
maxOccurs="1"/>
<xs:element name="smsUsageType" type="xs:string" minOccurs="1"
maxOccurs="1"/>
<xs:element name="ratePlanName" type="xs:string" minOccurs="1"
maxOccurs="1"/>
<xs:element name="totalIncludedZoneUsage" type="xs:decimal" minOccurs="1"
maxOccurs="1"/>
<xs:element name="totalActualZoneUsage" type="xs:decimal" minOccurs="1"
maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 301
MsisdnChange
Description
Contains information about a device with a MSISDN change.
Rule Name
SIM MSISDN Change
Event Type
MSISDN_CHANGE
Source
<xs:complexType name="MsisdnChangeInfoType">
<xs:annotation>
<xs:documentation>
The detail information about msisdn change
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="iccid" type="xs:string" maxOccurs="1"/>
<xs:element name="imsi" type="xs:string" maxOccurs="1"/>
<xs:element name="imei" type="xs:string" maxOccurs="1"/>
<xs:element name="accountId" type="xs:long" maxOccurs="1"/>
<xs:element name="simState" type="xs:string" maxOccurs="1"/>
<xs:element name="customerName" type="xs:string" maxOccurs="1"/>
<xs:element name="endConsumerId" type="xs:string" maxOccurs="1"/>
<xs:element name="oldMsisdn" type="xs:string" maxOccurs="1"/>
<xs:element name="newMsisdn" type="xs:string" maxOccurs="1"/>
<xs:element name="accountName" type="xs:string" maxOccurs="1"/>
<xs:element name="dateChanged" type="xs:dateTime" maxOccurs="1"/>
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute processContents="lax"/>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 302
NetworkRegistrationInZone
Description
Contains information about a device that registered in a given zone. If an
SS7 event on a GSM/GPRS network triggers the rule, then the GT Address
field will contain a value. If a Diameter event on an LTE network triggers
the rule, then the Host Name field will contain a value. Any client-side
program that processes the push notification must be able to handle these
two different fields.
Rule Name
Network Registration in a Zone
Event Type
NETWORK_REGISTER_IN_ZONE
Source
<xs:complexType name="NetworkRegistrationInZoneInfoType">
<xs:annotation>
<xs:documentation>
Detailed information about SIM registration in a given zone
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="iccid" type="xs:string"/>
<xs:element name="accountName" type="xs:string" minOccurs="0"
maxOccurs="1"/>
<xs:element name="ratePlanName" type="xs:string" minOccurs="0"
maxOccurs="1"/>
<xs:element name="gtAddress" type="xs:string" minOccurs="0"
maxOccurs="1"/>
<xs:element name="zoneName" type="xs:string"/>
<xs:element name="eventDate" type="xs:dateTime" minOccurs="1"/>
<xs:element name="hostName" type="xs:string" minOccurs="0"
maxOccurs="1"/>
</xs:sequence>
<xs:anyAttribute processContents="lax"/>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 303
NoConnection
Description
Contains information about a device with no connections within the given
period.
Rule Name
No connection
Event Type
SESSION_NO_CONNECTION
Source
<xs:complexType name="NoConnectionInfoType">
<xs:annotation>
<xs:documentation>
The information about a SIM has no connections within latest given
hours.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="iccid" type="xs:string" minOccurs="1"/>
<xs:element name="accountName" type="xs:string" minOccurs="0"
maxOccurs="1"/>
<xs:element name="ratePlanName" type="xs:string" minOccurs="0"
maxOccurs="1"/>
<xs:element name="evaluatingTime" type="xs:dateTime" minOccurs="1"/>
<xs:element name="noConnectionThreshold" type="xs:long" minOccurs="1"/>
</xs:sequence>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 304
OrderCallback
Description
Contains detailed information about the SIM order.
Rule Name
Not applicable
Event Type
ORDER_CALLBACK_RESPONSE
Source
<xs:complexType name="OrderResponseType">
<xs:annotation>
<xs:documentation>
The detail information about the SIM Order
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:annotation>
<xs:documentation>
The push notification should contain orderId, orderStatus, acctID,
price and quantity.
</xs:documentation>
</xs:annotation>
<xs:element name="contactName" type="xs:string" minOccurs="0"/>
<xs:element name="contactPhone" type="xs:string" minOccurs="0"/>
<xs:element name="contactFax" type="xs:string" minOccurs="0"/>
<xs:element name="email" type="xs:string" minOccurs="0"/>
<xs:element name="orderId" type="xs:long" minOccurs="0"/>
<xs:element name="orderStatus" type="xs:string" minOccurs="0"/>
<xs:element name="orderDate" type="xs:dateTime" minOccurs="0"/>
<xs:element name="acctName" type="xs:string" minOccurs="0"/>
<xs:element name="po" type="xs:string" minOccurs="0"/>
<xs:element name="implementationDate" type="xs:dateTime" minOccurs="0"/>
<xs:element name="expedited" type="xs:string" minOccurs="0"/>
<xs:element name="acctId" type="xs:long" minOccurs="0"/>
<xs:element name="price" type="xs:decimal" minOccurs="0"/>
<xs:element name="quantity" type="xs:int" minOccurs="0"/>
<xs:element name="orderTotal" type="xs:string" minOccurs="0"/>
<xs:element name="desc" type="xs:string" minOccurs="0"/>
<xs:element name="opn" type="xs:string" minOccurs="0"/>
<xs:element name="operatorAcctId" type="xs:string" minOccurs="0"/>
<xs:element name="ratePlan" type="xs:string" minOccurs="0"/>
<xs:element name="communicationPlan" type="xs:string" minOccurs="0"/>
<xs:element name="shipStatus" type="xs:string" minOccurs="0"/>
<xs:element name="shipAddr1" type="xs:string" minOccurs="0"/>
<xs:element name="shipAddr2" type="xs:string" minOccurs="0"/>
<xs:element name="city" type="xs:string" minOccurs="0"/>
<xs:element name="stateRegion" type="xs:string" minOccurs="0"/>
<xs:element name="country" type="xs:string" minOccurs="0"/>
<xs:element name="postalCode" type="xs:string" minOccurs="0"/>
<xs:element name="methodAndShippingCompany" type="xs:string"
minOccurs="0"/>
<xs:element name="custAcctNo" type="xs:string" minOccurs="0"/>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 305
<xs:element name="notes" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 306
Past24HDataUsage
Description
Contains the ICCID and data usage for a device whose usage has exceeded a
specified amount within the past 24 hours.
Rule Name
Recent Data Usage (24 hours)
Event Type
PAST24H_DATA_USAGE_EXCEEDED
Source
<xs:complexType name="Past24HDataUsageInfoType">
<xs:annotation>
<xs:documentation>
The information about SIM Past 24 hours Data Usage
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="iccid" type="xs:string"/>
<xs:element name="dataUsage" type="xs:string"/>
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute processContents="lax"/>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 307
Past24HVoiceUsage
Description
Contains the ICCID and voice usage (both MO and MT) for a device whose
usage has exceeded a specified amount within the past 24 hours.
Rule Name
Recent Voice Usage (24 hours)
Event Type
PAST24H_VOICE_USAGE
Source
<xs:complexType name="Past24HVoiceUsageInfoType">
<xs:annotation>
<xs:documentation>
The information about SIM Past 24 hours Voice Usage
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="iccid" type="xs:string"/>
<xs:element name="dailyVoiceMoUsage" type="xs:string"/>
<xs:element name="dailyVoiceMtUsage" type="xs:string"/>
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute processContents="lax"/>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 308
PremiumServiceOrderType
Description
Contains the information about operator-created Marketplace package
offerings. Control Center sends a notification when an enterprise user
orders an operator-created package from Marketplace.
Rule Name
Not applicable
Event Type
MARKETPLACE_THIRDPARTY_ORDER_RESPONSE
Source
<xs:complexType name="PremiumServiceOrderType">
<xs:annotation>
<xs:documentation>
It contains information about third-party provided Marketplace
orders.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:annotation>
<xs:documentation>
The push notification should contain information for all
Marketplace order push notifications for a third-party
package lifecycle, which includes Activation, Cancellation,
and Trial End notification.
</xs:documentation>
</xs:annotation>
<xs:element name="alertType" type="xs:string">
<xs:annotation>
<xs:documentation>
"NEW" : Order Created Alert
"CANCEL" : Order Cancelled Alert
"TRIALEND" : Order Trial period end Alert
"UNKNOWN" : Unknown
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="orderId" type="xs:long" minOccurs="0"/>
<xs:element name="acctId" type="xs:long" minOccurs="0"/>
<xs:element name="operatorId" type="xs:long" minOccurs="0"/>
<xs:element name="operatorAcctId" type="xs:long" minOccurs="0"/>
<xs:element name="orderStatus" type="xs:string">
<xs:annotation>
<xs:documentation>
"A" : Active
"C" : Cancelled
"P" : Processing
"T" : In Trial
"U" : Unknown state
</xs:documentation>
</xs:annotation>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 309
</xs:element>
<xs:element name="acctName" type="xs:string" minOccurs="0"/>
<xs:element name="operatorName" type="xs:string" minOccurs="0"/>
<xs:element name="packageId" type="xs:long" minOccurs="0"/>
<xs:element name="packageName" type="xs:string" minOccurs="0"/>
<xs:element name="serviceType" type="xs:string" minOccurs="0"/>
<xs:element name="orderedBy" type="xs:string" minOccurs="0"/>
<xs:element name="acctPrimaryContactName" type="xs:string"
minOccurs="0"/>
<xs:element name="acctPrimaryContactEmail" type="xs:string"
minOccurs="0"/>
<xs:element name="quantity" type="xs:long" />
<xs:element name="orderDate" type="xs:dateTime">
<xs:annotation>
<xs:documentation>
Date and time when the Marketplace order was created for
the account.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="cancelledDate" type="xs:dateTime">
<xs:annotation>
<xs:documentation>
Date and time when the Marketplace order was cancelled for
the account.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="trialEnabled" type="xs:boolean" minOccurs="1"
maxOccurs="1"/>
<xs:element name="trialStartDate" type="xs:dateTime">
<xs:annotation>
<xs:documentation>
Date and time when the Marketplace order free trial starts
for the account.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="trialEndDate" type="xs:dateTime">
<xs:annotation>
<xs:documentation>
Date and time when the Marketplace order free trial ends
for the account.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="billStartDate" type="xs:dateTime">
<xs:annotation>
<xs:documentation>
Date and time of Account Billing start date.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="billEndDate" type="xs:dateTime">
<xs:annotation>
<xs:documentation>
Date and time of Account Billing end date.
</xs:documentation>
</xs:annotation>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 310
</xs:element>
<xs:element name="customFields" type="PrmSvcOrderCustomFieldsType"
minOccurs="0" maxOccurs="5"/>
<xs:element name="errorMsg" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 311
RegistrationInZone
Description
Contains information about a device that registered in a given zone.
Rule Name
Registration in a Zone
Event Type
REGISTER_IN_ZONE
Source
<xs:complexType name="RegistrationInZoneInfoType">
<xs:annotation>
<xs:documentation>
The detail information about SIM registered in a given zone
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="iccid" type="xs:string"/>
<xs:element name="accountName" type="xs:string" minOccurs="0"
maxOccurs="1"/>
<xs:element name="ratePlanName" type="xs:string" minOccurs="0"
maxOccurs="1"/>
<xs:element name="gtAddress" type="xs:string"/>
<xs:element name="zoneName" type="xs:string"/>
<xs:element name="eventDate" type="xs:dateTime" minOccurs="1"/>
</xs:sequence>
<xs:anyAttribute processContents="lax"/>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 312
SecureSimAlert
Description
Contains the ICCID of a device with a Secure SIM credential mismatch.
Rule Name
Secure SIM
Event Type
SECURE_SIM
Source
<xs:complexType name="SecureSimAlertInfoType">
<xs:annotation>
<xs:documentation>
The information about Secure SIM credential mismatch.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="iccid" type="xs:string"/>
<xs:element name="dateAdded" type="xs:dateTime"/>
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute processContents="lax"/>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 313
Session
Description
Contains session information for a particular device.
If the IP address uses the IPv4 format, it appears in the ipAddress field. If
the IP address uses the IPv6 format, it appears in the ipv6Address field.
Rule Name
l Session End
l Session Start
Event Type
l SESSION_STOP
l SESSION_START
Source
<xs:complexType name="SessionInfoType">
<xs:annotation>
<xs:documentation>
The detail information about SIM session.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="iccid" type="xs:string"/>
<xs:element name="ipAddress" type="xs:string"/>
<xs:element name="ipv6Address" type="xs:string" minOccurs="0"/>
<xs:element name="dateSessionStarted" type="xs:dateTime" minOccurs="1">
<xs:annotation>
<xs:documentation>
Date when the session started
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="dateSessionEnded" type="xs:dateTime" nillable="true"
minOccurs="1">
<xs:annotation>
<xs:documentation>
Date when the session ended (if applicable)
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute processContents="lax"/>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 314
SimDataLimit
Description
Contains information about a device on a prepaid rate plan that comes
close to using its included usage.
Rule Name
SIM Data Limit
Event Type
DATA_LIMIT
Source
<xs:complexType name="SimDataLimitInfoType">
<xs:annotation>
<xs:documentation>
The information about a SIM on a prepaid plan comes close to using
its included usage.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="iccid" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="accountName" type="xs:string" minOccurs="0"
maxOccurs="1"/>
<xs:element name="ratePlanName" type="xs:string" minOccurs="0"
maxOccurs="1"/>
<xs:element name="totalIncludedUsage" type="xs:decimal" minOccurs="0"
maxOccurs="1"/>
<xs:element name="totalActualUsage" type="xs:decimal" minOccurs="0"
maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 315
SimExpiration
Description
Contains information about a device on a prepaid rate plan that comes
close to the rate plan expiration date.
Rule Name
SIM Expiration
Event Type
EXPIRATION
Source
<xs:complexType name="SimExpirationInfoType">
<xs:annotation>
<xs:documentation>
The information about a SIM on a prepaid plan comes close to its
expiration date.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="iccid" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="accountName" type="xs:string" minOccurs="0"
maxOccurs="1"/>
<xs:element name="ratePlanName" type="xs:string" minOccurs="0"
maxOccurs="1"/>
<xs:element name="expirationDate" type="xs:date" minOccurs="0"
maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 316
SimFieldChange
Description
Contains information about a device with a change to a custom field.
Rule Name
SIM Custom Field Change
Event Type
SIM_CUSTOM_FIELD_CHANGE
Source
<xs:complexType name="SimFieldChangeType">
<xs:annotation>
<xs:documentation>
The detail information about a change in a SIM field
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="iccid" type="xs:string" minOccurs="1"/>
<xs:element name="oldValue" type="xs:string" minOccurs="1"/>
<xs:element name="newValue" type="xs:string" minOccurs="1"/>
<xs:element name="fieldName" type="xs:string" minOccurs="1"/>
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute processContents="lax"/>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 317
SimImeiChange
Description
Contains the current and previous IMEI values for a device.
Rule Name
IMEI Change
Event Type
IMEI_CHANGE
Source
<xs:complexType name="SimImeiChangeInfoType">
<xs:annotation>
<xs:documentation>
The detail information about SIM Imei Change
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="iccid" type="xs:string" minOccurs="1"/>
<xs:element name="previousImei" type="xs:string" minOccurs="1"/>
<xs:element name="currentImei" type="xs:string" minOccurs="1"/>
<xs:element name="dateChanged" type="xs:dateTime" minOccurs="1"/>
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute processContents="lax"/>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 318
SimPlanComplete
Description
Contains the rate plan name and expiration date for a device on a prepaid
rate plan whose term has just expired.
Rule Name
SIM Plan Completion
Event Type
PREPAID_PLAN_COMPLETION
Source
<xs:complexType name="SimPlanCompleteInfoType">
<xs:annotation>
<xs:documentation>
The information about Sim's prepaid plan end.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="iccid" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="accountName" type="xs:string" minOccurs="0"
maxOccurs="1"/>
<xs:element name="ratePlanName" type="xs:string" minOccurs="0"
maxOccurs="1"/>
<xs:element name="expirationDate" type="xs:date" minOccurs="0"
maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 319
SimRatePlanChange
Description
Contains the names of the old and new rate plans for a device whose rate
plan has just changed.
Rule Name
SIM Rate Plan Change
Event Type
SIM_RATEPLAN_CHANGE
Source
<xs:complexType name="SimRatePlanChangeInfoType">
<xs:annotation>
<xs:documentation>
The detail information about SIM Rate Plan Change
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="iccid" type="xs:string" minOccurs="1"/>
<xs:element name="oldRatePlanName" type="xs:string" minOccurs="1"/>
<xs:element name="newRatePlanName" type="xs:string" minOccurs="1"/>
<xs:element name="dateChanged" type="xs:dateTime" minOccurs="1"/>
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute processContents="lax"/>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 320
SimStateChange
Description
For a device whose SIM state has changed, contains the prior and current
SIM state values.
Rule Name
SIM State Change
Event Type
SIM_STATE_CHANGE
Source
<xs:complexType name="SimStateChangeInfoType">
<xs:annotation>
<xs:documentation>
The detail information about SIM State Change
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="iccid" type="xs:string" minOccurs="1"/>
<xs:element name="previousState" type="xs:string" minOccurs="1"/>
<xs:element name="currentState" type="xs:string" minOccurs="1"/>
<xs:element name="dateChanged" type="xs:dateTime" minOccurs="1"/>
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute processContents="lax"/>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 321
SmsMoReceived
Description
Contains information about a message sent by a device to a specific short
code. The SMPP data coding values are:
l 0 — Default Alphabet
l 1 — IRA/IA5 (CCITT T.50)/ASCII (ANSI X3.4)
l 3 — Latin 1 (ISO-8859-1)
l 4 — Octet unspecified (8-bit binary); message content is encoded
with Base64
l 8 — UCS2 (ISO/IEC-10646)
Rule Name
SMS-MO Received
Event Type
SMS_MO_RECEIVED
Source
<xs:complexType name="SmsMoReceivedInfoType">
<xs:annotation>
<xs:documentation>
The information about SMS MO received event. When the smppDataCoding
is 4, message content is encoded with Base64.
SMPP data coding:
0 Default Alphabet
1 IRA/IA5 (CCITT T.50)/ASCII (ANSI X3.4)
3 Latin 1 (ISO-8859-1)
4 Octet unspecified (8-bit binary)
8 UCS2 (ISO/IEC-10646)
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="iccid" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="accountName" type="xs:string" minOccurs="0"
maxOccurs="1"/>
<xs:element name="customerName" type="xs:string" minOccurs="0"
maxOccurs="1"/>
<xs:element name="msisdn" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="messageContent" type="xs:string" minOccurs="0"
maxOccurs="1"/>
<xs:element name="smppDataCoding" type="xs:int" minOccurs="0"
maxOccurs="1"/>
<xs:element name="shortCode" type="xs:string" minOccurs="1"
maxOccurs="1"/>
<xs:element name="receivedTime" type="xs:dateTime" minOccurs="1"
maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 322
SmsUsage
Description
Contains SMS usage information for a device.
Rule Name
Recent SMS Usage
Event Type
SMS_USAGE
Source
<xs:complexType name="SmsUsageInfoType">
<xs:annotation>
<xs:documentation>
The information about SMS Usage.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="iccid" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="accountName" type="xs:string" minOccurs="0"
maxOccurs="1"/>
<xs:element name="ratePlanName" type="xs:string" minOccurs="0"
maxOccurs="1"/>
<xs:element name="alertType" type="xs:string" minOccurs="1"
maxOccurs="1"/>
<xs:element name="totalDailySmsUsage" type="xs:decimal" minOccurs="0"
maxOccurs="1"/>
<xs:element name="totalCtdSmsUsage" type="xs:decimal" minOccurs="1"
maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 323
TooFewDailyConnection
Description
Contains information about the number of daily sessions for a device that
has connected less often than expected.
Rule Name
Number of Session Connections (24 hours)
Event Type
PAST24H_SESSION_USAGE_LESSTHAN
Source
<xs:complexType name="TooFewDailyConnectionInfoType">
<xs:annotation>
<xs:documentation>
The information about a SIM has fewer connections than expected in
trailing 24 hours.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="iccid" type="xs:string" minOccurs="1"/>
<xs:element name="accountName" type="xs:string" minOccurs="0"
maxOccurs="1"/>
<xs:element name="ratePlanName" type="xs:string" minOccurs="0"
maxOccurs="1"/>
<xs:element name="currentSessionUsage" type="xs:long" minOccurs="1"/>
<xs:element name="sessionUsageThreshold" type="xs:long" minOccurs="1"/>
</xs:sequence>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 324
TooManyCtdConnection
Description
Contains information about a device with more connections than expected
in the current billing cycle.
Rule Name
Too Many Connections (Cycle to Date)
Event Type
CTD_SESSION_USAGE_EXCEEDED
Source
<xs:complexType name="TooManyCtdConnectionInfoType">
<xs:annotation>
<xs:documentation>
The information about a SIM has more connections than expected in the
current billing cycle.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="iccid" type="xs:string" minOccurs="1"/>
<xs:element name="accountName" type="xs:string" minOccurs="0"
maxOccurs="1"/>
<xs:element name="ratePlanName" type="xs:string" minOccurs="0"
maxOccurs="1"/>
<xs:element name="currentSessionUsage" type="xs:long" minOccurs="1"/>
<xs:element name="sessionUsageThreshold" type="xs:long" minOccurs="1"/>
</xs:sequence>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 325
TooManyDailyConnection
Description
Contains information about the number of daily sessions for a device that
has connected more often than expected.
Rule Name
Number of Session Connections (24 hours)
Event Type
PAST24H_SESSION_USAGE_EXCEEDED
Source
<xs:complexType name="TooManyDailyConnectionInfoType">
<xs:annotation>
<xs:documentation>
The information about a SIM has more connections than expected in
trailing 24 hours.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="iccid" type="xs:string" minOccurs="1"/>
<xs:element name="accountName" type="xs:string" minOccurs="0"
maxOccurs="1"/>
<xs:element name="ratePlanName" type="xs:string" minOccurs="0"
maxOccurs="1"/>
<xs:element name="currentSessionUsage" type="xs:long" minOccurs="1"/>
<xs:element name="sessionUsageThreshold" type="xs:long" minOccurs="1"/>
</xs:sequence>
</xs:complexType>
© 2020 Cisco Systems, Inc. Cisco Confidential. All rights reserved. API User Guide 326