Skip to content

Output Data Structure

This document details the structure of a request from NSPS to the connector, with an ESPF Event (data) and enriched data from PortaBilling (pb_data). This is a description of the data formats.

Field Name Type Mandatory Description
event_id str Yes Unique identifier of the event.
data ESPFEvent Yes Event payload, represented by an instance of ESPFEvent
pb_data PortaBillingData No Enriched data from PortaBilling (1)
handler_id str No Optional identifier of the handler assigned to process the event.
status str No Status of event processing. (2)
created_at datetime No Timestamp when the event was created.
updated_at datetime No Timestamp when the event was last enriched by NSPS.
  1. Includes account, SIM, and access policy info. Defaults empty.
  2. Defaults to EventStatus.UNDEFINED.

The field called data contains the generated ESPF event as it is. So if you don't need additional info from PortaBilling, you can only use this data.

OpenApi Schema
openapi: 3.1.0
info:
    title: NSPS Output Data Structures
    description: >
        This OpenAPI schema documents the data structures sent by NSPS (PortaBilling ESPF events)
        to the NSPS Connector. It contains only components and schemas to describe the
        event payloads and their fields, without any endpoints or operations.

        Use this diagram to understand the format, types, and possible values ​​of data sent from NSPS to the connector.
    version: 1.0.0
