ContactCenterComplianceAPI 2.0.0

dotnet add package ContactCenterComplianceAPI --version 2.0.0
NuGet\Install-Package ContactCenterComplianceAPI -Version 2.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ContactCenterComplianceAPI" Version="2.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add ContactCenterComplianceAPI --version 2.0.0
#r "nuget: ContactCenterComplianceAPI, 2.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install ContactCenterComplianceAPI as a Cake Addin
#addin nuget:?package=ContactCenterComplianceAPI&version=2.0.0

// Install ContactCenterComplianceAPI as a Cake Tool
#tool nuget:?package=ContactCenterComplianceAPI&version=2.0.0

Package to interface and use the available API endpoints of Contact Center Compliance. Usage requires an account with Contact Center Compliance.

See www.dnc.com to sign up.

API Consumption App Reference

https://github.com/KentAguilarCCC/ContactCenterComplianceAPI_SampleApp

Getting Started

  • Import the ContactCenterCompliance API packages from NuGet.
  • Reference ContactCenterCompliance namespace in your program, eg "using ContactCenterCompliance;"
  • Instantiate the CCCApi class indicating your API key → var client = new CCCApi("--- API Key ---");

Scrubbing a Phone Number or Multiple Phone Numbers

CCCApi client = new CCCApi("--- API Key ---");

//sample phone numbers
List<string> shortPhoneNumberList = new List<string>() {
				"6234928976",
				"9545031806",
				"2675466417"
			 };

List<ScrubResponse> scrubResponseList = client.Scrub(shortPhoneNumberList, "ProjectID");

Litigator Only Scrub

CCCApi client = new CCCApi("--- API Key ---");

//sample phone numbers
List<string> shortPhoneNumberList = new List<string>() {
				"6234928976",
				"9545031806",
				"2675466417"
			 };

List<LitigatorResponse> litigatorResponseList = client.LitigatorScrub(shortPhoneNumberList)

Project Settings

  • Creating a project using project id and project name
CCCApi client = new CCCApi("--- API Key ---");
Project project = client.CreateProject("ProjectID", "ProjectName")
  • Deactivate a project using project id
CCCApi client = new CCCApi("--- API Key ---");
Project project = client.DeactivateProject("ProjectID")
  • Enumerating projects using a project id
CCCApi client = new CCCApi("--- API Key ---");
Project project = client.EnumerateProjects("ProjectID")

Add to or Delete from Internal DNC List

  • Given the following initiated routines:
CCCApi client = new CCCApi("--- API Key ---");

//sample phone numbers
List<string> shortPhoneNumberList = new List<string>() {
				"6234928976",
				"9545031806",
				"2675466417"
			 };
  • Adding of IDNC with phone number list and project id
client.AddIDNC(shortPhoneNumberList, "ProjectID");
  • Removing IDNC with phone number list and project id
client.RemoveIDNC(shortPhoneNumberList, "ProjectID");
  • Getting IDNC count using a project id
IDNCDetail idncDetail = client.GetIDNCCount("ProjectID");
  • Getting IDNC status using phone number list and project id
List<IDNCStatus> idncStatusList = client.GetIDNCStatus(shortPhoneNumberList, "ProjectID");

Add to EBR List

  • Given the following initiated routes:
CCCApi client = new CCCApi("--- API Key ---");

//sample ebr list
static List<Ebr> ebrList = new List<Ebr>() {
				new Ebr{
					PhoneNo = "7272046008",
					DateOfLastContact = DateTime.Parse("2011-06-14"),
					Type = EbrType.Sale
				},
				new Ebr{
					PhoneNo = "8773404100",
					DateOfLastContact = DateTime.Parse("2011-07-02"),
					Type = EbrType.Inquiry
				}
			};
//sample phone numbers
List<string> shortPhoneNumberList = new List<string>() {
				"6234928976",
				"9545031806",
				"2675466417"
			 };
  • Adding EBR List with project id
client.AddEBR(ebrList, "ProjectID");
  • Scrubbing Phone Numbers and adding EBR List with project and campaign id
List<ScrubResponse> scrubResponseList = client.ScrubPlusAddEBR(shortPhoneNumberList, ebrList, "ProjectID", "CampaignID");

On-demand processing for SFTP Uploads

  • Notify if SFTP Upload is complete
CCCApi client = new CCCApi("--- API Key ---");
client.NotifyOfSFTPComplete();

TCPA Reassigned ID aka Identity Verification

CCCApi client = new CCCApi("--- API Key ---");
Reassigned reassigned = new Reassigned {
				PhoneNumber = "2012001362",
				FirstName = "FirstName",
				LastName = "LastName",
				Address1 = "Address1",
				Address2 = "",
				City = "New Jersey",
				State = "NJ",
				PostalCode = "007302",
				ConsentDate = DateTime.Now,
				ReferenceId = "ReferenceId"
			};
			
