Register a business for Branded Calling
Stores the legal entity behind your caller identities. Nothing is filed with the
carrier until the business's first identity passes review. Only businesses
registered in the US or Canada qualify (a FEIN or Canadian equivalent is
required); any other country returns 422. Send an Idempotency-Key so a
retry replays the original response instead of registering the business twice.
Authorization
bearerAuth API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.
In: header
Header Parameters
Optional client-generated unique key (e.g. a UUID) that makes retries safe. Same key + same body replays the original response; same key + different body → 422; key still processing → 409.
length <= 255Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.brandedcalling.createBrandedCallingEnterprise({ body: { legalName: 'Example', doingBusinessAs: 'string', organizationType: 'commercial', organizationLegalType: 'corporation', countryCode: 'string', jurisdictionOfIncorporation: 'string', website: 'https://example.com', fein: 'string', industry: 'string', numberOfEmployees: '1-10', organizationContact: { firstName: 'Example', lastName: 'Example', email: 'user@example.com', phoneNumber: 'string', }, billingContact: { firstName: 'Example', lastName: 'Example', email: 'user@example.com', phoneNumber: 'string', }, physicalAddress: { streetAddress: 'string', city: 'string', administrativeArea: 'string', postalCode: 'string', country: 'string', }, billingAddress: { streetAddress: 'string', city: 'string', administrativeArea: 'string', postalCode: 'string', country: 'string', }, },});console.log(data);{ "id": "string", "legalName": "string", "doingBusinessAs": "string", "organizationType": "commercial", "organizationLegalType": "corporation", "countryCode": "US", "jurisdictionOfIncorporation": "string", "website": "string", "feinLast4": "string", "industry": "string", "numberOfEmployees": "1-10", "organizationContact": { "firstName": "string", "lastName": "string", "email": "user@example.com", "jobTitle": "string", "phoneNumber": "string" }, "billingContact": { "firstName": "string", "lastName": "string", "email": "user@example.com", "jobTitle": "string", "phoneNumber": "string" }, "physicalAddress": { "streetAddress": "string", "extendedAddress": "string", "city": "string", "administrativeArea": "string", "postalCode": "string", "country": "string" }, "billingAddress": { "streetAddress": "string", "extendedAddress": "string", "city": "string", "administrativeArea": "string", "postalCode": "string", "country": "string" }, "registered": true, "createdAt": "2019-08-24T14:15:22Z"}List the numbers on a caller identity
Previous Page
Create a caller identity
A caller identity is what the callee sees: display name, logo and call reasons, backed by a registered business and three references the carrier vetting team phones. It starts in Zernio review (`requested`). Once approved, the carrier emails the authorizer a 6-digit code; confirm it with the verify-email endpoint and the identity goes into carrier vetting on its own. Track it with `GET` or the `branded_calling.identity.status_updated` webhook. Billing: $100 per identity per month while it is verified. The first month is charged when the carrier verifies the identity, never when it is filed: nothing is charged while it is in our review or carrier vetting, or if it is rejected. An edit that sends a verified identity back to vetting pauses the fee until it is verified again. Branded calls add $0.10 each, counted on every outbound call from a verified branded number to a US destination (whether or not the callee's carrier displayed the branding); the surcharge shows as `brandedCallUSD` on the call's billing and in `GET /v1/voice/calls/estimate` when you pass `from`. Run `POST /v1/branded-calling/identities/preflight` with the same body first to catch what the review would bounce. Send an `Idempotency-Key` so a retry replays the original response instead of creating a second identity.