components:
    schemas:
        Event:
            type: object
            title: Event
            description: Main event model
            required:
                - event_id
                - data
            properties:
                event_id:
                    type: string
                    title: Event Id
                    description: Unique identifier of the event
                    examples:
                        - a3623086-24c2-47fb-a17f-929d9e542ed2
                data:
                    $ref: '#/components/schemas/ESPFEvent'
                    description: Event data containing type and variables
                pb_data:
                    anyOf:
                        - $ref: '#/components/schemas/PortaBillingData'
                        - type: 'null'
                    description: Enriched data from PortaBilling
                handler_id:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: Handler Id
                    description: ID of the handler processing this event
                    examples:
                        - wtl-hlr-hss-nsps
                created_at:
                    anyOf:
                        - type: string
                        format: date-time
                        - type: 'null'
                    title: Created At
                    description: When the event was created (ISO datetime string)
                    examples:
                        - '2025-03-12T16:47:30.443939+00:00'
                updated_at:
                    anyOf:
                        - type: string
                        format: date-time
                        - type: 'null'
                    title: Updated At
                    description: When the event was last updated (ISO datetime string)
                    examples:
                        - '2025-03-12T16:47:36.585885+00:00'
                status:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: Status
                    description: Current status of the event
                    examples:
                        - received
        ESPFEvent:
            type: object
            title: ESPFEvent
            description: Model representing incoming ESPF event
            required:
                - event_type
                - variables
            properties:
                event_type:
                    type: string
                    title: Event Type
                    description: 'The type of the event'
                    enum:
                        - SIM/Updated
                        - SIM/Created
                        - SIM/Deleted
                        - SIM/Replaced
                    examples:
                        - SIM/Updated
                variables:
                    type: object
                    title: Variables
                    description: >
                        All event variables passed as-is from original event, including:
                        `i_env`, `i_event`, `i_account`, `event_time`.
                    properties:
                        i_env:
                            anyOf:
                                - type: integer
                                - type: 'null'
                            description: Environment identifier (environment ID) in PortaBilling
                            examples:
                                - 3
                        i_event:
                            anyOf:
                                - type: integer
                                - type: 'null'
                            description: Unique event identifier
                            examples:
                                - 999999
                        i_account:
                            anyOf:
                                - type: integer
                                - type: 'null'
                            description: Account identifier (represents the subscriber or account)
                            examples:
                                - 277147
                        event_time:
                            anyOf:
                                - type: string
                                - type: 'null'
                            description: Event timestamp (in `YYYY-MM-DD HH:MM:SS` format)
                            examples:
                                - '2025-05-01 12:00:00'
        PortaBillingData:
            type: object
            title: PortaBillingData
            description: This section contains enriched data received from PortaBilling.
            properties:
                account_info:
                    anyOf:
                        - $ref: '#/components/schemas/AccountInfo'
                        - type: 'null'
                    description: Main account-level data container.
                sim_info:
                    anyOf:
                        - $ref: '#/components/schemas/SimInfo'
                        - type: 'null'
                    description: SIM card information from PortaBilling.
                prev_sim_info:
                    anyOf:
                        - $ref: '#/components/schemas/SimInfo'
                        - type: 'null'
                    description: Previous SIM card information (used for SIM/Replaced events).
                access_policy_info:
                    anyOf:
                        - type: array
                        items:
                            $ref: '#/components/schemas/AccessPolicyInfo'
                        - type: 'null'
                    description: Access policy information from PortaBilling.
                product_info:
                    anyOf:
                        - $ref: '#/components/schemas/ProductInfo'
                        - type: 'null'
                    description: Product information from PortaBilling.
                full_vd_counter_info:
                    anyOf:
                        - type: array
                        items:
                            $ref: '#/components/schemas/VDCounterInfo'
                        - type: 'null'
                    description: VD counter information from PortaBilling.
        AccountInfo:
            type: object
            title: AccountInfo
            description: The main account-level data container.
            properties:
                bill_status:
                    anyOf:
                        - type: string
                        enum:
                            - open
                            - suspended
                            - inactive
                            - terminated
                        - type: 'null'
                    title: Billing status
                    description: >
                        The billing status of the account.
                        Possible values:
                        - `open` — The account is open.
                        - `suspended` — The account is suspended. This status is available for debit accounts and can be set only automatically (by subscriptions assigned to the account).
                        - `inactive` — The account is inactive. This status can be set only during account creation, manually or using the Account Generator.
                        - `terminated` — The account is terminated. This status can be set only via the terminate_account method.
                    examples:
                        - open
                billing_model:
                    anyOf:
                        - type: string
                        enum:
                            - debit_account
                            - recharge_voucher
                            - credit_account
                            - alias
                            - beneficiary
                        - type: 'null'
                    title: Account type
                    description: >
                        The account type.
                        An account can be a debit, credit, beneficiary, or voucher type.
                        Possible values:
                        - `debit_account` — An account usually associated with prepaid cards; the account balance shows available funds.
                        - `recharge_voucher` — A voucher-type account used to refill debit or credit accounts; the balance of the voucher account is transferred to the main account.
                        - `credit_account` — A credit account is invoiced for incurred costs.
                        - `alias` — An alias account type.
                        - `beneficiary` — A beneficiary account has a service configuration that uses only the balance, products, and quotas of a sponsor account.
                    examples:
                        - credit_account
                blocked:
                    anyOf:
                        - type: boolean
                        - type: 'null'
                    title: Blocked
                    description: Indicates whether account's calls and access to the self-care interface is blocked
                    examples:
                        - false
                email:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: Email
                    description: The email address associated with the account
                    examples:
                        - info@portaone.com
                firstname:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: First name
                    description: The account owner's first name
                    examples:
                        - John
                i_account:
                    anyOf:
                        - type: integer
                        - type: 'null'
                    title: Account unique ID
                    description: Internal ID of the account.
                    examples:
                        - 277147
                i_customer:
                    anyOf:
                        - type: integer
                        - type: 'null'
                    title: Customer ID
                    description: The ID of the customer record to which the account belongs.
                    examples:
                        - 6392
                i_master_account:
                    anyOf:
                        - type: integer
                        - type: 'null'
                    title: Master Account ID
                    description: The ID of the parent account.
                    examples:
                        - null
                i_product:
                    anyOf:
                        - type: integer
                        - type: 'null'
                    title: Product ID
                    description: The ID for the account's product.
                    examples:
                        - 3774
                i_vd_plan:
                    anyOf:
                        - type: integer
                        - type: 'null'
                    title: VolumeDiscount Plan ID
                    description: The unique ID of the bundle assigned to the account individually.
                    examples:
                        - 1591
                id:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: Id
                    description: The unique ID (PIN) of the account on the interface.
                    examples:
                        - 380661310764@msisdn
                lastname:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: Last name
                    description: The account owner's last name.
                    examples:
                        - Doe
                phone1:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: Phone1
                    description: The main phone number.
                    examples:
                        - '380661310764'
                product_name:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: Product Name
                    description: The name of the account's product.
                    examples:
                        - Pay as you go
                status:
                    anyOf:
                        - type: string
                        enum:
                            - active
                            - customer_exported
                            - expired
                            - quarantine
                            - screening
                            - closed
                            - inactive
                            - suspended
                            - customer_suspended
                            - customer_limited
                            - customer_provisionally_terminated
                            - blocked
                            - customer_blocked
                            - not_yet_active
                            - credit_exceeded
                            - overdraft
                            - customer_has_no_available_funds
                            - customer_credit_exceed
                            - zero_balance
                            - customer_suspension_delayed
                            - customer_limiting_delayed
                            - frozen
                        - type: 'null'
                    title: Status
                    description: >
                        The current status of the account, based on its own status, the customer's status and other factors.
                        Possible values:
                        - `active` — The account is active.
                        - `customer_exported` — The account's customer is exported.
                        - `expired` — The account expired.
                        - `quarantine` — After being screened, the account was unable to supply valid credentials.
                        - `screening` — Suspicious activity was detected for the account.
                        - `closed` — The account is closed.
                        - `inactive` — The account is inactive.
                        - `suspended` — The account is suspended (applicable to debit accounts only).
                        - `customer_suspended` — The account's customer is suspended.
                        - `customer_limited` — Services are limited for the account's customer.
                        - `customer_provisionally_terminated` — The account's customer is provisionally terminated.
                        - `blocked` — The account is blocked.
                        - `customer_blocked` — The account's customer is blocked.
                        - `not_yet_active` — The account's activation date has not yet come.
                        - `credit_exceeded` — The account's balance is above the individual credit limit.
                        - `overdraft` — The account's balance is overdrawn (applies to debit accounts only).
                        - `customer_has_no_available_funds` — The account's customer funds are depleted.
                        - `customer_credit_exceed` — The account's customer balance is above the credit limit.
                        - `zero_balance` — The account's funds are depleted (applicable to debit accounts only).
                        - `customer_suspension_delayed` — The account's customer suspension is lifted.
                        - `customer_limiting_delayed` — The account's customer limitation is delayed.
                        - `frozen` — The account's auto-payment is suspended due to repeated errors.
                    examples:
                        - active
                time_zone_name:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: Time Zone Name
                    description: >
                        The name of the account's time zone. The UI equivalent of this field is the 'Time zone'. Examples: "Europe/Prague", "America/Vancouver", etc.
                    examples:
                        - Europe/Kiev
                zip:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: Zip code
                    description: The postal (zip) code.
                    examples:
                        - '40004'
                assigned_addons:
                    anyOf:
                        - type: array
                        items:
                            $ref: '#/components/schemas/AssignedAddon'
                        - type: 'null'
                    title: Assigned Addons
                    description: The list of the account's add-on products.
                service_features:
                    anyOf:
                        - type: array
                        items:
                            $ref: '#/components/schemas/ServiceFeature'
                        - type: 'null'
                    title: Service Features
                    description: The list of the service features.
        AssignedAddon:
            type: object
            title: AssignedAddon
            description: The list of the account's add-on products
            properties:
                addon_effective_from:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: Addon Effective From
                    description: ISO datetime string - when the add-on product is activated.
                    examples:
                        - '2025-05-16T12:59:46'
                addon_effective_to:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: Addon Effective To
                    description: ISO datetime string - when the add-on product expires.
                    examples:
                        - '2025-06-16T12:59:46'
                addon_priority:
                    anyOf:
                        - type: integer
                        - type: 'null'
                    title: Addon Priority
                    description: >
                        Priority of the addon:
                        0=main product,
                        10=low,
                        15=medium low,
                        20=medium,
                        25=medium high,
                        30=high.
                    examples:
                        - 10
                description:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: Description
                    description: The internal product description.
                    examples:
                        - 'Product description'
                i_product:
                    anyOf:
                        - type: integer
                        - type: 'null'
                    title: Product ID
                    description: The unique ID of the product.
                    examples:
                        - 3775
                i_product_group:
                    anyOf:
                        - type: integer
                        - type: 'null'
                    title: Product Group ID
                    description: The unique ID of the product group to which the product belongs.
                    examples:
                        - null
                i_vd_plan:
                    anyOf:
                        - type: integer
                        - type: 'null'
                    title: VolumeDiscount Plan ID
                    description: The unique ID of the bundle assigned to the product.
                    examples:
                        - 1591
                name:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: Name
                    description: The product name.
                    examples:
                        - Youtube UHD
        ServiceFeature:
            type: object
            title: ServiceFeature
            description: List of service features assigned to the account, each with its attributes.
            properties:
                name:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: Name
                    description: The service feature name.
                    examples:
                        - netaccess_policy
                effective_flag_value:
                    anyOf:
                        - type: string
                        enum:
                            - Y
                            - N
                        - type: 'null'
                    title: Effective Flag Value
                    description: >
                        The actual service feature flag value. Possible values:
                        - `Y` — enabled
                        - `N` — disabled
                    examples:
                        - Y
                attributes:
                    anyOf:
                        - type: array
                        items:
                            $ref: '#/components/schemas/ServiceFeatureAttribute'
                        - type: 'null'
                    title: Attributes
                    description: The list of service feature attributes.
        ServiceFeatureAttribute:
            type: object
            title: ServiceFeatureAttribute
            description: Service feature attribute model
            properties:
                name:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: Name
                    description: The service feature attribute internal name.
                    examples:
                        - access_policy
                effective_value:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: Effective Value
                    description: Service feature attribute value, comma-separated if multiple values.
                    examples:
                        - '149'
        SimInfo:
            type: object
            title: SimInfo
            description: SIM card information from PortaBilling
            properties:
                i_account:
                    anyOf:
                        - type: integer
                        - type: 'null'
                    title: Account unique ID
                    description: The unique ID of the account to which the SIM card belongs.
                    examples:
                        - 277147
                i_sim_card:
                    anyOf:
                        - type: integer
                        - type: 'null'
                    title: SIM Card ID
                    description: The unique ID of the SIM card.
                    examples:
                        - 3793
                iccid:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: ICCID
                    description: >
                        The Integrated Circuit Card ID. ICCIDs are stored in the SIM cards.
                        Possible data format: a unique 18 to 22 digit code that includes the SIM card country, home network, and identification number.
                    examples:
                        - '89014103211118510720'
                imsi:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: IMSI
                    description: >
                        The unique International Mobile Subscriber Identity of the SIM card.
                        Possible data format: a string of 6 to 15 digits.
                    examples:
                        - '001010000020349'
                msisdn:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: MSISDN
                    description: The Mobile Subscriber Integrated Services Digital Number, mobile number of the SIM card.
                    examples:
                        - '380661310764'
                status:
                    anyOf:
                        - type: string
                        enum:
                            - available
                            - reserved
                            - used
                            - disposed
                        - type: 'null'
                    title: Status
                    description: >
                        The status of the SIM card.
                        Possible values:
                        - `available` — the SIM card is available for assignment.
                        - `reserved` — reserved for the customer, but not yet assigned to the account.
                        - `used` — SIM card is being used by the account.
                        - `disposed` — SIM card is disposed and cannot be used.
                    examples:
                        - available
        AccessPolicyInfo:
            type: object
            title: AccessPolicyInfo
            description: Information about access policies applied to the account.
            properties:
                i_access_policy:
                    anyOf:
                        - type: integer
                        - type: 'null'
                    title: Access Policy ID
                    description: The unique ID of the Access Policy
                    examples:
                        - 179
                name:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: Name
                    description: The name of the Access Policy
                    examples:
                        - WTL integration
                attributes:
                    anyOf:
                        - type: array
                        items:
                            $ref: '#/components/schemas/AccessPolicyAttribute'
                        - type: 'null'
                    title: Attributes
                    description: The list of related service policy attribute values
        AccessPolicyAttribute:
            type: object
            title: AccessPolicyAttribute
            description: Access policy attribute model
            properties:
                group_name:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: Group Name
                    description: The name used to group service policy attributes
                    examples:
                        - lte.wtl
                name:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: Name
                    description: The name of the service policy attribute
                    examples:
                        - cs_profile
                value:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: Value
                    description: Service policy attribute value, comma-separated if multiple values
                    examples:
                        - cs-policy
        ProductInfo:
            type: object
            title: ProductInfo
            description: Product information from PortaBilling
            properties:
                name:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: Name
                    description: The product name.
                    examples:
                        - DEV WTL Pay as you go
                description:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: Description
                    examples:
                        - ''
                i_product:
                    anyOf:
                        - type: integer
                        - type: 'null'
                    title: Product ID
                    description: The unique ID of the product.
                    examples:
                        - 658
                i_vd_plan:
                    anyOf:
                        - type: integer
                        - type: 'null'
                    title: VolumeDiscount Plan ID
                    description: The unique ID of the bundle assigned to the product.
                    examples:
                        - 1591
                addon_priority:
                    anyOf:
                        - type: integer
                        - type: 'null'
                    title: Addon Priority
                    description: >
                        The priority level of the add-on product.
                        0 - main product
                        10 - low
                        15 - medium low
                        20 - medium
                        25 - medium high
                        30 - high
                    examples:
                        - 0
        VDCounterInfo:
            type: object
            title: VDCounterInfo
            description: VD counter information from PortaBilling
            properties:
                discount_info:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: Discount Info
                    description: Short representation of the discount details (e.g., '0..60 - 100%')
                    examples:
                        - 0..10 - 100%
                dg_name:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: DG Name
                    description: The name of the destination group the bundle item is applied to.
                    examples:
                        - RG100
                i_vd_plan:
                    anyOf:
                        - type: integer
                        - type: 'null'
                    title: VolumeDiscount Plan ID
                    description: The unique ID of the bundle.
                    examples:
                        - 204
                i_dest_group:
                    anyOf:
                        - type: integer
                        - type: 'null'
                    title: Destination Group ID
                    description: The unique ID of the destination group the discount is applied to.
                    examples:
                        - 2650
                allocated_amount:
                    anyOf:
                        - type: number
                        format: float
                        - type: 'null'
                    title: Allocated Amount
                    description: The total amount of service volume allocated to the customer/account in the current usage period.
                    examples:
                        - -1250.75
                unit:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: Unit
                    description: The name of the service unit or currency used.
                    examples:
                        - megabyte
                addon_priority:
                    anyOf:
                        - type: integer
                        - type: 'null'
                    title: Addon Priority
                    description: >
                        The priority level of the bundle item. Possible values:
                        -1 (no priority)
                        0 (main product)
                        10 (low)
                        12 (bundled credit wallets)
                        13 (bundled credits)
                        14 (bundled credit preferred wallets)
                        15 (medium low)
                        20 (medium)
                        25 (medium high)
                        30 (high)
                        255 (not part of a product)
                    examples:
                        - 10
                vdp_name:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: VDP Name
                    description: The name of the bundle.
                    examples:
                        - DEV WTL Free 10MB (1 day)
                i_vd_dg:
                    anyOf:
                        - type: integer
                        - type: 'null'
                    title: VolumeDiscount Destination Group ID
                    description: The unique ID of the bundle item.
                    examples:
                        - 283
                i_service:
                    anyOf:
                        - type: integer
                        - type: 'null'
                    title: Service ID
                    description: The unique ID of the service.
                    examples:
                        - 106
                service_name:
                    anyOf:
                        - type: string
                        - type: 'null'
                    title: Service Name
                    description: The name of the service the discount is applied to.
                    examples:
                        - Internet Access KB
                remaining:
                    anyOf:
                        - type: number
                        format: float
                        - type: string
                        - type: 'null'
                    title: Remaining
                    description: The service volume that remains to be used to reach the current threshold.
                    examples:
                        - '10'
