Submit ownership proof for numbers hosted elsewhere
Request permission to add phone numbers that the enterprise owns but that are hosted with another provider. Submit one or more uploaded documents proving ownership, such as a carrier invoice or account statement. The request is reviewed once per enterprise. While it is pending or rejected you can submit again to replace the documents; once approved it cannot be changed.
curl --request POST \
--url https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/external_verification \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"document_ids": [
"2a7e8337-e803-4057-a4ae-26c40eb0bc6c"
]
}
'import requests
url = "https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/external_verification"
payload = { "document_ids": ["2a7e8337-e803-4057-a4ae-26c40eb0bc6c"] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({document_ids: ['2a7e8337-e803-4057-a4ae-26c40eb0bc6c']})
};
fetch('https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/external_verification', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/external_verification",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'document_ids' => [
'2a7e8337-e803-4057-a4ae-26c40eb0bc6c'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/external_verification"
payload := strings.NewReader("{\n \"document_ids\": [\n \"2a7e8337-e803-4057-a4ae-26c40eb0bc6c\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/external_verification")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"document_ids\": [\n \"2a7e8337-e803-4057-a4ae-26c40eb0bc6c\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/external_verification")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"document_ids\": [\n \"2a7e8337-e803-4057-a4ae-26c40eb0bc6c\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"enterprise_id": "4a6192a4-573d-446d-b3ce-aff9117272a6",
"status": "pending",
"document_ids": [
"2a7e8337-e803-4057-a4ae-26c40eb0bc6c"
],
"phone_numbers": [
"+13125550142"
],
"rejection_reason": "The invoice does not show the phone numbers.",
"submitted_at": "2026-10-05T09:12:44Z",
"reviewed_at": "2026-10-06T14:03:10Z"
}
}Authorizations
Telnyx API key. Generate one at https://portal.telnyx.com/#/app/api-keys.
Path Parameters
The enterprise id. Lowercase UUID.
"4a6192a4-573d-446d-b3ce-aff9117272a6"
Body
Ids of uploaded documents (Documents API) proving the enterprise owns its phone numbers hosted with another provider, for example a carrier invoice or account statement.
1 - 10 elements1 - 255["2a7e8337-e803-4057-a4ae-26c40eb0bc6c"]
Optional. The phone numbers hosted with another provider that the documents cover, in E.164 format. Shown to the reviewer to match the documents to your numbers; you can still add numbers that are not listed here, and each is checked on its own.
1000["+13125550142"]
Response
The ownership proof was submitted for review.
Show child attributes
Show child attributes
Was this page helpful?
curl --request POST \
--url https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/external_verification \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"document_ids": [
"2a7e8337-e803-4057-a4ae-26c40eb0bc6c"
]
}
'import requests
url = "https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/external_verification"
payload = { "document_ids": ["2a7e8337-e803-4057-a4ae-26c40eb0bc6c"] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({document_ids: ['2a7e8337-e803-4057-a4ae-26c40eb0bc6c']})
};
fetch('https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/external_verification', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/external_verification",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'document_ids' => [
'2a7e8337-e803-4057-a4ae-26c40eb0bc6c'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/external_verification"
payload := strings.NewReader("{\n \"document_ids\": [\n \"2a7e8337-e803-4057-a4ae-26c40eb0bc6c\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/external_verification")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"document_ids\": [\n \"2a7e8337-e803-4057-a4ae-26c40eb0bc6c\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/external_verification")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"document_ids\": [\n \"2a7e8337-e803-4057-a4ae-26c40eb0bc6c\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"enterprise_id": "4a6192a4-573d-446d-b3ce-aff9117272a6",
"status": "pending",
"document_ids": [
"2a7e8337-e803-4057-a4ae-26c40eb0bc6c"
],
"phone_numbers": [
"+13125550142"
],
"rejection_reason": "The invoice does not show the phone numbers.",
"submitted_at": "2026-10-05T09:12:44Z",
"reviewed_at": "2026-10-06T14:03:10Z"
}
}