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
PATCHrequest can be used to update one or more attribute values. When using aPATCHrequest, 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
PUTrequest 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.
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"fromprecheck_failedorcarrier_rejected. Cancels the request. This is a terminal status.status: "activation_requested"fromcarrier_approved, together withrequested_activation_datein the same request. Requests activation of the port. Cancelling is no longer possible once a request reachesactivation_requested— that has to go through tocompletedorfailed.
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.manageporting.update
Path Arguments
| Parameter | Data Type | Description |
|---|---|---|
| port_in_sid required | string | The Port-In Request secure ID. |
Body Arguments
JSON representation of the fields and values to be updated.
Fields that can be modified are:
account_numberaccount_pincustomer_address1customer_address2customer_citycustomer_companycustomer_full_namecustomer_statecustomer_ziploaphonenumbersrequested_activation_daterequested_effective_datestatus
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.