Create a hosted KYC link
Create a single-use, 7-day hosted KYC link that your end customer completes WITHOUT a Zernio login — useful when the person who holds the ID and address is not your team. They fill the regulated verification on a Zernio-hosted page; the number provisions under YOUR account once they submit. Only regulated (KYC) countries are valid: a country that does not require KYC returns 400.
White-label the page with branding (your company name, logo, brand
color). Supply redirect_url to send the end customer back to your own
site after a successful submit (completion params are appended — see
below). Listen for the whatsapp.number.kyc_submitted webhook to react
when the form is completed.
API key authentication - use your Zernio API key as a Bearer token
In: header
ISO 3166-1 alpha-2 country code (must be a regulated/KYC country).
2 <= length <= 2Optional white-label of the hosted page the end customer sees.
Where to send the end customer's browser after a successful
submit. On completion Zernio appends kyc=submitted and
country=<ISO-2> as query params. When omitted, the hosted
page shows a built-in confirmation screen instead.
uriResponse Body
application/json
application/json
import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.phonenumbers.createPhoneNumberKycLink({ body: { profileId: 'profile_abc123', country: 'string', },});console.log(data);{
"url": "string",
"token": "string",
"expiresAt": "2019-08-24T14:15:22Z"
}{
"error": "Unauthorized"
}Search available numbers GET
Search the provider's inventory for numbers available to purchase in a country (default US). Optional filters narrow the results. The country must be offerable (see GET /v1/phone-numbers/countries). Voice capability is always required; pass `sms=true` to only see numbers that can also text (SMS support is per-number, not per-country).
Port numbers in POST
Submit a port-in for one or more existing numbers from another carrier. Creates the carrier order(s), attaches the end-user (current account) info plus the LOA and invoice documents, and submits to the losing carrier. The transfer PIN is forwarded to the carrier and never stored. Ported numbers arrive voice-ready (and SMS-ready where the order supports messaging). Run the portability check (POST /v1/phone-numbers/port-in/check) and upload the two documents (POST /v1/phone-numbers/port-in/documents) first. The carrier may split the numbers into several orders (by country, number type, losing carrier); `orders` carries per-order results, and a partial failure still returns 201 with the failed orders' `error` set (they stay as cancellable drafts).