KKeepMyNumber
Get started

Countries & requirements

Porting rules are national. The platform routes each order to the right provider per country and attaches that country's legal requirements automatically. This page summarizes what's supported today; the requirements API is always the source of truth:

curl "https://api.example.com/v2/porting/requirements?country_code=US&number_type=mobile" \
  -H "Authorization: Bearer pk_live_YOUR_KEY"

United States (US)

Handled by our mobile carrier partner.

Requirement Type Notes
Letter of Authorization (loa) document Use the pre-filled LOA from GET /v2/porting_orders/{id}/loa; sign and upload
Account number (account_number) text Must match the losing carrier's CSR exactly
Transfer PIN (port_out_pin) text Mobile numbers only; 4–10 digits, issued by the losing carrier ("Number Transfer PIN")
Recent invoice (recent_invoice) document Optional but speeds up exception handling

Timing: mobile ports are often same-day once the PIN and account data are correct. Wrong account number / PIN are the dominant rejection causes.

United Kingdom (GB)

Handled via Telnyx.

Requirement Type Notes
Letter of Authorization (loa) document UK-specific wording — always use our generated LOA
Recent invoice (recent_invoice) document Must be under 30 days old
Address proof (uk_postcode_proof) document Local (geographic) numbers only — utility bill or invoice showing the installation address, under 90 days

Timing: UK mobile ports typically complete in a few business days; local numbers can take longer depending on the losing communications provider.

Notes that apply everywhere

  • Numbers must pass a portability check before ordering.
  • Requirements differ not just by country but by number type (mobile vs local vs toll-free) — always query the requirements preview.
  • Some ranges route to unexpected countries: e.g. +44 7911 … is Guernsey (GG), not GB. The portability check tells you what we detected.
  • A country without an active routing rule is refused with a clear 422 — contact us if you need a new destination; adding one is configuration, not code.