Update a DIR to resolve an infringement concern
Push a fix for a DIR that is suspended with an open infringement claim back into vetting. POST /dir/{dir_id}/submit is blocked while a claim is open, so this is the customer-callable path to update the DIR’s content and re-certify before Telnyx adjudicates the claim. All four certification booleans must be true. Optional content fields (display_name, logo_url, call_reasons, documents) update the DIR; documents are append-only.
import Telnyx from 'telnyx';
const client = new Telnyx({
apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted
});
const response = await client.dir.updateInfringement('16635d38-75a6-4481-82e8-69af60e05011', {
certify_brand_is_accurate: true,
certify_ip_ownership: true,
certify_no_infringement: true,
certify_no_shaft_content: true,
infringement_resolution_notes:
'Updated the display name to remove the disputed mark and re-uploaded the authorization.',
});
console.log(response.data);import os
from telnyx import Telnyx
client = Telnyx(
api_key=os.environ.get("TELNYX_API_KEY"), # This is the default and can be omitted
)
response = client.dir.update_infringement(
dir_id="16635d38-75a6-4481-82e8-69af60e05011",
certify_brand_is_accurate=True,
certify_ip_ownership=True,
certify_no_infringement=True,
certify_no_shaft_content=True,
infringement_resolution_notes="Updated the display name to remove the disputed mark and re-uploaded the authorization.",
)
print(response.data)
package main
import (
"context"
"fmt"
"github.com/team-telnyx/telnyx-go"
"github.com/team-telnyx/telnyx-go/option"
)
func main() {
client := telnyx.NewClient(
option.WithAPIKey("My API Key"),
)
response, err := client.Dir.UpdateInfringement(
context.TODO(),
"16635d38-75a6-4481-82e8-69af60e05011",
telnyx.DirUpdateInfringementParams{
CertifyBrandIsAccurate: true,
CertifyIPOwnership: true,
CertifyNoInfringement: true,
CertifyNoShaftContent: true,
InfringementResolutionNotes: "Updated the display name to remove the disputed mark and re-uploaded the authorization.",
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", response.Data)
}
package com.telnyx.sdk.example;
import com.telnyx.sdk.client.TelnyxClient;
import com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient;
import com.telnyx.sdk.models.dir.DirUpdateInfringementParams;
import com.telnyx.sdk.models.dir.DirUpdateInfringementResponse;
public final class Main {
private Main() {}
public static void main(String[] args) {
TelnyxClient client = TelnyxOkHttpClient.fromEnv();
DirUpdateInfringementParams params = DirUpdateInfringementParams.builder()
.dirId("16635d38-75a6-4481-82e8-69af60e05011")
.certifyBrandIsAccurate(DirUpdateInfringementParams.CertifyBrandIsAccurate.TRUE)
.certifyIpOwnership(DirUpdateInfringementParams.CertifyIpOwnership.TRUE)
.certifyNoInfringement(DirUpdateInfringementParams.CertifyNoInfringement.TRUE)
.certifyNoShaftContent(DirUpdateInfringementParams.CertifyNoShaftContent.TRUE)
.infringementResolutionNotes("Updated the display name to remove the disputed mark and re-uploaded the authorization.")
.build();
DirUpdateInfringementResponse response = client.dir().updateInfringement(params);
}
}require "telnyx"
telnyx = Telnyx::Client.new(api_key: "My API Key")
response = telnyx.dir.update_infringement(
"16635d38-75a6-4481-82e8-69af60e05011",
certify_brand_is_accurate: true,
certify_ip_ownership: true,
certify_no_infringement: true,
certify_no_shaft_content: true,
infringement_resolution_notes: "Updated the display name to remove the disputed mark and re-uploaded the authorization."
)
puts(response)<?php
require_once dirname(__DIR__) . '/vendor/autoload.php';
use Telnyx\Client;
use Telnyx\Core\Exceptions\APIException;
$client = new Client(apiKey: getenv('TELNYX_API_KEY') ?: 'My API Key');
try {
$response = $client->dir->updateInfringement(
'16635d38-75a6-4481-82e8-69af60e05011',
certifyBrandIsAccurate: true,
certifyIPOwnership: true,
certifyNoInfringement: true,
certifyNoShaftContent: true,
infringementResolutionNotes: 'Updated the display name to remove the disputed mark and re-uploaded the authorization.',
callReasons: ['string'],
displayName: 'x',
documents: [
[
'documentID' => '2a7e8337-e803-4057-a4ae-26c40eb0bc6c',
'documentType' => 'business_registration',
'description' => 'Certificate of incorporation.',
],
],
logoURL: 'logo_url',
);
var_dump($response);
} catch (APIException $e) {
echo $e->getMessage();
}telnyx dir update-infringement \
--api-key 'My API Key' \
--dir-id 16635d38-75a6-4481-82e8-69af60e05011 \
--certify-brand-is-accurate true \
--certify-ip-ownership true \
--certify-no-infringement true \
--certify-no-shaft-content true \
--infringement-resolution-notes 'Updated the display name to remove the disputed mark and re-uploaded the authorization.'curl --request PUT \
--url https://api.telnyx.com/v2/dir/{dir_id}/infringement_update \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"certify_no_infringement": true,
"certify_brand_is_accurate": true,
"certify_no_shaft_content": true,
"certify_ip_ownership": true,
"infringement_resolution_notes": "Updated the display name to remove the disputed mark and re-uploaded the authorization."
}
'{
"data": {
"id": "16635d38-75a6-4481-82e8-69af60e05011",
"enterprise_id": "4a6192a4-573d-446d-b3ce-aff9117272a6",
"display_name": "Acme Plumbing",
"reselling": false,
"certify_brand_is_accurate": true,
"certify_no_shaft_content": true,
"certify_ip_ownership": true,
"authorizer_name": "Sam Owner",
"authorizer_email": "[email protected]",
"logo_url": "https://acmeplumbing.example.com/logo-256.bmp",
"call_reasons": [
{
"reason": "Appointment reminders",
"created_at": "2026-04-26T18:06:51.940749Z"
}
],
"documents": [
{
"document_id": "2a7e8337-e803-4057-a4ae-26c40eb0bc6c",
"document_type": "business_registration",
"description": "Certificate of incorporation."
}
],
"status": "draft",
"rejection_reasons": [
{
"code": "documentation_incomplete",
"title": "Documentation incomplete",
"detail": "Provided documents do not establish business identity.",
"message": "Please re-upload a clearer scan of the certificate."
}
],
"rejected_at": "2023-11-07T05:31:56Z",
"created_at": "2026-04-26T18:06:51.940749Z",
"updated_at": "2026-04-26T18:09:24.785211Z",
"submitted_at": "2026-04-26T18:07:03.716411Z",
"verified_at": "2026-04-26T18:07:29.537926Z",
"expiring_at": "2027-04-26T18:07:29.537981Z",
"delete_requested_at": "2026-04-27T09:12:44.201820Z",
"webhook_url": "https://acmehealthcare.example.com/webhooks/branded-calling"
}
}Authorizations
Telnyx API key. Generate one at https://portal.telnyx.com/#/app/api-keys.
Path Parameters
The DIR id. Lowercase UUID.
"16635d38-75a6-4481-82e8-69af60e05011"
Body
Check to certify that the brand no longer infringes anyone else's trademark or intellectual property.
true Must be true.
true Must be true.
true Must be true.
true Explanation of how the infringement concern was addressed.
10 - 500The business name shown to call recipients, 1 to 35 characters, no emoji, not blank.
1 - 35Publicly accessible HTTPS URL (max 128 chars) to a 256x256 BMP logo (max 1 MB).
1281 - 10 elementsAppend-only supporting documents to attach while resolving the claim (e.g. authorization or licensing proof).
20Show child attributes
Show child attributes
Response
DIR updated and re-submitted for vetting.
Show child attributes
Show child attributes
Was this page helpful?
import Telnyx from 'telnyx';
const client = new Telnyx({
apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted
});
const response = await client.dir.updateInfringement('16635d38-75a6-4481-82e8-69af60e05011', {
certify_brand_is_accurate: true,
certify_ip_ownership: true,
certify_no_infringement: true,
certify_no_shaft_content: true,
infringement_resolution_notes:
'Updated the display name to remove the disputed mark and re-uploaded the authorization.',
});
console.log(response.data);import os
from telnyx import Telnyx
client = Telnyx(
api_key=os.environ.get("TELNYX_API_KEY"), # This is the default and can be omitted
)
response = client.dir.update_infringement(
dir_id="16635d38-75a6-4481-82e8-69af60e05011",
certify_brand_is_accurate=True,
certify_ip_ownership=True,
certify_no_infringement=True,
certify_no_shaft_content=True,
infringement_resolution_notes="Updated the display name to remove the disputed mark and re-uploaded the authorization.",
)
print(response.data)
package main
import (
"context"
"fmt"
"github.com/team-telnyx/telnyx-go"
"github.com/team-telnyx/telnyx-go/option"
)
func main() {
client := telnyx.NewClient(
option.WithAPIKey("My API Key"),
)
response, err := client.Dir.UpdateInfringement(
context.TODO(),
"16635d38-75a6-4481-82e8-69af60e05011",
telnyx.DirUpdateInfringementParams{
CertifyBrandIsAccurate: true,
CertifyIPOwnership: true,
CertifyNoInfringement: true,
CertifyNoShaftContent: true,
InfringementResolutionNotes: "Updated the display name to remove the disputed mark and re-uploaded the authorization.",
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", response.Data)
}
package com.telnyx.sdk.example;
import com.telnyx.sdk.client.TelnyxClient;
import com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient;
import com.telnyx.sdk.models.dir.DirUpdateInfringementParams;
import com.telnyx.sdk.models.dir.DirUpdateInfringementResponse;
public final class Main {
private Main() {}
public static void main(String[] args) {
TelnyxClient client = TelnyxOkHttpClient.fromEnv();
DirUpdateInfringementParams params = DirUpdateInfringementParams.builder()
.dirId("16635d38-75a6-4481-82e8-69af60e05011")
.certifyBrandIsAccurate(DirUpdateInfringementParams.CertifyBrandIsAccurate.TRUE)
.certifyIpOwnership(DirUpdateInfringementParams.CertifyIpOwnership.TRUE)
.certifyNoInfringement(DirUpdateInfringementParams.CertifyNoInfringement.TRUE)
.certifyNoShaftContent(DirUpdateInfringementParams.CertifyNoShaftContent.TRUE)
.infringementResolutionNotes("Updated the display name to remove the disputed mark and re-uploaded the authorization.")
.build();
DirUpdateInfringementResponse response = client.dir().updateInfringement(params);
}
}require "telnyx"
telnyx = Telnyx::Client.new(api_key: "My API Key")
response = telnyx.dir.update_infringement(
"16635d38-75a6-4481-82e8-69af60e05011",
certify_brand_is_accurate: true,
certify_ip_ownership: true,
certify_no_infringement: true,
certify_no_shaft_content: true,
infringement_resolution_notes: "Updated the display name to remove the disputed mark and re-uploaded the authorization."
)
puts(response)<?php
require_once dirname(__DIR__) . '/vendor/autoload.php';
use Telnyx\Client;
use Telnyx\Core\Exceptions\APIException;
$client = new Client(apiKey: getenv('TELNYX_API_KEY') ?: 'My API Key');
try {
$response = $client->dir->updateInfringement(
'16635d38-75a6-4481-82e8-69af60e05011',
certifyBrandIsAccurate: true,
certifyIPOwnership: true,
certifyNoInfringement: true,
certifyNoShaftContent: true,
infringementResolutionNotes: 'Updated the display name to remove the disputed mark and re-uploaded the authorization.',
callReasons: ['string'],
displayName: 'x',
documents: [
[
'documentID' => '2a7e8337-e803-4057-a4ae-26c40eb0bc6c',
'documentType' => 'business_registration',
'description' => 'Certificate of incorporation.',
],
],
logoURL: 'logo_url',
);
var_dump($response);
} catch (APIException $e) {
echo $e->getMessage();
}telnyx dir update-infringement \
--api-key 'My API Key' \
--dir-id 16635d38-75a6-4481-82e8-69af60e05011 \
--certify-brand-is-accurate true \
--certify-ip-ownership true \
--certify-no-infringement true \
--certify-no-shaft-content true \
--infringement-resolution-notes 'Updated the display name to remove the disputed mark and re-uploaded the authorization.'curl --request PUT \
--url https://api.telnyx.com/v2/dir/{dir_id}/infringement_update \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"certify_no_infringement": true,
"certify_brand_is_accurate": true,
"certify_no_shaft_content": true,
"certify_ip_ownership": true,
"infringement_resolution_notes": "Updated the display name to remove the disputed mark and re-uploaded the authorization."
}
'{
"data": {
"id": "16635d38-75a6-4481-82e8-69af60e05011",
"enterprise_id": "4a6192a4-573d-446d-b3ce-aff9117272a6",
"display_name": "Acme Plumbing",
"reselling": false,
"certify_brand_is_accurate": true,
"certify_no_shaft_content": true,
"certify_ip_ownership": true,
"authorizer_name": "Sam Owner",
"authorizer_email": "[email protected]",
"logo_url": "https://acmeplumbing.example.com/logo-256.bmp",
"call_reasons": [
{
"reason": "Appointment reminders",
"created_at": "2026-04-26T18:06:51.940749Z"
}
],
"documents": [
{
"document_id": "2a7e8337-e803-4057-a4ae-26c40eb0bc6c",
"document_type": "business_registration",
"description": "Certificate of incorporation."
}
],
"status": "draft",
"rejection_reasons": [
{
"code": "documentation_incomplete",
"title": "Documentation incomplete",
"detail": "Provided documents do not establish business identity.",
"message": "Please re-upload a clearer scan of the certificate."
}
],
"rejected_at": "2023-11-07T05:31:56Z",
"created_at": "2026-04-26T18:06:51.940749Z",
"updated_at": "2026-04-26T18:09:24.785211Z",
"submitted_at": "2026-04-26T18:07:03.716411Z",
"verified_at": "2026-04-26T18:07:29.537926Z",
"expiring_at": "2027-04-26T18:07:29.537981Z",
"delete_requested_at": "2026-04-27T09:12:44.201820Z",
"webhook_url": "https://acmehealthcare.example.com/webhooks/branded-calling"
}
}