The New Service Provisioning System (NSPS) lets you automate the real-time provisioning of subscriber data (e.g., SIM activation, plan changes) to external systems such as mobile network components (e.g., HSS or PCRF), or IPTV systems, without learning PortaBilling API, data structures, and advanced concepts.
The built-in External System Provisioning Framework (ESPF) sends basic notifications, such as “An account with i_account=12345 has been updated,” where all detailed information must be extracted by the event handler via the PortaBilling API.
NSPS complements ESPF and has a built-in component to retrieve all the additional details – such as SIM card details or service configuration. When a subscriber event occurs (e.g., a SIM card is assigned), NSPS retrieves the necessary data from PortaBilling at once and caches it. This data is provided to an NSPS handler as a JSON payload. The handler then updates a specific external system – such as HSS, PCRF, or IPTV. The handler is developed as a simple microservice (“connector”).
Why it’s better than traditional service provisioning via ESPF
- Developers don’t need to learn PortaBilling and call its API to fetch the necessary details of a specific event – they just build a microservice that receives JSON and maps it to the external system’s API. PortaOne provides a sample connector for Wireless Technology Labs HSS that can be used as a reference. The code is available publicly on our GitLab page. For custom connector instructions, refer to the NSPS connector guide.
- When there are multiple connectors (e.g., for HSS, PCRF, and IPTV), there’s only one data retrieval per event – no duplicate API calls.
- Each microservice is operating in its provisioning queue, ensuring that delays in provisioning to one system do not affect the others.
Requirements
To deploy NSPS, you need:
- PortaBilling/PortaSwitch version MR100 or later with enabled External system provisioning framework (ESPF).
- An active subscription to the NSPS module in the Add-on Mart.
How it works
NSPS is a cloud-based system, deployed on Google Cloud Platform. It receives provisioning events from PortaBilling via HTTP webhooks.
The process is as follows:
- PortaBilling generates an event (e.g., a subscriber upgrades their plan from 5 GB to 20 GB).
- The ESPF sends this provisioning event to NSPS via an HTTP request.
NSPS supports both ESPF event versions v1 and v2.
- NSPS retrieves all additional data, such as the subscriber’s SIM card IMSI, MSISDN, and the external profile ID corresponding to the new data plan via the PortaBilling API.
NSPS caches this additional data to reduce API load.
- The NSPS sends a single JSON payload with all the required details to the connector via its event queue.
- The connector communicates with the external system (e.g., PCRF) via its API to apply the required changes.
If a provisioning event fails (e.g., a QoS profile isn’t applied), the operations team can quickly spot the error using the NSPS web UI. After fixing the cause (e.g., properly configuring the QoS profile in PCRF), they can replay the failed events to ensure the changes are correctly applied to the external systems.

NSPS web interface
NSPS includes a user-friendly UI for configuring provisioning workflows (e.g., defining what additional data is required for a specific event), error tracking, and “replaying” events.
On the NSPS UI, you can open:
- Connectors list

- The configuration parameters of a specific connector

- The event queue for a specific connector

Sample connector available
NSPS uses HTTP REST, so you can write connectors in any programming language – Python, Node.js, Java, or any other your team prefers. For the NSPS custom connector instructions, see the guide.
We provide an open-source sample connector built in Python with the FastAPI framework. It integrates with World Telecom Labs’ HSS, contains all the code needed to process NSPS requests, and can be deployed as a Docker container in environments like Google Cloud or AWS.
To adapt it for your system, simply add your own logic for working with your API. The code is available on our public GitLab page.
This connector receives events like SIM/Updated with the required details and updates subscriber data in the WTL system via its proprietary API.
The events can be sent for the following scenarios:
- SIM card assignment to an account
- Account block/termination
- Bundle activation, removal, or depletion
- Product changes
- SIM card changes
Find the detailed information here.
Watch our NSPS webinar to see a live demo using an AI coding agent.