Generate a pre-filled Letter of Authorization (LOA) PDF for a DIR. Enterprise identity (legal name, DBA, address, contact, website, tax id) and the DIR display name are read server-side; the caller supplies the telephone numbers to authorize, an optional Authorized Agent block, and an optional drawn signature.
When signature is omitted the PDF is returned unsigned so the customer can sign it externally and upload it via the Documents API. When signature is present the PDF embeds the supplied image, printed name, and signed-at date.
Returns application/pdf.
POST
/
dir
/
{dir_id}
/
loa
JavaScript
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.createLoa('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { phone_numbers: ['+13125550000'],});console.log(response);const content = await response.blob();console.log(content);
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.create_loa(
dir_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
phone_numbers=["+13125550000"],
)
print(response)
content = response.read()
print(content)
Optional. The third-party reseller / partner managing the enterprise's phone numbers on its behalf; omitted, the LOA marks the Authorized Agent block as N/A. A call center (BPO) adding numbers to a client's DIR puts its own details here. The letter is signed by the DIR enterprise's organization contact (the client, in the BPO case), not by the agent.
Optional. When provided the rendered PDF embeds the signature image, printed name, and signed-at date. When absent the PDF is returned unsigned so the customer can sign externally and upload it via the Documents API.
Show child attributes
Response
The rendered LOA PDF.
The response is of type file.
Was this page helpful?
JavaScript
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.createLoa('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { phone_numbers: ['+13125550000'],});console.log(response);const content = await response.blob();console.log(content);
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.create_loa(
dir_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
phone_numbers=["+13125550000"],
)
print(response)
content = response.read()
print(content)
{"docsConfig":{"theme":"sequoia","$schema":"https://mintlify.com/docs.json","name":"Telnyx","description":"Infrastructure for real-time agents. Voice, AI, Edge Compute","colors":{"primary":"#00B688","light":"#00B688","dark":"#00B688"},"logo":{"light":"https://mintcdn.com/telnyx/v2FpkbJg6PQ53qHU/assets/images/site/logo.svg?fit=max\u0026auto=format\u0026n=v2FpkbJg6PQ53qHU\u0026q=85\u0026s=5ee3f61d11ba90a197dd9a1e3499fab6","dark":"https://mintcdn.com/telnyx/v2FpkbJg6PQ53qHU/assets/images/site/logo-dark.svg?fit=max\u0026auto=format\u0026n=v2FpkbJg6PQ53qHU\u0026q=85\u0026s=d65aaa12ec708c79e5833cbdea958055"},"favicon":"https://mintcdn.com/telnyx/t-qaBUa_gCxdRz_m/favicon.ico?fit=max\u0026auto=format\u0026n=t-qaBUa_gCxdRz_m\u0026q=85\u0026s=8291283238ab8c0e2a7a985e69f38c2f","background":{"decoration":"gradient"},"navbar":{"links":[{"icon":"triangle-exclamation","href":"/docs/development/api-fundamentals/api-errors","label":"Error codes"},{"icon":"headset","href":"https://telnyx.com/contact-us","label":"Contact us"},{"icon":"user","href":"https://portal.telnyx.com/#/login/sign-in","label":"Login"}],"primary":{"type":"button","label":"Sign Up","href":"https://telnyx.com/sign-up"}},"footer":{"socials":{"github":"https://github.com/team-telnyx","linkedin":"https://www.linkedin.com/company/telnyx","slack":"https://joinslack.telnyx.com","x":"https://x.com/telnyx"},"links":[{"header":"Resources","items":[{"label":"Pricing","href":"https://developers.telnyx.com/internal/pages/pricing"},{"label":"Compare Telnyx","href":"https://developers.telnyx.com/internal/pages/compare"},{"label":"Support center","href":"https://support.telnyx.com/en"},{"label":"SETI","href":"https://seti.telnyx.com"},{"label":"Agent platform configs","href":"https://github.com/team-telnyx/ai"},{"label":"About Telnyx","href":"https://developers.telnyx.com/internal/pages/about"},{"label":"Service status","href":"https://status.telnyx.com"}]},{"header":"Updates","items":[{"label":"Release notes","href":"https://telnyx.com/release-notes"}]},{"header":"Community","items":[{"label":"Low Latency Club","href":"https://lowlatencyclub.ai/"}]},{"header":"Legal","items":[{"label":"Privacy policy","href":"https://telnyx.com/privacy-policy"},{"label":"Terms and conditions","href":"https://telnyx.com/terms-and-conditions"}]}]},"seo":{"metatags":{"og:description":"Infrastructure for real-time agents. Voice, AI, Edge Compute","description":"Infrastructure for real-time agents. Voice, AI, Edge Compute"},"organization":{"name":"Telnyx","url":"https://telnyx.com","logo":"https://telnyx.com/favicon.ico","sameAs":["https://x.com/telnyx","https://www.linkedin.com/company/telnyx/","https://github.com/team-telnyx"]}},"fonts":{"heading":{"family":"PP Formula","weight":800,"source":"assets/fonts/PPFormula-Extrabold.woff2","format":"woff2"},"body":{"family":"Inter","weight":400,"source":"assets/fonts/Inter-Regular.woff2","format":"woff2"}},"styling":{"eyebrows":"breadcrumbs","latex":true},"integrations":{"gtm":{"tagId":"GTM-NRRX236"}},"banner":{"content":"Check out our upcoming events and meetups! [View events →](https://lowlatencyclub.ai/)","dismissible":true},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"navigation":{"global":{"anchors":[{"anchor":"Home","icon":"house","href":"/docs/overview"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"telnyx","hasAudioNarration":false,"actualSubdomain":"telnyx","customDomains":["developers.telnyx.com"],"gitSource":{"type":"github","owner":"team-telnyx","repo":"developer-docs-mintlify","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae29bd61a757e9af44d98b5","collectionId":"abed3d1c-b33c-4860-9184-20b19d2db78c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae29bd61a757e9af44d98b5"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae29e47a8421b43b25816a1","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"default","tag":"Calling","count":591},{"language":"default","tag":"API Reference","count":551},{"language":"default","tag":"Other APIs","count":402},{"language":"default","tag":"AI","count":381},{"language":"default","tag":"Messaging","count":353},{"language":"default","tag":"Numbers","count":287},{"language":"default","tag":"Agent Platform","count":217},{"language":"default","tag":"Assistants","count":201},{"language":"default","tag":"Voice API","count":178},{"language":"default","tag":"SMS \u0026 MMS","count":149}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":"[class*=sidebar] [class*=badge],[class*=sidebar] [class*=tag],nav [class*=badge],nav [class*=tag]{font-size:.8rem!important}#ot-sdk-btn-floating{left:auto!important;right:10px!important}body:has([aria-label=\"Preview Widget\"]) #ot-sdk-btn-floating{bottom:88px!important}#navbar .nav-tabs-item:has(>div>svg[style*=\"/book-open.svg\"]),#navbar div:has(>div>.nav-tabs>a.nav-tabs-item:first-child:last-child){display:none}.nav-tabs a.nav-tabs-item:not([aria-current=location]){display:none}#mobile-nav #navigation-items>div:has(>div>button[aria-haspopup=menu]),#mobile-nav [data-component-part=products-selector-trigger],#mobile-nav.tx-has-directory #navigation-items{display:none!important}#mobile-nav .tx-mobile-directory{padding:0;margin-bottom:1.5rem}#mobile-nav .tx-mobile-directory .tx-dir-suite-head,#mobile-nav .tx-mobile-directory a{min-height:2.75rem}#mobile-nav .tx-mobile-directory :is(a, .tx-dir-suite-head):focus-visible{outline:2px solid currentColor;outline-offset:-2px}.txd-shell{display:flex;gap:0;max-width:none;margin:0;padding:3rem 2rem 6rem 0}.txd-side{width:18rem;flex-shrink:0}.txd-main{flex:1;min-width:0;max-width:56rem;margin-left:11.75rem}@media (max-width:80rem){.txd-main{margin-left:4rem}}:is(#tx-directory, .tx-mobile-directory){margin:0 0 .5rem;padding:0 .5rem 0 1rem}:is(#tx-directory, .tx-mobile-directory) .tx-dir-label{font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;opacity:.55;margin:0 0 .4rem}:is(#tx-directory, .tx-mobile-directory) .tx-dir-label-gap{margin-top:1.5rem}:is(#tx-directory, .tx-mobile-directory) .tx-dir-link,:is(#tx-directory, .tx-mobile-directory) summary{display:flex;align-items:center;cursor:pointer;font-size:.875rem;line-height:1.25rem;padding:.35rem .5rem;border-radius:.375rem;color:rgb(55 65 81);text-decoration:none}html.dark :is(#tx-directory, .tx-mobile-directory) .tx-dir-link,html.dark :is(#tx-directory, .tx-mobile-directory) summary{color:rgb(156 163 175)}:is(#tx-directory, .tx-mobile-directory) .tx-dir-link:hover,:is(#tx-directory, .tx-mobile-directory) summary:hover{color:rgb(17 24 39);background:rgb(0 0 0/.04)}:is(#tx-directory, .tx-mobile-directory) .tx-dir-link[aria-current=page]{color:#00b688;background:0 0;box-shadow:none;font-weight:400;text-shadow:-.2px 0 0 currentColor,.2px 0 0 currentColor}html.dark :is(#tx-directory, .tx-mobile-directory) .tx-dir-link:hover,html.dark :is(#tx-directory, .tx-mobile-directory) summary:hover{color:rgb(229 231 235);background:rgb(255 255 255/.06)}html.dark :is(#tx-directory, .tx-mobile-directory) .tx-dir-link[aria-current=page]{color:#5eead4;background:0 0;box-shadow:none}:is(#tx-directory, .tx-mobile-directory) .tx-dir-soon,:is(#tx-directory, .tx-mobile-directory) .tx-dir-soon:hover,html.dark :is(#tx-directory, .tx-mobile-directory) .tx-dir-soon,html.dark :is(#tx-directory, .tx-mobile-directory) .tx-dir-soon:hover{cursor:default;opacity:.45;background:0 0;color:inherit}:is(#tx-directory, .tx-mobile-directory) .tx-dir-soon sup{font-size:.6rem;line-height:1;letter-spacing:.05em;text-transform:uppercase;margin-left:.4rem;vertical-align:super}:is(#tx-directory, .tx-mobile-directory) .tx-dir-suite{margin-bottom:.15rem}:is(#tx-directory, .tx-mobile-directory) .tx-dir-suite-head{display:flex;align-items:center;cursor:pointer;user-select:none;font-size:.875rem;line-height:1.25rem;font-weight:500;padding:.35rem .5rem;border-radius:.375rem;color:rgb(55 65 81)}html.dark :is(#tx-directory, .tx-mobile-directory) .tx-dir-suite-head,html.dark :is(#tx-directory, .tx-mobile-directory) li a{color:rgb(156 163 175)}:is(#tx-directory, .tx-mobile-directory) .tx-dir-suite-head:hover,:is(#tx-directory, .tx-mobile-directory) li a:hover{color:rgb(17 24 39);background:rgb(0 0 0/.04)}html.dark :is(#tx-directory, .tx-mobile-directory) .tx-dir-suite-head:hover,html.dark :is(#tx-directory, .tx-mobile-directory) .tx-dir-suite.open>.tx-dir-suite-head,html.dark :is(#tx-directory, .tx-mobile-directory) li a:hover{color:rgb(229 231 235);background:rgb(255 255 255/.06)}:is(#tx-directory, .tx-mobile-directory) .tx-dir-suite-head::after{content:'';width:.42rem;height:.42rem;margin-left:auto;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .15s;flex-shrink:0;opacity:.7}:is(#tx-directory, .tx-mobile-directory) .tx-dir-suite.open>.tx-dir-suite-head::after{transform:rotate(45deg)}:is(#tx-directory, .tx-mobile-directory) .tx-dir-suite.open>.tx-dir-suite-head{color:rgb(17 24 39);background:rgb(0 0 0/.04);font-weight:600}:is(#tx-directory, .tx-mobile-directory) .tx-dir-suite>ul{display:none}:is(#tx-directory, .tx-mobile-directory) .tx-dir-suite.open>ul{display:block}:is(#tx-directory, .tx-mobile-directory) ul{margin:.15rem 0 .5rem;padding:0}:is(#tx-directory, .tx-mobile-directory) li{list-style:none}:is(#tx-directory, .tx-mobile-directory) li a{display:flex;align-items:center;font-size:.875rem;line-height:1.25rem;padding:.3rem .5rem .3rem 1.6rem;border-radius:.375rem;color:rgb(107 114 128);text-decoration:none}:is(#tx-directory, .tx-mobile-directory) .tx-dir-section-item{font-weight:500}:is(#tx-directory, .tx-mobile-directory) .tx-dir-icon{display:inline-block;width:1rem;height:1rem;flex-shrink:0;margin-right:.5rem;background-color:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}.txi-arrows-left-right-to-line{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/arrows-left-right-to-line.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/arrows-left-right-to-line.svg)}.txi-bolt{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/bolt.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/bolt.svg)}.txi-brain{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/brain.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/brain.svg)}.txi-brain-circuit{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/brain-circuit.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/brain-circuit.svg)}.txi-brands-whatsapp{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/whatsapp.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/whatsapp.svg)}.txi-broadcast-tower{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/broadcast-tower.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/broadcast-tower.svg)}.txi-browser{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/browser.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/browser.svg)}.txi-circle-nodes{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/circle-nodes.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/circle-nodes.svg)}.txi-clone{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/clone.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/clone.svg)}.txi-cloud{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/cloud.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/cloud.svg)}.txi-code{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/code.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/code.svg)}.txi-comment-sms{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/comment-sms.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/comment-sms.svg)}.txi-cubes{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/cubes.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/cubes.svg)}.txi-database{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/database.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/database.svg)}.txi-envelope{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/envelope.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/envelope.svg)}.txi-eye{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/eye.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/eye.svg)}.txi-file-certificate{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/file-certificate.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/file-certificate.svg)}.txi-fingerprint{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/fingerprint.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/fingerprint.svg)}.txi-folder-tree{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/folder-tree.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/folder-tree.svg)}.txi-globe{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/globe.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/globe.svg)}.txi-hard-drive{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/hard-drive.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/hard-drive.svg)}.txi-hashtag{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/hashtag.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/hashtag.svg)}.txi-headset{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/headset.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/headset.svg)}.txi-key{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/key.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/key.svg)}.txi-layer-group{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/layer-group.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/layer-group.svg)}.txi-magnifying-glass{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/magnifying-glass.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/magnifying-glass.svg)}.txi-message{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/message.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/message.svg)}.txi-message-dots{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/message-dots.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/message-dots.svg)}.txi-microchip-ai{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/microchip-ai.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/microchip-ai.svg)}.txi-microphone{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/microphone.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/microphone.svg)}.txi-network-wired{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/network-wired.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/network-wired.svg)}.txi-phone{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/phone.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/phone.svg)}.txi-phone-volume{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/phone-volume.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/phone-volume.svg)}.txi-plug{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/plug.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/plug.svg)}.txi-right-left{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/right-left.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/right-left.svg)}.txi-robot{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/robot.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/robot.svg)}.txi-server{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/server.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/server.svg)}.txi-share-nodes{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/share-nodes.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/share-nodes.svg)}.txi-shield{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/shield.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/shield.svg)}.txi-shield-check{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/shield-check.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/shield-check.svg)}.txi-signal{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/signal.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/signal.svg)}.txi-sim-card{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/sim-card.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/sim-card.svg)}.txi-split{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/split.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/split.svg)}.txi-table{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/table.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/table.svg)}.txi-tower-control{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/tower-control.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/tower-control.svg)}.txi-train-tunnel{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/train-tunnel.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/train-tunnel.svg)}.txi-video{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/video.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/video.svg)}.txi-wand-magic-sparkles{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/wand-magic-sparkles.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/wand-magic-sparkles.svg)}.txi-waveform{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/waveform.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/waveform.svg)}.txi-waveform-lines{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/waveform-lines.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/waveform-lines.svg)}.txd-main .txd-h1{font-family:var(--font-family-headings-custom, \"PP Formula\"),-apple-system,BlinkMacSystemFont,\"Segoe UI\",system-ui,sans-serif;font-size:2.1rem;font-weight:500;letter-spacing:-.01em;margin:1.2rem 0 .4rem;color:rgb(22 28 26)}html.dark .txd-main .txd-h1{color:rgb(229 231 235)}.txd-main .txd-lead{font-size:1.3rem;line-height:1.55;font-weight:500;margin:.9rem 0 1.3rem;color:rgb(31 41 55)}html.dark .txd-main .txd-lead{color:rgb(209 213 219)}.txd-main .txd-h2{font-family:var(--font-family-headings-custom, \"PP Formula\"),-apple-system,BlinkMacSystemFont,\"Segoe UI\",system-ui,sans-serif;font-size:1.45rem;font-weight:500;margin:2.4rem 0 .4rem;color:rgb(22 28 26)}html.dark .txd-main .txd-h2{color:rgb(229 231 235)}.txd-main .txd-section-h{font-size:1.05rem;font-weight:600;margin:1.8rem 0 .2rem;opacity:.85}.txd-main .txd-p{margin:.7rem 0 1rem;line-height:1.65;color:rgb(75 85 99)}html.dark .txd-main .txd-p{color:rgb(156 163 175)}.txd-main .txd-follow-up a:hover,.txd-main .txd-p a{text-decoration:underline}.txd-main .txd-h1{max-width:46rem;line-height:1.12}.txd-main .txd-hero-copy{max-width:45rem}.txd-main .txd-follow-up{margin-top:1rem}.txd-main .txd-follow-up a{color:#00b688;font-weight:600;text-decoration:none}.txd-main a:focus-visible{outline:2px solid #00b688;outline-offset:3px}@media (max-width:48rem){.txd-main .txd-h1{font-size:1.9rem}}@media (min-width:64.01rem) and (max-width:90rem){.txd-main{margin-right:4rem}}.rm-explorer{--rm-border:rgb(15 23 42 / 14%);--rm-muted:#5f6b68;--rm-soft:#f6f8f7}.dark .rm-explorer{--rm-border:rgb(255 255 255 / 14%);--rm-muted:#a2aaa8;--rm-soft:#151a19}#resource-map-toolbar{position:sticky;top:5rem;z-index:20;margin:1.25rem 0 1.75rem;padding:.75rem 0;background:var(--rm-surface, #fff);border-bottom:1px solid var(--rm-border)}.dark #resource-map-toolbar{background:#0b0e0d}.rm-controls{display:grid;grid-template-columns:minmax(15rem,1fr) minmax(10rem,auto) auto;gap:.625rem;align-items:center}.rm-search{position:relative;min-width:0}.rm-search svg{position:absolute;top:50%;left:.75rem;width:1rem;height:1rem;color:var(--rm-muted);fill:none;stroke:currentColor;stroke-width:1.8;transform:translateY(-50%);pointer-events:none}.rm-area-select,.rm-collapse,.rm-search input{min-height:2.5rem;font-size:.875rem}.rm-area-select,.rm-clear,.rm-collapse,.rm-empty button,.rm-search input{color:inherit;background:0 0;border:1px solid var(--rm-border);border-radius:.5rem;font:inherit}.rm-empty button{font-size:.875rem}.rm-search input{width:100%;padding:.58rem 2.6rem .58rem 2.35rem}.rm-search input::placeholder{color:var(--rm-muted);opacity:1}.rm-shortcut{position:absolute;top:50%;right:.65rem;display:grid;width:1.5rem;height:1.5rem;place-items:center;color:var(--rm-muted);background:var(--rm-soft);border:1px solid var(--rm-border);border-radius:.35rem;font:inherit;font-size:.72rem;transform:translateY(-50%);pointer-events:none}.rm-area-wrap{position:relative;max-width:13rem}.rm-area-select{width:100%;max-width:13rem;padding:.55rem 2.25rem .55rem .75rem;appearance:none;cursor:pointer}.rm-area-caret{position:absolute;top:50%;right:.85rem;width:.45rem;height:.45rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-70%) rotate(45deg);pointer-events:none}.rm-collapse{padding:.5rem .75rem}.rm-clear,.rm-collapse,.rm-empty button{font-weight:650;cursor:pointer}.rm-empty button{padding:.5rem .75rem}.rm-area-select:focus-visible,.rm-clear:focus-visible,.rm-collapse:focus-visible,.rm-empty button:focus-visible,.rm-search input:focus-visible{outline:2px solid #00b688;outline-offset:2px;border-color:#00b688;box-shadow:none!important}.rm-clear:hover,.rm-collapse:hover,.rm-empty button:hover{color:#08785d;background:var(--rm-soft)}.dark .rm-clear:hover,.dark .rm-collapse:hover,.dark .rm-empty button:hover{color:#5eead4}.rm-meta{display:flex;min-height:1.65rem;align-items:center;justify-content:space-between;gap:.75rem;padding:.45rem .15rem 0}.rm-status{color:var(--rm-muted);font-size:.78rem;line-height:1.35}.rm-clear{min-height:1.8rem;padding:.2rem .55rem;border-color:transparent;font-size:.78rem}.rm-empty{display:grid;justify-items:start;gap:.35rem;margin:-.5rem 0 1.75rem;padding:1.1rem 1.2rem;color:var(--rm-muted);background:var(--rm-soft);border:1px solid var(--rm-border);border-radius:.75rem;font-size:.875rem}.rm-empty strong{color:inherit;font-size:.95rem}.rm-empty button{min-height:2.2rem;margin-top:.35rem}.rm-resource-list{display:block!important;margin:0 0 .75rem!important;border-color:var(--rm-border)!important;border-top:0!important;border-radius:0 0 .75rem .75rem!important}.rm-resource-list>details.accordion{margin:0!important;border:0!important;border-radius:0!important}.rm-resource-list>details.accordion+details.accordion{border-top:1px solid var(--rm-border)!important}.rm-resource-list>details.accordion>summary{min-height:3rem;padding:.7rem .9rem!important;border-radius:0!important}.rm-resource-list>details.accordion:first-child>summary{border-radius:0!important}.rm-resource-list>details.accordion:last-child:not([open])>summary{border-radius:0 0 .75rem .75rem!important}.rm-resource-list [data-component-part=accordion-title]{display:flex;min-width:0;align-items:baseline;justify-content:space-between;gap:1rem}.rm-resource-name{min-width:0;overflow-wrap:anywhere;font-weight:650}.rm-method-count{flex:0 0 auto;color:var(--rm-muted);font-size:.75rem;font-weight:500;white-space:nowrap}.rm-resource-list details[open]>summary{background:var(--rm-soft)}.rm-resource-list details[open] [data-component-part=accordion-content]{margin-right:1rem;margin-left:1rem}.rm-resource-list tbody tr.rm-row-match{background:rgb(0 182 136/8%)}.rm-resource-list td:first-child code{white-space:nowrap}.rm-clear[hidden],.rm-collapse[hidden],.rm-empty[hidden],.rm-explorer h2[hidden],.rm-resource-list tbody tr[hidden],.rm-resource-list[hidden]{display:none!important}.rm-explorer h2{position:relative;min-height:3rem;margin:.45rem 0 0!important;scroll-margin-top:10rem;border:1px solid var(--rm-border);border-radius:.75rem}.rm-explorer h2.rm-section-open{border-radius:.75rem .75rem 0 0}.rm-section-toggle{display:grid;width:100%;min-height:3rem;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.75rem;padding:.6rem .9rem;color:inherit;text-align:left;background:0 0;border:0;cursor:pointer}.rm-section-toggle:focus-visible,.rm-section-toggle:hover{background:var(--rm-soft)}.rm-section-toggle:focus-visible{outline:2px solid #00b688;outline-offset:2px;border-radius:.7rem}.rm-section-name{font-size:1rem;font-weight:700}.rm-section-count{display:grid;min-width:1.65rem;min-height:1.4rem;place-items:center;padding:3px 6px;color:#08785d;background:rgb(0 182 136/10%);border-radius:.35rem;font-size:12px;font-weight:700;line-height:16px;white-space:nowrap}.dark .rm-section-count{color:#5eead4;background:#12302b}.rm-section-caret{width:.5rem;height:.5rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-.15rem)}.rm-section-toggle[aria-expanded=true] .rm-section-caret{transform:rotate(225deg) translate(-.1rem,-.05rem)}@media (max-width:767px){#resource-map-toolbar{position:static;top:auto;z-index:auto;margin-top:1rem;padding-top:.6rem}.rm-controls{grid-template-columns:minmax(0,1fr) auto}.rm-search{grid-column:1/-1}.rm-search input{padding-right:.75rem}.rm-resource-list thead,.rm-shortcut{display:none}.rm-area-select,.rm-area-wrap{width:100%;max-width:none}.rm-resource-list [data-component-part=accordion-title]{gap:.65rem}.rm-method-count{font-size:.7rem}.rm-resource-list table,.rm-resource-list tbody{display:block;width:100%;min-width:0!important}.rm-resource-list tbody tr{display:grid;width:100%;grid-template-columns:minmax(0,1fr);gap:.45rem;padding:.75rem 0}.rm-resource-list tbody tr+tr{border-top:1px solid var(--rm-border)}.rm-resource-list tbody td{display:grid;width:100%;min-width:0!important;grid-template-columns:4.5rem minmax(0,1fr);align-items:start;gap:.5rem;padding:0!important;border:0!important}.rm-resource-list tbody td::before{color:var(--rm-muted);font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.rm-resource-list tbody td:first-child::before{content:\"Method\"}.rm-resource-list tbody td:last-child::before{content:\"Endpoint\"}.rm-resource-list tbody td a,.rm-resource-list tbody td code{min-width:0;white-space:normal!important;overflow-wrap:anywhere}}@media (prefers-reduced-motion:reduce){.rm-explorer *,.rm-explorer ::after,.rm-explorer ::before{scroll-behavior:auto!important;transition-duration:.01ms!important}}.sdk-launchpad{--sdk-border:#d8e1de;--sdk-panel:#ffffff;margin:1rem 0 1.5rem;padding:1rem;overflow:hidden;color:inherit;background:var(--sdk-panel);border:1px solid var(--sdk-border);border-radius:12px}.dark .sdk-launchpad{--sdk-border:#293431;--sdk-panel:#101513}.sdk-launchpad-kicker{margin:0 0 .25rem!important;color:#08785d;font-size:.68rem;font-weight:800;letter-spacing:.1em}.dark .sdk-launchpad-kicker{color:#5eead4}.sdk-launchpad>h2{margin-top:.25rem}.sdk-launchpad [role=tablist]{display:flex;flex-wrap:wrap;gap:.25rem}.sdk-launchpad [role=tab]{min-width:56px;min-height:44px}.sdk-launchpad [role=tab][aria-selected=true]{color:#08785d!important}.dark .sdk-launchpad [role=tab][aria-selected=true]{color:#5eead4!important}.sdk-launchpad [role=tab]:focus-visible,.sdk-launchpad a:focus-visible,.sdk-launchpad-code:focus-visible{outline:2px solid #08785d;outline-offset:2px}.dark .sdk-launchpad [role=tab]:focus-visible,.dark .sdk-launchpad a:focus-visible,.dark .sdk-launchpad-code:focus-visible{outline-color:#5eead4}.sdk-launchpad-code{max-width:100%;overflow-x:auto;border-radius:.5rem}.sdk-launchpad-code pre{max-width:none;overflow-x:visible!important}.sdk-launchpad-code button{min-width:44px;min-height:44px}#content-area:has(#sdk-launchpad) .chat-assistant-floating-input{display:none}@media (max-width:640px){.sdk-launchpad{margin-top:.75rem;padding:.75rem}.sdk-launchpad-kicker{display:none}.sdk-launchpad [role=tablist]{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.2rem;overflow:visible}.sdk-launchpad [role=tab]{min-width:0;min-height:44px;padding-inline:.2rem;font-size:.75rem;line-height:1.15;white-space:nowrap}}.sdk-directory li{margin-block:.5rem}.mdx-content table td{min-width:0!important}.mdx-content table td :is(code, a){overflow-wrap:anywhere}.mdx-content table :is(th, td):first-child code{white-space:nowrap;word-break:normal;overflow-wrap:normal}@media (min-width:768px){.tx-table-grid table{table-layout:fixed}.tx-table-grid table :is(th, td):first-child{width:40%}}.tx-retirement-banner{margin-bottom:1.5rem}.tx-retirement-banner>div{margin:0}@media (min-width:1024px){.tx-retirement-banner{position:sticky;top:calc(6rem + var(--banner-height, 0px));z-index:20;padding-top:.5rem;background:rgb(var(--background-light, 255 255 255))}.dark .tx-retirement-banner{background:rgb(var(--background-dark, 9 12 14))}}#content>.callout:first-child{margin-top:0}#content strong{font-weight:600}"}],"page":{"pagePath":"api-reference/display-identity-records/render-the-branded-calling-loa-for-a-dir","slug":"/api-reference/display-identity-records/render-the-branded-calling-loa-for-a-dir","pageMetadata":{"title":"Render the Branded Calling LOA for a DIR","description":"Generate a pre-filled Letter of Authorization (LOA) PDF for a DIR. Enterprise identity (legal name, DBA, address, contact, website, tax id) and the DIR display name are read server-side; the caller supplies the telephone numbers to authorize, an optional Authorized Agent block, and an optional drawn signature.\n\nWhen `signature` is omitted the PDF is returned unsigned so the customer can sign it externally and upload it via the Documents API. When `signature` is present the PDF embeds the supplied image, printed name, and signed-at date.\n\nReturns `application/pdf`.","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /dir/{dir_id}/loa","href":"/api-reference/display-identity-records/render-the-branded-calling-loa-for-a-dir","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Generate a pre-filled Letter of Authorization (LOA) PDF for a DIR. Enterprise identity (legal name, DBA, address, contact, website, tax id) and the DIR display name are read server-side; the caller supplies the telephone numbers to authorize, an optional Authorized Agent block, and an optional drawn signature.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"When \", _jsx(_components.code, {\n children: \"signature\"\n }), \" is omitted the PDF is returned unsigned so the customer can sign it externally and upload it via the Documents API. When \", _jsx(_components.code, {\n children: \"signature\"\n }), \" is present the PDF embeds the supplied image, printed name, and signed-at date.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Returns \", _jsx(_components.code, {\n children: \"application/pdf\"\n }), \".\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Render the Branded Calling LOA for a DIR","description":"Generate a pre-filled Letter of Authorization (LOA) PDF for a DIR. Enterprise identity (legal name, DBA, address, contact, website, tax id) and the DIR display name are read server-side; the caller supplies the telephone numbers to authorize, an optional Authorized Agent block, and an optional drawn signature.\n\nWhen `signature` is omitted the PDF is returned unsigned so the customer can sign it externally and upload it via the Documents API. When `signature` is present the PDF embeds the supplied image, printed name, and signed-at date.\n\nReturns `application/pdf`.","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /dir/{dir_id}/loa","href":"/api-reference/display-identity-records/render-the-branded-calling-loa-for-a-dir","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/telnyx/a2dd5aaa2ff5831a/reading-progress.js","/_mintlify/custom/telnyx/7b77ce9cedb163fd/webmcp-init.js","/_mintlify/custom/telnyx/7fbfee588ac7ad38/structured-data.js","/_mintlify/custom/telnyx/84283928b1e31919/scripts/tests/generate-llms-txt.test.js","/_mintlify/custom/telnyx/8851ad5fd6e9b5c7/scripts/tests/direct-source-workflows.test.js","/_mintlify/custom/telnyx/7ad13bb6588be22f/scripts/tests/redirects.test.js","/_mintlify/custom/telnyx/f981035eb45fcbdb/scripts/tests/generate-error-catalog.test.js","/_mintlify/custom/telnyx/132bc205f55282a5/scripts/tests/sync-llms-automerge.test.js","/_mintlify/custom/telnyx/05e787f15f45952b/scripts/tests/webhook-catalog-lifecycle.test.js","/_mintlify/custom/telnyx/01b840b27496e6c8/scripts/tests/repository-structure.test.js","/_mintlify/custom/telnyx/5ebc7d6e18012563/scripts/tests/legacy-content-usage.test.js","/_mintlify/custom/telnyx/ac1f21e68bf4050a/scripts/docs/check-llms-links.js","/_mintlify/custom/telnyx/5f7d2f1ae375b9ad/scripts/docs/check-llms-native-routes.js","/_mintlify/custom/telnyx/b8d13287c2dcc5b9/scripts/docs/fetch-coverage.js","/_mintlify/custom/telnyx/e0a29f76f2645359/scripts/docs/generate-error-catalog.js","/_mintlify/custom/telnyx/0bc5eef76b84f366/scripts/docs/generate-llms-txt.js","/_mintlify/custom/telnyx/f1f111fe784c3ede/scripts/docs/update-tts-voices.js","/_mintlify/custom/telnyx/c2dca47194e47168/scripts/docs/build-sdk-doc-pages.js","/_mintlify/custom/telnyx/f840117777d76f9e/scripts/tests/sdk-doc-pages.test.js","/_mintlify/custom/telnyx/414c53c50b0e1968/resource-map-filter.js","/_mintlify/custom/telnyx/80af622b3010a712/scripts/tests/sdk-language-switcher.test.js","/_mintlify/custom/telnyx/52fa0fbcb966f8b6/sdk-language-switcher.js","/_mintlify/custom/telnyx/a8c4ad94eeedc2c8/home-directory.js","/_mintlify/custom/telnyx/da7a630a1adf8a7a/scripts/generate-home-directory.js","/_mintlify/custom/telnyx/137e3eb8e1d1d85a/scripts/tests/api-fundamentals.test.js","/_mintlify/custom/telnyx/24a8eed3a5010d4c/scripts/tests/agent-sdk-workflow.test.js","/_mintlify/custom/telnyx/9797dbea7468c103/scripts/tests/homepage-overview.test.js","/_mintlify/custom/telnyx/8edf49ac62deef02/scripts/tests/batch-detail-records-navigation.test.js","/_mintlify/custom/telnyx/e005178572336f01/scripts/tests/api-discoverability.test.js","/_mintlify/custom/telnyx/78cb83896fbea5cf/scripts/tests/home-directory.test.js","/_mintlify/custom/telnyx/11ae45253e6b7be6/scripts/tests/agent-readiness.test.js","/_mintlify/custom/telnyx/82396d5a75077c2a/scripts/tests/sample-workflow-regressions.test.js","/_mintlify/custom/telnyx/5f6625c0420c9328/scripts/tests/openapi-mintlify-parsing.test.js","/_mintlify/custom/telnyx/c7dca602ca9641ec/scripts/tests/llms-markdown-assets.test.js","/_mintlify/custom/telnyx/02d6acd7c86b79f9/scripts/tests/agent-browser-quickstart.test.js"],"openApiReferenceData":{"operation":{"tags":["Display Identity Records"],"summary":"Render the Branded Calling LOA for a DIR","operationId":"renderDirLoa","description":"Generate a pre-filled Letter of Authorization (LOA) PDF for a DIR. Enterprise identity (legal name, DBA, address, contact, website, tax id) and the DIR display name are read server-side; the caller supplies the telephone numbers to authorize, an optional Authorized Agent block, and an optional drawn signature.\n\nWhen `signature` is omitted the PDF is returned unsigned so the customer can sign it externally and upload it via the Documents API. When `signature` is present the PDF embeds the supplied image, printed name, and signed-at date.\n\nReturns `application/pdf`.","parameters":["49f3870b-7827-41aa-aeb7-baa5aa21bd54"],"requestBody":"4f90d0b3-4f36-4527-970c-b6ed423cf2af","responses":{"200":"6cdc7324-ec01-4102-b220-075bdaa33de2","400":"c7944f62-820b-4281-aa84-9fd00726c98d","404":"8ce014b8-7f8b-47e8-be6c-26434f24393b"},"x-codeSamples":[{"lang":"JavaScript","source":"import Telnyx from 'telnyx';\n\nconst client = new Telnyx({\n apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.dir.createLoa('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n phone_numbers: ['+13125550000'],\n});\n\nconsole.log(response);\n\nconst content = await response.blob();\nconsole.log(content);"},{"lang":"Python","source":"import os\nfrom telnyx import Telnyx\n\nclient = Telnyx(\n api_key=os.environ.get(\"TELNYX_API_KEY\"), # This is the default and can be omitted\n)\nresponse = client.dir.create_loa(\n dir_id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n phone_numbers=[\"+13125550000\"],\n)\nprint(response)\ncontent = response.read()\nprint(content)\n"},{"lang":"Go","source":"package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/team-telnyx/telnyx-go\"\n\t\"github.com/team-telnyx/telnyx-go/option\"\n)\n\nfunc main() {\n\tclient := telnyx.NewClient(\n\t\toption.WithAPIKey(\"My API Key\"),\n\t)\n\tresponse, err := client.Dir.NewLoa(\n\t\tcontext.TODO(),\n\t\t\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n\t\ttelnyx.DirNewLoaParams{\n\t\t\tPhoneNumbers: []string{\"+13125550000\"},\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", response)\n}\n"},{"lang":"Java","source":"package com.telnyx.sdk.example;\n\nimport com.telnyx.sdk.client.TelnyxClient;\nimport com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient;\nimport com.telnyx.sdk.core.http.HttpResponse;\nimport com.telnyx.sdk.models.dir.DirCreateLoaParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n TelnyxClient client = TelnyxOkHttpClient.fromEnv();\n\n DirCreateLoaParams params = DirCreateLoaParams.builder()\n .dirId(\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\")\n .addPhoneNumber(\"+13125550000\")\n .build();\n HttpResponse response = client.dir().createLoa(params);\n }\n}"},{"lang":"Ruby","source":"require \"telnyx\"\n\ntelnyx = Telnyx::Client.new(api_key: \"My API Key\")\n\nresponse = telnyx.dir.create_loa(\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\", phone_numbers: [\"+13125550000\"])\n\nputs(response)"},{"lang":"PHP","source":"\u003c?php\n\nrequire_once dirname(__DIR__) . '/vendor/autoload.php';\n\nuse Telnyx\\Client;\nuse Telnyx\\Core\\Exceptions\\APIException;\n\n$client = new Client(apiKey: getenv('TELNYX_API_KEY') ?: 'My API Key');\n\ntry {\n $response = $client->dir->createLoa(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n phoneNumbers: ['+13125550000'],\n agent: [\n 'administrativeArea' => 'administrative_area',\n 'city' => 'city',\n 'contactEmail' => '[email protected]',\n 'contactName' => 'contact_name',\n 'contactPhone' => '+13125550000',\n 'contactTitle' => 'contact_title',\n 'country' => 'US',\n 'legalName' => 'legal_name',\n 'postalCode' => 'postal_code',\n 'streetAddress' => 'street_address',\n 'dba' => 'dba',\n 'extendedAddress' => 'extended_address',\n ],\n signature: ['imageBase64' => 'x', 'signerName' => 'signer_name'],\n );\n\n var_dump($response);\n} catch (APIException $e) {\n echo $e->getMessage();\n}"},{"lang":"CLI","source":"telnyx dir create-loa \\\n --api-key 'My API Key' \\\n --dir-id 182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e \\\n --phone-number \"'+13125550000'\""}],"method":"post","type":"path","servers":["62f7e5fa-27e1-4c04-9cff-62e50a3390a2"],"security":["1c1e4728-920b-41b2-af99-204405ee4449"],"path":"/dir/{dir_id}/loa","baseUrlOptions":["https://api.telnyx.com/v2"],"title":"Render the Branded Calling LOA for a DIR","codeSamples":[{"lang":"JavaScript","source":"import Telnyx from 'telnyx';\n\nconst client = new Telnyx({\n apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.dir.createLoa('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n phone_numbers: ['+13125550000'],\n});\n\nconsole.log(response);\n\nconst content = await response.blob();\nconsole.log(content);"},{"lang":"Python","source":"import os\nfrom telnyx import Telnyx\n\nclient = Telnyx(\n api_key=os.environ.get(\"TELNYX_API_KEY\"), # This is the default and can be omitted\n)\nresponse = client.dir.create_loa(\n dir_id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n phone_numbers=[\"+13125550000\"],\n)\nprint(response)\ncontent = response.read()\nprint(content)\n"},{"lang":"Go","source":"package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/team-telnyx/telnyx-go\"\n\t\"github.com/team-telnyx/telnyx-go/option\"\n)\n\nfunc main() {\n\tclient := telnyx.NewClient(\n\t\toption.WithAPIKey(\"My API Key\"),\n\t)\n\tresponse, err := client.Dir.NewLoa(\n\t\tcontext.TODO(),\n\t\t\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n\t\ttelnyx.DirNewLoaParams{\n\t\t\tPhoneNumbers: []string{\"+13125550000\"},\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", response)\n}\n"},{"lang":"Java","source":"package com.telnyx.sdk.example;\n\nimport com.telnyx.sdk.client.TelnyxClient;\nimport com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient;\nimport com.telnyx.sdk.core.http.HttpResponse;\nimport com.telnyx.sdk.models.dir.DirCreateLoaParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n TelnyxClient client = TelnyxOkHttpClient.fromEnv();\n\n DirCreateLoaParams params = DirCreateLoaParams.builder()\n .dirId(\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\")\n .addPhoneNumber(\"+13125550000\")\n .build();\n HttpResponse response = client.dir().createLoa(params);\n }\n}"},{"lang":"Ruby","source":"require \"telnyx\"\n\ntelnyx = Telnyx::Client.new(api_key: \"My API Key\")\n\nresponse = telnyx.dir.create_loa(\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\", phone_numbers: [\"+13125550000\"])\n\nputs(response)"},{"lang":"PHP","source":"\u003c?php\n\nrequire_once dirname(__DIR__) . '/vendor/autoload.php';\n\nuse Telnyx\\Client;\nuse Telnyx\\Core\\Exceptions\\APIException;\n\n$client = new Client(apiKey: getenv('TELNYX_API_KEY') ?: 'My API Key');\n\ntry {\n $response = $client->dir->createLoa(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n phoneNumbers: ['+13125550000'],\n agent: [\n 'administrativeArea' => 'administrative_area',\n 'city' => 'city',\n 'contactEmail' => '[email protected]',\n 'contactName' => 'contact_name',\n 'contactPhone' => '+13125550000',\n 'contactTitle' => 'contact_title',\n 'country' => 'US',\n 'legalName' => 'legal_name',\n 'postalCode' => 'postal_code',\n 'streetAddress' => 'street_address',\n 'dba' => 'dba',\n 'extendedAddress' => 'extended_address',\n ],\n signature: ['imageBase64' => 'x', 'signerName' => 'signer_name'],\n );\n\n var_dump($response);\n} catch (APIException $e) {\n echo $e->getMessage();\n}"},{"lang":"CLI","source":"telnyx dir create-loa \\\n --api-key 'My API Key' \\\n --dir-id 182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e \\\n --phone-number \"'+13125550000'\""}],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{"49f3870b-7827-41aa-aeb7-baa5aa21bd54":{"name":"dir_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","isRequired":true,"description":"The DIR id.","uniqueKey":"","typeLabel":"string\u003cuuid>"},"description":"The DIR id."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["phone_numbers"],"properties":{"phone_numbers":{"type":"array","minItems":1,"maxItems":15,"description":"Telephone numbers to authorize on the DIR, in `+E164` format (`+` followed by 10-15 digits). Max 15 per request.","items":{"type":"string","pattern":"^\\+[1-9][0-9]{9,14}$","example":"+13125550000","uniqueKey":"phone_numbers.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"phone_numbers","typeLabel":"string[]"},"agent":{"type":"object","description":"Optional. The third-party reseller / partner managing the enterprise's phone numbers on its behalf; omitted, the LOA marks the Authorized Agent block as N/A. A call center (BPO) adding numbers to a client's DIR puts its own details here. The letter is signed by the DIR enterprise's organization contact (the client, in the BPO case), not by the agent.","required":["legal_name","street_address","city","administrative_area","postal_code","country","contact_name","contact_title","contact_email","contact_phone"],"properties":{"legal_name":{"type":"string","maxLength":200,"description":"The legal name of the third-party partner or reseller managing these numbers on your behalf.","isRequired":true,"uniqueKey":"agent.legal_name","typeLabel":"string"},"street_address":{"type":"string","maxLength":255,"description":"The street address of the partner, including the building number and street name.","isRequired":true,"uniqueKey":"agent.street_address","typeLabel":"string"},"city":{"type":"string","maxLength":120,"description":"The city of the partner's address.","isRequired":true,"uniqueKey":"agent.city","typeLabel":"string"},"administrative_area":{"type":"string","maxLength":120,"description":"The state or province of the partner's address, as its code, for example IL or ON.","isRequired":true,"uniqueKey":"agent.administrative_area","typeLabel":"string"},"postal_code":{"type":"string","maxLength":30,"description":"The postal or ZIP code of the partner's address.","isRequired":true,"uniqueKey":"agent.postal_code","typeLabel":"string"},"country":{"type":"string","minLength":2,"maxLength":2,"description":"The two-letter country code of the partner's address, for example US.","example":"US","isRequired":true,"uniqueKey":"agent.country","typeLabel":"string"},"contact_name":{"type":"string","maxLength":200,"description":"The name of a contact person at the partner.","isRequired":true,"uniqueKey":"agent.contact_name","typeLabel":"string"},"contact_title":{"type":"string","maxLength":200,"description":"The job title of the contact person at the partner.","isRequired":true,"uniqueKey":"agent.contact_title","typeLabel":"string"},"contact_email":{"type":"string","format":"email","description":"The email address of the contact person at the partner.","isRequired":true,"uniqueKey":"agent.contact_email","typeLabel":"string\u003cemail>"},"contact_phone":{"type":"string","maxLength":30,"description":"The phone number of the contact person at the partner, in E.164 format, for example +13125550000.","example":"+13125550000","isRequired":true,"uniqueKey":"agent.contact_phone","typeLabel":"string"},"dba":{"oneOf":[{"type":"string","maxLength":200,"description":"The trade name (Doing Business As) the partner operates under, if different from its legal name. Leave blank if it does not apply.","uniqueKey":"agent.dba.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":200,"description":"The trade name (Doing Business As) the partner operates under, if different from its legal name. Leave blank if it does not apply.","uniqueKey":"agent.dba.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent.dba","typeLabel":"string | null"},"extended_address":{"oneOf":[{"type":"string","maxLength":255,"description":"An optional second address line for the partner, such as a suite, unit, or floor. Leave blank if it does not apply.","uniqueKey":"agent.extended_address.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"An optional second address line for the partner, such as a suite, unit, or floor. Leave blank if it does not apply.","uniqueKey":"agent.extended_address.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent.extended_address","typeLabel":"string | null"}},"uniqueKey":"agent","typeLabel":"object"},"signature":{"type":"object","description":"Optional. When provided the rendered PDF embeds the signature image, printed name, and signed-at date. When absent the PDF is returned unsigned so the customer can sign externally and upload it via the Documents API.","required":["image_base64"],"properties":{"image_base64":{"type":"string","minLength":1,"maxLength":60000,"description":"PNG image, base64-encoded.","isRequired":true,"uniqueKey":"signature.image_base64","typeLabel":"string"},"signer_name":{"oneOf":[{"type":"string","maxLength":200,"description":"Optional. When absent the rendered PDF falls back to the enterprise contact's legal name.","uniqueKey":"signature.signer_name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":200,"description":"Optional. When absent the rendered PDF falls back to the enterprise contact's legal name.","uniqueKey":"signature.signer_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"signature.signer_name","typeLabel":"string | null"}},"uniqueKey":"signature","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"phone_numbers":["+13125550000"]}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"6cdc7324-ec01-4102-b220-075bdaa33de2":{"description":"The rendered LOA PDF.","content":{"application/pdf":{"schema":{"type":"string","format":"binary","uniqueKey":"","typeLabel":"file"},"examples":{"Example":{"title":"Example","value":"\u003cstring>"}},"exampleType":"generated"}},"exampleType":"generated"},"c7944f62-820b-4281-aa84-9fd00726c98d":{"description":"An error occurred. The response carries the standard Telnyx error envelope.","content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","title","detail","meta"],"properties":{"code":{"type":"string","example":"10005","description":"Stable numeric Telnyx error catalog id. See `meta.url` for the full catalog entry.","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"title":{"type":"string","example":"Invalid parameters","description":"Short human-readable category, e.g. `Bad Request`, `Duplicate resource`, `Not Found`, `Forbidden`. Treat as advisory only - the stable identifier is `code`.","isRequired":true,"uniqueKey":"errors.items.[INDEX].title","typeLabel":"string"},"detail":{"type":"string","example":"field required","description":"Context-specific message describing what went wrong on this particular request. May embed offending values; do not rely on it for programmatic matching - branch on `code`.","isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"},"meta":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","example":"https://developers.telnyx.com/docs/overview/errors/10005","isRequired":true,"uniqueKey":"errors.items.[INDEX].meta.url","typeLabel":"string\u003curi>"},"pending_check_ids":{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"errors.items.[INDEX].meta.pending_check_ids.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Set on `422 vetting_checks_incomplete` responses from `/admin/dir/{id}/approve` and `/admin/phone-number-batches/approve`. Lists the still-pending vetting check ids.","uniqueKey":"errors.items.[INDEX].meta.pending_check_ids","typeLabel":"string\u003cuuid>[]"},"pending_check_codes":{"type":"array","items":{"type":"string","uniqueKey":"errors.items.[INDEX].meta.pending_check_codes.items.[INDEX]","typeLabel":"string"},"description":"Codes of the pending vetting checks (e.g. `loa_signature_valid`).","uniqueKey":"errors.items.[INDEX].meta.pending_check_codes","typeLabel":"string[]"},"pending_check_labels":{"type":"array","items":{"type":"string","uniqueKey":"errors.items.[INDEX].meta.pending_check_labels.items.[INDEX]","typeLabel":"string"},"description":"Human-readable labels of the pending vetting checks.","uniqueKey":"errors.items.[INDEX].meta.pending_check_labels","typeLabel":"string[]"}},"description":"Carries `url` linking to the Telnyx error catalog entry for this `code`. Useful for forwarding the user to documentation.","isRequired":true,"uniqueKey":"errors.items.[INDEX].meta","typeLabel":"object"},"source":{"type":"object","description":"Optional pointer at the offending field of the request.","properties":{"pointer":{"type":"string","example":"/body/legal_name","uniqueKey":"errors.items.[INDEX].source.pointer","typeLabel":"string"},"parameter":{"type":"string","example":"page[size]","uniqueKey":"errors.items.[INDEX].source.parameter","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].source","typeLabel":"object"}},"description":"A single entry in the canonical Telnyx error envelope. `code` is the stable Telnyx error catalog id; the human-readable explanation lives at `meta.url`. `detail` is a context-specific message; `source.pointer` (when present) names the offending field of the request.","uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"List of one or more error entries. Order is not significant.","isRequired":true,"uniqueKey":"errors","typeLabel":"object[]"}},"description":"Canonical Telnyx error envelope. Returned on every 4xx and 5xx response from this service. `errors` is non-empty; multiple entries indicate multiple distinct problems with the same request (e.g. one entry per invalid phone number on a bulk operation).","uniqueKey":"","typeLabel":"object"},"examples":{"validation_error":{"title":"validation_error","value":{"errors":[{"code":"10005","title":"Invalid parameters","detail":"field required","meta":{"url":"https://developers.telnyx.com/docs/overview/errors/10005"},"source":{"pointer":"/body/legal_name"}}]}},"bad_request":{"title":"bad_request","description":"Returned when the request itself is well-formed but the resource is in a state that disallows this action (e.g. updating a DIR while it is being vetted, or deleting an enterprise that still has DIRs in vetting).","value":{"errors":[{"code":"10015","title":"Bad Request","detail":"Cannot update DIR in 'verified' status","meta":{"url":"https://developers.telnyx.com/docs/overview/errors/10015"}}]}},"not_found":{"title":"not_found","value":{"errors":[{"code":"10009","title":"Resource not found","detail":"Enterprise not found.","meta":{"url":"https://developers.telnyx.com/docs/overview/errors/10009"}}]}},"conflict":{"title":"conflict","value":{"errors":[{"code":"10021","title":"Resource in use","detail":"DIR has 1 active infringement claim(s). Resolve the claim before making this change.","meta":{"url":"https://developers.telnyx.com/docs/overview/errors/10021"}}]}}},"exampleType":"examples"}},"exampleType":"examples"},"8ce014b8-7f8b-47e8-be6c-26434f24393b":{"description":"An error occurred. The response carries the standard Telnyx error envelope.","content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","title","detail","meta"],"properties":{"code":{"type":"string","example":"10005","description":"Stable numeric Telnyx error catalog id. See `meta.url` for the full catalog entry.","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"title":{"type":"string","example":"Invalid parameters","description":"Short human-readable category, e.g. `Bad Request`, `Duplicate resource`, `Not Found`, `Forbidden`. Treat as advisory only - the stable identifier is `code`.","isRequired":true,"uniqueKey":"errors.items.[INDEX].title","typeLabel":"string"},"detail":{"type":"string","example":"field required","description":"Context-specific message describing what went wrong on this particular request. May embed offending values; do not rely on it for programmatic matching - branch on `code`.","isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"},"meta":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","example":"https://developers.telnyx.com/docs/overview/errors/10005","isRequired":true,"uniqueKey":"errors.items.[INDEX].meta.url","typeLabel":"string\u003curi>"},"pending_check_ids":{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"errors.items.[INDEX].meta.pending_check_ids.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Set on `422 vetting_checks_incomplete` responses from `/admin/dir/{id}/approve` and `/admin/phone-number-batches/approve`. Lists the still-pending vetting check ids.","uniqueKey":"errors.items.[INDEX].meta.pending_check_ids","typeLabel":"string\u003cuuid>[]"},"pending_check_codes":{"type":"array","items":{"type":"string","uniqueKey":"errors.items.[INDEX].meta.pending_check_codes.items.[INDEX]","typeLabel":"string"},"description":"Codes of the pending vetting checks (e.g. `loa_signature_valid`).","uniqueKey":"errors.items.[INDEX].meta.pending_check_codes","typeLabel":"string[]"},"pending_check_labels":{"type":"array","items":{"type":"string","uniqueKey":"errors.items.[INDEX].meta.pending_check_labels.items.[INDEX]","typeLabel":"string"},"description":"Human-readable labels of the pending vetting checks.","uniqueKey":"errors.items.[INDEX].meta.pending_check_labels","typeLabel":"string[]"}},"description":"Carries `url` linking to the Telnyx error catalog entry for this `code`. Useful for forwarding the user to documentation.","isRequired":true,"uniqueKey":"errors.items.[INDEX].meta","typeLabel":"object"},"source":{"type":"object","description":"Optional pointer at the offending field of the request.","properties":{"pointer":{"type":"string","example":"/body/legal_name","uniqueKey":"errors.items.[INDEX].source.pointer","typeLabel":"string"},"parameter":{"type":"string","example":"page[size]","uniqueKey":"errors.items.[INDEX].source.parameter","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].source","typeLabel":"object"}},"description":"A single entry in the canonical Telnyx error envelope. `code` is the stable Telnyx error catalog id; the human-readable explanation lives at `meta.url`. `detail` is a context-specific message; `source.pointer` (when present) names the offending field of the request.","uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"List of one or more error entries. Order is not significant.","isRequired":true,"uniqueKey":"errors","typeLabel":"object[]"}},"description":"Canonical Telnyx error envelope. Returned on every 4xx and 5xx response from this service. `errors` is non-empty; multiple entries indicate multiple distinct problems with the same request (e.g. one entry per invalid phone number on a bulk operation).","uniqueKey":"","typeLabel":"object"},"examples":{"validation_error":{"title":"validation_error","value":{"errors":[{"code":"10005","title":"Invalid parameters","detail":"field required","meta":{"url":"https://developers.telnyx.com/docs/overview/errors/10005"},"source":{"pointer":"/body/legal_name"}}]}},"bad_request":{"title":"bad_request","description":"Returned when the request itself is well-formed but the resource is in a state that disallows this action (e.g. updating a DIR while it is being vetted, or deleting an enterprise that still has DIRs in vetting).","value":{"errors":[{"code":"10015","title":"Bad Request","detail":"Cannot update DIR in 'verified' status","meta":{"url":"https://developers.telnyx.com/docs/overview/errors/10015"}}]}},"not_found":{"title":"not_found","value":{"errors":[{"code":"10009","title":"Resource not found","detail":"Enterprise not found.","meta":{"url":"https://developers.telnyx.com/docs/overview/errors/10009"}}]}},"conflict":{"title":"conflict","value":{"errors":[{"code":"10021","title":"Resource in use","detail":"DIR has 1 active infringement claim(s). Resolve the claim before making this change.","meta":{"url":"https://developers.telnyx.com/docs/overview/errors/10021"}}]}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"1c1e4728-920b-41b2-af99-204405ee4449":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Telnyx API key. Generate one at https://portal.telnyx.com/#/app/api-keys.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"62f7e5fa-27e1-4c04-9cff-62e50a3390a2":{"url":"https://api.telnyx.com/v2","description":"Telnyx API v2 (production)"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Telnyx API key. Generate one at https://portal.telnyx.com/#/app/api-keys.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Telnyx API key. Generate one at https://portal.telnyx.com/#/app/api-keys.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi/source/external/branded-calling/branded-calling.json"},"subdomain":"telnyx","siteName":"Telnyx","title":"Render the Branded Calling LOA for a DIR - Telnyx","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-19T14:56:15.515Z","originalFileLocation":"api-reference/display-identity-records/render-the-branded-calling-loa-for-a-dir.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Generate a pre-filled Letter of Authorization (LOA) PDF for a DIR. Enterprise identity (legal name, DBA, address, contact, website, tax id) and the DIR display name are read server-side; the caller supplies the telephone numbers to authorize, an optional Authorized Agent block, and an optional drawn signature. When signature is omitted the PDF is returned unsigned so the customer can sign it externally and upload it via the Documents API. When signature is present the PDF embeds the supplied image, printed name, and signed-at date. Returns application/pdf.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Telnyx\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/telnyx/MhCJ9JWG11MInbt6/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/telnyx/MhCJ9JWG11MInbt6/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/telnyx/MhCJ9JWG11MInbt6/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/telnyx/MhCJ9JWG11MInbt6/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/telnyx/MhCJ9JWG11MInbt6/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/telnyx/MhCJ9JWG11MInbt6/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/telnyx/MhCJ9JWG11MInbt6/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/telnyx/MhCJ9JWG11MInbt6/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/telnyx/MhCJ9JWG11MInbt6/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Render the Branded Calling LOA for a DIR - Telnyx\">\u003cmeta data-mint-head property=\"og:description\" content=\"Infrastructure for real-time agents. Voice, AI, Edge Compute\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Telnyx\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developers.telnyx.com/api-reference/display-identity-records/render-the-branded-calling-loa-for-a-dir\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://telnyx.mintlify.app/_mintlify/api/og/v2?division=Display+Identity+Records+API\u0026amp;title=Render+the+Branded+Calling+LOA+for+a+DIR\u0026amp;description=Generate+a+pre-filled+Letter+of+Authorization+%28LOA%29+PDF+for+a+DIR.+Enterprise+identity+%28legal+name%2C+DBA%2C+address%2C+contact%2C+website%2C+tax+id%29+and+the+DIR+display+\u0026amp;theme=0dd46d2166d1a00e34819206\u0026amp;signature=e08f22c05c302ff4a3d652974f6734b111bc798861c0a2fe99c773bc8d8d02a3\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Render the Branded Calling LOA for a DIR - Telnyx\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Infrastructure for real-time agents. Voice, AI, Edge Compute\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://telnyx.mintlify.app/_mintlify/api/og/v2?division=Display+Identity+Records+API\u0026amp;title=Render+the+Branded+Calling+LOA+for+a+DIR\u0026amp;description=Generate+a+pre-filled+Letter+of+Authorization+%28LOA%29+PDF+for+a+DIR.+Enterprise+identity+%28legal+name%2C+DBA%2C+address%2C+contact%2C+website%2C+tax+id%29+and+the+DIR+display+\u0026amp;theme=0dd46d2166d1a00e34819206\u0026amp;signature=e08f22c05c302ff4a3d652974f6734b111bc798861c0a2fe99c773bc8d8d02a3\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/telnyx/MhCJ9JWG11MInbt6/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Telnyx\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#00B688\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developers.telnyx.com/api-reference/display-identity-records/render-the-branded-calling-loa-for-a-dir\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/display-identity-records/render-the-branded-calling-loa-for-a-dir.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://telnyx.com/#organization\",\"name\":\"Telnyx\",\"url\":\"https://telnyx.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://telnyx.com/favicon.ico\"},\"sameAs\":[\"https://x.com/telnyx\",\"https://www.linkedin.com/company/telnyx/\",\"https://github.com/team-telnyx\"]},{\"@type\":\"WebSite\",\"@id\":\"https://developers.telnyx.com#website\",\"name\":\"Telnyx\",\"url\":\"https://developers.telnyx.com\",\"publisher\":{\"@id\":\"https://telnyx.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developers.telnyx.com/api-reference/display-identity-records/render-the-branded-calling-loa-for-a-dir#webpage\",\"url\":\"https://developers.telnyx.com/api-reference/display-identity-records/render-the-branded-calling-loa-for-a-dir\",\"name\":\"Render the Branded Calling LOA for a DIR\",\"description\":\"Generate a pre-filled Letter of Authorization (LOA) PDF for a DIR. Enterprise identity (legal name, DBA, address, contact, website, tax id) and the DIR display name are read server-side; the caller supplies the telephone numbers to authorize, an optional Authorized Agent block, and an optional drawn signature. When signature is omitted the PDF is returned unsigned so the customer can sign it externally and upload it via the Documents API. When signature is present the PDF embeds the supplied image, printed name, and signed-at date. Returns application/pdf.\",\"dateModified\":\"2026-10-19T14:56:15.515Z\",\"isPartOf\":{\"@id\":\"https://developers.telnyx.com#website\"},\"breadcrumb\":{\"@id\":\"https://developers.telnyx.com/api-reference/display-identity-records/render-the-branded-calling-loa-for-a-dir#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers.telnyx.com/api-reference/display-identity-records/render-the-branded-calling-loa-for-a-dir#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Branded Calling\",\"item\":\"https://developers.telnyx.com/docs/branded-calling/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"API Reference\",\"item\":\"https://developers.telnyx.com/api-reference/enterprises/list-enterprises\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Display Identity Records\",\"item\":\"https://developers.telnyx.com/api-reference/display-identity-records/list-all-dirs-across-your-enterprises\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Display Identity Records API\",\"item\":\"https://developers.telnyx.com/api-reference/display-identity-records/list-all-dirs-across-your-enterprises\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Render the Branded Calling LOA for a DIR\",\"item\":\"https://developers.telnyx.com/api-reference/display-identity-records/render-the-branded-calling-loa-for-a-dir\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developers.telnyx.com/api-reference/display-identity-records/render-the-branded-calling-loa-for-a-dir#apireference\",\"headline\":\"Render the Branded Calling LOA for a DIR\",\"name\":\"Render the Branded Calling LOA for a DIR\",\"description\":\"Generate a pre-filled Letter of Authorization (LOA) PDF for a DIR. Enterprise identity (legal name, DBA, address, contact, website, tax id) and the DIR display name are read server-side; the caller supplies the telephone numbers to authorize, an optional Authorized Agent block, and an optional drawn signature. When signature is omitted the PDF is returned unsigned so the customer can sign it externally and upload it via the Documents API. When signature is present the PDF embeds the supplied image, printed name, and signed-at date. Returns application/pdf.\",\"url\":\"https://developers.telnyx.com/api-reference/display-identity-records/render-the-branded-calling-loa-for-a-dir\",\"mainEntityOfPage\":{\"@id\":\"https://developers.telnyx.com/api-reference/display-identity-records/render-the-branded-calling-loa-for-a-dir#webpage\"},\"dateModified\":\"2026-10-19T14:56:15.515Z\",\"publisher\":{\"@id\":\"https://telnyx.com/#organization\"},\"isPartOf\":{\"@id\":\"https://developers.telnyx.com#website\"}}]}\u003c/script>","siteName":"Telnyx","nav":{"global":{"anchors":[{"anchor":"Home","icon":"house","href":"/docs/overview"}]},"products":[{"product":"Home","icon":"house","pages":[{"title":"Home","href":"/docs/overview"}]},{"product":"Other APIs","icon":"ellipsis","pages":[{"title":"Other APIs","href":"/docs/other-apis"}]},{"product":"Agent Platform","icon":"circle-nodes","pages":[{"title":"Agent Platform","href":"/docs/agents"}]},{"product":"AI","icon":"microchip-ai","pages":[{"title":"AI","href":"/docs/inference/models"}]},{"product":"Voice","icon":"waveform","pages":[{"title":"Voice","href":"/docs/voice/overview"}]},{"product":"Compute","icon":"server","pages":[{"title":"Compute","href":"/docs/edge-compute/platform-overview"}]},{"product":"Storage","icon":"hard-drive","pages":[{"title":"Storage","href":"/docs/cloud-storage/overview"}]},{"product":"Virtual Private Cloud","icon":"cloud","pages":[{"title":"Virtual Private Cloud","href":"/docs/network/overview"}]},{"product":"Calling","icon":"phone","tabs":[{"tab":"Voice API","icon":"phone-volume","pages":[{"title":"Voice API","href":"/docs/voice/programmable-voice/voice-api-fundamentals"}]},{"tab":"TeXML","icon":"code","pages":[{"title":"TeXML","href":"/docs/voice/programmable-voice/texml-fundamentals"}]},{"tab":"SIP Trunking","icon":"headset","pages":[{"title":"SIP Trunking","href":"/docs/voice/sip-trunking/get-started"}]},{"tab":"UAC Connections","icon":"plug","pages":[{"title":"UAC Connections","href":"/docs/voice/uac-connections"}]},{"tab":"WebRTC","icon":"browser","pages":[{"title":"WebRTC","href":"/docs/voice/webrtc/fundamentals"}]},{"tab":"Trusted Calling","icon":"shield-check","groups":[{"group":"Branded Calling","tag":"BETA","pages":[{"title":"Branded Calling","sidebarTitle":"Overview","href":"/docs/branded-calling/overview"},{"title":"Quickstart","sidebarTitle":"Quickstart","href":"/docs/branded-calling/quickstart"},{"title":"Pricing","sidebarTitle":"Pricing","href":"/docs/branded-calling/pricing"},{"group":"Enterprises","pages":[{"title":"Register an enterprise for Branded Calling","sidebarTitle":"Overview","href":"/docs/branded-calling/enterprises/index"}]},{"group":"Display Identity Records","pages":[{"title":"Create and manage Display Identity Records (DIRs)","sidebarTitle":"Overview","href":"/docs/branded-calling/brands/index"}]},{"group":"BPO (Business Process Outsourcer)","pages":[{"title":"BPO (Business Process Outsourcer) support","sidebarTitle":"Overview","href":"/docs/branded-calling/bpo/index"}]},{"group":"Phone Numbers","pages":[{"title":"Phone Numbers","sidebarTitle":"Overview","href":"/docs/branded-calling/bc-phone-numbers/index"}]},{"group":"Call Reasons","pages":[{"title":"Call Reasons","sidebarTitle":"Overview","href":"/docs/branded-calling/call-reasons/index"}]},{"group":"Terms of Service","pages":[{"title":"Terms of Service","sidebarTitle":"Overview","href":"/docs/branded-calling/terms-of-service/index"}]},{"group":"Infringement Claims","pages":[{"title":"Contest and resolve DIR infringement claims","sidebarTitle":"Overview","href":"/docs/branded-calling/infringement-claims/index"}]},{"group":"API Reference","pages":[{"group":"Enterprises","pages":[{"group":"Enterprises API","pages":[{"title":"List enterprises","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /enterprises","href":"/api-reference/enterprises/list-enterprises"},{"title":"Create an enterprise","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /enterprises","href":"/api-reference/enterprises/create-an-enterprise"},{"title":"Delete an enterprise","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json delete /enterprises/{enterprise_id}","href":"/api-reference/enterprises/delete-an-enterprise"},{"title":"Get an enterprise","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /enterprises/{enterprise_id}","href":"/api-reference/enterprises/get-an-enterprise"},{"title":"Replace an enterprise","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json put /enterprises/{enterprise_id}","href":"/api-reference/enterprises/replace-an-enterprise"},{"title":"Activate Branded Calling on an enterprise","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /enterprises/{enterprise_id}/branded_calling","href":"/api-reference/enterprises/activate-branded-calling-on-an-enterprise"}]},{"group":"Email Verification API","pages":[{"title":"Send an email-ownership verification code to an enterprise","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /enterprises/{enterprise_id}/verify_email","href":"/api-reference/email-verification/send-an-email-ownership-verification-code-to-an-enterprise"},{"title":"Confirm an enterprise email-ownership verification code","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /enterprises/{enterprise_id}/verify_email/confirm","href":"/api-reference/email-verification/confirm-an-enterprise-email-ownership-verification-code"}]},{"group":"Display Identity Records API","pages":[{"title":"List DIRs in an enterprise","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /enterprises/{enterprise_id}/dir","href":"/api-reference/display-identity-records/list-dirs-in-an-enterprise"},{"title":"Create a Display Identity Record (DIR)","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /enterprises/{enterprise_id}/dir","href":"/api-reference/display-identity-records/create-a-display-identity-record-dir"}]}]},{"group":"Display Identity Records","pages":[{"group":"Display Identity Records API","pages":[{"title":"List all DIRs across your enterprises","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /dir","href":"/api-reference/display-identity-records/list-all-dirs-across-your-enterprises"},{"title":"Request deletion of a DIR","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json delete /dir/{dir_id}","href":"/api-reference/display-identity-records/request-deletion-of-a-dir"},{"title":"Get a DIR by id","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /dir/{dir_id}","href":"/api-reference/display-identity-records/get-a-dir-by-id"},{"title":"Update a DIR","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json patch /dir/{dir_id}","href":"/api-reference/display-identity-records/update-a-dir"},{"title":"Submit a DIR for vetting","description":"Submit a DIR for vetting. Sends the DIR back through the vetting cycle from any non-terminal status. When re-submitting from `suspended` or `expired`, the DIR's previous Branded Calling registration is torn down transactionally and its phone numbers flip back to `submitted`. When re-submitting from `verified`, the existing registration stays live throughout the new vetting cycle.\n\nReturns `400` from `submitted`/`in_review`/`permanently_rejected`. Returns `400` if the DIR has an unresolved infringement claim.","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /dir/{dir_id}/submit","href":"/api-reference/display-identity-records/submit-a-dir-for-vetting"},{"title":"Render the Branded Calling LOA for a DIR","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /dir/{dir_id}/loa","href":"/api-reference/display-identity-records/render-the-branded-calling-loa-for-a-dir"},{"title":"Render the BPO Authorization LOA for a DIR","description":"The Letter of Authorization in which a Brand Owner authorizes an approved BPO (Business Process Outsourcer) to place branded calls that display this DIR on the owner's behalf. Both parties are read from the caller's account: the Brand Owner is the enterprise that owns the DIR, and the BPO is `bpo_enterprise_id`. No business identity is accepted in the body.\n\nWhen `signature` is omitted the PDF is returned unsigned so the Brand Owner can sign it externally and the BPO can upload it via the Documents API. When `signature` is present the PDF embeds the supplied image, printed name, and signed-at date.\n\nReturns `application/pdf`.","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /dir/{dir_id}/bpo_loa","href":"/api-reference/display-identity-records/render-the-bpo-authorization-loa-for-a-dir"},{"title":"List a DIR's authorized BPOs","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /dir/{dir_id}/bpo_authorizations","href":"/api-reference/display-identity-records/list-a-dirs-authorized-bpos"}]},{"group":"Email Verification API","pages":[{"title":"Send an email-ownership verification code","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /dir/{dir_id}/verify_email","href":"/api-reference/email-verification/send-an-email-ownership-verification-code"},{"title":"Confirm an email-ownership verification code","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /dir/{dir_id}/verify_email/confirm","href":"/api-reference/email-verification/confirm-an-email-ownership-verification-code"},{"title":"Get email-ownership verification status","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /dir/{dir_id}/verify_email","href":"/api-reference/email-verification/get-email-ownership-verification-status"}]},{"group":"DIR References API","pages":[{"title":"List a DIR's references","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /dir/{dir_id}/references","href":"/api-reference/dir-references/list-a-dirs-references"},{"title":"Submit a DIR's references","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /dir/{dir_id}/references","href":"/api-reference/dir-references/submit-a-dirs-references"},{"title":"Update a DIR reference","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json patch /dir/{dir_id}/references/{ref_type}/{slot}","href":"/api-reference/dir-references/update-a-dir-reference"}]},{"group":"Reference Data API","pages":[{"title":"List supported DIR document types","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /dir/document_types","href":"/api-reference/reference-data/list-supported-dir-document-types"}]},{"group":"Comments API","pages":[{"title":"List comments on a DIR","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /dir/{dir_id}/comments","href":"/api-reference/comments/list-comments-on-a-dir"},{"title":"Post a comment on a DIR","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /dir/{dir_id}/comments","href":"/api-reference/comments/post-a-comment-on-a-dir"}]}]},{"group":"Phone Numbers","pages":[{"group":"Phone Numbers API","pages":[{"title":"Remove phone numbers from a DIR","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json delete /dir/{dir_id}/phone_numbers","href":"/api-reference/phone-numbers/remove-phone-numbers-from-a-dir"},{"title":"List phone numbers attached to a DIR","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /dir/{dir_id}/phone_numbers","href":"/api-reference/phone-numbers/list-phone-numbers-attached-to-a-dir"},{"title":"Add phone numbers to a DIR","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /dir/{dir_id}/phone_numbers","href":"/api-reference/phone-numbers/add-phone-numbers-to-a-dir"}]},{"group":"Phone Number Batches API","pages":[{"title":"List phone-number batches for a DIR","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /dir/{dir_id}/phone_number_batches","href":"/api-reference/phone-number-batches/list-phone-number-batches-for-a-dir"},{"title":"Get a phone-number batch","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /dir/{dir_id}/phone_number_batches/{batch_id}","href":"/api-reference/phone-number-batches/get-a-phone-number-batch"}]}]},{"group":"Call Reasons","pages":[{"title":"List standard call reasons","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /call_reasons","href":"/api-reference/reference-data/list-standard-call-reasons"},{"title":"Validate a list of call reasons","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /call_reasons/validate","href":"/api-reference/reference-data/validate-a-list-of-call-reasons"}]},{"group":"Infringement Claims","pages":[{"title":"List infringement claims for a DIR","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /dir/{dir_id}/infringement_claims","href":"/api-reference/infringement-claims/list-infringement-claims-for-a-dir"},{"title":"Update a DIR to resolve an infringement concern","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json put /dir/{dir_id}/infringement_update","href":"/api-reference/infringement-claims/update-a-dir-to-resolve-an-infringement-concern"},{"title":"Get an infringement claim","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /infringement_claims/{claim_id}","href":"/api-reference/infringement-claims/get-an-infringement-claim"},{"title":"Contest an infringement claim","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /infringement_claims/{claim_id}/contest","href":"/api-reference/infringement-claims/contest-an-infringement-claim"}]},{"group":"Terms of Service","pages":[{"title":"Agree to the Branded Calling Terms of Service","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /terms_of_service/branded_calling/agree","href":"/api-reference/terms-of-service/agree-to-the-branded-calling-terms-of-service"},{"title":"Get Terms of Service information","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /terms_of_service/info","href":"/api-reference/terms-of-service/get-terms-of-service-information"},{"title":"Get the calling user's Terms of Service status","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /terms_of_service/status","href":"/api-reference/terms-of-service/get-the-calling-users-terms-of-service-status"},{"title":"List the calling user's Terms of Service agreements","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /terms_of_service/agreements","href":"/api-reference/terms-of-service/list-the-calling-users-terms-of-service-agreements"},{"title":"Get a Terms of Service agreement by id","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /terms_of_service/agreements/{agreement_id}","href":"/api-reference/terms-of-service/get-a-terms-of-service-agreement-by-id"}]}]}]},{"group":"For AI Agents","pages":[{"title":"Trusted Calling llms.txt","sidebarTitle":"Trusted Calling llms txt","href":"/docs/development/llms/calling-trusted-calling-llms-txt/index"},{"title":"Trusted Calling llms-full.txt","sidebarTitle":"Trusted Calling llms full txt","href":"/docs/development/llms/calling-trusted-calling-llms-full-txt/index"}]}]}]},{"product":"Messaging","icon":"message","pages":[{"title":"Messaging","href":"/docs/messaging/messages/send-message"}]},{"product":"Numbers","icon":"hashtag","pages":[{"title":"Numbers","href":"/docs/numbers/phone-numbers/getting-started"}]},{"product":"Wireless","icon":"broadcast-tower","pages":[{"title":"Wireless","href":"/docs/iot-sim/wireless-overview"}]}]},"title":"Render the Branded Calling LOA for a DIR - Telnyx","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":["10e4515597","c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["BannerMarkdown-B-Glu166.js","dist-zbf22OZA.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-Cs6nMGht.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","OpenApiReferenceProvider-DmVyH30O.js","utils-BHQqGGOd.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CD-E4BIt.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp5Lq9Ds.js","snippetPresets-C4xAVCFP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-CBCH2P7b.js","ApiExamples-CgXVLxUC.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BF8I5oUf.js","shallow-Byd0lWnC.js","getApiPlaygroundDisplay-BGOZG1OK.js","CodeSnippet-CpvQL0CY.js","CodeSnippets-B8wkBKXa.js","getPastedJson-Ry3scI3Y.js","icon-D7a9HcdD.js","MethodPill-CJ8pmHhz.js","DuplicateIcon-rh1HJF0t.js","createIcon-DvGznqYs.js","DynamicMarkdown-Cc6AuSHS.js","SectionHeading-B4A0S-ep.js","axios-vUo_bRtp.js","Markdown-Cc16CX65.js","AssistantPageLink-C_fs-y5n.js"]}