---
title: "Get port-in status"
method: GET
path: "/v1/port-ins/{portInId}"
tags: ["Port-Ins"]
---

# Get port-in status

`GET /v1/port-ins/{portInId}`

## Request

- Base URL: `https://api.telgea.com`
- URL: `https://api.telgea.com/v1/port-ins/{portInId}`
- Auth: API key in header `x-api-key`

Retrieves the current status and details of a port-in request. Use this endpoint to track the progress of a submitted port-in through its lifecycle.

## Path parameters

- `portInId` string, uuid, required: UUID of the port-in request.

## Response `200`

Successfully retrieved port-in details.

- GetPortInResponse
  - `id` string, required: UUID of the port-in request.
  - `countryCode` string, required: Market the number is being ported into.
  - `msisdn` string, required: The number being ported, in E.164 format.
  - `executionDate` string, required: The porting date, as YYYY-MM-DD.
  - `type` string, nullable, required: Port-in type this request was submitted under, or null when the donor needed none.
  - `status` 'PENDING' | 'CREATED' | 'SUBMITTED' | 'ACCEPTED' | 'REJECTED' | 'SUCCEEDED' | 'FAILED', required: Current status of the port-in
  - `numberId` string, required: UUID of the number this port-in creates. Use it to read the line once porting succeeds.
  - `failure` PortInFailure, nullable, required: Why a REJECTED or FAILED port-in ended that way: values you can branch on, and a text you can show your customer. Null in every other status.
    - `reason` 'WRONG_CUSTOMER_TYPE' | 'CONTRACT_LOCKED' | 'NUMBER_OWNERSHIP_MISMATCH' | 'NUMBER_ALREADY_PORTING' | 'AUTHORIZATION_CODE_INVALID' | 'PORTING_DATE_UNAVAILABLE' | 'FIELD_MISSING' | 'FIELD_INVALID' | 'FIELD_MISMATCH' | 'REJECTED_BY_DONOR' | 'CANCELLED' | 'null', nullable, required: Why the port-in ended this way, or null when we could not classify it.
    - `field` string, nullable, required: What the donor objected to, when it identified something. Either a key you sent in `fields` (e.g. `authorizationCode`) or a top-level property of the port-in (`msisdn`, `type`, `executionDate`).
    - `text` string, required: What happened and what to do next, in English, for showing to your customer. The wording may change at any time: branch on `reason`, never on this.
  - `createdAt` string, required: When the port-in was submitted, ISO 8601.
  - `updatedAt` string, required: When the port-in last changed status, ISO 8601.

## Other responses

- `400`: Request failed schema validation, or was refused by a business rule
- `401`: Missing or invalid API key in the X-API-Key header
- `403`: Insufficient permissions to read port-in data
- `404`: Port-in not found. The specified ID does not match any existing port-in.
- `429`: The API key has used its request quota for the current window. `Retry-After` says how many seconds until it resets.
- `500`: Internal server error. Contact support if this persists.

---

[API](https://skmtc.dev/telgea/apis/telgea-api.md) - [All operations](https://skmtc.dev/telgea/apis/telgea-api/llms.txt) - [OpenAPI document](https://skmtc.dev/telgea/apis/telgea-api/revisions/4e8f8c04fe9e?raw)
