Download PDF
Download page Compliance API.
Compliance API
Upcoming Deprecation
The Do Not Call (DNC) List Management API methods (/compliance/dnc namespace methods) have been deprecated in the Fall 23 release. You should use the Dialtime DNC methods instead. To test the Dialtime DNC methods, contact the LiveVox Customer Care Team to enable them.
Introduction
The Compliance API provides support for features such as Do Not Call List management and access to call recordings.
See the LiveVox API Overview for a general description of how to interact with the API.
Prerequisites
- To obtain a valid Session ID, you must have successfully logged into the LiveVox platform. See Generating a Session ID for more information.
- To obtain an Access Token that is used in API requests, you must have an active subscription to the Configuration API. See Access Tokens for details.
- All messages in this API may be subject to rate limits and other restrictions.
User Roles
Unless otherwise specified in this documentation, for a user to be able to access any data through the Compliance API, the user must belong to the Sysadmin, Superuser, or Manager role. For all "DNC List Management" API methods other than "Is Blocked", users belonging to the Manager role must also have the "Edit DNC Lists" (or "Access to DNC") Optional Power configured. These roles are defined in the LiveVox Configuration Manager and correspond to users who can access LiveVox configuration data through the LiveVox user interfaces.
Within a session generated by an Agent, the following methods of the Compliance API may be accessed. Attempts to access any other API method of the Compliance API will return a 403 Forbidden
response.
- Read DNC
- Create DNC
- Is Blocked
- List DNC Entries
- Get DNC List Info
- Find Matching DNC
- Zip Area Mismatch
Do Not Call Rules
Do Not Call (DNC) lists are a crucial component for supporting client compliance regulations. A DNC entry effectively prohibits calling. These prohibitions can be defined in a number of ways:
- Based on phone number
- Based on account number
- Based on phone number and account number
- Based on zip code
These entries can also be defined as being either permanent or a daily restriction. Daily restrictions are cleared nightly. DNC entries can be associated with a particular Service, or they can be associated with the Client. For the latter type, the DNC entry will apply to all the Services for that Client.
The API does not check the Client-level DNC configuration in order to disallow particular types of DNC entries from being created. For example, a Client may be configured so that only Permanent DNC entries can be created through the DNC Editor in the LiveVox Portal. This configuration exists mainly so that users do not have to see configuration screens that are not relevant to way their business operates. In this example, the API will still support the ability to create Daily DNC entries for this Client. Therefore, it is the responsibility of the API consumer to comply with the requirements of the business.
A major scenario where DNC rules apply is during preview dialing. At that point, an agent may need to determine if a number should be called (see IsBlocked). To clarify the behavior of this, the following example is provided.
The following table provides an example DNC configuration. Blank cells indicate no value is present.
Client ID and DNC Type are not relevant to the following example.
DNC ID | Service ID | Phone Number | Account Number | Zip Code |
---|---|---|---|---|
1 | 123 | 4152257000 | ||
2 | 456 | 6173432000 | A12345 | |
3 | 2016668000 | A12345 | ||
4 | 5034441000 | |||
5 | 94110 | |||
6 | A6789 |
The IsBlocked
requires a Service as input since all dialing is associated with a Service.
IsBlocked Input | Results | Applicable DNC Entries | Notes |
---|---|---|---|
phone = 4152257000, | true | 1 | |
phone = 5034441000, service = 123 | true | 4 | The DNC entry for this phone number is not assigned to a particular Service so it applies to every Service for the Client. |
phone = 3133335000, service = 123 | false | - | This phone number is not present in the DNC configuration. |
phone = 6173432000, account = A12345, service = 456 | true | 2 | |
phone = 4152257000, account = A12345, service = 123 | true | 1 | The DNC entry is not associated with a particular account, so the phone number will be blocked regardless of the account number used in the request. |
phone = 7024441000, account = A6789, service = 123 | true | 6 | The DNC entry is not associated with a particular phone number, so the account will be blocked for any phone number used in the request. |
phone = 4152257000, account = A12345, service = 456 | false | - | There is no DNC entry for this phone number for this particular Service, nor is there one for the Client. |
phone = 2016668000, account = A6789, service = 789 | false | - | While there is a Client-level DNC entry that contains this phone number (#3), it is associated with a different account number and only applies to that account. |
phone = 6173432000, service = 456 | false | - | While there is a Client-level DNC entry that contains this phone number (#2), it is associated with an account number and only applies to that account. |
account = A12345, service = 456 | false | - | |
zip = 94110, service = 456 | true | 5 |
Wildcard Support
It is possible for DNC entries on the LiveVox platform to include wildcards, such as a phone number entry represented as 209*******
. Such an entry would instruct the LiveVox platform to block all calls to the (209) area code. This is a "legacy" feature. The proper way to have the LiveVox platform block dialing to entire area codes is to use Dialing Profiles. This instructs the LiveVox dialer to block calls to the area code, at dial-time.
The DNC API method IsBlocked
does not support wildcards directly. Here is an example. Let's say that there is a single entry in a Client's Daily DNC list, which is 209*******
. If you use the IsBlocked
method and pass in the string 2093334545
, the response will be false
because that entry is not in the DNC list, and the DNC API IsBlocked
method does not take wildcards into account. However, if you passed the string 209******
into the IsBlocked
method, it would return true
.
API Methods
Compliance Check
The Compliance Check methods of the Compliance API provide the ability to perform certain compliance checks in real-time. Currently, there is an IsBlocked method that allows you to determine if a particular phone number, account number, phone + account, or zip code should be blocked based on your DNC Lists; and a ZipAreaMatch method which allows you to determine if an area code and zip code are a match.
Is Blocked
Description: Determines if the provided information is covered by one or more DNC entries. If so, the number is blocked and cannot be called. This will check all applicable DNC lists. See DNC Rules for more information and examples.
In addition to checking the DNC lists, the Is Blocked method will also check the LiveVox ACCOUNT
table to check if the Do Not Dial
and Do Not Dial Daily
flags are set for the Account. The flags may be set by an Agent through their agent desktop.
Method: GET /compliance/complianceCheck/isBlocked?[client={clientId}]&service={serviceId}&phone={phone}[&account={account}&zip={zip}]
Parameters:
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
client | clientId | Integer (ID) | No | Identifies which Client the query pertains to. |
service | serviceId | Integer (ID) | Yes | If a Service ID is provided, the DNC entries for this particular Service are checked in addition to the "generic" Client ones. |
phone | phone | String | No* | At least one of phone, account, or zip must be present for the request to be valid. See DNC Rules for more information. |
account | account | String | ||
zip | zip | String |
Body:
None
Response Code: 200 OK
Body:
Key or Attribute | Type | Mandatory? | Description |
---|---|---|---|
result | Boolean | Yes | Indicates whether or not the call should be blocked. See DNC Rules for more information. |
#Request (JSON)
Get /compliance/complianceCheck/isBlocked?client=93119&service=93126&phone=4155553761&account=QA1619323260000&Zip=94114
Host: localhost.com
Content-Type: application/json
Accept: application/json
#Response
200 OK
Content-Type: application/json
{
"result": false
}
ZipAreaMatch
Description: Checks to see if a zip code and area code match, a match is determined based on the type
selected.
Method: POST /compliance/complianceCheck/zipAreaMatch
Parameters:
None
Body(JSON):
Key | Type | Mandatory? | Description |
---|---|---|---|
areaCode | String | Yes | The area code to be compared. |
type | Enum | Yes | Determines what is classified as a "match", when the zip and area code match a
|
zipCode | String | Yes | The zip code to be compared. |
Response Code: 200 OK
Body:
Key or Attribute | Type | Mandatory? | Description |
---|---|---|---|
result | boolean | Yes | Returns a true if the zip and area code "match", otherwise a false is returned. |
Zip Code and Area Code Match
#Request (JSON)
POST /compliance/complianceCheck/zipAreaMatchs
Host: localhost.com
Content-Type: application/json
Accept: application/json
{
"areaCode": 415,
"zipCode": 94111,
"type": "DIAL_TIME"
}
#Response
200 OK
Content-Type: application/json
{"result": true}
Zip Code and Area Code Don't Match
#Request (JSON)
POST /compliance/complianceCheck/zipAreaMatchs
Host: localhost.com
Content-Type: application/json
Accept: application/json
{
"areaCode": 415,
"zipCode": 10010,
"type": "DIAL_TIME"
}
#Response
200 OK
Content-Type: application/json
{"result": false}
Dialing Profiles
The Dialing Profile methods of the Compliance API provide the ability to List, Get List Info, Read, Create, Update, and Delete Dialing Profiles for a Client. Dialing Profiles describe the hours and/or days of the week that it is OK to dial consumers in a particular area code, state, or country.
Create Dialing Policy
Description: Adds a policy to an existing Dialing Profile.
User Roles: Sysadmin, Superuser, or IT User
Method: PUT /compliance/dialingProfiles/{id}/policies
Parameters:
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
id | profileId | Integer (ID) | Yes | The ID of the Dialing Profile to be updated. |
Body(JSON):
Key | Type | Mandatory? | Description |
---|---|---|---|
dayOfWeek | Enum | Yes | The day of the week the policy will restrict, possible values are:
|
doNotDial | Boolean | No | If set to true any numbers matching the policy will not be dialed. |
doNotLeaveMessage | Boolean | No | if set to true any numbers matching the policy will not have messages left. |
state | Enum | No* | The state where the policy applies, possible values include any state two-letter abbreviation. |
areaCode | String | The area code where the policy applies. | |
startTime | Time | No | For the region and day(s) defined, if dialing is allowed, contacts will not start before this time. If this is not included in the response, the policy is in effect for the entire day(s) defined in dayOfWeek . |
endTime | Time | No | For the region and day(s) defined, if dialing is allowed, contacts will not be allowed after this time. If this is not included in the response, the policy is in effect for the entire day(s) defined in dayOfWeek . |
A state or area code or both must be included in the request.
Response Code: 201 Created
Body:
Key | Type | Mandatory? | Description |
---|---|---|---|
id | Integer (ID) | Yes | The ID of the newly created Dialing Policy. |
Add a policy to an existing Dialing Profile
#Request (JSON)
PUT /compliance/dialingProfiles/12670/policies
Host: localhost.com
Content-Type: application/json
Accept: application/json
{"dayOfWeek":"THURSDAY",
"doNotDial":"false",
"doNotLeaveMessage":"true",
"state":null,
"areaCode":"408",
"startTime":null,
"endTime":null}}
#Response
201 Created
Content-Type: application/json
{"id": 234565}
Create Dialing Profiles
Description: Creates a new Dialing Profile.
User Roles: Sysadmin, Superuser, or IT User
Method: POST /compliance/dialingProfiles
Parameters:
None
Body:
Key | Type | Mandatory? | Description | |||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name | String | Yes | Name of the Dialing Profile that will be created. | |||||||||||||||||||||||||||||||||||
description | String | No | Description of the Dialing Profile that will be created. | |||||||||||||||||||||||||||||||||||
policy | Array | No | An array of policies will be created under the Dialing Profile.
A state or area code or both must be included in the request. |
Response Code: 201 Created
Body:
Key | Type | Mandatory? | Description |
---|---|---|---|
id | Integer (ID) | Yes | The ID of the newly created Dialing Profile. |
Create a new Dialing Profile
#Request (JSON)
POST /compliance/dialingProfiles
Host: localhost.com
Content-Type: application/json
Accept: application/json
{
"name": "For Documentation",
"description": "used for documentation",
"policy": [
{
"dayOfWeek": "WEEKDAY",
"doNotDial": "false",
"doNotLeaveMessage": "true",
"country": null,
"state": "KS",
"areaCode": null,
"startTime": null,
"endTime": null
},
{
"dayOfWeek": "ALL",
"doNotDial": "true",
"doNotLeaveMessage": "true",
"country": null,
"state": null,
"areaCode": "410",
"startTime": null,
"endTime": null
},
{
"dayOfWeek": "MONDAY",
"doNotDial": "false",
"doNotLeaveMessage": "false",
"country": null,
"state": "CA",
"areaCode": "415",
"startTime": "1391184000",
"endTime": "1391234400"
}
]
}
#Response (JSON)
201 Created
Content-Type: application/json
{"id": 12670}
Request to create a new Dialing Policy with state and area code mismatch
#Request (JSON)
POST /compliance/dialingProfiles
Host: localhost.com
Content-Type: application/json
Accept: application/json
{
"name": "For Documentation",
"description": "used for documentation",
"policy": [
{
"dayOfWeek": "WEEKDAY",
"doNotDial": "false",
"doNotLeaveMessage": "true",
"country": null,
"state": "KS",
"areaCode": 415,
"startTime": null,
"endTime": null
}
]
}
#Response (JSON)
400 Bad Request
Content-Type: application/json
{
"errorCode": 202,
"errorMessage": "Area code/state mismatch"
}
Delete Dialing Policy
Description: Removes an existing policy from a Dialing Profile.
User Roles: Sysadmin, Superuser, or IT User
Method: DELETE /compliance/dialingProfiles/{id}/policies/{policy}
Parameters:
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
id | profileId | Integer (ID) | Yes | The ID of the Dialing Profile to be updated. |
policy | policyId | Integer (ID) | Yes | The ID of the policy to be removed. |
Body:
None
Response Code: 204 No Content
Body:
None
Remove an existing policy from a Dialing Profile
#Request (JSON)
DELETE /compliance/dialingProfiles/12670/policies/36922
Host: localhost.com
Content-Type: application/json
Accept: application/json
#Response
204 No Content
Delete Dialing Profiles
Description: Deletes an existing Dialing Profile.
User Roles: Sysadmin, Superuser, or IT User
Method: DELETE /compliance/dialingProfiles/{id}
Parameters:
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
id | profileId | Integer (ID) | Yes | The ID of the Dialing Profile to be deleted. |
Body:
None
Response Code: 204 No Content
Body:
None
Delete an existing Dialing Profile
#Request
DELETE /compliance/dialingProfiles/12612
Host: localhost.com
Content-Type: application/json
Accept: application/json
#Response
204 No Content
Attempt to delete a Dialing Profile that does not exist
#Request
DELETE /compliance/dialingProfiles/12612
Host: localhost.com
Content-Type: application/json
Accept: application/json
#Response
404 Not Found
Get Dialing Profile List Info
Description: Gets metadata concerning a list of Dialing Profiles for a Client. Any system-wide Dialing Profiles that are available for all Clients will also be considered.
User Roles: Sysadmin, Superuser, or IT User
Method: GET /compliance/dialingProfiles/info[?client={clientId}]
Parameters:
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
client | clientId | Integer (ID) | No | Identifies which Client the list pertains to |
Body:
None
Response Code: 200 OK
Body:
Key or Attribute | Type | Mandatory? | Description |
---|---|---|---|
size | Integer | Yes | Total number of entries in the list |
lastModified | DateTime | No | The last date & time that the list was updated. This information might not be available. This is formatted according to the definition of dateTime in the XML Schema specification. For JSON responses, it is represented as the number of milliseconds since midnight on January 1, 1970 (GMT). |
Get the metadata for the list of Dialing Profiles configured for a client.
#Request (JSON)
GET /compliance/dialingProfiles/info/client=12345
Host: localhost.com
Content-Type: application/json
Accept: application/json
#Response (JSON)
200 OK
Content-Type: application/json
{
"size": 7,
"lastModified": 1372182992000
}
List Dialing Profiles
Description: Lists Dialing Profiles configured for a Client. Any system-wide Dialing Profiles that are available for all Clients will also be listed.
User Roles: Sysadmin, Superuser, or IT User
Method: GET /compliance/dialingProfiles?[client={clientId}&]count={n}&offset={n}
Parameters:
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
client | clientId | Integer (ID) | No | Identifies which Client the list pertains to |
count | n | Integer | Yes | Specifies the number of items to return in the list. There is a hard cap of 1000 items. |
offset | n | Integer | Yes | Required for pagination. Specifies the offset from 0, based on the count, to start listing from. |
Body:
None
Response Code: 200 OK
Body:
Key | Type | Mandatory? | Description | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
dialingProfile | Array | No | A container for a page of Dialing Profile entries. The page size is controlled via count and offset in the request.
| ||||||||||||||||
next | URI | No | A URI for the next page of entries. If next is not present, or blank, then there are no pages after this one. |
Get the list of Dialing Profiles configured for a Client.
#Request (JSON)
GET /compliance/dialingProfiles?count=10&client=4199&offset=0
Host: localhost.com
Content-Type: application/json
Accept: application/json
#Response (JSON)
200 OK
Content-Type: application/json
{
"dialingProfile": [
{
"id": 321,
"name": "LV_Standard_SDR_A",
"description": "Standard US State Dialing Restrictions, restricts TX, NV, PA."
},
{
"id": 5589,
"name": "77",
"description": null
},
{
"id": 7850,
"name": "Canada",
"description": null
},
{
"id": 10592,
"name": "QA_TEST",
"description": null
},
{
"id": 4413,
"name": "Test",
"description": null
},
{
"id": 2441,
"name": "Updated Restrictions",
"description": "Based on recent analysis"
}
],
"next": null
}
Read Dialing Profile
Description: Gets information about a Dialing Profile resource.
User Roles: Sysadmin, Superuser, or IT User
Method: GET /compliance/dialingProfiles/{id}
Parameters:
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
id | profileId | Integer (ID) | Yes | The ID of the Dialing Profile resource to read. You can read any Dialing Profile configured for the Client, as well as any system-wide Dialing Profiles available to all Clients. |
Body:
None
Response Code: 200 OK
Body:
Key | Type | Mandatory? | Description | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
clientId | Integer (ID) | No | The Client the Dialing Profile belongs to. If not included in the response, it means the Dialing Profile is a system-wide one that is available to all Clients. | ||||||||||||||||||||||||||||||||||||
name | String | Yes | Display name of the Dialing Profile. | ||||||||||||||||||||||||||||||||||||
description | String | Yes | Description of the Dialing Profile. Could be null . | ||||||||||||||||||||||||||||||||||||
clientDefault | Boolean | Yes | If true , indicates that this Dialing Profile is configured as the default Dialing Profile for the Client. | ||||||||||||||||||||||||||||||||||||
service | Array | Yes | An array of zero or more Services to which the Dialing Profile is assigned as the default.
| ||||||||||||||||||||||||||||||||||||
policy | Array | Yes | An array of zero or more policies that are configured for a Dialing Profile.
|
Read the details of a Dialing Profile
#Request (JSON)
GET /compliance/dialingProfiles/7850
Host: localhost.com
Content-Type: application/json
Accept: application/json
#Response (JSON)
200 OK
Content-Type: application/json
{
"service": [
{"id": 38184},
{"id": 42251},
{"id": 35578},
{"id": 35576},
{"id": 35577}
],
"policy": [
{
"dayOfWeek": "MONDAY",
"doNotDial": false,
"doNotLeaveMessage": true,
"country": "CANADA",
"state": "NU",
"areaCode": null,
"startTime": null,
"endTime": null
},
{
"dayOfWeek": "TUESDAY",
"doNotDial": false,
"doNotLeaveMessage": true,
"country": "CANADA",
"state": "NT",
"areaCode": null,
"startTime": null,
"endTime": null
},
...
{
"dayOfWeek": "MONDAY",
"doNotDial": false,
"doNotLeaveMessage": true,
"country": "CANADA",
"state": "SK",
"areaCode": "306",
"startTime": 50400000,
"endTime": 93600000
}
],
"clientId": 4199,
"name": "Canada",
"description": null,
"clientDefault": false
}
Update Dialing Policy
Description: Updates an existing policy of a Dialing Profile.
User Roles: Sysadmin, Superuser, or IT User
Method: PUT /compliance/dialingProfiles/{id}/policies/{policy}
Parameters:
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
id | profileId | Integer (ID) | Yes | The ID of the Dialing Profile to be updated. |
policy | policyId | Integer (ID) | Yes | The ID of the policy to be updated. |
Body(JSON):
Key | Type | Mandatory? | Description |
---|---|---|---|
dayOfWeek | Enum | No | The day of the week the policy will restrict, possible values are:
|
doNotDial | Boolean | No | If set to true any numbers matching the policy will not be dialed. |
doNotLeaveMessage | Boolean | No | if set to true any numbers matching the policy will not have messages left. |
state | Enum | No | The state where the policy applies, possible values include any state two-letter abbreviation. |
areaCode | String | No | The area code where the policy applies. |
startTime | Time | No | For the region and day(s) defined, if dialing is allowed, contacts will not start before this time. If this is not included in the response, the policy is in effect for the entire day(s) defined in dayOfWeek . |
endTime | Time | No | For the region and day(s) defined, if dialing is allowed, contacts will not be allowed after this time. If this is not included in the response, the policy is in effect for the entire day(s) defined in dayOfWeek . |
clearAreaCode | Boolean | No | Removes any defined areaCode so the policy applies to the entire state. |
clearTimeRange | Boolean | No | Removes any defined startTime and endTime so the policy applies to the entire day. |
Response Code: 204 No Content
Body:
None
Update an existing policy of a Dialing Profile
#Request (JSON)
PUT /compliance/dialingProfiles/12670/policies/36922
Host: localhost.com
Content-Type: application/json
Accept: application/json
{"dayOfWeek":null,
"doNotDial":null,
"doNotLeaveMessage":null,
"state":null,
"areaCode":"408",
"startTime":null,
"endTime":null,
"clearAreaCode":null,
"clearTimeRange":null}}
#Response
204 No Content
Update Dialing Profile
Description: Updates the name and description of a Dialing Profile.
User Roles: Sysadmin, Superuser, or IT User
Method: PUT /compliance/dialingProfiles/{id}
Parameters:
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
id | profileId | Integer (ID) | Yes | The ID of the Dialing Profile to be updated. |
Body(JSON):
Key | Type | Mandatory? | Description |
---|---|---|---|
name | String | No | The new name of the Dialing Profile. |
description | String | No | The new description of the Dialing Profile. |
Response Code: 204 No Content
Body:
None
Update an existing Dialing Profile
#Request (JSON)
PUT /compliance/dialingProfiles/12670
Host: localhost.com
Content-Type: application/json
Accept: application/json
{"name":"Docs","description":"testing"}
#Response
204 No Content
Update Dialing Profile Add Service
Description: Adds a Service to an existing Dialing Profile.
User Roles: Sysadmin, Superuser, or IT User
Method: PUT /compliance/dialingProfiles/{id}/services/{service}
Parameters:
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
id | profileId | Integer (ID) | Yes | The ID of the Dialing Profile to be updated. |
service | serviceId | Integer (ID) | Yes | The ID of the Service to be added to the Dialing Profile. |
Body:
None
Response Code: 204 No Content
Body:
None
Add a Skill to a Dialing Profile
#Request (JSON)
PUT /compliance/dialingProfiles/12670/services/40789
Host: localhost.com
Content-Type: application/json
Accept: application/json
#Response
204 No Content
Update Dialing Profile Remove Service
Description: Removes a Service from an existing Dialing Profile.
User Roles: Sysadmin, Superuser, or IT User
Method: DELETE /compliance/dialingProfiles/{id}/services/{service}
Parameters:
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
id | profileId | Integer (ID) | Yes | The ID of the Dialing Profile to be updated. |
service | serviceId | Integer (ID) | Yes | The ID of the Service to be removed. |
Body:
None
Response Code: 204 No Content
Body:
None
Remove a Skill from a Dialing Profile
#Request (JSON)
DELETE /compliance/dialingProfiles/12670/services/40789
Host: localhost.com
Content-Type: application/json
Accept: application/json
#Response
204 No Content
Dialtime DNC
Currently the Compliance API supports Create, Create Multiple, Delete, Find Matching, List, Read, Update, and Get Dialtime DNC List Info methods for managing the Dialtime DNC settings.
The Phone DNC Type setting in config will determine which DNC methods you'll be allowed to use; if you use the wrong ones the API will return a 400 Bad Request error stating that you are not configured to use the particular method. If the Phone DNC Type setting is set to "Legacy DNC" you'll be able to use any method under the DNC category in the documentation, if you have it set to "Dial-Time Phone DNC" you'll only be able to use the methods under the Dialtime DNC category. By using the Is Legacy DNC Enabled
method you can check what your Phone DNC Type is set to and make sure you're using the right methods.
Changing this setting will affect the DNC list your site checks for dialing, we don't recommend changing this setting just to test the APIs.
Create Dialtime DNC
Description: Creates a Dialtime DNC entry.
Method: POST /compliance/dialtime/dnc
Parameters:
None
Body:
Key | Type | Mandatory? | Description |
---|---|---|---|
phone | String | Yes | The phone number to create the Dialtime DNC entry for. |
contactGroupId | Integer (ID) | No | The contact group to be assigned to the DNC entry. |
expirationDate | dateTime | No | The expiration date of the Dialtime DNC entry. |
Response Code: 201 Created
Body:
Key | Type | Mandatory? | Description |
---|---|---|---|
id | Integer (ID) | Yes | The ID for the created dialtime entry. |
Create a DNC phone entry for the client at dial time
#Request (JSON)
POST /compliance/dialtime/dnc
Host: localhost.com
Content-Type: application/json
Accept: application/json
{
"phone": "4085553745",
"expirationDate": "1520035349000"
}
#Response (JSON)
201 Created
Content-Type: application/json
{"id":21945272}
Create Multiple Dialtime DNC
Description: Creates multiplie dialtime DNC entries in a single request.
If any invalid records are included in the request, then 202 error will be returned and the invalid records will be listed in the response; any record which is not listed in the response will be processed successfully.
Method: POST /compliance/dialtime/dnc/bulk
Parameters:
None
Body:
Key | Type | Mandatory? | Description | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
dncEntries | Array | Yes | An array of Dialtime DNC entries to create/update.
|
Response Code: 200 OK
Body:
Key | Type | Mandatory? | Description |
---|---|---|---|
processedCount | Integer | Yes | Number of records processed |
Create Multiple Dialtime DNC Entries
#Request (JSON)
POST /compliance/dialtime/dnc/bulk
Host: localhost.com
Content-Type: application/json
Accept: application/json
{
"dncEntries": [
{
"phone": "4155553734",
"contactGroupId": "1320"
},
{
"phone": "4155553767",
"contactGroupId": "1320",
"expirationDate": "1519957965000"
}
]
}
#Response (JSON)
200 OK
Content-Type: application/json
{"processedCount": 2}
Create Multiple Dialtime DNC Entries With Invalid Contact Group
#Request (JSON)
POST /compliance/dialtime/dnc/bulk
Host: localhost.com
Content-Type: application/json
Accept: application/json
{
"dncEntries": [
{
"phone": "6503517497",
"contactGroupId": 4962,
"expirationDate": "2021-04-20T14:24:47.847Z"
},
{
"phone": "6503517485",
"contactGroupId": 4967
},
{
"phone": "6505153873",
"contactGroupId": 4968,
"expirationDate": "2021-04-24T18:36:23.399Z"
}
]
}
#Response (JSON)
400 Bad Request
Content-Type: application/json
{
"code": 202,
"message": "Record 3: , Contact Group is not valid. Processed DNC filename: O29y5wrP totally in 1 batches, no of lines processed: 3."
}
Delete Dialtime DNC
Description: Deletes a Dialtime DNC entry.
Method: DELETE /compliance/dialtime/dnc/{dncId}
Parameters:
dncId | dncId | Integer | Yes | Specifies the dialtime DNC entry id to be deleted. |
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|
Body:
None
Response Code: 204 No Content
Body:
None
Delete an Existing Dialtime DNC Entry
#Request
DELETE /compliance/dialtime/dnc/21945272
Host: localhost.com
Content-Type: application/json
Accept: application/json
#Response
204 No Content
Find Matching Dialtime DNC
Description: Finds a matching Dialtime DNC entry.
Method: POST /compliance/dialtime/dnc/search?offset={n}&count={n}
Parameters:
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
count | n | Integer | Yes | Specifies the number of items to return in the list. There is a hard cap of 1000 items. |
offset | n | Integer | Yes | Specifies the offset from 0, based on the count, to start listing from. |
Body:
Key | Type | Mandatory? | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
filter | Object | Yes | DNC entries to create with the following structure
|
Response Code: 200 OK
Body:
Key | Type | Mandatory? | Description | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
dncEntries | Array | Yes | An array of Dialtime DNC entries that match the filter criteria in the request.
|
Find Matching Dialtime DNC entries
#Request (JSON)
GET /compliance/dialtime/dnc/search?offset=0&count=10
Host: localhost.com
Content-Type: application/json
Accept: application/json
{
"phone": "4155553734"
}
#Response
200 OK
Content-Type: application/json
{
"dncEntries": [
{
"phone": "4155553734",
"contactGroupId": 1320,
"id": 21945273
},
{
"phone": "4155553734",
"contactGroupId": 1321,
"id": 21945275
}
]
}
Get Dialtime DNC List Info
Description: Gets metadata for a list of Dialtime DNC entries.
Method: GET /compliance/dialtime/dnc/info
Parameters:
None
Body:
None
Response Code: 200 OK
Body:
Key | Type | Mandatory? | Description |
---|---|---|---|
size | Integer | Yes | The number of Dialtime DNC entries currently loaded for that Client. |
Get the metadata for a list of Dialtime DNC Entries
#Request (JSON)
GET /compliance/dialtime/dnc/info
Host: localhost.com
Content-Type: application/json
Accept: application/json
#Response (JSON)
200 OK
Content-Type: application/json
{"size": 6}
List Dialtime DNC
Description: Lists Dialtime DNC entries.
Method: GET /compliance/dialtime/dnc?count={n}&offset={n}
Parameters:
count | n | Integer | Yes | Specifies the number of items to return in the list. There is a hard cap on 1000 items. |
offset | n | Integer | Yes | Required for pagination. Specifies the offset from 0, based on the count parameter, to start listing from. |
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|
Body:
None
Response Code: 200 OK
Body:
Key | Type | Mandatory? | Description | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
next | URI | Yes | A URI for the next page of entries. If next is not present, or blank, then there are no pages after this one. | ||||||||||||||||||||
dncEntries | Array | Yes | A container for a page of Dialtime DNC entries. The page size is controlled via count and offset in the request.
|
Get a List of Dialtime DNC Entries
#Request (JSON)
GET /compliance/dialtime/dnc?count=10&offset=0
Host: localhost.com
Content-Type: application/json
Accept: application/json
#Response
200 OK
Content-Type: application/json
{"dncEntries": [
{
"phone": "4155553734",
"contactGroupId": 1320,
"id": 21945273
},
{
"phone": "4155553767",
"contactGroupId": 1320,
"expirationDate": 1519880400000,
"id": 21945274
},
...
{
"phone": "4085553745",
"expirationDate": 1519966800000,
"id": 21945272
},
{
"phone": "8001234567",
"id": 12225072
}
]}
Read Dialtime DNC
Description: Gets information about a Dialtime DNC entry.
Method: GET /compliance/dialtime/dnc/{dncId}
Parameters:
dncId | dncId | Integer (ID) | Yes | Specifies the DNC entry ID to be read. |
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|
Body:
None
Response Code: 200 OK
Response Body:
Key | Type | Mandatory? | Description |
---|---|---|---|
id | Integer (ID) | Yes | The ID of the Dialtime DNC entry. |
phone | String | Yes | The phone number of the Dialtime DNC entry. |
contactGroupId | Integer (ID) | No | The Contact Group ID for the Dialtime |
expirationDate | dateTime | No | The expiration date of the Dialtime DNC entry. |
Read a Dialtime DNC Entry
#Request (JSON)
GET /compliance/dialtime/dnc/21945274
Host: localhost.com
Content-Type: application/json
Accept: application/json
#Response
200 OK
Content-Type: application/json
{
"phone": "4155553767",
"contactGroupId": 1320,
"expirationDate": 1519880400000,
"id": 21945274
}
Attempt to read a Dialtime DNC Entry That Doesn't Exist
#Request
GET /compliance/dialtime/dnc/2234
Host: localhost.com
Content-Type: application/json
Accept: application/json
#Response
404 Not Found
{
"code": 203,
"message": "DNC entry not found"
}
Update Dialtime DNC
Description: Updates a Dialtime DNC entry.
Method: PUT /compliance/dialtime/dnc/{dncId}
Parameters:
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
dncId | dncId | Integer (ID) | Yes | Specifies the Dialtime DNC entry to update. |
Body:
Key | Type | Mandatory? | Description |
---|---|---|---|
phone | String | Yes | The phone number of the Dialtime DNC entry to update. |
contactGroupId | Integer (ID) | No | The new Contact Group to be assigned to the Dialtime DNC entry. |
expirationDate | dateTime | No | The new expiration date of the Dialtime DNC entry. |
Response Code: 204 No Content
Body:
None
Update an Existing Dialtime DNC Entry
#Request (JSON)
PUT /compliance/dialtime/dnc/21945274
Host: localhost.com
Content-Type: application/json
Accept: application/json
{
"phone": "4155553767",
"contactGroupId": "1522"
}
#Response
204 No Content
Content-Type: application/json
Email DNC
The Compliance API supports the Create, Create Multiple, Delete, Search, List, Read, Update, and Get Email DNC List Info methods for managing the Email DNC settings.
The Phone DNC Type setting in the LiveVox Portal (Configure > Services > Client > Settings tab) determines which DNC methods you can use. If you use the wrong DNC methods, the API returns a 400 Bad Request error stating that you are not configured to use that particular method. If the Phone DNC Type is set to Legacy DNC, you can use any method under the DNC category in the documentation. If you have the Phone DNC Type set to Dial-Time Phone DNC, you can only use the methods under the Dialtime/SMS/Email DNC category. By using the
Is Legacy DNC Enabled
method, you can check your Phone DNC Type and ensure that you are using the correct methods.Changing this setting affects the DNC list that your site uses for dialing, do not change this setting just to test the APIs.
The "
expirationDate"
in requests can be in either yyyy-MM-dd format (for example, 2021-03-01) or epoch time in milliseconds (for example, 1616089284000). The "expirationDate"
in a response is always in epoch time in milliseconds (for example, 1616089284000).
Create Email DNC
Description: Creates an Email DNC entry.
Method: POST /compliance/email/dnc
Parameters:
None
Body:
Key | Type | Mandatory? | Description |
---|---|---|---|
String | Yes | The email address for which you are creating the Email DNC entry. | |
contactGroupId | Integer (ID) | No | The contact group that is assigned to the Email DNC entry. |
expirationDate | dateTime | No | The expiration date of the Email DNC entry. |
Response Code: 201 Created
Body:
Key | Type | Mandatory? | Description |
---|---|---|---|
id | Integer (ID) | Yes | The ID for the created email entry. |
Create a dnc email entry
#Request (JSON)
POST /compliance/dialtime/dnc
Host: localhost.com
Content-Type: application/json
Accept: application/json
{
"email": "example@gmail.com",
"contactGroupId": "11435",
"expirationDate": "2021-10-10"
}
#Response (JSON)
201 Created
Content-Type: application/json
{
"id": 1033288
}
Create Multiple Email DNC
Description: Creates multiple Email DNC entries in a single request.
Method: POST /compliance/email/dnc/bulk
Parameters:
None
Body:
Key | Type | Mandatory? | Description | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
dncEntries | Array | Yes | An array of Email DNC entries to create
|
Response Code: 200 OK
Body:
Key | Type | Mandatory? | Description |
---|---|---|---|
processedCount | Integer | Yes | Number of records processed. |
Create Multiple DNC Entries
#Request (JSON)
POST /compliance/email/dnc/bulk
Host: localhost.com
Content-Type: application/json
Accept: application/json
{
"dncEntries": [
{
"email": "example1a@gmail.com",
"contactGroupId": "1020229",
"expirationDate": "2021-10-19"
},
{
"email": "example2@gmail.com",
"contactGroupId": "1020230",
"expirationDate": "2021-10-20"
},
{
"email": "example3@gmail.com",
"contactGroupId": "1020231",
"expirationDate": "2021-10-22"
}
]
}
#Response (JSON)
200 OK
Content-Type: application/json
{
"processedCount": 3
}
Delete Email DNC
Description: Deletes an Email DNC entry.
Method: DELETE /compliance/email/dnc/{dncId}
Parameters:
dncId | dncId | Integer | Yes | Specifies the Email DNC entry ID to be deleted. |
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|
Body:
None
Response Code: 204 No Content
Body:
None
Delete an Existing DNC Entry
#Request
DELETE /compliance/email/dnc/21945272
Host: localhost.com
Content-Type: application/json
Accept: application/json
#Response
204 No Content
Find Matching Email DNC
Description: Finds matching Email DNC entries
Method: POST /compliance/email/dnc/search?offset={n}&count={n}
Parameters:
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
count | n | Integer | Yes | Specify the number of items to return in the list. There is a limit of 1000 items. |
offset | n | Integer | Yes | Specifies the offset from 0, based on the count, from which to start listing. |
Body:
Key | Type | Mandatory? | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
filter | Object | Yes | DNC entries to create with the following structure
|
Response Code: 200 OK
Body:
Key | Type | Mandatory? | Description | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
dncEntries | Array | Yes | An array of Email DNC entries that match the filter criteria in the request.
|
Find Matching DNC entries
#Request (JSON)
POST /compliance/email/dnc/search?offset=0&count=4
Host: localhost.com
Content-Type: application/json
Accept: application/json
{
"filter": {
"email": "example1@gmail.com"
}
}
#Response
200 OK
Content-Type: application/json
{
"next": "compliance/email/dnc/search?offset=4&count=4",
"dncEntries": [
{
"email": "example1@gmail.com",
"contactGroupId": 1020229,
"expirationDate": 1634616000000,
"dncId": 100630223
},
{
"email": "example1@gmail.com",
"contactGroupId": 1020230,
"expirationDate": 1634702400000,
"dncId": 100630224
},
{
"email": "example1@gmail.com",
"contactGroupId": 1020231,
"expirationDate": 1634875200000,
"dncId": 100630225
},
{
"email": "example1@gmail.com",
"expirationDate": 1634875200000,
"dncId": 100630226
}
]
}
Get Email DNC List Info
Description: Retrieves metadata for a list of Email DNC entries.
Method: GET /compliance/email/dnc/info
Parameters:
None
Body:
None
Response Code: 200 OK
Body:
Key | Type | Mandatory? | Description |
---|---|---|---|
size | Integer | Yes | The number of Email DNC entries currently loaded for that client. |
Get the metadata for a list of DNC Entries
#Request (JSON)
GET /compliance/email/dnc/info
Host: localhost.com
Content-Type: application/json
Accept: application/json
#Response (JSON)
200 OK
Content-Type: application/json
{
"size": 7
}
List Email DNC
Description: Lists Email DNC entries.
Method: GET /compliance/email/dnc?count={n}&offset={n}
Parameters:
count | n | Integer | Yes | Specifies the number of items to return in the list. There is a limit of 1000 items. |
offset | n | Integer | Yes | Required for pagination. Specifies the offset from 0, based on the count parameter, from which to start listing. |
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|
Body:
None
Response Code: 200 OK
Body:
Key | Type | Mandatory? | Description | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
next | URI | Yes | A URI for the next page of entries. If next is not present, or blank, then there are no pages after this one. | ||||||||||||||||||||
dncEntries | Array | Yes | A container for a page of Email DNC entries. The page size is controlled via count and offset in the request.
|
Get a List of DNC Entries
#Request (JSON)
GET /compliance/email/dnc?offset=0&count=5
Host: localhost.com
Content-Type: application/json
Accept: application/json
#Response
200 OK
Content-Type: application/json
{
"next": "compliance/email/dnc?offset=5&count=5",
"dncEntries": [
{
"email": "example1a@gmail.com",
"contactGroupId": 1020229,
"expirationDate": 1634616000000,
"dncId": 100630220
},
{
"email": "example2@gmail.com",
"contactGroupId": 1020230,
"expirationDate": 1634702400000,
"dncId": 100630221
},
{
"email": "example3@gmail.com",
"contactGroupId": 1020231,
"expirationDate": 1634875200000,
"dncId": 100630222
},
{
"email": "example1@gmail.com",
"contactGroupId": 1020229,
"expirationDate": 1634616000000,
"dncId": 100630223
},
{
"email": "example1@gmail.com",
"contactGroupId": 1020230,
"expirationDate": 1634702400000,
"dncId": 100630224
}
]
}
Read Email DNC
Description: Reads the Email DNC entries.
Method: GET /compliance/email/dnc/{dncId}
Parameters:
dncId | dncId | Integer (ID) | Yes | Specifies the DNC entry ID to be read. |
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|
Body:
None
Response Code: 200 OK
Response Body:
Key | Type | Mandatory? | Description |
---|---|---|---|
id | Integer (ID) | Yes | The ID of the Email DNC entry. |
String | Yes | The email address of the Email DNC entry. | |
contactGroupId | Integer (ID) | No | The contact group ID for the Email DNC entry |
expirationDate | dateTime | No | The expiration date of the Email DNC entry. |
Read a DNC Entry
#Request (JSON)
GET /compliance/email/dnc/100630224
Host: localhost.com
Content-Type: application/json
Accept: application/json
#Response
200 OK
Content-Type: application/json
{
"email": "example1@gmail.com",
"contactGroupId": 1020230,
"expirationDate": 1634702400000,
"dncId": 100630224
}
Update Email DNC
Description: Updates an Email DNC entry.
Method: PUT /compliance/email/dnc/{dncId}
Parameters:
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
dncId | dncId | Integer (ID) | Yes | Specifies the Email DNC entry to update. |
Body:
Key | Type | Mandatory? | Description |
---|---|---|---|
String | Yes | The email address of the Email DNC entry to update. | |
contactGroupId | Integer (ID) | No | The new contact group assigned to the Email DNC entry. |
expirationDate | dateTime | No | The new expiration date of the Email DNC entry. |
Response Code: 204 No Content
Body:
None
Update an Existing DNC Entry
#Request (JSON)
PUT /compliance/email/dnc/100630224
Host: localhost.com
Content-Type: application/json
Accept: application/json
{
"email": "example1@gmail.com",
"contactGroupId": 1020230,
"expirationDate": "2021-10-25"
}
#Response
204 No Content
Content-Type: application/json
SMS DNC
The Compliance API supports the Create, Create Multiple, Delete, Search, List, Read, Update, and Get SMS DNC List Info methods for managing the SMS DNC settings.
The Phone DNC Type setting in the LiveVox Portal (Configure > Services > Client > Settings tab) determines which DNC methods you can use. If you use the wrong DNC methods, the API returns a 400 Bad Request error stating that you are not configured to use that particular method. If the Phone DNC Type is set to Legacy DNC, you can use any method under the DNC category in the documentation. If you have the Phone DNC Type set to Dial-Time Phone DNC, you can use the methods under the Dialtime/SMS/Email DNC category. By using the
Is Legacy DNC Enabled
method you can check what your Phone DNC Type is set to and ensure that you are using the correct methods.Changing this setting affects the DNC list your site uses for dialing, do not change this setting just to test the APIs.
- The "
expirationDate"
in requests can be in either yyyy-MM-dd format (for example, 2021-03-01) or epoch time in milliseconds (for example, 1616089284000). The "expirationDate"
in a response is always in epoch time in milliseconds (for example, 1616089284000).
Create SMS DNC
Description: Creates an SMS DNC entry.
Method: POST /compliance/sms/dnc
Parameters:
None
Body:
Key | Type | Mandatory? | Description |
---|---|---|---|
sms | String | Yes | The phone number for which you are creating the SMS DNC entry. The format is a 10-digit string. |
contactGroupId | Integer (ID) | No | The contact group assigned to the DNC entry. |
expirationDate | dateTime | No | The expiration date of the SMS DNC entry. |
Response Code: 201 Created
Body:
Key | Type | Mandatory? | Description |
---|---|---|---|
id | Integer (ID) | Yes | The ID for the created entry. |
Create an Email DNC entry for the client
#Request (JSON)
POST /compliance/sms/dnc
Host: localhost.com
Content-Type: application/json
Accept: application/json
{
"sms": "9176754178",
"contactGroupId": 1020229,
"expirationDate": "2021-10-26"
}
#Response (JSON)
201 Created
Content-Type: application/json
{
"id": 159475304
}
Create Multiple SMS DNC
Description: Creates multiple SMS DNC entries in a single request.
Method: POST /compliance/sms/dnc/bulk
Parameters:
None
Body:
Key | Type | Mandatory? | Description | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
dncEntries | Array | Yes | An array of SMS DNC entries to create.
|
Response Code: 200 OK
Body:
Key | Type | Mandatory? | Description |
---|---|---|---|
processedCount | Integer | Yes | Number of records processed |
Create Multiple DNC Entries
#Request (JSON)
POST /compliance/sms/dnc/bulk
Host: localhost.com
Content-Type: application/json
Accept: application/json
{
"dncEntries": [
{
"sms": "6503517497",
"contactGroupId": 1020229,
"expirationDate": "2021-10-27"
},
{
"sms": "6505153873",
"contactGroupId": 1020230,
"expirationDate": "2021-10-26"
},
{
"sms": "6178498807",
"contactGroupId": 1020231,
"expirationDate": "2021-10-28"
}
]
}
#Response (JSON)
200 OK
Content-Type: application/json
{
"processedCount": 3
}
Delete SMS DNC
Description: Deletes an SMS DNC entry.
Method: DELETE /compliance/sms/dnc/{dncId}
Parameters:
dncId | dncId | Integer | Yes | Specifies the SMS DNC entry ID to be deleted. |
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|
Body:
None
Response Code: 204 No Content
Body:
None
Delete an Existing DNC Entry
#Request
DELETE /compliance/sms/dnc/159475304
Host: localhost.com
Content-Type: application/json
Accept: application/json
#Response
204 No Content
Find Matching SMS DNC
Description: Finds matching SMS DNC entries.
Method: POST /compliance/sms/dnc/search?offset={n}&count={n}
Parameters:
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
count | n | Integer | Yes | Specify the number of items to return in the list. There is a limit of 1000 items. |
offset | n | Integer | Yes | Specifies the offset from 0, based on the count, from which to start listing. |
Body:
Key | Type | Mandatory? | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
filter | Object | Yes | DNC entries to create with the following structure
|
Response Code: 200 OK
Body:
Key | Type | Mandatory? | Description | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
dncEntries | Array | Yes | An array of SMS DNC entries that match the filter criteria in the request.
|
Find Matching DNC entries
#Request (JSON)
GET /compliance/sms/dnc/search?offset=0&count=6
Host: localhost.com
Content-Type: application/json
Accept: application/json
{
"filter": {
"sms": "6",
"contactGroupId": 1020229
}
}
#Response
200 OK
Content-Type: application/json
{
"dncEntries": [
{
"sms": "9176754178",
"contactGroupId": 1020229,
"expirationDate": 1635825600000,
"dncId": 159475304
},
{
"sms": "6503517497",
"contactGroupId": 1020229,
"expirationDate": 1635307200000,
"dncId": 159475306
},
{
"sms": "6505153873",
"contactGroupId": 1020229,
"expirationDate": 1635307200000,
"dncId": 159533878
}
]
}
Get SMS DNC List Info
Description: Retrieves metadata for a list of SMS DNC entries.
Method: GET /compliance/sms/dnc/info
Parameters:
None
Body:
None
Response Code: 200 OK
Body:
Key | Type | Mandatory? | Description |
---|---|---|---|
size | Integer | Yes | The number of SMS DNC entries currently loaded for that client. |
Get the metadata for a list of DNC Entries
#Request (JSON)
GET /compliance/sms/dnc/info
Host: localhost.com
Content-Type: application/json
Accept: application/json
#Response (JSON)
200 OK
Content-Type: application/json
{
"size": 7
}
List SMS DNC
Description: Lists SMS DNC entries.
Method: GET /compliance/sms/dnc?count={n}&offset={n}
Parameters:
count | n | Integer | Yes | Specify the number of items to return in the list. There is a limit of 1000 items. |
offset | n | Integer | Yes | Required for pagination. Specifies the offset from 0, based on the count parameter, from which to start listing. |
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|
Body:
None
Response Code: 200 OK
Body:
Key | Type | Mandatory? | Description | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
next | URI | Yes | A URI for the next page of entries. If next is not present, or blank, then there are no pages after this one. | ||||||||||||||||||||
dncEntries | Array | Yes | A container for a page of SMS DNC entries. The page size is controlled using count and offset in the request.
|
Get a List of DNC Entries
#Request (JSON)
GET /compliance/sms/dnc?offset=0&count=5
Host: localhost.com
Content-Type: application/json
Accept: application/json
#Response
200 OK
Content-Type: application/json
{
"next": "compliance/sms/dnc?offset=5&count=5",
"dncEntries": [
{
"sms": "9176754178",
"contactGroupId": 1020229,
"expirationDate": 1635825600000,
"dncId": 159475304
},
{
"sms": "6503517497",
"contactGroupId": 1020229,
"expirationDate": 1635307200000,
"dncId": 159475306
},
{
"sms": "6178498807",
"contactGroupId": 1020231,
"expirationDate": 1635393600000,
"dncId": 159475308
},
{
"sms": "6505153873",
"contactGroupId": 1020229,
"expirationDate": 1635307200000,
"dncId": 159533878
},
{
"sms": "9176754178",
"contactGroupId": 1020231,
"expirationDate": 1635393600000,
"dncId": 159533880
}
]
}
Read SMS DNC
Description: Reads information about an SMS DNC entry.
Method: GET /compliance/sms/dnc/{dncId}
Parameters:
dncId | dncId | Integer (ID) | Yes | Specifies the DNC entry ID to be read. |
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|
Body:
None
Response Code: 200 OK
Response Body:
Key | Type | Mandatory? | Description |
---|---|---|---|
id | Integer (ID) | Yes | The ID of the SMS DNC entry. |
sms | String | Yes | The phone number of the SMS DNC entry. |
contactGroupId | Integer (ID) | No | The contact group ID for the SMS DNC entry |
expirationDate | dateTime | No | The expiration date of the SMS DNC entry. |
Read a DNC Entry
#Request (JSON)
GET /compliance/sms/dnc/159475304
Host: localhost.com
Content-Type: application/json
Accept: application/json
#Response
200 OK
Content-Type: application/json
{
"sms": "9176754178",
"contactGroupId": 1020229,
"expirationDate": 1635825600000,
"dncId": 159475304
}
Update SMS DNC
Description: Updates an SMS DNC entry.
Method: PUT /compliance/sms/dnc/{dncId}
Parameters:
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
dncId | dncId | Integer (ID) | Yes | Specifies the SMS DNC entry to update. |
Body:
Key | Type | Mandatory? | Description |
---|---|---|---|
sms | String | Yes | The phone number of the SMS DNC entry to update. |
contactGroupId | Integer (ID) | No | The new contact group assigned to the SMS DNC entry. |
expirationDate | dateTime | No | The new expiration date of the SMS DNC entry. |
Response Code: 204 No Content
Body:
None
Update an Existing DNC Entry
#Request (JSON)
PUT /compliance/sms/dnc/21945274
Host: localhost.com
Content-Type: application/json
Accept: application/json
{
"sms": "9176754178",
"contactGroupId": 1020229,
"expirationDate": "2021-11-02"
}
#Response
204 No Content
Content-Type: application/json
Recordings
The Recordings category allows users to Find Call Recordings, Delete Call Recordings, and Get Call Recordings By Id.
The Find Matching Call Recording method was removed in v9.0, clients should use the Call Recording Report available in the Reporting API instead.
Delete Call Recording By Id
Description: Deletes Call Recording for a given Call recording id
User Roles: Sysadmin
Method: DELETE /compliance/recording/{id}
Parameters:
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
recording | recordingId | String | Yes | The recordingId , a unique identifier of the call recording that you wish to delete. |
Body :
None
Response Code: 204 No Content
Body:
None
Delete a call recording based on unique call recording ID
#Request
DELETE /compliance/recording/adae2e80-0001-b950-2eaf-0178d9581c93
Host: localhost.com
Content-Type: application/json
Accept: application/json
#Response
204 No Content
Get Call Recording Info
Description: Retrieves metadata about a call recording based on unique Call Recording ID.
Method: GET /compliance/recording/info?recording={id}
Parameters:
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
recording | recordingId | String | Yes | The You can obtain the ' |
Body:
None
Response Code: 200 OK
Body:
Key or Attribute | Type | Mandatory? | Description |
---|---|---|---|
clientId | Integer (ID) | Yes | The Client the call recording belongs to. |
callCenterId | Integer (ID) | Yes | The ID of the Call Center that the Agent who was recorded is associated with. |
serviceId | Integer (ID) | Yes | The ID of the Service to which the Agent was logged in when the call was recorded. |
agentId | Integer (ID) | Yes | The ID of the Agent involved in the recorded call. |
campaignId | Integer (ID) | Yes | The ID of the Campaign that the recorded call was part of. |
account | String | Yes | The account of the consumer whose call was recorded. |
phone | String | Yes | The phone number of the consumer whose call was recorded. |
termCodeId | Integer (ID) | Yes | The Term Code of the recorded call. |
fromDate | DateTime | Yes | The date and time that the call recording started. |
toDate | DateTime | Yes | The date and time that the call recording ended. |
originalAccountNumber | String | No | The original account number associated with the call recording. The |
duration | Integer | Yes | The duration of the call recording, in seconds. |
Retrieve metadata for a call recording based on unique ID
#Request (JSON)
GET/compliance/recording/info?recording=8b4e88fe-2b9c-b6b1-d211-016c4d1b3ec6
Host: localhost.com
Content-Type: application/json
Accept: application/json
#Response (JSON)
200 OK
Content-Type: application/json
{
"clientId": 4199,
"callCenterId": 1191,
"serviceId": 11846,
"agentId": 45365,
"campaignId": 1,
"account": "002723754",
"phone": "8015442100",
"termCodeId": 200801,
"fromDate": 1375727329697,
"toDate": 1375727389697,
"duration": 60
}
Get Call Recording By Id
Description: Returns Call Recording for a given customer session Id
Method: GET /compliance/recording/{id}
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
recording | recordingId | String | Yes | The You can obtain the ' |
Body :
None
Response Code: 200 OK
Body:
The body of this response is binary data that comprises the call recording (mp3).
CampaignDetails
#Request
GET /compliance/recording/8b4e88fe-2b9c-b6b1-d211-016c4d1b3ec6
Host: localhost.com
Content-Type: application/json
Accept: audio/mpeg
#Response
200 OK
Content-Type: audio/mpeg
[binary data]
Errors
For more information, see the Errors topic on the REST APIs page.