Zernio
Zernio
API Reference

Branded Calling

List pre-approved call reasonsGETList registered businessesGETList caller identitiesGETList the numbers on a caller identityGETRegister a business for Branded CallingPOSTCreate a caller identityPOSTGet a registered businessGETGet a caller identityGETEdit or resubmit a caller identityPATCHDelete a registered businessDELETEDelete a caller identityDELETEAttach numbers to a verified identityPOSTConfirm the authorizer's codePOSTDetach numbers from an identityDELETEResend the authorizer's codePOST
Dashboard
llms.txtOpenAPI
OverviewPlatformsAPI ReferenceResources
Branded Calling

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, the first month charged when the identity is filed with the carrier and not refunded if the carrier rejects it, then monthly while the identity exists. 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.


POST
/v1/branded-calling/identities

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.

In: header

Request 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.createBrandedCallingIdentity({  body: {    enterpriseId: 'enterprise_abc123',    displayName: 'Example',    callReasons: [      'string',    ],    authorizer: {      name: 'Example',      email: 'user@example.com',    },    references: {      business: [        {          fullName: 'Example',          phoneNumber: 'string',          email: 'user@example.com',          timezone: 'string',        },      ],      financial: {        fullName: 'Example',        phoneNumber: 'string',        email: 'user@example.com',        timezone: 'string',      },    },  },});console.log(data);
{  "id": "string",  "enterpriseId": "string",  "displayName": "string",  "callReasons": [    "string"  ],  "callReasonsPreApproved": true,  "logoUrl": "string",  "authorizer": {    "name": "string",    "email": "user@example.com"  },  "references": {    "business": [      {        "fullName": "string",        "jobTitle": "string",        "organization": "string",        "relationshipToRegistrant": "string",        "phoneNumber": "string",        "email": "user@example.com",        "timezone": "string"      },      {        "fullName": "string",        "jobTitle": "string",        "organization": "string",        "relationshipToRegistrant": "string",        "phoneNumber": "string",        "email": "user@example.com",        "timezone": "string"      }    ],    "financial": {      "fullName": "string",      "jobTitle": "string",      "organization": "string",      "relationshipToRegistrant": "string",      "phoneNumber": "string",      "email": "user@example.com",      "timezone": "string"    }  },  "status": "requested",  "rejectionReasons": [    {      "code": "string",      "title": "string",      "detail": "string",      "message": "string"    }  ],  "reviewNote": "string",  "reviewRequest": {    "id": "string",    "intro": "string",    "points": [      {        "id": "string",        "title": "string",        "detail": "string",        "answer": "text"      }    ]  },  "emailVerifiedAt": "2019-08-24T14:15:22Z",  "submittedAt": "2019-08-24T14:15:22Z",  "verifiedAt": "2019-08-24T14:15:22Z",  "expiringAt": "2019-08-24T14:15:22Z",  "numbers": [    {      "phoneNumberId": "string",      "phoneNumber": "string",      "status": "submitted",      "rejectionReason": {        "code": "string",        "title": "string",        "detail": "string",        "message": "string"      },      "verifiedAt": "2019-08-24T14:15:22Z",      "addedAt": "2019-08-24T14:15:22Z"    }  ],  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z"}
Was this page helpful?

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`.

Get a registered business

Next Page

enterpriseId*string

A business from POST /v1/branded-calling/enterprises.

displayName*string

Shown on the callee's screen. No emoji.

Length1 <= length <= 35
callReasons*array<>

1 to 10 reasons you call, each up to 64 characters. Pick from GET /v1/branded-calling/call-reasons to skip manual vetting.

Items1 <= items <= 10
logoUrl?string

HTTPS URL of a PNG, JPEG, WebP or SVG logo. Zernio converts it to the 256x256 BMP the carriers require and hosts it.

authorizer*
references*