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 — uploaded documents must be attached to an order within 30
minutes or the carrier deletes them, so upload right before this call.
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).
Non-US/CA numbers additionally need the country-specific values from
GET /v1/phone-numbers/port-in/requirements, passed via requirements,
and must be submitted one country per request. When required
information is still missing after submission, the order is kept as a
resumable draft whose error / declineReason names the gaps.
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. The losing carrier matches every field against its records and rejects the whole port on a mismatch — enter values exactly as they appear on the carrier bill.
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. US/CA default is one week out (shifted off weekends); international orders are scheduled into the carrier's next allowed porting window at or after this date.
date-timelength <= 100Whether the losing account ports all its numbers (full) or keeps some (partial).
"full""full" | "partial"Country-specific requirement values for international ports (from GET /v1/phone-numbers/port-in/requirements). Not needed for US/CA. The LOA and invoice requirements are satisfied automatically by loaDocumentId/invoiceDocumentId, and address-type requirements by the endUser service address.
items <= 30Response 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.phonenumbers.createPhoneNumberPortIn({ body: { phoneNumbers: [ 'string', ], endUser: { entityName: 'Example', authPersonName: 'Example', accountNumber: 'string', streetAddress: 'string', locality: 'string', postalCode: 'string', countryCode: 'US', }, 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": "string",
"type": "invalid_request_error",
"code": "string",
"param": "string",
"platform": "string",
"platformError": {},
"details": {}
}{
"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.