Webhooks
Port-in events
Signed POST requests to your webhook endpoint for portin lifecycle events. See the Webhooks overview for signature verification.
Triggered when a port-in has been submitted to the network provider. A port-in can be submitted more than once under the same portInRequestReference; each submission replaces the previous one and triggers this event again.
Payload
typestringportin.submittedtimestampstring · date-timeWhen the event was recorded. This can be later than the change it reports: usage reported by the network can describe consumption that happened earlier.
dataobjectShow propertiesHide properties
portInRequestReferencestringPublic opaque port-in request reference (8-char uppercase base36)
profileReferencestringesimReferencestringmsisdnstringThe number being ported, in international format (E.164 without a leading +)
statusstringrequested: Accepted by Firsty; provider submission in progressapproved: The donor accepted the port;scheduledAtis when the number moves, once known, which can be days ahead. The port finishes atcompletedcancelling: Cancellation requested, awaiting provider confirmationcompleted: The donor released the number and it is assigned to this SIMrejected: Donor rejected the request (seereason); submit a corrected request. A rejection the customer can still correct may keep the requestrequesteduntil it is finalfailed: Port failed (seereason); submit a corrected requestcancelled: Cancellation confirmed; the eSIM stays pre-active for a corrected request or abandon
requestedapprovedcancellingcompletedrejectedfailedcancelledTriggered when the donor operator approved the port-in.
Payload
typestringportin.approvedtimestampstring · date-timeWhen the event was recorded. This can be later than the change it reports: usage reported by the network can describe consumption that happened earlier.
dataobjectShow propertiesHide properties
portInRequestReferencestringPublic opaque port-in request reference (8-char uppercase base36)
profileReferencestringesimReferencestringmsisdnstringThe number being ported, in international format (E.164 without a leading +)
statusstringrequested: Accepted by Firsty; provider submission in progressapproved: The donor accepted the port;scheduledAtis when the number moves, once known, which can be days ahead. The port finishes atcompletedcancelling: Cancellation requested, awaiting provider confirmationcompleted: The donor released the number and it is assigned to this SIMrejected: Donor rejected the request (seereason); submit a corrected request. A rejection the customer can still correct may keep the requestrequesteduntil it is finalfailed: Port failed (seereason); submit a corrected requestcancelled: Cancellation confirmed; the eSIM stays pre-active for a corrected request or abandon
requestedapprovedcancellingcompletedrejectedfailedcancelledscheduledAtstring | null · date-timeWhen the number moves to this SIM, as the donor agreed; null when the porting provider gives no date. It may move until the port completes
Triggered when the donor operator rejected the port-in. Submit a corrected request with fixed donor details.
Payload
typestringportin.rejectedtimestampstring · date-timeWhen the event was recorded. This can be later than the change it reports: usage reported by the network can describe consumption that happened earlier.
dataobjectShow propertiesHide properties
portInRequestReferencestringPublic opaque port-in request reference (8-char uppercase base36)
profileReferencestringesimReferencestringmsisdnstringThe number being ported, in international format (E.164 without a leading +)
statusstringrequested: Accepted by Firsty; provider submission in progressapproved: The donor accepted the port;scheduledAtis when the number moves, once known, which can be days ahead. The port finishes atcompletedcancelling: Cancellation requested, awaiting provider confirmationcompleted: The donor released the number and it is assigned to this SIMrejected: Donor rejected the request (seereason); submit a corrected request. A rejection the customer can still correct may keep the requestrequesteduntil it is finalfailed: Port failed (seereason); submit a corrected requestcancelled: Cancellation confirmed; the eSIM stays pre-active for a corrected request or abandon
requestedapprovedcancellingcompletedrejectedfailedcancelledreasonobjectWhy the port-in was rejected or failed. Present when status is rejected or failed, and on a requested port-in the donor has rejected for a reason the customer can still correct
Show propertiesHide properties
codestringNormalized cause of the rejection or failure, the same for every porting provider. provider_failure covers every cause without a more specific code. The list of values is open-ended; new values may be added
msisdn_sim_mismatchmsisdn_account_mismatchdonor_contract_type_mismatchnumber_not_activenumber_not_portablenumber_porting_in_progressporting_window_unavailableprovider_failuremessagestring | nullHuman-readable detail of the cause for support; free-form, not intended to be parsed. Null when there is none
Triggered when the port completed: the donor released the number and it is assigned to the SIM.
Payload
typestringportin.completedtimestampstring · date-timeWhen the event was recorded. This can be later than the change it reports: usage reported by the network can describe consumption that happened earlier.
dataobjectShow propertiesHide properties
portInRequestReferencestringPublic opaque port-in request reference (8-char uppercase base36)
profileReferencestringesimReferencestringmsisdnstringThe number being ported, in international format (E.164 without a leading +)
statusstringrequested: Accepted by Firsty; provider submission in progressapproved: The donor accepted the port;scheduledAtis when the number moves, once known, which can be days ahead. The port finishes atcompletedcancelling: Cancellation requested, awaiting provider confirmationcompleted: The donor released the number and it is assigned to this SIMrejected: Donor rejected the request (seereason); submit a corrected request. A rejection the customer can still correct may keep the requestrequesteduntil it is finalfailed: Port failed (seereason); submit a corrected requestcancelled: Cancellation confirmed; the eSIM stays pre-active for a corrected request or abandon
requestedapprovedcancellingcompletedrejectedfailedcancelledTriggered when the port-in failed. Submit a corrected request or abandon.
Payload
typestringportin.failedtimestampstring · date-timeWhen the event was recorded. This can be later than the change it reports: usage reported by the network can describe consumption that happened earlier.
dataobjectShow propertiesHide properties
portInRequestReferencestringPublic opaque port-in request reference (8-char uppercase base36)
profileReferencestringesimReferencestringmsisdnstringThe number being ported, in international format (E.164 without a leading +)
statusstringrequested: Accepted by Firsty; provider submission in progressapproved: The donor accepted the port;scheduledAtis when the number moves, once known, which can be days ahead. The port finishes atcompletedcancelling: Cancellation requested, awaiting provider confirmationcompleted: The donor released the number and it is assigned to this SIMrejected: Donor rejected the request (seereason); submit a corrected request. A rejection the customer can still correct may keep the requestrequesteduntil it is finalfailed: Port failed (seereason); submit a corrected requestcancelled: Cancellation confirmed; the eSIM stays pre-active for a corrected request or abandon
requestedapprovedcancellingcompletedrejectedfailedcancelledreasonobjectWhy the port-in was rejected or failed. Present when status is rejected or failed, and on a requested port-in the donor has rejected for a reason the customer can still correct
Show propertiesHide properties
codestringNormalized cause of the rejection or failure, the same for every porting provider. provider_failure covers every cause without a more specific code. The list of values is open-ended; new values may be added
msisdn_sim_mismatchmsisdn_account_mismatchdonor_contract_type_mismatchnumber_not_activenumber_not_portablenumber_porting_in_progressporting_window_unavailableprovider_failuremessagestring | nullHuman-readable detail of the cause for support; free-form, not intended to be parsed. Null when there is none
Triggered when a requested cancellation was confirmed by the provider.
Payload
typestringportin.cancelledtimestampstring · date-timeWhen the event was recorded. This can be later than the change it reports: usage reported by the network can describe consumption that happened earlier.
dataobjectShow propertiesHide properties
portInRequestReferencestringPublic opaque port-in request reference (8-char uppercase base36)
profileReferencestringesimReferencestringmsisdnstringThe number being ported, in international format (E.164 without a leading +)
statusstringrequested: Accepted by Firsty; provider submission in progressapproved: The donor accepted the port;scheduledAtis when the number moves, once known, which can be days ahead. The port finishes atcompletedcancelling: Cancellation requested, awaiting provider confirmationcompleted: The donor released the number and it is assigned to this SIMrejected: Donor rejected the request (seereason); submit a corrected request. A rejection the customer can still correct may keep the requestrequesteduntil it is finalfailed: Port failed (seereason); submit a corrected requestcancelled: Cancellation confirmed; the eSIM stays pre-active for a corrected request or abandon
requestedapprovedcancellingcompletedrejectedfailedcancelled