Overview
A Business Process Outsourcer (BPO) is a call center or outsourcer that places calls on behalf of other businesses. When a BPO calls for a client, the person being called should see the client’s name and logo, not the call center’s. With Branded Calling, a BPO does this from its own Telnyx account. In that one account it sets up three separate records, each describing a different company or brand:- A BPO enterprise (
"role_type": "bpo"), describing the call center itself. - An enterprise for each client (
"role_type": "enterprise", the default), describing that client’s business. - A DIR under each client’s enterprise, describing the brand the called person sees: display name, logo, call reasons, and phone numbers.
If your calls display your own business’s name, you are not acting as a BPO, even if you run your own call center. Create a normal enterprise and a DIR for your own brand. See the Quickstart.
Example: which data goes where
This guide follows two fictional companies:- Dial Partners LLC is the BPO. It is a call center and the Telnyx customer. Everything below is done from Dial Partners’ Telnyx account, with its API key.
- Maple Ridge Insurance Inc. is Dial Partners’ client, the brand owner. It hired Dial Partners to call its policyholders, and wants them to see “Maple Ridge Insurance” and its logo on their phone.
Collect from your client before you start
Before creating the client’s records, get the following from the client (Maple Ridge in the example). None of it can be filled in with the call center’s own details.- Company details for the client enterprise: legal name, DBA, FEIN, organization type and legal type, jurisdiction of incorporation, website, industry, number of employees, physical and billing address, and a contact person with name, job title, email, and phone. See Enterprises for the full field list.
- Brand details for the DIR: the display name people should see, the logo (256x256 BMP), and the call reasons.
- An authorizer at the client: a person at Maple Ridge (name and email) who stands behind the brand. If Telnyx sends a verification code to the DIR’s authorizer email, it goes to that person, so they have to pass the code back to you.
- Supporting documents, if any, that show the client owns the brand (for example, business registration).
- Business and financial references for the client, if your account is required to provide them. When required, they must be submitted before the DIR is submitted (verify the authorizer email, then submit references, then submit the DIR). These are the client’s references, not the call center’s.
- A signature on the BPO Letter of Authorization from the client’s contact, in step 5. This is the client’s written permission for you to call under its brand.
- A signature on the phone-number Letter of Authorization from the client’s contact, in step 6. This letter lists the numbers that will display the client’s brand. It names the client as the enterprise and your call center as the authorized agent, and the client signs it, not you.
- A BPO enterprise cannot have a DIR. Creating a DIR under it is rejected with
400. DIRs always go under a client enterprise. - You create the BPO enterprise once. Every client’s DIR links to the same BPO enterprise.
- Each client gets its own enterprise. If Dial Partners also calls for a second client, it creates a second client enterprise and DIR, and links that DIR to the same BPO enterprise.
- All records live in the same Telnyx account. A DIR can only be linked to an approved BPO enterprise in your own account. Linking a BPO enterprise from another Telnyx account is rejected with
400. - The type is fixed at creation. A BPO enterprise cannot be changed into a normal enterprise, or the other way around. If you created the wrong type, create a new enterprise of the right type.
The whole flow at a glance
Everything below is done from the call center’s Telnyx account (Dial Partners in the example). The client (Maple Ridge) only provides information and signs two letters. Each line links to the step with the details. Set up the call center (once)- Create the BPO enterprise with the call center’s own details and
"role_type": "bpo"(POST /v2/enterprises). Keep itsid. Step 1 - Verify its contact email: request a 6-digit code, then confirm it (
POST /v2/enterprises/{id}/verify_email, then/confirm). Step 2 - Wait for Telnyx to approve the BPO enterprise. Check
bpo_verification_statusuntil it isapproved. Step 3
- Collect the client’s information: company details, brand details (display name, logo, call reasons), and an authorizer. Checklist
- Create the client’s enterprise with the client’s details, accept the Branded Calling Terms of Service if you haven’t yet, and activate Branded Calling on it. Step 4
- Create the client’s DIR under the client’s enterprise. Do not submit it yet. Step 4
- Get the BPO letter signed: generate it (
POST /v2/dir/{dir_id}/bpo_loa), have the client’s contact sign it, and upload it to the Documents API. Step 5 - Link the DIR to the BPO enterprise: send
bpo_authorizationswith your BPO enterpriseidand the signed letter’sdocument_id(PATCH /v2/dir/{dir_id}). Step 5 - Submit the DIR (
POST /v2/dir/{dir_id}/submit). Telnyx reviews the DIR and the link together; approving the DIR approves the link. Step 6 - Get the phone-number letter signed: generate it (
POST /v2/dir/{dir_id}/loa) with your call center as theagent, have the client’s contact sign it, and upload it. Phone Numbers - Add the phone numbers to the approved DIR, attaching the signed phone-number letter (
POST /v2/dir/{dir_id}/phone_numbers). Phone Numbers
Step 1: Create the BPO enterprise
The BPO enterprise uses the same fields as any enterprise, plus"role_type": "bpo". Branded Calling is US-only, so the call center must be a US company ("country_code": "US"). Every field describes the call center itself. In the example, Dial Partners enters its own legal name, FEIN, website, contact, and address, and nothing about Maple Ridge.
id. This is the BPO enterprise’s id, used as bpo_enterprise_id in step 5.
Use a mailbox the call center controls for the
organization_contact email. That is the address verified in the next step, and the BPO enterprise cannot be approved until it is verified.Step 2: Verify the BPO’s contact email
Before Telnyx can approve the BPO enterprise, the call center has to prove it owns the contact email on it (in the example, Alex Rivera’s address at Dial Partners). It asks Telnyx to email a 6-digit code, then sends the code back to confirm. Because a BPO enterprise has no DIR of its own, this happens on the enterprise rather than on a DIR. Use the BPO enterprise’sid as {enterprise_id}.
Step 3: Telnyx approves the BPO enterprise
Telnyx reviews the BPO enterprise and moves its status frompending to approved or rejected. The email has to be verified before approval goes through, so don’t expect a decision until that step is done.
Check where the review stands by reading the BPO enterprise. Its bpo_verification_status field is pending, approved, or rejected (it is null on normal enterprises):
id), filter the list by type:
approved BPO can be authorized on a DIR. If Telnyx later rejects a BPO, every authorization it held is set to rejected. Those entries stay in each DIR’s authorization list, with a rejection_reason, but no longer take effect.
Step 4: Create the client’s enterprise and DIR
Create the client’s enterprise and DIR the same way you would for any brand, following the Quickstart (activate Branded Calling on the enterprise, then create the DIR). The only difference is whose data you enter: the client’s. The client enterprise is a normal enterprise. Leaverole_type out (it defaults to enterprise). In the example, it describes Maple Ridge:
id (not the BPO enterprise’s). The DIR describes the brand the called person sees, so the display name, logo, call reasons, and authorizer are all Maple Ridge’s:
Step 5: Link the DIR to the BPO enterprise
Once the BPO enterprise is approved, link the client’s DIR to it. There are two parts: get the LOA signed, then list the BPO enterprise on the DIR. Have two things ready before you start. The BPO enterprise has to beapproved already; linking one that isn’t an approved BPO enterprise in your account is rejected with 400. And the signed LOA has to be uploaded to the Telnyx Documents API so you have its document_id on hand.
Generate and sign the authorization LOA
The Letter of Authorization is the brand owner’s written permission for the call center to place calls under its brand. It is generated from your account, but it is signed by the brand owner, not by the call center: in the example, Maple Ridge’s organization contact (the contact on the Maple Ridge enterprise) is named on it as the authorizing representative and signs it. You then upload the signed letter to your own account. Generate a pre-filled BPO Authorization LOA for the brand owner’s DIR. It is filled in from the two enterprises you created: Maple Ridge as the brand owner, Dial Partners as the BPO. Leavesignature out to get an unsigned PDF: send it to the client to sign, then upload the signed copy. Or, if the client has given you their drawn signature, include it to embed it directly. Either way the signature must be the client’s (Maple Ridge’s), never the call center’s:
bpo_enterprise_id: theidof your approved BPO enterprise (from step 1).signature: optional. An object withimage_base64(the raw base64 of a PNG image, with nodata:prefix) and an optionalsigner_name. Include it to embed the client’s signature in the letter, or omitsignatureentirely to get an unsigned letter for the client to sign.
document_id it gives back. That is the loa_document_id you pass in the next step.
Link the DIR to the BPO enterprise
List the BPO enterprise, with the signed LOA document, in thebpo_authorizations array of the brand owner’s DIR. You can do this when you create the DIR or later with an update:
bpo_enterprise_id) with its signed LOA (loa_document_id). The array holds up to 10 authorizations.
The
bpo_authorizations array replaces the DIR’s current list on every create or update. To keep an existing authorization, include it again with the same loa_document_id (read it from the authorizations list); it then keeps its current review status, so an approved link stays approved. To remove one, leave it out. Leave out any entry whose BPO enterprise is no longer approved: including it rejects the whole update with 400. Sending an empty array ([]) clears all authorizations. Omitting the field leaves the list unchanged. Editing this list does not re-vet the DIR itself.You can change a DIR’s authorizations only while the DIR is in an editable status (for example
draft, verified, rejected, suspended, or unsuccessful). While the DIR is being reviewed, the update is rejected; wait until review finishes.Step 6: Submit the DIR, then add phone numbers
Once the link is in place, submit the client’s DIR:verified, add the phone numbers that should display the client’s brand, as described in Phone Numbers. Adding numbers needs its own signed Letter of Authorization: generate it with POST /v2/dir/{dir_id}/loa, passing your call center’s details in agent. It is filled in from the client’s enterprise, so the client’s contact signs it, not you.
How links are reviewed
A new authorization starts inpending. Telnyx reviews it and moves it to approved or rejected. Only an approved authorization takes effect. Sending a different loa_document_id for a BPO (a newly signed and uploaded LOA) sends that authorization back to pending for another review. Uploading a document on its own changes nothing until you send its id in bpo_authorizations.
If you add or change a link on a DIR that is already verified, that link is reviewed on its own, and the DIR stays verified meanwhile.
Read back a DIR’s authorizations
Check a DIR’s authorized BPOs and their review status at any time:bpo_enterprise_id), the signed LOA you submitted (loa_document_id), its current status (pending, approved, or rejected), and, when rejected, a rejection_reason.
What the link does
An approved link adds the call center to the client DIR’s list of authorized callers in the branded calling registry. It applies to that one DIR only. It does not change or merge the records: the BPO enterprise still describes the call center, and the client enterprise and DIR still describe the client.Stop working with a BPO
To stop a DIR’s calls going through the BPO, update the DIR with abpo_authorizations array that leaves that BPO out. Because the list replaces on every update, the omitted authorization is removed. Sending [] removes all of them.
What’s next
- Quickstart guide, the end-to-end Branded Calling flow.
- Display Identity Records (DIRs), full DIR lifecycle, statuses, editing, deletion.
- Enterprises, the required fields for any enterprise, including a BPO enterprise and the brand owner’s enterprise.