ReassignedIDResponse reassignedIDResponse = client.ReassignedID(reassigned);

Residential or Business Phone Number Identification

CCCApi client = new CCCApi("--- API Key ---");
ResOrBusinessResponse resOrBusinessResponse = client.ResOrBusiness("7072842774");

ID Premium

CCCApi client = new CCCApi("--- API Key ---");
IDPremiumResponse idPremiumResponse = client.IDPremium("7072842774");

TCPA Reassigned Authority

  • Check if a phone number was reassigned after a specific date.
  • TCPA Reassigned Authority is our best method to check if a phone was reassigned and uses the most comprehensive data source going back further than RND.
var client = new CCCApi("--- API Key ---");
var dateOfConsent = DateTime.Parse("09/22/2020");
var response = client.ReassignedAuthority("7072390222", dateOfConsent);

if (response.IsReassigned == true)
{
    Console.WriteLine("Phone number was reassigned after consent date. Do not call the phone's owner is likely different than the person that gave you consent to call.");
}
else
{
    Console.WriteLine("Phone number was NOT reassigned after consent date. Okay to call if following all other applicable laws");
}
Console.ReadLine();

RND Basic

RND Basic returns if a mobile telephone number has been reassigned after a given date based on the FCC Reassigned Number Database. The FCC Reassigned Number Database only has complete data after January 27, 2021, so most numbers with dates prior to January 27, 2021 will be returned with a null value in IsReassigned indicating insufficient data.

Below are the fields returned for each phone number:

  • IsReassigned - boolean field indicating if the phone was reassigned or not. true indicates reassigned after the date; false indicates not reassigned. A null value indicates insufficient information to determine if reassigned. If true, the caller should not call the number. The output is the value from the FCC Reassigned Number database.
  • HasSafeHarbor - boolean field indicating if an FCC safe harbor exemption may be available.
var client = new CCCApi("--- API Key ---");

var phonesAndDates = new List<BasicRNDRequestDTO>()
{
	new BasicRNDRequestDTO()
	{
		PhoneNumber = "5039367187",
		Date = DateTime.Parse("2021-10-14")
	},
	new BasicRNDRequestDTO()
	{
		PhoneNumber = "7075276405",
		Date = DateTime.Parse("2021-11-22")
	}
};

var results = client.RNDBasic(phonesAndDates);

foreach (var result in results)
{
	Console.WriteLine("PhoneNumber={0} IsReassigned={1} HasSafeHarbor={2}", result.PhoneNumber, result.IsReassigned, result.HasSafeHarbor);
}

Enhanced RND

Enhanced RND returns if a mobile telephone number has been reassigned after a given date. It is based on a combination of authoritative data provided from mobile phone carriers since July 2018 and the FCC Reassigned Number Database. By combining CCC’s authoritative data plus the FCC Reassigned Number Database the most accurate response as to if a phone number is safe to call is provided. The FCC Reassigned Number Database does not have any data prior to January 27, 2021 whereas CCC’s reassigned data goes back to July 2018. CCC’s reassigned data is updated daily whereas the FCC Reassigned data is updated once per month.

Below are the fields returned for each phone number:

  • IsReassigned - boolean field indicating if the phone was reassigned or not. true indicates reassigned after the date; false indicates not reassigned. A null value indicates insufficient information to determine if reassigned.

    If true, the caller should not call the number.

    The output is the combined value of the FCC Reassigned Number database plus CCC’s internal data provided by mobile phone companies thus the most accurate response is provided. CCC internal data is updated daily while the FCC Reassigned Number data is only updated once per month. CCC’s internal data also goes back to July 2018 whereas the FCC data only goes back to October 15th 2021.

  • HasSafeHarbor - boolean field indicating if an FCC safe harbor exemption may be available.

  • CCCIsReassigned - boolean field indicating whether CCC’s internal data from mobile phone carriers determine if the phone has been reassigned or not. This is for informational purposes. The IsReassigned field is what should be used to determine if to place the call.

var client = new CCCApi("--- API Key ---");

var phonesAndDates = new List<EnhancedRNDRequestDTO>()
{
	new EnhancedRNDRequestDTO()
	{
		PhoneNumber = "5039367187",
		Date = DateTime.Parse("2021-10-14")
	},
	new EnhancedRNDRequestDTO()
	{
		PhoneNumber = "7075276405",
		Date = DateTime.Parse("2021-11-22")
	}
};

var results = client.RNDEnhanced(phonesAndDates);

foreach (var result in results)
{
	Console.WriteLine("PhoneNumber={0} IsReassigned={1} HasSafeHarbor={1} CCCIsReassigned={2}",
			result.PhoneNumber, result.IsReassigned, result.HasSafeHarbor, result.CCCIsReassigned);
}
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.0.0 653 10/24/2022
1.1.0 850 9/14/2022
1.0.8 1,260 11/21/2018
1.0.7 1,030 11/15/2018
1.0.4 1,026 10/31/2018