Skip to main content
Internal DocumentationThis API documentation is not yet released for the wider audience. The formatting and structure are subject to change before public release. For current production use, refer to the Console documentation or contact support.
Manage end users, compliance documents, and compliance applications to meet regulatory requirements for phone numbers in specific countries. API Endpoint
https://api.plivo.com/v1/Account/{auth_id}/
Compliance-related endpoints use the /numberservice/v1 base URL. See individual endpoints for the correct URL.

End User Management

End users represent the individuals or businesses that will use phone numbers. Create end users before submitting compliance applications.

Create an End User

Create a new end user for regulatory compliance.
POST https://api.plivo.com/numberservice/v1/regulatory_compliance/account/{auth_id}/end_user

Arguments

name
string
required
Full name of the end user or business.
type
string
required
End user type. Values: individual, business.
email
string
Contact email address.

Example

import plivo

client = plivo.RestClient('<auth_id>', '<auth_token>')

response = client.end_users.create(
    name="John Doe",
    type="individual",
    email="[email protected]"
)
print(response)

Get an End User

Retrieve details of a specific end user.
GET https://api.plivo.com/numberservice/v1/regulatory_compliance/account/{auth_id}/end_user/{end_user_id}

Example

import plivo

client = plivo.RestClient('<auth_id>', '<auth_token>')

response = client.end_users.get(end_user_id)
print(response)

List End Users

List all end users for an account.
GET https://api.plivo.com/numberservice/v1/regulatory_compliance/account/{auth_id}/end_user

Example

import plivo

client = plivo.RestClient('<auth_id>', '<auth_token>')

response = client.end_users.list()
print(response)

Update an End User

Update an existing end user’s information.
PUT https://api.plivo.com/numberservice/v1/regulatory_compliance/account/{auth_id}/end_user/{end_user_id}

Arguments

name
string
Updated name.
email
string
Updated email address.

Example

import plivo

client = plivo.RestClient('<auth_id>', '<auth_token>')

response = client.end_users.update(
    end_user_id,
    name="John Smith",
    email="[email protected]"
)
print(response)

Delete an End User

Delete an existing end user.
DELETE https://api.plivo.com/numberservice/v1/regulatory_compliance/account/{auth_id}/end_user/{end_user_id}

Example

import plivo

client = plivo.RestClient('<auth_id>', '<auth_token>')

response = client.end_users.delete(end_user_id)
print(response)

Compliance Document Management

Compliance documents are supporting documents required for regulatory approval, such as identity proofs, address proofs, and business registration documents.

Create a Compliance Document

Upload a new compliance document.
POST https://api.plivo.com/numberservice/v1/regulatory_compliance/account/{auth_id}/compliance_document

Arguments

file
file
required
The document file to upload.
document_type
string
required
Type of document. Values: identity_proof, address_proof, business_registration.
end_user_id
string
required
ID of the end user this document belongs to.

Example

import plivo

client = plivo.RestClient('<auth_id>', '<auth_token>')

response = client.compliance_documents.create(
    file="/path/to/document.pdf",
    document_type="identity_proof",
    end_user_id=end_user_id
)
print(response)

Get a Compliance Document

Retrieve a specific compliance document.
GET https://api.plivo.com/numberservice/v1/regulatory_compliance/account/{auth_id}/compliance_document/{compliance_document_id}

Example

import plivo

client = plivo.RestClient('<auth_id>', '<auth_token>')

response = client.compliance_documents.get(compliance_document_id)
print(response)

Update a Compliance Document

Update an existing compliance document.
PUT https://api.plivo.com/numberservice/v1/regulatory_compliance/account/{auth_id}/compliance_document/{compliance_document_id}

Arguments

file
file
Updated document file.

Example

import plivo

client = plivo.RestClient('<auth_id>', '<auth_token>')

response = client.compliance_documents.update(
    compliance_document_id,
    file="/path/to/updated_document.pdf"
)
print(response)

Delete a Compliance Document

Delete an existing compliance document.
DELETE https://api.plivo.com/numberservice/v1/regulatory_compliance/account/{auth_id}/compliance_document/{compliance_document_id}