Example of enriched event
{
    "event_id": "3e84c79f-ab6f-4546-8e27-0b6ab866f1fb",
    "data": {
        "event_type": "SIM/Updated",
        "variables": {
            "i_env": 1,
            "i_event": 999999,
            "i_account": 1,
            "curr_status": "used",
            "prev_status": "active"
        }
    },
    "pb_data": {
        "account_info": {
            "bill_status": "open",
            "billing_model": "credit_account",
            "blocked": false,
            "i_account": 1,
            "i_customer": 6392,
            "i_product": 3774,
            "id": "79123456789@msisdn",
            "phone1": "",
            "product_name": "wtl Pay as you go",
            "time_zone_name": "Europe/Prague",
            "assigned_addons": [
                {
                    "addon_effective_from": "2025-05-16T12:59:46",
                    "addon_priority": 10,
                    "description": "",
                    "i_product": 3775,
                    "i_vd_plan": 1591,
                    "name": "wtl Youtube UHD"
                }
            ],
            "service_features": [
                {
                    "name": "netaccess_policy",
                    "effective_flag_value": "Y",
                    "attributes": [
                        {
                            "name": "access_policy",
                            "effective_value": "179"
                        }
                    ]
                }
            ]
        },
        "sim_info": {
            "i_sim_card": 3793,
            "imsi": "001010000020349",
            "msisdn": "79123456789",
            "status": "available"
        },
        "access_policy_info": {
            "i_access_policy": 179,
            "name": "WTL integration test",
            "attributes": [
                {
                    "group_name": "lte.wtl",
                    "name": "cs_profile",
                    "value": "cs-pp-20250319"
                },
                {
                    "group_name": "lte.wtl",
                    "name": "eps_profile",
                    "value": "eps-pp-20250319"
                }
            ]
        },
        "product_info": {
            "name": "DEV WTL Pay as you go",
            "description": "",
            "addon_priority": 0,
            "i_product": 658
        },
        "full_vd_counter_info": [
            {
                "service_name": "Internet Access KB",
                "vdp_name": "DEV WTL Free 10MB (1 day)",
                "i_vd_plan": 204,
                "i_dest_group": 2650,
                "addon_priority": 10,
                "i_vd_dg": 283,
                "remaining": "10",
                "i_service": 106,
                "dg_name": "RG100",
                "discount_info": "0..10 - 100%",
                "unit": "megabyte",
                "allocated_amount": 10
            }
        ]
    },
    "handler_id": "wtl-hlr-hss-nsps",
    "created_at": "2025-03-12T16:47:30.443939+00:00",
    "updated_at": "2025-03-12T16:47:36.585885+00:00",
    "status": "received"
}

