Nota de idioma
Esta versión en español es una traducción abreviada: la sección «4. Status webhooks — what to subscribe» existe solo en inglés: /en/guides/number-porting-walkthrough-first-port. Los bloques de código, rutas de endpoints, nombres de campos de API y códigos de error permanecen en inglés.Recorrido de su primer port-in
Los dos runbooks de operador — Port a number end-to-end y Port out safely — cubren cada endpoint y caso límite. Esta página es la checklist más corta para la primera vez que mueve un número: ordena las decisiones, nombra lo que cada paso protege y relaciona los portados atascados con el motivo de rechazo que los causó.1. La máquina de estados que navega
Ambas direcciones del portado son una máquina de estados de un solo sentido. Saber en qué estado está le dice qué acciones siguen abiertas — la mayoría de los errores de primer portado son una acción intentada un estado demasiado tarde. Port-in (número entrando en Orbit):submitted → reviewing → approved → completed, con rejected y cancelled como ramas terminales y supplement_submitted como estado de espera mientras el carrier sopesa su enmienda:
- submitted — la orden existe. Cancelable (
DELETE /numbers/porting/:id). - reviewing — el carrier cedente tiene su orden más la LOA firmada y está comprobando los datos CSR. Aún cancelable. Nada más allá lo está.
- approved — el carrier cedente aceptó y (normalmente) emitió una fecha FOC. Cancelar ahora devuelve
409; el portado se completará. - completed — el número está activo en su cuenta de Orbit, exactamente una vez, con
number.portedemitido. - rejected — el carrier rechazó;
rejectionReasonlleva el código traducido. Los rechazos corregibles abren una ventanasupplementde 7 días. - cancelled — rama terminal; nada más aplica.
released, suspended, parked o port_out_pending rechazan el submit con 409. Tras el corte FOC, el carrier ganador posee el número — sin cancelación, sin vuelta atrás.
2. Checklist pre-importación — antes de la primera llamada API
- Customer Service Record (CSR) del carrier cedente — nombre de la entidad legal, número de cuenta, billing telephone number (BTN), dirección de servicio y PIN de transferencia, copiados textualmente. No reescriba de memoria; los rechazos
NAME_MISMATCHyADDRESS_MISMATCHvienen casi siempre de campos CSR adivinados. - Firmante autorizado — una persona nombrada con cargo, autorizada a mover el número y a firmar la LOA.
- Escaneo de la LOA — un PDF real a 200 dpi o más, firma fechada dentro de 30 días, todos los números portados listados. Los rechazos
LOA_INVALIDse concentran aquí. - PIN de port-out ya fijado en sus números de Orbit — proteja los que ya tiene antes de traer números nuevos.
POST /numbers/:id/port-out-protectioncon un PIN de 4 a 32 caracteres. - Reglas por país conocidas — los números US/CA obtienen un control de portabilidad síncrono en vivo; en el resto el check devuelve
check-not-supported. - Veredicto de elegibilidad en mano — ejecute
POST /numbers/porting/pre-validatey gatee sobreready: true.
3. Paso a paso — el orden del asistente
- Introducir los números (un E.164 por línea) → ejecutar el gate previo. Elegible, o no continúe.
- Rellenar los campos de carrier + CSR — copias exactas del CSR.
- Guardar como borrador —
draft: truealmacena la solicitud localmente constaging: "draft"y nunca toca a un carrier. - Subir la LOA en la plataforma (
POST /numbers/porting/:id/loa) — PDF/imagen de menos de 10 MB. - Firmar (
.../loa/sign) — nombre del firmante, email, acuse. Firmar dos veces devuelve422. - Enviar (
.../loa/submit) — la única acción válida en estadosigned. Este es el momento en que el carrier cedente inicia su revisión de 7 a 14 días hábiles. - Seguir la FOC —
GET /numbers/porting/:id/timelinedespliega el estado plano en etapas con marcas de tiempo y devuelvefocDateen cuanto el carrier asigna una. Vigile hastastatus: completed. - En el corte,
number.portedse dispara exactamente una vez — el número entra en el ciclo de vida normal igual que un DID comprado. - Nunca deje un borrador aparcado — un borrador nunca llega al carrier, nunca obtiene FOC y nunca se completa. El dashboard señala exactamente ese estado como «draft — LOA pending».
5. Rechazos comunes — y la solución de cada uno
GET /numbers/porting/:id/timeline traduce los códigos de rechazo del carrier a summary + recommendedAction en claro, etiquetados con una severidad: operator_fixable, needs_carrier o fatal. Los cinco que atascan los primeros portados:
Cualquier rechazo con severidad
fatal (NUMBER_NOT_PORTABLE) no merece un complemento — el número debe quedarse en el carrier cedente.
6. Vigilar por la API — las cuatro llamadas, ejecutables
Use una clave API connumbers:read para las lecturas de check y timeline, y numbers:write para el create.
cURL
submitted o reviewing y algo va mal, cancélelo con DELETE /numbers/porting/:id. Tras approved, cancelar devuelve 409 — el portado se completará según el calendario del carrier.