You signed with a new phone provider, filled in the Letter of Authorization, and a few days later the port request rejected notice arrived with a one-line reason code. The numbers still ring on the old carrier, the cutover date is gone, and nobody has told you which line of the form was wrong.
The usual cause is simple: the form describes your account the way you think of it, and the losing carrier checks it against its own records. Fixing the port means getting a copy of those records and making the form match them exactly.
Why can the old carrier reject a port it is not allowed to refuse?
The FCC is clear that once you request service from a new company, your old company cannot refuse to port your number, even if you owe money for an outstanding balance or termination fee. A rejection is not a refusal. It is the losing carrier saying the request does not match the account it has on file, so it cannot be sure the request is legitimate.
For simple ports, the FCC has said carriers should validate on no more than four fields: the 10-digit telephone number, the customer account number, the 5-digit zip code, and the passcode if applicable. In practice carriers also reject on names and service addresses, as the reject codes below show. Twilio's US porting guidelines state that the most common reason for a rejected port is incorrect name and/or address information.
What is the CSR, and why does it beat your bill?
The Customer Service Record is the losing carrier's own description of your account: who the account belongs to, the service address, the billing telephone number, and which numbers and features sit on it. It is the document your port request gets checked against. Twilio's advice is direct: ask your current service provider for the name and address on your CSR.
Your invoice is a poor substitute. Telnyx notes that the Billing Telephone Number (BTN) or Account Telephone Number (ATN) is rarely found on the invoice. The bill may show a mailing address, a trade name, or a suite number that the CSR does not carry. When the FCC adopted its 2010 porting process flows, it included a recommendation that the current provider return a CSR to the new provider, if requested, within 24 clock hours unless otherwise negotiated, excluding weekends and the provider's holidays. Ask the new provider to pull it, or ask the old carrier for it yourself, before you resubmit.
Walking the LOA against the CSR, field by field
Twilio lists what a US port needs: a Letter of Authorization, a name and address that matches the CSR, a copy of a phone bill dated within the last 30 days, the current provider's account number, and a PIN if required. Put the CSR next to the LOA and check each of these in turn.
- Authorized name (reject code AUTH_NAME_MISMATCH). The signer must be the person on file. Telnyx states the names must match exactly or the carrier will likely reject the port out.
- Business name (BUSINESS_NAME_MISMATCH). Use the name on the CSR, legal entity or trade name, not the one on your website.
- Service address and zip (SERVICE_ADDRESS_MISMATCH, ZIP_POSTAL_CODE_MISMATCH). The address where the lines are, spelled as the CSR spells it, not the billing or mailing address.
- Account number (ACCOUNT_NUMBER_MISMATCH). For some carriers, Telnyx notes, the account number may be the same as the BTN.
- BTN or ATN (BTN_ATN_MISMATCH). Read it off the CSR. It may be a number you rarely think about.
- PIN or passcode (PASSCODE_PIN_INVALID). Confirm or reset it with the losing carrier before resubmitting.
- The number list (TN_MISMATCH, DIFFERENT_ACCOUNTS). Telnyx states carriers will only allow port requests for a single account at a time, so split the request by account.
The remaining common codes are not field typos. PORTING_MAIN_BTN and REQUEST_INCORRECT concern the full or partial designation, PENDING_ORDER and TN_HAS_SPECIAL_FEATURE mean something on the account has to change first, and ILLEGIBLE_LOA means a clean, typed copy. Each is covered below.
Simple or non-simple: which clock are you on?
The FCC defines simple ports as those that do not involve unbundled network elements, involve an account only for a single line, do not include complex switch translations such as Centrex, ISDN, AIN services, remote call forwarding, or multiple services on the loop, and do not include a reseller. The FCC's consumer guide puts it more loosely: simple ports generally do not involve more than one line or more complex adjustments to switching equipment. A multi-line business account is almost never simple.
Under 47 CFR 52.35, a simple wireline or simple intermodal port must be completed within one business day, and ports involving interconnected VoIP count as intermodal. An accurate and complete Local Service Request has to reach the current provider between 8 a.m. and 1 p.m. local time to be eligible for activation at midnight the same day. A non-simple port gets four business days. The one-day clock runs from an accurate and complete request, and a rejected request is by definition not one, so a reject puts you back at the start.
The 2010 order also requires the current provider to respond within four hours with a Firm Order Confirmation or a reject. Real timelines run longer because they include the paperwork. Twilio states that once all required information is submitted, standard ports typically take 5 to 15 days and can take up to 4 weeks or longer, and bulk ports of more than 50 numbers take 4 to 6 weeks, barring rejections.
Partial ports and the BTN problem
A partial port moves some numbers and leaves others on the old account. Think of an alarm line or a fax line that stays put for a while. The trap is the BTN. Telnyx describes the PORTING_MAIN_BTN reject as a partial port that includes the Billing Telephone Number, which would leave one or more stranded numbers on the account without a BTN.
There are two ways out. Port everything, so nothing is stranded, or ask the losing carrier to make one of the staying numbers the new BTN before you resubmit. The second needs its own order with the old carrier, and while it is open it can trigger a PENDING_ORDER reject, which Telnyx describes as numbers already being ported out or having another service change pending. Let the BTN change complete before the port goes back in.
PINs, pending orders and special features
Under the 2010 rules, the passcode field is optional unless the passcode has been requested and assigned by the end user. Twilio notes that most mobile operators require account numbers and PINs to port, and some providers also require account PINs to port out. If someone at your company set a PIN years ago, it will be needed now.
That PIN is doing its job. The FCC warns that port-out scammers gather enough personal information to con a victim's phone company into believing a port request is from the authorized account holder, and it advises customers to add a PIN or password to their phone accounts. A PIN reject on your own legitimate port is the same protection working.
Special features are the other common stop. Telnyx describes TN_HAS_SPECIAL_FEATURE as a feature that must be removed before the number can be ported, which might include a DSL line or special bundled pricing. If your internet still rides on one of the copper lines, move the internet first.
Choosing the FOC date
The Desired Due Date is one of the 14 standard fields the FCC requires for a simple port, alongside the ported telephone number, account number and zip code. The FOC is the losing carrier's confirmation of that date. If it cannot meet the date, you get FOC_REJECTED instead. Pick a weekday when someone is in the office to test inbound calls, and have the new system built and tested before that date.
Worked example: an office port that rejects twice
A 15-person insurance agency is moving from a copper phone account to a hosted VoIP provider. The account has a main number, nine direct lines, a fax line, and an alarm line. The alarm vendor needs a month to move its panel, so the agency ports eleven numbers and leaves the alarm line behind. The office manager fills in the LOA from the latest bill.
The first submission comes back with BUSINESS_NAME_MISMATCH and SERVICE_ADDRESS_MISMATCH. The LOA used the agency's trade name and its suite-numbered mailing address. The new provider requests the CSR, which shows the legal LLC name and the building's street address with no suite. The office manager corrects both, and the owner, who is the authorized contact on the CSR, signs a fresh LOA.
The second submission comes back with PORTING_MAIN_BTN. The main number is the BTN, and porting it would strand the alarm line. The same CSR also shows DSL on the fax line, which would have produced a special-feature reject next. The office manager calls the old carrier and asks for two changes: make the alarm line the BTN, and cancel the DSL, since the office already runs on fiber. She waits for both orders to close so the port will not hit a pending-order reject.
The third submission lists eleven numbers, marked as a partial port, with every field copied from the updated CSR. The FOC comes back for a Wednesday. Because this is a multi-line, non-simple port, the agency planned for days rather than hours. Calls move on the FOC date, the alarm line stays on the old account under its new role as BTN, and it ports a month later on its own.
Where this goes wrong
- Canceling the old service first. The FCC tells consumers not to terminate service with the existing company before initiating new service. Keep the old account live until every number has moved.
- Fixing one field per round. Do not assume a reject code lists every mismatch on the form. Compare the whole LOA to the CSR before every resubmission.
- A stale bill. Twilio asks for a bill dated within the last 30 days. An older copy invites a reject.
- Numbers spread across accounts. If the numbers sit on more than one account, each account needs its own request.
- Rate centers. Telnyx notes some carriers require requests to be split by rate center, which matters if a branch office's numbers are in the batch.
- Silence. Telnyx lists a condition where the losing carrier did not respond at all, and notes its porting team typically corrects it without customer assistance. Ask the new provider who is chasing it before you change anything.
The decision rule
Do not resubmit a rejected port until you hold a current CSR and every field on the LOA matches it exactly. If any number stays behind, settle the BTN first. If any line carries DSL or a bundle, remove it first. And if the account has more than one line, plan for a non-simple port and keep the old service running until the new provider confirms every number has moved.