ESPF Event

Type: ESPFEvent

This section describes the ESPF event data structure. It contains key information about the event type and associated variables.

Field Type Description (from PortaOne documentation)
event_type enum[str] The event type. See possible enum values (1)
variables.i_env int Environment identifier (environment ID) in PortaBilling
variables.i_event int Unique event identifier
variables.i_account int Account identifier (represents the subscriber or account)
variables.event_time str Event timestamp (in YYYY-MM-DD HH:MM:SS format)
  1. event_type Field - Possible Enum Values:
    • SIM/Updated
    • SIM/Created
    • SIM/Deleted
    • SIM/Replaced
Example of ESPF event
1
2
3
4
5
6
7
8
9
{
    "event_type": "SIM/Updated",
    "variables": {
        "i_env": 3,
        "i_event": 999999,
        "i_account": 277147,
        "event_time": "2025-05-01 12:00:00"
    }
}

PortaBilling Data

Type: PortaBillingData

This section describes the data structure that contains the enriched data obtained from PortaBilling. It provides detailed information about the account, SIM card, products, features, policies, and usage counters associated with the subscriber.

Field Type Description
account_info AccountInfo Main account-level data container.
sim_info SimInfo SIM card information from PortaBilling.
prev_sim_info SimInfo Previous SIM card information (used for SIM/Replaced events).
access_policy_info List[AccessPolicyInfo] Access policy information from PortaBilling.
product_info ProductInfo Product information from PortaBilling.
full_vd_counter_info List[VDCounterInfo] VD counter information from PortaBilling.
Example: PortaBillingData
{
    "account_info": {
        "bill_status": "open",
        "billing_model": "credit_account",
        "blocked": false,
        "i_account": 1,
        "i_customer": 6392,
        "i_product": 3774,
        "id": "79123456789@msisdn",
        "phone1": "",
        "product_name": "wtl Pay as you go",
        "time_zone_name": "Europe/Prague",
        "assigned_addons": [
            {
                "addon_effective_from": "2025-05-16T12:59:46",
                "addon_priority": 10,
                "description": "",
                "i_product": 3775,
                "i_vd_plan": 1591,
                "name": "wtl Youtube UHD"
            }
        ],
        "service_features": [
            {
                "name": "netaccess_policy",
                "effective_flag_value": "Y",
                "attributes": [
                    {
                        "name": "access_policy",
                        "effective_value": "179"
                    }
                ]
            }
        ]
    },
    "sim_info": {
        "i_sim_card": 3793,
        "imsi": "001010000020349",
        "msisdn": "79123456789",
        "status": "available"
    },
    "access_policy_info": {
        "i_access_policy": 179,
        "name": "WTL integration test",
        "attributes": [
            {
                "group_name": "lte.wtl",
                "name": "cs_profile",
                "value": "cs-pp-20250319"
            },
            {
                "group_name": "lte.wtl",
                "name": "eps_profile",
                "value": "eps-pp-20250319"
            }
        ]
    },
    "product_info": {
        "name": "DEV WTL Pay as you go",
        "description": "",
        "addon_priority": 0,
        "i_product": 658
    },
    "full_vd_counter_info": [
        {
            "service_name": "Internet Access KB",
            "vdp_name": "DEV WTL Free 10MB (1 day)",
            "i_vd_plan": 204,
            "i_dest_group": 2650,
            "addon_priority": 10,
            "i_vd_dg": 283,
            "remaining": "10",
            "i_service": 106,
            "dg_name": "RG100",
            "discount_info": "0..10 - 100%",
            "unit": "megabyte",
            "allocated_amount": 10
        }
    ]
},

