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 identityDELETEDry-run a caller identity before creating itPOSTResend the authorizer's codePOSTCreate a caller identity share linkPOST
Dashboard
llms.txtOpenAPI
OverviewPlatformsAPI ReferenceResources
Branded Calling

Create a caller identity share link

Creates a single-use link (valid 7 days) where the end business fills in the caller identity itself, with no Zernio login: display name, logo, call reasons, the authorizer and the three references. What it submits lands under your team as requested, the same review as an API submission, and branded_calling.identity.status_updated fires. Scope the link with identityId (complete an identity that is requested or changes_requested), with enterpriseId (a new identity for a registered business), or with neither (the business registers itself and its first identity). The person opening the link can forward a fresh one to someone else, which retires theirs.


POST
/v1/branded-calling/share

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.shareBrandedCallingIdentityForm({  body: {    enterpriseId: 'enterprise_abc123',    identityId: 'identity_abc123',  },});console.log(data);
{  "url": "string",  "expiresAt": "2019-08-24T14:15:22Z"}
Was this page helpful?

Resend the authorizer's code

Emails the authorizer a fresh 6-digit code (the previous one stops working). Only while the identity is `pending_email_verification`.

List all calls (unified history)

Unified call history across ALL of your numbers: both channels (WhatsApp Business Calling + regular phone/PSTN), inbound and outbound, newest first. Unlike `GET /v1/voice/calls` (PSTN-only) and `GET /v1/whatsapp/calls` (one account at a time), this endpoint needs no `accountId` and never requires fanning out one request per number. Any row can be opened channel-agnostically via `GET /v1/calls/{id}` and `GET /v1/calls/{id}/recording`; no branching on `channel` needed. When the counterparty number matches a CRM contact, `contactId` and `contactName` are set. Cursor pagination: pass the returned `nextCursor` as `before` to fetch the next page. `nextCursor` is null on the last page.

enterpriseId?string

A registered business the identity belongs to.

identityId?string

An identity in review to complete. Not with enterpriseId.