Submit a port-in
The only port-in submission endpoint — there is no POST /api/v1.1/port-ins.
Move an existing number from another carrier into Spenza. Always
asynchronous.
Two contract exceptions worth calling out:
- Requires an account role, not just a valid bearer token —
Admin,Super Admin, orStandard Admin. - Response is not on the standard envelope. Success is a flat
{ success, transactionId, statusEndpoint, message, timestamp }— nodatawrapper — andstatusEndpointpoints at the singular legacy path/api/v3/transaction/{id}/status(not the plural/api/v3/transactions/{id}used everywhere else — both resolve, but this is the literal value returned). A synchronous validation error is{ success: false, error: "<plain string>", timestamp }— noteerroris a bare string here, not an{code, message}object.
Identify the target line via plan, or via Operator + network
directly. Idempotency is supported via an Idempotency-Key header
(handled inline, not the standard interceptor) — a replay returns the
same shape with message: "Port-in already initiated (idempotent replay)".
Headers
Any string unique to this logical request. On a retry with the same key
and the same request body, the original response is replayed verbatim
(with an Idempotency-Replayed: true response header) instead of the
action repeating. Reusing the key with a different body or on a
different route returns 409 IDEMPOTENCY_KEY_REUSED. A replay attempted
while the original call is still in flight returns 409 CONFLICT.
Optional — omit it and the endpoint behaves exactly as it would otherwise.
"a1b2c3d4-idem-key-001"
Body
10-15 digits, optional leading +, cannot be all zeros.
"+15555551234"
Losing carrier's account PIN (FCC LNP) — treat like a credential, never log it.
Auto-creates the user on this account if no match exists.
Used when auto-creating the user.
Plan/product name; operator+network derived from it. Required when Operator/network are absent.
Required when plan is absent.
Required when plan is absent.
19-20 digits.
"8901260853182965429"
mvno, iot Defaults to employeeName if omitted.
Free-form partner metadata for correlation.
Response
Port-in initiated (note the flat, non-enveloped shape).