Account Info

Type: AccountInfo

Relation: account_info: AccountInfo in PortaBillingData (pb_data)

This section describes the 'AccountInfo' data structure, which is the primary container for account-level data. It provides billing information, account status, assigned product, customer relationships, and owner contact information.

Field Type Description
bill_status enum[str] The billing status of the account. See possible enum values (1)
billing_model enum[str] The account type. See possible enum values (2)
blocked bool Boolean conversion - Indicates whether account's calls and access to the self-care interface is blocked. (3)
email str The email address associated with the account.
firstname str The account owner's first name.
i_account int Internal ID of the account. Visible in URL resource path on Admin UI page.
i_customer int The ID of the customer record to which the account belongs.
i_master_account int The ID of the parent account.
i_product int The ID for the account's product.
i_vd_plan int The unique ID of the bundle assigned to the account individually.
id str Charging ID (MSISDN, ICCID or IMSI) of the account on the network. Visible as ID in Admin UI.
lastname str The account owner's last name.
phone1 str The main phone number.
product_name str The name of the account's product.
status enum[str] The current status of the account. See possible enum values (4)
time_zone_name str The name of the account's time zone. (5)
zip str The postal (zip) code.
assigned_addons List[AssignedAddon] List of account's add-on products.
service_features List[AssignedAddon] List of service features.
  1. bill_status Field - Possible Enum Values:
    • active — The account is open. (original code: O)
    • suspended — The account is suspended. This status is available for debit accounts and can be set only automatically (by subscriptions assigned to the account). (original code: S)
    • inactive — The account is inactive. This status can be set only during account creation, manually or using the Account Generator. (original code: I)
    • terminated — The account is terminated. This status can be set only via the terminate_account method. (original code: C)
  2. billing_model Field - Possible Enum Values:
    • debit_account — An account usually associated with prepaid cards; the account balance shows available funds. (original code: -1)
    • recharge_voucher — A voucher-type account used to refill debit or credit accounts; the balance of the voucher account is transferred to the main account. (original code: 0)
    • credit_account — A credit account is invoiced for incurred costs. (original code: 1)
    • alias — An alias account type. (original code: 2)
    • beneficiary — A beneficiary account has a service configuration that uses only the balance, products, and quotas of a sponsor account. (original code: 4)
  3. originally Y/N string, converted
    • YFalse
    • NTrue
  4. status Field - Possible Enum Values:
    • active — The account is active.
    • customer_exported — The account's customer is exported.
    • expired — The account expired.
    • quarantine — After being screened, the account was unable to supply valid credentials.
    • screening — Suspicious activity was detected for the account.
    • closed — The account is closed.
    • inactive — The account is inactive.
    • suspended — The account is suspended (applicable to debit accounts only).
    • customer_suspended — The account's customer is suspended.
    • customer_limited — Services are limited for the account's customer.
    • customer_provisionally_terminated — The account's customer is provisionally terminated.
    • blocked — The account is blocked.
    • customer_blocked — The account's customer is blocked.
    • not_yet_active — The account's activation date has not yet come.
    • credit_exceeded — The account's balance is above the individual credit limit.
    • overdraft — The account's balance is overdrawn (applies to debit accounts only).
    • customer_has_no_available_funds — The account's customer funds are depleted.
    • customer_credit_exceed — The account's customer balance is above the credit limit.
    • zero_balance — The account's funds are depleted (applicable to debit accounts only).
    • customer_suspension_delayed — The account's customer suspension is lifted.
    • customer_limiting_delayed — The account's customer limitation is delayed.
    • frozen — The account's auto-payment is suspended due to repeated errors.
  5. Examples: "Europe/Prague", "America/Vancouver", etc.
