Port numbers in
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).
API key authentication - use your Zernio API key as a Bearer token
In: header
E.164 numbers to port in.
1 <= items <= 50End-user / current-carrier account info that authorizes the port.
Document id from POST /v1/phone-numbers/port-in/documents (kind=loa).
Document id from POST /v1/phone-numbers/port-in/documents (kind=invoice).
Requested port date; the carrier confirms the actual FOC later.
date-timelength <= 100Response 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.createPhoneNumberPortIn({ body: { phoneNumbers: [ 'string', ], endUser: { entityName: 'Example', authPersonName: 'Example', streetAddress: 'string', locality: 'string', administrativeArea: 'string', postalCode: 'string', countryCode: 'string', }, loaDocumentId: 'loadocument_abc123', invoiceDocumentId: 'invoicedocument_abc123', },});console.log(data);{
"id": "string",
"telnyxPortingOrderId": "string",
"status": "draft",
"phoneNumbers": [
"string"
],
"orders": [
{
"id": "string",
"telnyxPortingOrderId": "string",
"status": "string",
"phoneNumbers": [
"string"
],
"error": "string"
}
]
}{
"error": "Unauthorized"
}Create a hosted KYC link POST
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.
Get KYC form spec GET
For a Tier 3/4 country, the fields the end customer must provide (Telnyx regulatory requirements) before a number can be ordered: text, date, address, or file (document) per requirement.