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
Full name of the end user or business.
End user type. Values: individual, business.
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
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
The document file to upload.
Type of document. Values: identity_proof, address_proof, business_registration.
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
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
ID of the end user for this application.
Array of compliance document IDs to include.
ISO 3166-1 alpha-2 country code (e.g., US, GB, DE).
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
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)
Link Number to Compliance Application
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
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
| Code | Description |
|---|
200 | Success |
201 | Created |
400 | Bad Request - Invalid parameters |
401 | Unauthorized - Invalid credentials |
404 | Not Found - Resource doesn’t exist |
429 | Rate limited - Too many requests |
500 | Internal Server Error |
Example Error Response
{
"api_id": "b7e7c6c2-1234-5678-9abc-def012345678",
"error": "validation_error",
"message": "The end_user_id field is required"
}