Example: AccountInfo
{
    "bill_status": "open",
    "billing_model": "credit_account",
    "blocked": false,
    "i_account": 1,
    "i_customer": 6392,
    "i_product": 3774,
    "id": "79123456789@msisdn",
    "phone1": "",
    "product_name": "wtl Pay as you go",
    "time_zone_name": "Europe/Prague",
    "assigned_addons": [
        {
            "addon_effective_from": "2025-05-16T12:59:46",
            "addon_priority": 10,
            "description": "",
            "i_product": 3775,
            "i_vd_plan": 1591,
            "name": "wtl Youtube UHD"
        }
    ],
    "service_features": [
        {
            "name": "netaccess_policy",
            "effective_flag_value": "Y",
            "attributes": [
                {
                    "name": "access_policy",
                    "effective_value": "179"
                }
            ]
        }
    ]
}

Assigned Add-on

Type: AssignedAddon

Relation: assigned_addons: List[AssignedAddon] in AccountInfo (account_info)

This section describes the AssignedAddon data structure, which represents an item in the list of add-on products assigned to an account.

Field Type Description
addon_effective_from str ISO datetime string - The date and time when the add-on product is activated for an account. (1)
addon_effective_to str ISO datetime string - The date and time when the add-on product assigned to an account expires. (2)
addon_priority int The priority level of the add-on product.
description str The internal product description.
i_product int The unique ID of the product.
i_product_group int The unique ID of the product group to which the product belongs.
i_vd_plan int The unique ID of the bundle assigned to the product.
name str The product name.
  1. Originally Optional[str] datetime
  2. Originally Optional[str] datetime