Example

import plivo

client = plivo.RestClient('<auth_id>', '<auth_token>')

response = client.compliance_documents.delete(compliance_document_id)
print(response)

Compliance Application Management

Compliance applications bundle end users and their documents for submission to regulatory authorities.

Create a Compliance Application

Create a new compliance application.
POST https://api.plivo.com/numberservice/v1/regulatory_compliance/account/{auth_id}/compliance_application

Arguments

end_user_id
string
required
ID of the end user for this application.
document_ids
array
required
Array of compliance document IDs to include.
country_iso
string
required
ISO 3166-1 alpha-2 country code (e.g., US, GB, DE).
number_type
string
required
Type of number. Values: local, mobile, tollfree.

Example

import plivo

client = plivo.RestClient('<auth_id>', '<auth_token>')

response = client.compliance_applications.create(
    end_user_id=end_user_id,
    document_ids=[compliance_document_id],
    country_iso="US",
    number_type="local"
)
print(response)

Get a Compliance Application

Get details of a specific compliance application.
GET https://api.plivo.com/numberservice/v1/regulatory_compliance/account/{auth_id}/compliance_application/{compliance_application_id}

Example

import plivo

client = plivo.RestClient('<auth_id>', '<auth_token>')

response = client.compliance_applications.get(compliance_application_id)
print(response)

List Compliance Applications

List all compliance applications for an account.
GET https://api.plivo.com/numberservice/v1/regulatory_compliance/account/{auth_id}/compliance_application

Example

import plivo

client = plivo.RestClient('<auth_id>', '<auth_token>')

response = client.compliance_applications.list()
print(response)

Update a Compliance Application

Update an existing compliance application.
PUT https://api.plivo.com/numberservice/v1/regulatory_compliance/account/{auth_id}/compliance_application/{compliance_application_id}

Arguments

document_ids
array
Updated array of compliance document IDs.

Example

import plivo

client = plivo.RestClient('<auth_id>', '<auth_token>')

response = client.compliance_applications.update(
    compliance_application_id,
    document_ids=[new_document_id]
)
print(response)

Delete a Compliance Application

Delete a specific compliance application.
DELETE https://api.plivo.com/numberservice/v1/regulatory_compliance/account/{auth_id}/compliance_application/{compliance_application_id}

Example

import plivo

client = plivo.RestClient('<auth_id>', '<auth_token>')

response = client.compliance_applications.delete(compliance_application_id)
print(response)

Submit a Compliance Application

Submit a compliance application for review.
POST https://api.plivo.com/numberservice/v1/regulatory_compliance/account/{auth_id}/compliance_application/{compliance_application_id}/submit
Once submitted, a compliance application cannot be modified until the review is complete.

Example

import plivo

client = plivo.RestClient('<auth_id>', '<auth_token>')

response = client.compliance_applications.submit(compliance_application_id)
print(response)

After your compliance application is approved, link it to phone numbers in your account.

Update Number Compliance

Assign a compliance application to a specific phone number.
POST https://api.plivo.com/v1/Account/{auth_id}/ComplianceApplication/Number/{number}/

Arguments

compliance_application_id
string
required
ID of the approved compliance application to assign.

Example

import plivo

client = plivo.RestClient('<auth_id>', '<auth_token>')

response = client.numbers.update_compliance(
    number,
    compliance_application_id="ca_12345678-1234-1234-1234-123456789012"
)
print(response)

Response

{
  "message": "compliance application updated successfully",
  "api_id": "12345678-1234-1234-1234-123456789012"
}
The compliance application must be in an approved state before it can be linked to a phone number.

Error Handling

CodeDescription
200Success
201Created
400Bad Request - Invalid parameters
401Unauthorized - Invalid credentials
404Not Found - Resource doesn’t exist
429Rate limited - Too many requests
500Internal Server Error

Example Error Response

{
  "api_id": "b7e7c6c2-1234-5678-9abc-def012345678",
  "error": "validation_error",
  "message": "The end_user_id field is required"
}