Skip to main content

Update Port-In Request

This request updates the Port-In Request object, targeted by secure ID. status can only be set through PATCH or PUT in two specific cases — refer to Status Transitions below for how a request actually moves between statuses.

patch /porting/port_in/{port_in_sid}
put /porting/port_in/{port_in_sid}

Sample​

A sample PATCH request to update the customer data on the port-in request targeted by secure ID:

curl -X PATCH \
'https://api.carrierx.com/core/v2/porting/port_in/c7eae0b4-5eda-4964-8998-d514903b4af0' \
-H 'Content-Type: application/json' \
--data-binary '{"account_number": "8675310"}' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'

Response​

200 status code with a serialized copy of the updated Port-In Request object:

{
"account_number": "8675310",
"account_pin": "1234",
"customer_address1": "123 Main St",
"customer_address2": "",
"customer_city": "Austin",
"customer_company": "",
"customer_full_name": "Jane Doe",
"customer_state": "TX",
"customer_zip": "78701",
"date_created": "2026-07-01T14:32:00.000Z",
"date_modified": "2026-07-03T11:05:00.000Z",
"errors": [],
"existing_service_provider": "321J",
"gaining_service_provider": "252F",
"loa": null,
"partner_sid": "ed437757-002d-4ecc-aa5a-efdf5e50dba0",
"phonenumbers": ["19512623062"],
"port_in_sid": "c7eae0b4-5eda-4964-8998-d514903b4af0",
"requested_activation_date": null,
"requested_effective_date": "2026-08-01T00:00:00.000Z",
"status": "created"
}

A Port-In Request object can be updated using either a PATCH or PUT request.

  • A PATCH request can be used to update one or more attribute values. When using a PATCH request, only the attributes specified in the request payload will be updated, all other attributes and values will remain the same. The port-in request secure ID is passed in the query URL, and the values to be modified are passed in the request body.

  • A PUT request can be used to update an entire Port-In Request object. The port-in request secure ID is passed in the query URL, and the entire Port-In Request object is passed in the request body.

note

While all the fields must be present in a PUT request, not all attribute values can be modified. port_in_sid, date_created, date_modified, errors, and gaining_service_provider are always read-only — echo back their current values in a PUT request body.

Data fields (everything other than status and requested_activation_date) can only be modified while the request is in created, precheck_failed, or carrier_rejected status. Once a request reaches carrier_approved or later, data fields become read-only — but status itself can still be set in the one case described below.

Status Transitions​

Most status transitions are applied internally by CarrierX as the request is validated, submitted to the losing carrier, and processed by staff — refer to Port-In Request Status Values for a description of every status. Including a status value that isn't one of the two cases below has no effect on a PATCH request, or returns a 422 error on both PATCH and PUT.

The partner can set status directly, through either PATCH or PUT, in exactly two cases:

  • status: "cancelled" from precheck_failed or carrier_rejected. Cancels the request. This is a terminal status.
  • status: "activation_requested" from carrier_approved, together with requested_activation_date in the same request. Requests activation of the port. Cancelling is no longer possible once a request reaches activation_requested — that has to go through to completed or failed.

There is also an indirect way to leave precheck_failed or carrier_rejected: correcting the fields flagged in Get Port-In Request Errors with a regular PATCH of request data (not touching status) automatically returns the request to created and re-triggers validation.

Any other status change (for example, cancelling from created or carrier_approved, or forcing carrier_submitted) is admin-only.

Required Scopes​

To update a Port-In Request object, the partner must have one of the following scopes enabled:

  • porting.manage
  • porting.update

Path Arguments​

ParameterData TypeDescription
port_in_sid requiredstringThe Port-In Request secure ID.

Body Arguments​

JSON representation of the fields and values to be updated.

Fields that can be modified are:

  • account_number
  • account_pin
  • customer_address1
  • customer_address2
  • customer_city
  • customer_company
  • customer_full_name
  • customer_state
  • customer_zip
  • loa
  • phonenumbers
  • requested_activation_date
  • requested_effective_date
  • status

status and requested_activation_date can only be modified together, and only to move the request to activation_requested from carrier_approved; status can also be modified alone to move to cancelled from precheck_failed or carrier_rejected — refer to Status Transitions above. existing_service_provider cannot be set by the partner; it is derived automatically from the phone numbers provided.

Refer to this table to view all fields that appear in the Port-In Request object.