Example: AssignedAddon
    {
        "addon_effective_from": "2025-05-16T12:59:46",
        "addon_priority": 10,
        "description": "",
        "i_product": 3775,
        "i_vd_plan": 1591,
        "name": "wtl Youtube UHD"
    }

Service Feature

Type: ServiceFeature

Relation: service_features: List[ServiceFeature] in AccountInfo (account_info)

This section describes the ServiceFeature data structure, which is an element in the list of service features assigned to the account, each with its attributes.

Field Type Description
name str The service feature name.
effective_flag_value enum[str] The actual service feature flag value. See possible enum values (1)
attributes List[ServiceFeatureAttribute] The list of service feature attributes.
attributes[].name str The service feature attribute internal name.
attributes[].effective_value str Service feature attribute value, comma-separated if multiple values.
  1. effective_flag_value Field - Possible Enum Values:
    • Y — enabled
    • N — disabled
Example: ServiceFeature
    {
        "name": "netaccess_policy",
        "effective_flag_value": "Y",
        "attributes": [
            {
                "name": "access_policy",
                "effective_value": "179"
            }
        ]
    }

SIM Info

Type: SimInfo

Relation:

This section describes the SimInfo data structure, which contains information about a SIM card from PortaBilling.

Field Type Description
i_account int The unique ID of the account to which the SIM card belongs.
i_sim_card int The unique ID of the SIM card.
iccid str The Integrated Circuit Card ID.
imsi str The unique International Mobile Subscriber Identity of the SIM card.
msisdn str The Mobile Subscriber Integrated Services Digital Number.
status enum[str] The status of the SIM card. See possible enum values (1)
  1. status Field - Possible Enum Values:
    • available — the SIM card is available for assignment,
    • reserved — reserved for the customer, but not yet assigned to the account,
    • used — SIM card is being used by the account,
    • disposed — SIM card is disposed and cannot be used.
