# PortInRejected

Fired when the losing carrier or provider validation rejects a port-in.

> Enterprise API · https://developer.telgea.com/docs/enterprise/webhooks/port-in-rejected

## PortInRejected [#portinrejected]

Fired when the losing carrier or provider validation rejects the port-in. This can happen at submission, in which case no [PortInSubmitted](https://developer.telgea.com/docs/enterprise/webhooks/port-in-submitted) comes before it, or later during the acceptance check.

After a rejection the port-in is final. Correct the data and submit a new port-in for the same number.

## Payload [#payload]

```json event=PortInRejected
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "eventType": "PortInRejected",
  "timestamp": "2026-03-25T14:30:00.000Z",
  "organizationId": "b5e2d7f3-a1c4-4e89-9f6b-3d8a7c5e1024",
  "data": {
    "portInId": "d4e5f6a7-b8c9-0123-d456-789012345678",
    "numberId": "f7a8b9c0-d1e2-3456-f789-012345678901",
    "phoneNumber": "+4512345678",
    "countryCode": "DK",
    "state": "REJECTED",
    "executionDate": "2026-04-01",
    "failureDetails": {
      "code": "INCORRECT_DETAILS",
      "reason": "AUTHORIZATION_CODE_INVALID",
      "field": "authorizationCode",
      "text": "Your authorization code was refused or has expired."
    }
  }
}
```

`reason` and `field` are left out when the carrier did not report enough to classify the failure. `text` says what happened and what to do next, in English, for showing to your customer; branch on `reason`, because the wording of `text` may change. See the [port-in guide](https://developer.telgea.com/docs/enterprise/guides/port-in#failure-codes) for every failure code and reason, and what to do about each.
