Connectivity Lifecycle

Activate with Number Porting

Keep the customer's existing phone number while launching a new subscription through Connect.

This flow combines customer setup, order creation, number porting, async events, and final activation into a single guided journey.

Best for: Use this flow when you want to activate a new subscription but preserve the customer's current number through a port-in process.

What you will do

Before implementing this flow, complete the Quickstart, review Idempotency for safe retries on write operations, and read Mobile Number Portability for country-specific rules.

How the on-hold flow works

When you create an activation order with on_hold_condition: porting, Connect creates the subscription immediately but keeps the order in an on-hold state until the port-in completes. This gives your integration full control over when to initiate and finalize the porting process.

You are notified through the order.on_hold webhook that the subscription is ready. From there you can manually resume the order at any time via POST /orders/{order-id}/resume:

  • If the port-in has completed, the subscription activates with the ported MSISDN.
  • If the port-in has not completed, the subscription activates with a temporary MSISDN as a fallback.

Implementation steps

StepAPI callWhy it matters
1. Choose the offerList Product OfferingsShows the plans and add-ons available to your tenant.
2. Prepare the customer contextCreate Account or reuse an existing accountGroups the customer relationship.
3. Prepare the end userCreate Subscriber or reuse an existing subscriberRepresents the end user who will receive connectivity.
4. Start activation on holdCreate Order with on_hold_condition: portingCreates the subscription and keeps the order on hold.
5. Initiate the port-inCreate PortingKicks off the port-in workflow with the donor operator.
6. Track port-in progressWebhooks — listen for porting.completed, porting.rejected, or porting.canceledConfirms whether the number was ported successfully.
7. Resume the orderResume OrderActivates the subscription with the ported MSISDN, or falls back to a temporary MSISDN.

Activation with porting

Activation with porting, step by step

Follow the exact partner journey from product selection to final activation. This view is designed to make the paused activation model easy to understand at a glance.

01
Product offering discovery
GET /product-offerings/{id}
Result
200 Product Offering

Fetch the product offering or reuse a locally cached version. Partners can cache product offerings for up to 24 hours to reduce API calls and improve performance, refreshing them periodically to stay up to date.

↓
02
Pre-contract summary
POST /contracts
Result
201 Contract Created

Generate the pre-contract summary that can be presented to the customer before service activation continues.

↓
03
Account setup
POST /accounts
Result
201 Account Created

Create an account, or reuse an existing one if already created. This entity is required before placing any order.

↓
04
Subscriber setup
POST /subscribers
Result
201 Subscriber Created

Create a subscriber, or reuse an existing one if already created. This entity is required before placing any order.

↓
05
Create Order
POST /orders
Result
201 Order Created

Create the activation order with on_hold_condition=porting so Connect can prepare the subscription while pausing final activation.

Events
subscription.sim_profile_ready_for_installationcontract.availableorder.on_hold
↓
06
Porting Request
POST /portings
Result
201 Porting Created

Submit the number transfer request and track its lifecycle until the existing number is successfully ported.

Events
porting.draftporting.pendingporting.scheduledporting.processingporting.completed
↓
07
Resume the order
POST /orders/{id}/resume
Result
200 Order Resumed

Once porting completes, explicitly resume the order so Connect can continue the activation journey.

↓
08
Final activation events
Webhook delivery
Result
Subscription fully activated

Connect delivers the final activation events confirming the product and subscription are now active.

Events
product.activesubscription.activephone_number.activeorder.completedinvoice.paid (prepaid)