Example: SimInfo
    {
        "i_sim_card": 3793,
        "imsi": "001010000020349",
        "msisdn": "79123456789",
        "status": "available"
    }

Access Policy Info

Type: AccessPolicyInfo

Relation: access_policy_info: AccessPolicyInfo in PortaBillingData (pb_data)

This section describes the AccessPolicyInfo data structure, which contains information about the access policies applied to an account.

Field Type Description
i_access_policy int The unique ID of the Access Policy.
name str The name of the Access Policy.
attributes List[AccessPolicyAttribute] The list of related service policy attribute values.
attributes[].group_name str The name used to group service policy attributes.
attributes[].name str The name of the service policy attribute.
attributes[].value str Service policy attribute value, comma-separated if multiple values.
Example: AccessPolicyInfo
    {
        "i_access_policy":179,
        "name":"WTL integration test",
        "attributes":[
            {
                "group_name":"lte.wtl",
                "name":"cs_profile",
                "value":"cs-pp-20250319"
            },
            {
                "group_name":"lte.wtl",
                "name":"eps_profile",
                "value":"eps-pp-20250319"
            }
        ]
    }

Product Info

Type: ProductInfo

Relation: product_info: ProductInfo in PortaBillingData (pb_data)

This section describes the ProductInfo data structure, which contains product information from PortaBilling.

Field Type Description
name str The product name.
description str The internal product description.
i_product int The unique ID of the product.
i_vd_plan int The unique ID of the bundle assigned to the product.
addon_priority int The priority level of the add-on product. (1)
    • 0 — main product
    • 10 — low
    • 15 — medium low
    • 20 — medium
    • 25 — medium high
    • 30 — high
Example: ProductInfo
    {
        "name":"DEV WTL Pay as you go",
        "description":"",
        "addon_priority":0,
        "i_product":658
    }

VD Counter Info

Type: VDCounterInfo

Relation: full_vd_counter_info: List[VDCounterInfo] in PortaBillingData (pb_data)

This section describes the VDCounterInfo data structure, which contains information about VD counters from PortaBilling.

Field Type Description
discount_info str Short representation of the discount details (e.g., '0..60 - 100%')
dg_name str The name of the destination group the bundle item is applied to.
i_vd_plan int The unique ID of the bundle.
i_dest_group int The unique ID of the destination group the discount is applied to.
allocated_amount float The total amount of service volume allocated to the customer/account in the current usage period.
unit str The name of the service unit or currency used.
addon_priority int The priority level of the bundle item. (1)
vdp_name str The name of the bundle.
i_vd_dg int The unique ID of the bundle item.
i_service int The unique ID of the service.
service_name str The name of the service the discount is applied to.
remaining float/str The service volume that remains to be used to reach the current threshold. (2)
  1. Possible values:
    • -1 — no priority
    • 0 — main product
    • 10 — low
    • 12 — bundled credit wallets
    • 13 — bundled credits
    • 14 — bundled credit preferred wallets
    • 15 — medium low
    • 20 — medium
    • 25 — medium high
    • 30 — high
    • 255 — not part of a product
  2. Can be numeric value or string like N/A
Example: VDCounterInfo
    {
        "service_name":"Internet Access KB",
        "vdp_name":"DEV WTL Free 10MB (1 day)",
        "i_vd_plan":204,
        "i_dest_group":2650,
        "addon_priority":10,
        "i_vd_dg":283,
        "remaining":"10",
        "i_service":106,
        "dg_name":"RG100",
        "discount_info":"0..10 - 100%",
        "unit":"megabyte",
        "allocated_amount":10
    }