Table of Contents

API : Product Update

Introduction

This request will update a product - either a master product or a reseller product which inherits from a master product.

The platform works with 2 levels of products:

When a master product is updated, all inherited products are also updated to reflect the changes.

When a reseller product is updated, only a small subset of the settings can be changed.

When updating a full product object can be passed or as little as a single property can be passed/updated. Properties that cannot be updated are simply ignored, properties that should not be changed should not be sent.

Request

URL https://api.telecomx.dk/product/PRODUCT_ID
Method POST
Param PRODUCT_ID Id of the product to update
Access level RESELLER for reseller and customer products under the user's own reseller.
RESELLER_ADMIN or ADMIN for reseller and customer products under any reseller.
Master products: ADMIN, or RESELLER_ADMIN with the FINANCE feature.
Properties for an inherited customer product
Body productCode String Product code, short name for accounting integration and for selecting when invoicing.
name String Product name.
recurrence String If product is recurring, this is the interval: MONTHLY, QUARTERLY, YEARLY.
For no recurrence: NONE.
For types SIP_RATEPLAN, MVNO_RATEPLAN, DSL, FIBER, DNS, PBX_USER and PBX_EXTENSION recurrence is never NONE.
recurrenceFullMonth Boolean If true the product must be invoiced for whole months, if false the product will only be invoiced for the fraction of the month that it has been active.
price Number Customer price for one unit of the product.
applyByResellerOnly Boolean True if only the reseller can use this product on a customer.
NUMBER_RENT properties
priceExtra Number Number rent extra number for customer, if product type is NUMBER_RENT.
price100 Number Number rent 100-series for customer, if product type is NUMBER_RENT.
SIP_RATEPLAN properties
ratePercentDiscount Number Percent discount on all call minutes - use with care, null if not used.
override.connectionFee Number Connection fee for all calls, will override the destinations connection fee. Null if not used.
override.connectionFeeOnCallAttempt Boolean True if connection fee should also be changed on unanswered calls.
destinations.<country-code> Object overrides the prices for calling destinations in a given country, e.g. 'SE'.
destinations.<country-code>.fixed Object prices for fixed destinations
destinations.<country-code>.fixed.customerFee Number Connection fee for customer, null if not used
destinations.<country-code>.fixed.customerRate Number Pr. minute rate for customer, null if not used
destinations.<country-code>.mobile Object prices for mobile destinations
destinations.<country-code>.mobile.customerFee Number Connection fee for customer, null if not used
destinations.<country-code>.mobile.customerRate Number Pr. minute rate for customer, null if not used
MVNO_RATEPLAN properties
pbxProduct Boolean If true, then this product can only be used by mobiles which are on a PBX.
ratePercentDiscount Number Percent discount on all call minutes - use with care, null if not used.
override.connectionFee Number Connection fee for all calls, will override the destinations connection fee. Null if not used.
override.connectionFeeOnCallAttempt Boolean True if connection fee should also be changed on unanswered calls.
sms.nationalPrice Number Customer price pr. national SMS message.
sms.internationalPrice Number Customer price pr. international SMS message.
mms.nationalPrice Number Customer price pr. national MMS message.
mms.internationalPrice Number Customer price pr. international MMS message.
data.nationalPrice Number Customer price pr. megabyte of data.
destinations.<country-code> Object overrides the prices for calling destinations in a given country, e.g. 'SE'.
destinations.<country-code>.fixed Object prices for fixed destinations
destinations.<country-code>.fixed.customerFee Number Connection fee for customer, null if not used
destinations.<country-code>.fixed.customerRate Number Pr. minute rate for customer, null if not used
destinations.<country-code>.mobile Object prices for mobile destinations
destinations.<country-code>.mobile.customerFee Number Connection fee for customer, null if not used
destinations.<country-code>.mobile.customerRate Number Pr. minute rate for customer, null if not used
PBX_USER properties
includedProducts Array Array of products that are included in this PBX user product. Only customer products of type MVNO_RATEPLAN, PBX_EXTENSION, or PBX_SIP_PHONE belonging to the same customer are allowed.
includedProducts[]._id ObjectID Id of product that is included
includedProducts[].amount Number Amount of products of this kind that are included.
Properties for an inherited reseller product
Body productCode String Product code, short name for accounting integration and for selecting when invoicing.
name String Product name.
recurrence String If product is recurring, this is the interval: MONTHLY, QUARTERLY, YEARLY.
For no recurrence: NONE.
For types SIP_RATEPLAN, MVNO_RATEPLAN, DSL, FIBER and DNS recurrence is never NONE.
recurrenceFullMonth Boolean If true the product must be invoiced for whole months, if false the product will only be invoiced for the fraction of the month that it has been active.
price Number Customer price for one unit of the product.
wholesale Number Resellers price for one unit of the product (RESELLER_ADMIN/ADMIN only; any RESELLER for AD_HOC, IPTV_SERVICE and EXTERNAL_LICENSE products).
applyByResellerOnly Boolean True if only the reseller can use this product on a customer.
customer Id If the product can only be used by a single customer, this is the id of that customer.
standard Boolean If true, then whenever a customer is created under the product's reseller, a customer product inheriting from this product is automatically created. Only for types MVNO_RATEPLAN, SIP_RATEPLAN, NUMBER_RENT, PBX_USER, PBX_EXTENSION and PBX_SIP_PHONE.
inheritByCustomers Array Ids of the customers that may inherit this product; empty for all customers (RESELLER_ADMIN/ADMIN only).
options Object Update options - not required
options.replacePrice Boolean If true, then customer products inheriting from this product will have their price updated, if their current price matches the old price of this product.
options.replaceName Boolean If true, then customer products inheriting from this product will have their name updated, if their current name matches the old name of this product.
Stand-alone types (AD_HOC, IPTV_SERVICE, EXTERNAL_LICENSE)
start Date [optional] AD_HOC only: the date from which the product can be used.
end Date [optional] AD_HOC only: the date from which the product can not be used anymore.
unitType String AD_HOC only: the type of units this product is measured in: MIN, MB, UNITS, HOURS, KM, MONTHS.
externalLicense Object EXTERNAL_LICENSE only: information about the license from the third party system.
externalLicense.platformId String ID of the platform, which this license represents. Only allowed value is ALSO.
externalLicense.also.provisioningId String The provisioning ID of the ALSO license, which is used to match with a product in ALSO. Max 50 characters.
externalLicense.also.bindingPeriod String The binding period in ALSO. Allowed values are NONE, MONTHLY and YEARLY.
NUMBER_RENT properties
wholesaleExtra Number Number rent extra number for reseller, if product type is NUMBER_RENT (RESELLER_ADMIN/ADMIN only).
wholesale100 Number Number rent 100-series for reseller, if product type is NUMBER_RENT (RESELLER_ADMIN/ADMIN only).
priceExtra Number Number rent extra number for customer, if product type is NUMBER_RENT.
price100 Number Number rent 100-series for customer, if product type is NUMBER_RENT.
SIP_RATEPLAN properties
ratePercentDiscount Number Percent discount on all call minutes - use with care, null if not used.
override.connectionFee Number Connection fee for all calls, will override the destinations connection fee. Null if not used.
override.connectionFeeOnCallAttempt Boolean True if connection fee should also be changed on unanswered calls.
destinations.<country-code> Object overrides the prices for calling destinations in a given country, e.g. 'SE'.
destinations.<country-code>.fixed Object prices for fixed destinations
destinations.<country-code>.fixed.wholesaleFee Number Connection fee for reseller, null if not used
destinations.<country-code>.fixed.customerFee Number Connection fee for customer, null if not used
destinations.<country-code>.fixed.wholesaleRate Number Pr. minute rate for reseller, null if not used
destinations.<country-code>.fixed.customerRate Number Pr. minute rate for customer, null if not used
destinations.<country-code>.mobile Object prices for mobile destinations
destinations.<country-code>.mobile.wholesaleFee Number Connection fee for reseller, null if not used
destinations.<country-code>.mobile.customerFee Number Connection fee for customer, null if not used
destinations.<country-code>.mobile.wholesaleRate Number Pr. minute rate for reseller, null if not used
destinations.<country-code>.mobile.customerRate Number Pr. minute rate for customer, null if not used
MVNO_RATEPLAN properties
ratePercentDiscount Number Percent discount on all call minutes - use with care, null if not used.
override.connectionFee Number Connection fee for all calls, will override the destinations connection fee. Null if not used.
override.connectionFeeOnCallAttempt Boolean True if connection fee should also be changed on unanswered calls.
sms.nationalWholesale Number Reseller cost pr. national SMS message (RESELLER_ADMIN/ADMIN only).
sms.nationalPrice Number Customer price pr. national SMS message.
sms.internationalWholesale Number Reseller cost pr. international SMS message (RESELLER_ADMIN/ADMIN only).
sms.internationalPrice Number Customer price pr. international SMS message.
mms.nationalWholesale Number Reseller cost pr. national MMS message (RESELLER_ADMIN/ADMIN only).
mms.nationalPrice Number Customer price pr. national MMS message.
mms.internationalWholesale Number Reseller cost pr. international MMS message (RESELLER_ADMIN/ADMIN only).
mms.internationalPrice Number Customer price pr. international MMS message.
data.nationalWholesale Number Reseller cost pr. megabyte of data (RESELLER_ADMIN/ADMIN only).
data.nationalPrice Number Customer price pr. megabyte of data.
destinations.<country-code> Object overrides the prices for calling destinations in a given country, e.g. 'SE'.
destinations.<country-code>.fixed Object prices for fixed destinations
destinations.<country-code>.fixed.wholesaleFee Number Connection fee for reseller, null if not used
destinations.<country-code>.fixed.customerFee Number Connection fee for customer, null if not used
destinations.<country-code>.fixed.wholesaleRate Number Pr. minute rate for reseller, null if not used
destinations.<country-code>.fixed.customerRate Number Pr. minute rate for customer, null if not used
destinations.<country-code>.mobile Object prices for mobile destinations
destinations.<country-code>.mobile.wholesaleFee Number Connection fee for reseller, null if not used
destinations.<country-code>.mobile.customerFee Number Connection fee for customer, null if not used
destinations.<country-code>.mobile.wholesaleRate Number Pr. minute rate for reseller, null if not used
destinations.<country-code>.mobile.customerRate Number Pr. minute rate for customer, null if not used
productInfo
productInfo.shortDescription String Short description of the product. Used for “Privat telefoni portal”. max 64 characters. [optional]
productInfo.description String Description of the product. Used for “Privat telefoni portal”. max 512 characters. [optional]
Properties for a master product (which only ADMIN can update)
body start Date [optional] The date from which the product can be used, null for no limit. Must be between 2014 and 2049.
end Date [optional] The date from which the product can not be used anymore, null for no limit. Must be between 2014 and 2049.
type String Type of product - cannot be changed after creation.
productCode String Product code, short name for accounting integration and for selecting when invoicing.
name String Product name.
unitType String The type of units this product is measured in: MIN, MB, UNITS, HOURS, KM, MONTHS.
recurrence String If product is recurring, this is the interval: MONTHLY, QUARTERLY, YEARLY.
For no recurrence: NONE.
For types SIP_RATEPLAN, MVNO_RATEPLAN, DSL, FIBER, DNS, PBX_USER, PBX_EXTENSION and PBX_SIP_PHONE recurrence is never NONE.
recurrenceFullMonth Boolean If true the product must be invoiced for whole months, if false the product will only be invoiced for the fraction of the month that it has been active.
cost Number The cost of the product, pr. month if recurring.
wholesale Number The reseller price, pr. month if recurring.
price Number The customer price pr. month if recurring.
inheritBy Array Id's of resellers who may inherit from this product, null if product may be inherited by any reseller.
autoInherit Boolean If true, then whenever a new reseller is created, a reseller product inheriting from this master product is automatically created.
options Object Update options - not required
options.replaceWholesale Boolean If true, then inherited reseller and customer products will have their wholesale price updated, if their current wholesale price matches the old wholesale price of this product.
SIP_RATEPLAN properties
invoiceFromFirstNumber Boolean If true, then this account will only be invoiced when its first number is added to the account, and not before.
subscription.minutes.homeland Integer Number of minutes included towards national destinations (not special).
subscription.minutes.euNordic Integer Number of minutes included towards Nordic and European destinations (not special).
subscription.minutes.restOfEurope Integer Number of minutes included towards rest of Europe (not special).
subscription.minutes.world1 Integer Number of minutes included towards countries in region world 1 (not special).
subscription.minutes.world2 Integer Number of minutes included towards countries in region world 2 (not special).
subscription.minutes.world3 Integer Number of minutes included towards countries in region world 3 (not special).
subscription.free.ownSip Boolean True if calls towards the customers own SIP numbers are free.
subscription.free.ownMvno Boolean True if calls towards the customers own mobile numbers are free.
subscription.free.onNetSip Boolean True if calls towards Telecom X SIP numbers are free.
subscription.free.onNetMvno Boolean True if calls towards Telecom X mobile numbers are free.
ratePercentDiscount Number Percent discount on all call minutes - use with care, null if not used.
override.connectionFee Number Connection fee for all calls, will override the destinations connection fee. Null if not used.
override.connectionFeeOnCallAttempt Boolean True if connection fee should also be changed on unanswered calls.
destinations.<country-code> Object overrides the prices for calling destinations in a given country, e.g. 'SE'.
destinations.<country-code>.fixed Object prices for fixed destinations
destinations.<country-code>.fixed.wholesaleFee Number Connection fee for reseller, null if not used
destinations.<country-code>.fixed.customerFee Number Connection fee for customer, null if not used
destinations.<country-code>.fixed.wholesaleRate Number Pr. minute rate for reseller, null if not used
destinations.<country-code>.fixed.customerRate Number Pr. minute rate for customer, null if not used
destinations.<country-code>.mobile Object prices for mobile destinations
destinations.<country-code>.mobile.wholesaleFee Number Connection fee for reseller, null if not used
destinations.<country-code>.mobile.customerFee Number Connection fee for customer, null if not used
destinations.<country-code>.mobile.wholesaleRate Number Pr. minute rate for reseller, null if not used
destinations.<country-code>.mobile.customerRate Number Pr. minute rate for customer, null if not used
MVNO_RATEPLAN properties
network String Which mobile network this product is valid for: TELENOR, TDC or BOTH.
dataSharingSimsIncluded Number Amount of data sharing SIMS included - defaults to 0, maximum value is 3.
smartWatchIncluded Boolean If true, smartwatch eSIM subscription included in this product
dataRateplan Boolean If true, this is a data-only rate plan; smartWatchIncluded and dataSharingSimsIncluded are then forced off.
subscription.minutes.homeland Integer Number of minutes included towards national destinations (not special).
subscription.minutes.euNordic Integer Number of minutes included towards Nordic and European destinations (not special).
subscription.minutes.restOfEurope Integer Number of minutes included towards rest of Europe (not special).
subscription.minutes.world1 Integer Number of minutes included towards countries in region world 1 (not special).
subscription.minutes.world2 Integer Number of minutes included towards countries in region world 2 (not special).
subscription.minutes.world3 Integer Number of minutes included towards countries in region world 3 (not special).
subscription.free.ownSip Boolean True if calls towards the customers own SIP numbers are free.
subscription.free.ownMvno Boolean True if calls towards the customers own mobile numbers are free.
subscription.free.onNetSip Boolean True if calls towards Telecom X SIP numbers are free.
subscription.free.onNetMvno Boolean True if calls towards Telecom X mobile numbers are free.
subscription.free.smsMms Boolean True if national SMS and MMS is free.
subscription.roaming Array List of roaming regions, with the number of included minutes when roaming in the specific region
subscription.roaming[]._id ObjectId ID of the roaming region
subscription.roaming[].minutes Number Included minutes. Defaults to 0.
subscription.data Number Megabytes of data included.
subscription.dataRoamLikeHome Number Megabytes of data included while roaming in the EU region.
ratePercentDiscount Number Percent discount on all call minutes - use with care, null if not used.
override.connectionFee Number Connection fee for all calls, will override the destinations connection fee. Null if not used.
override.connectionFeeOnCallAttempt Boolean True if connection fee should also be changed on unanswered calls.
sms.nationalCost Number Cost pr. national SMS message.
sms.nationalWholesale Number Reseller cost pr. national SMS message.
sms.nationalPrice Number Customer price pr. national SMS message.
sms.internationalCost Number Cost pr. international SMS message.
sms.internationalWholesale Number Reseller cost pr. international SMS message.
sms.internationalPrice Number Customer price pr. international SMS message.
mms.nationalCost Number Cost pr. national MMS message.
mms.nationalWholesale Number Reseller cost pr. national MMS message.
mms.nationalPrice Number Customer price pr. national MMS message.
mms.internationalCost Number Cost pr. international MMS message.
mms.internationalWholesale Number Reseller cost pr. international MMS message.
mms.internationalPrice Number Customer price pr. international MMS message.
data.nationalCost Number Cost pr. megabyte of data.
data.nationalWholesale Number Reseller cost pr. megabyte of data.
data.nationalPrice Number Customer price pr. megabyte of data.
socs Array Array of strings with SOCs that must be applied for this product.
destinations.<country-code> Object overrides the prices for calling destinations in a given country, e.g. 'SE'.
destinations.<country-code>.fixed Object prices for fixed destinations
destinations.<country-code>.fixed.wholesaleFee Number Connection fee for reseller, null if not used
destinations.<country-code>.fixed.customerFee Number Connection fee for customer, null if not used
destinations.<country-code>.fixed.wholesaleRate Number Pr. minute rate for reseller, null if not used
destinations.<country-code>.fixed.customerRate Number Pr. minute rate for customer, null if not used
destinations.<country-code>.mobile Object prices for mobile destinations
destinations.<country-code>.mobile.wholesaleFee Number Connection fee for reseller, null if not used
destinations.<country-code>.mobile.customerFee Number Connection fee for customer, null if not used
destinations.<country-code>.mobile.wholesaleRate Number Pr. minute rate for reseller, null if not used
destinations.<country-code>.mobile.customerRate Number Pr. minute rate for customer, null if not used
DSL properties
dslSpeed String DSL speed product name. See Product DSL Speed List.
NUMBER_RENT properties
costExtra Double Number rent cost pr. month pr. additional number. (cost above holds the first-number cost).
cost100 Double Number rent cost pr. month pr. 100-series.
wholesaleExtra Double Wholesale number rent pr. month pr. additional number. (wholesale above holds the first-number wholesale price).
wholesale100 Double Wholesale number rent pr. month pr. 100-series.
priceExtra Double Customer number rent pr. month pr. additional number. (price above holds the first-number price).
price100 Double Customer number rent pr. month pr. 100-series.
PBX_USER properties
communicatorAccess Boolean Whether users with this product have access to Communicator. Defaults to true.
recordingAccess Boolean Whether users with this product have access to call recording. Defaults to true.
extensionAccess Boolean Whether users with this product can have PBX extensions. Defaults to true.
sipPhoneAccess Boolean Whether users with this product can have SIP phones. Defaults to true.
MVNO_DATA_TOP_UP properties
mvnoTopUp Object Contains top-up properties
mvnoTopUp.data Number Data of the top-up package. Given in bytes, min 1073741824 (1 GiB), max 107374182400 (100 GiB).
MVNO_ROW_ROAMING properties
soc String The SOC this product relates to. Must be a TDC SOC in the DataRoamROW group; unitType and recurrence are forced to UNITS and NONE.

Query example - Reseller product

{
  "price": 249.00,
  "applyByResellerOnly": true
}

Query example - Master product

{
  "cost": 150.00,
  "wholesale": 180.00,
  "price": 250.00,
  "options": {
    "replaceWholesale": true
  }
}

See Product Get for examples of more types.

Response

JSON object
_id Id Unique product id.
start Date The date from which the product can be used, null for no limit.
end Date The date from which the product can not be used anymore, null for no limit.
type String Type of product: SIP_RATEPLAN, MVNO_RATEPLAN, DSL, FIBER, NUMBER_RENT, DNS, PBX_USER, PBX_EXTENSION, PBX_SIP_PHONE, MVNO_DATA_TOP_UP, MVNO_ROW_ROAMING, IPTV_SERVICE, AD_HOC, EXTERNAL_LICENSE, OTHER.
productCode String Product code, short name for accounting integration and for selecting when invoicing.
name String Product name.
unitType String The type of units this product is measured in: MIN, MB, UNITS, HOURS, KM, MONTHS.
recurrence String If product is recurring, this is the interval: MONTHLY, QUARTERLY, YEARLY.
For no recurrence: NONE. for types SIP_RATEPLAN, MVNO_RATEPLAN, DSL, FIBER and NUMBER_RENT recurrence is never NONE.
recurrenceFullMonth Boolean If true the product must be invoiced for whole months, if false the product will only be invoiced for the fraction of the month that it has been active.
cost Number The cost of the product, pr. month if recurring. (RESELLER_ADMIN/ADMIN only).
wholesale Number The reseller price, pr. month if recurring. (RESELLER, RESELLER_ADMIN or ADMIN only).
price Number The customer price, pr. month if recurring.
reseller Id Id of the reseller the product belongs to and whose customers it can be applied to. Null if master product.
inheritFrom Id Id of the master product this product inherited from, null if product is a master product (RESELLER, RESELLER_ADMIN or ADMIN only).
applyByResellerOnly Boolean True if this product may only be applied to accounts by the reseller, not by the customer itself.
inheritBy Array Id's of resellers who may inherit from this product, null if product may be inherited by any reseller. It can also be used by reseller products, to determine which customers may create a customer product from this.
inheritByCustomers property if the product is a reseller product
inheritByCustomers Array List of customer objects which can inherit from this reseller product - only used by reseller products.
inheritByCustomers[]._id ObjectId Id of customer that can inherit from this product
inheritByCustomers[].name String Customer name
standard Boolean If true, then whenever a customer is under the product's reseller, then there will automatically be created a customer product inheriting from this reseller product. Only used by reseller products.
inheritedBy Array If product is a master product, this is an array of reseller products that inherits from this product. Each item holds _id (product id), name (product name), reseller (reseller id) and resellerName.
SIP_RATEPLAN properties
invoiceFromFirstNumber Boolean If true, then this account will only be invoiced when its first number is added to the account, and not before.
subscription.minutes.homeland Integer Number of minutes included towards national destinations (not special).
subscription.minutes.euNordic Integer Number of minutes included towards Nordic and European destinations (not special).
subscription.minutes.restOfEurope Integer Number of minutes included towards rest of Europe (not special).
subscription.minutes.world1 Integer Number of minutes included towards countries in region world 1 (not special).
subscription.minutes.world2 Integer Number of minutes included towards countries in region world 2 (not special).
subscription.minutes.world3 Integer Number of minutes included towards countries in region world 3 (not special).
subscription.free.ownSip Boolean True if calls towards the customers own SIP numbers are free.
subscription.free.ownMvno Boolean True if calls towards the customers own mobile numbers are free.
subscription.free.onNetSip Boolean True if calls towards Telecom X SIP numbers are free.
subscription.free.onNetMvno Boolean True if calls towards Telecom X mobile numbers are free.
ratePercentDiscount Number Percent discount on all call minutes - use with care, null if not used.
override.connectionFee Number Connection fee for all calls, will override the destinations connection fee. Null if not used.
override.connectionFeeOnCallAttempt Boolean True if connection fee should also be changed on unanswered calls.
destinations.<country-code> Object overrides the prices for calling destinations in a given country, e.g. 'SE'.
destinations.<country-code>.fixed Object prices for fixed destinations
destinations.<country-code>.fixed.wholesaleFee Number Connection fee for reseller, null if not used
destinations.<country-code>.fixed.customerFee Number Connection fee for customer, null if not used
destinations.<country-code>.fixed.wholesaleRate Number Pr. minute rate for reseller, null if not used
destinations.<country-code>.fixed.customerRate Number Pr. minute rate for customer, null if not used
destinations.<country-code>.mobile Object prices for mobile destinations
destinations.<country-code>.mobile.wholesaleFee Number Connection fee for reseller, null if not used
destinations.<country-code>.mobile.customerFee Number Connection fee for customer, null if not used
destinations.<country-code>.mobile.wholesaleRate Number Pr. minute rate for reseller, null if not used
destinations.<country-code>.mobile.customerRate Number Pr. minute rate for customer, null if not used
MVNO_RATEPLAN properties
dataSharingSimsIncluded Number Amount of data sharing SIMS included - defaults to 0, maximum value is 3.
pbxProduct Boolean If true, then this product can only be used by mobiles which are on a PBX.
subscription.minutes.homeland Integer Number of minutes included towards national destinations (not special).
subscription.minutes.euNordic Integer Number of minutes included towards Nordic and European destinations (not special).
subscription.minutes.restOfEurope Integer Number of minutes included towards rest of Europe (not special).
subscription.minutes.world1 Integer Number of minutes included towards countries in region world 1 (not special).
subscription.minutes.world2 Integer Number of minutes included towards countries in region world 2 (not special).
subscription.minutes.world3 Integer Number of minutes included towards countries in region world 3 (not special).
subscription.free.ownSip Boolean True if calls towards the customers own SIP numbers are free.
subscription.free.ownMvno Boolean True if calls towards the customers own mobile numbers are free.
subscription.free.onNetSip Boolean True if calls towards Telecom X SIP numbers are free.
subscription.free.onNetMvno Boolean True if calls towards Telecom X mobile numbers are free.
subscription.free.smsMms Boolean True if national SMS and MMS is free.
subscription.roaming Array List of roaming regions, with the number of included minutes when roaming in the specific region
subscription.roaming[]._id ObjectId ID of the roaming region
subscription.roaming[].minutes Number Included minutes. Defaults to 0.
subscription.data Number Megabytes of data included.
subscription.dataRoamLikeHome Number Megabytes of data included while roaming in the EU region.
subscription.dataEu Number Legacy name for dataRoamLikeHome - only present on older products.
ratePercentDiscount Number Percent discount on all call minutes - use with care, null if not used.
override.connectionFee Number Connection fee for all calls, will override the destinations connection fee. Null if not used.
override.connectionFeeOnCallAttempt Boolean True if connection fee should also be changed on unanswered calls.
sms.nationalCost Number Cost pr. national SMS message (RESELLER_ADMIN/ADMIN only).
sms.nationalWholesale Number Reseller cost pr. national SMS message (RESELLER, RESELLER_ADMIN or ADMIN only).
sms.nationalPrice Number Customer price pr. national SMS message.
sms.internationalCost Number Cost pr. international SMS message (RESELLER_ADMIN/ADMIN only).
sms.internationalWholesale Number Reseller cost pr. international SMS message (RESELLER, RESELLER_ADMIN or ADMIN only).
sms.internationalPrice Number Customer price pr. international SMS message.
mms.nationalCost Number Cost pr. national MMS message (RESELLER_ADMIN/ADMIN only).
mms.nationalWholesale Number Reseller cost pr. national MMS message (RESELLER, RESELLER_ADMIN or ADMIN only).
mms.nationalPrice Number Customer price pr. national MMS message.
mms.internationalCost Number Cost pr. international MMS message (RESELLER_ADMIN/ADMIN only).
mms.internationalWholesale Number Reseller cost pr. international MMS message (RESELLER, RESELLER_ADMIN or ADMIN only).
mms.internationalPrice Number Customer price pr. international MMS message.
data.nationalCost Number Cost pr. megabyte of data (RESELLER_ADMIN/ADMIN only).
data.nationalWholesale Number Reseller cost pr. megabyte of data (RESELLER, RESELLER_ADMIN or ADMIN only).
data.nationalPrice Number Customer price pr. megabyte of data.
destinations.<country-code> Object overrides the prices for calling destinations in a given country, e.g. 'SE'.
destinations.<country-code>.fixed Object prices for fixed destinations
destinations.<country-code>.fixed.wholesaleFee Number Connection fee for reseller, null if not used
destinations.<country-code>.fixed.customerFee Number Connection fee for customer, null if not used
destinations.<country-code>.fixed.wholesaleRate Number Pr. minute rate for reseller, null if not used
destinations.<country-code>.fixed.customerRate Number Pr. minute rate for customer, null if not used
destinations.<country-code>.mobile Object prices for mobile destinations
destinations.<country-code>.mobile.wholesaleFee Number Connection fee for reseller, null if not used
destinations.<country-code>.mobile.customerFee Number Connection fee for customer, null if not used
destinations.<country-code>.mobile.wholesaleRate Number Pr. minute rate for reseller, null if not used
destinations.<country-code>.mobile.customerRate Number Pr. minute rate for customer, null if not used
DSL properties
dslSpeed String DSL speed product name.
NUMBER_RENT properties
costExtra Double Number rent cost pr. month pr. additional number. (cost above holds the first-number cost).
cost100 Double Number rent cost pr. month pr. 100-series.
wholesaleExtra Double Wholesale number rent pr. month pr. additional number. (wholesale above holds the first-number wholesale price).
wholesale100 Double Wholesale number rent pr. month pr. 100-series.
priceExtra Double Customer number rent pr. month pr. additional number. (price above holds the first-number price).
price100 Double Customer number rent pr. month pr. 100-series.
PBX_USER properties
includedProducts Array Array of products that are included in this PBX user product. Only products of type MVNO_RATEPLAN, PBX_EXTENSION, or PBX_SIP_PHONE are allowed, and only one type of each kind is allowed, meaning that you can ie. only have multiple MVNO_RATEPLANs if they are they the same kind.
includedProducts[]._id ObjectID Id of product that is included
includedProducts[].amount Number Amount of products of this kind that are included.
communicatorAccess Boolean Whether the user with this product has access to Communicator. Defaults to true
MVNO_DATA_TOP_UP properties
mvnoTopUp Object Contains top-up properties
mvnoTopUp.data Number Data of the top-up package. Given in bytes
EXTERNAL_LICENSE properties
externalLicense Object Information about the license from the third party system.
externalLicense.platformId String ID of the platform, which this license represents. Only allowed value is ALSO
externalLicense.also Object ALSO specific properties
externalLicense.also.provisioningId String The provisioning ID of the ALSO license, which is used to match with a product in ALSO.
externalLicense.also.bindingPeriod String The binding period in ALSO. Allowed values are MONTHLY and YEARLY.
MVNO_ROW_ROAMING properties
soc String The SOC this product relates to.

Note that properties holding no value may be omitted from the object.

Response examples

Type SIP_RATEPLAN

{
  "_id": "650000000000000000000010",
  "start": "2014-01-01T00:00:00.000Z",
  "end": null,
  "type": "SIP_RATEPLAN",
  "productCode": "SR0123A",
  "name": "SIP account, flatrate DK",
  "unitType": "MONTHS",
  "recurrence": "MONTHLY",
  "recurrenceFullMonth": true,
  "cost": 150.00,
  "wholesale": 180.00,
  "price": 250.00,
  "reseller": "650000000000000000000020",
  "inheritFrom": "650000000000000000000030",
  "inheritByCustomers": [],
  "applyByResellerOnly": false,
  "invoiceFromFirstNumber": false,
  "subscription": {
    "minutes": { "homeland": 1800, "euNordic": 0, "restOfEurope": 0, "world1": 0, "world2": 0, "world3": 0 },
    "free": { "ownSip": true, "ownMvno": false, "onNetSip": false, "onNetMvno": false }
  },
  "ratePercentDiscount": null,
  "override": {
    "connectionFee": 0.00,
    "connectionFeeOnCallAttempt": true
  }
}

Type MVNO_RATEPLAN

{
  "_id": "650000000000000000000011",
  "start": "2014-01-01T00:00:00.000Z",
  "end": null,
  "type": "MVNO_RATEPLAN",
  "productCode": "MRFREE25G",
  "name": "Free voice, SMS, MMS, 25GB data & 5 hours EU",
  "unitType": "MONTHS",
  "recurrence": "MONTHLY",
  "recurrenceFullMonth": true,
  "cost": 150.00,
  "wholesale": 180.00,
  "price": 250.00,
  "reseller": "650000000000000000000020",
  "inheritFrom": "650000000000000000000030",
  "inheritByCustomers": [],
  "applyByResellerOnly": false,
  "pbxProduct": false,
  "dataSharingSimsIncluded": 0,
  "smartWatchIncluded": false,
  "network": "BOTH",
  "subscription": {
    "minutes": { "homeland": 44640, "euNordic": 0, "restOfEurope": 0, "world1": 0, "world2": 0, "world3": 0 },
    "free": { "ownSip": true, "ownMvno": true, "onNetSip": false, "onNetMvno": false, "smsMms": true },
    "roaming": [
      { "_id": "650000000000000000000040", "minutes": 3000 }
    ],
    "data": 25600,
    "dataRoamLikeHome": 8192
  },
  "sms": {
    "nationalCost": 0.10,
    "nationalWholesale": 0.15,
    "nationalPrice": 0.20,
    "internationalCost": 0.50,
    "internationalWholesale": 1.00,
    "internationalPrice": 1.50
  },
  "mms": {
    "nationalCost": 0.50,
    "nationalWholesale": 0.75,
    "nationalPrice": 1.00,
    "internationalCost": 2.50,
    "internationalWholesale": 4.00,
    "internationalPrice": 5.00
  },
  "data": {
    "nationalCost": 0.50,
    "nationalWholesale": 1.00,
    "nationalPrice": 1.50
  }
}

Type DSL

{
  "_id": "650000000000000000000012",
  "start": "2014-01-01T00:00:00.000Z",
  "end": null,
  "type": "DSL",
  "productCode": "DSL5/5F",
  "name": "ADSL 5/5Mbit flex",
  "unitType": "MONTHS",
  "recurrence": "MONTHLY",
  "recurrenceFullMonth": true,
  "cost": 150.00,
  "wholesale": 180.00,
  "price": 250.00,
  "reseller": "650000000000000000000020",
  "inheritFrom": "650000000000000000000030",
  "inheritByCustomers": [],
  "applyByResellerOnly": false,
  "dslSpeed": "5120/512FL"
}

Type FIBER

{
  "_id": "650000000000000000000013",
  "start": "2014-01-01T00:00:00.000Z",
  "end": null,
  "type": "FIBER",
  "productCode": "F2432",
  "name": "Redundant cityring fiber",
  "unitType": "MONTHS",
  "recurrence": "MONTHLY",
  "recurrenceFullMonth": true,
  "cost": 1500.00,
  "wholesale": 1800.00,
  "price": 2500.00,
  "reseller": "650000000000000000000020",
  "inheritFrom": "650000000000000000000030",
  "inheritByCustomers": [],
  "applyByResellerOnly": false
}

Type NUMBER_RENT

{
  "_id": "650000000000000000000014",
  "start": "2014-01-01T00:00:00.000Z",
  "end": null,
  "type": "NUMBER_RENT",
  "productCode": "NUM01",
  "name": "Number rent",
  "unitType": "MONTHS",
  "recurrence": "QUARTERLY",
  "cost": 0.00,
  "costExtra": 0.00,
  "cost100": 0.00,
  "wholesale": 20.00,
  "wholesaleExtra": 2.50,
  "wholesale100": 350.00,
  "price": 25.00,
  "priceExtra": 5.00,
  "price100": 500.00,
  "reseller": "650000000000000000000020",
  "inheritFrom": "650000000000000000000030",
  "inheritByCustomers": [],
  "applyByResellerOnly": false
}

Type PBX_USER

{
  "_id": "650000000000000000000015",
  "start": "2014-01-01T00:00:00.000Z",
  "end": null,
  "type": "PBX_USER",
  "productCode": "PBXUSER02",
  "name": "Small user package",
  "unitType": "MONTHS",
  "recurrence": "QUARTERLY",
  "recurrenceFullMonth": false,
  "cost": 0.00,
  "wholesale": 20.00,
  "price": 25.00,
  "reseller": "650000000000000000000020",
  "inheritFrom": "650000000000000000000030",
  "inheritByCustomers": [],
  "applyByResellerOnly": false,
  "includedProducts": [
    { "_id": "650000000000000000000031", "amount": 1 },
    { "_id": "650000000000000000000032", "amount": 2 }
  ],
  "communicatorAccess": true,
  "recordingAccess": true,
  "extensionAccess": true,
  "sipPhoneAccess": true
}

Type MVNO_DATA_TOP_UP

{
  "_id": "650000000000000000000016",
  "start": "2014-01-01T00:00:00.000Z",
  "end": null,
  "type": "MVNO_DATA_TOP_UP",
  "productCode": "TOPUP5G",
  "name": "Data top-up 5 GB",
  "unitType": "UNITS",
  "recurrence": "NONE",
  "cost": 49,
  "wholesale": 49,
  "price": 59,
  "reseller": "650000000000000000000020",
  "inheritFrom": "650000000000000000000030",
  "inheritByCustomers": [],
  "applyByResellerOnly": false,
  "mvnoTopUp": {
    "data": 5368709120
  }
}

Type EXTERNAL_LICENSE

{
  "_id": "650000000000000000000017",
  "start": "2022-01-01T00:00:00.000Z",
  "end": null,
  "type": "EXTERNAL_LICENSE",
  "productCode": "OFFICE_365_E3",
  "name": "Office 365 E3 2022",
  "unitType": "UNITS",
  "recurrence": "NONE",
  "recurrenceFullMonth": false,
  "cost": 0.00,
  "wholesale": 20.00,
  "price": 25.00,
  "reseller": "650000000000000000000020",
  "inheritByCustomers": [],
  "applyByResellerOnly": false,
  "externalLicense": {
    "platformId": "ALSO",
    "also": {
      "provisioningId": "123456-abcdef-123456",
      "bindingPeriod": "MONTHLY"
    }
  }
}

Type MVNO_ROW_ROAMING

{
  "_id": "650000000000000000000018",
  "start": "2014-01-01T00:00:00.000Z",
  "end": null,
  "type": "MVNO_ROW_ROAMING",
  "productCode": "ROW5GB",
  "name": "Rest of World roaming: 5 GB",
  "unitType": "UNITS",
  "recurrence": "NONE",
  "recurrenceFullMonth": false,
  "cost": 0.00,
  "wholesale": 20.00,
  "price": 25.00,
  "reseller": "650000000000000000000020",
  "inheritFrom": "650000000000000000000030",
  "inheritByCustomers": [],
  "applyByResellerOnly": false,
  "soc": "ABCDE18GJH"
}

Type OTHER

{
  "_id": "650000000000000000000019",
  "start": "2014-01-01T00:00:00.000Z",
  "end": null,
  "type": "OTHER",
  "productCode": "NUMSER",
  "name": "Number series, 10 premium numbers",
  "unitType": "UNITS",
  "recurrence": "NONE",
  "cost": 1000.00,
  "wholesale": 1200.00,
  "price": 1400.00,
  "reseller": "650000000000000000000020",
  "inheritFrom": "650000000000000000000030",
  "inheritByCustomers": [],
  "applyByResellerOnly": false
}

Errors - customer product

Error code Message Description
400 bad_request Id not found in request URI
400 bad_request Product not found in body of request
404 not_found Product not found
409 type Type cannot be changed
403 access_denied Insufficient access level
404 product.includedProducts Included products not found
409 start Start date if after end date
409 voiceAccounts There are <X> that use this MVNO account
422 start / end Start/End date is invalid - must be null or between 2014 and 2049
422 recurrence Product type does not allow recurrence mode NONE
422 ratePercentDiscount The discount percentage on the rate is invalid
422 override.connectionFee Connection fee override is invalid, must be null or between 0 and 1000
422 subscription.minutes.<region> Subscription minutes for <region> is invalid
422 destinations.cc.<section>.<price> <Section> destination override for <CC> <price> is invalid
422 sms.<field> / mms.<field> / data.<field> <field> is invalid, must be between 0 and 100
nationalCost is missing
422 costExtra / wholesaleExtra / priceExtra / cost100 / wholesale100 / price100 Number rent <field> is invalid - min 0, max 999999
404 socs No SOCS found
422 socs Duplicate SOCS detected
The following socs are invalid: <soc>, …
404 dslSpeed DSL speed not found
404 <property> Property is missing.
409 <property> Value is not one of the permitted values.
Invalid property type.
422 <property> Invalid value. Must not be lower than <N>. / Must not be higher than <N>.
422 multiple More than one validation error - the response body holds the individual errors
500 internal_error <Unspecified>

Errors - reseller product

Error code Message Description
400 bad_request Id not found in request URI
400 bad_request Product not found in body of request
404 not_found Product not found
409 type Type cannot be changed
404 inheritByCustomers All customers were not found
409 inheritedByCustomer The product cannot be inherited by customers outside of the “inheritedByCustomers”-list
403 access_denied Insufficient access level
404 inheritFrom Master product not found
404 reseller Reseller not found
409 inheritFrom Master product is not a master product
409 productCode The product code is already in use
409 inheritByCustomers_standard A product that only can be inherited by specific customers cannot be a standard product
409 start Start date if after end date
409 reseller Product belongs to reseller, but inheritFrom is missing
409 inheritFrom Product inherits from a master product but reseller is missing
422 type Type is not recognized
422 recurrence Product type does not allow recurrence mode NONE
Recurrence type is not recognized
422 productCode Product code is required
422 name Product name is required
422 unitType Unit type is not recognized
422 start / end Start/End date is invalid - must be null or between 2014 and 2049
422 cost / wholesale / price <Field> is invalid - min 0, max 999999
422 ratePercentDiscount The discount percentage on the rate is invalid
422 override.connectionFee Connection fee override is invalid, must be null or between 0 and 1000
422 subscription.minutes.<region> Subscription minutes for <region> is invalid
422 destinations.cc.<section>.<price> <Section> destination override for <CC> <price> is invalid
422 sms.<field> / mms.<field> / data.<field> <field> is invalid, must be between 0 and 100
nationalCost is missing
422 costExtra / wholesaleExtra / priceExtra / cost100 / wholesale100 / price100 Number rent <field> is invalid - min 0, max 999999
404 socs No SOCS found
422 socs Duplicate SOCS detected
The following socs are invalid: <soc>, …
404 dslSpeed DSL speed not found
404 <property> Property is missing.
409 <property> Value is not one of the permitted values.
Invalid property type.
422 <property> Invalid value. Must not be lower than <N>. / Must not be higher than <N>.
422 multiple More than one validation error - the response body holds the individual errors
500 unknown_error Omitting wholesale or price on an AD_HOC, IPTV_SERVICE or EXTERNAL_LICENSE product currently fails
500 internal_error <Unspecified>

Errors - master product

Error code Message Description
400 bad_request Id not found in request URI
400 bad_request Product not found in body of request
404 not_found Product not found
409 type Type cannot be changed
409 extensionAccess <X> employees have <Y> extensions, so extensionAccess can not be set to false.
409 sipPhoneAccess <X> employees have <Y> SIP phones, so sipPhoneAccess can not be set to false.
403 access_denied Insufficient access level
404 reseller Reseller not found
404 inheritFrom Master product not found
404 dslSpeed DSL speed not found
404 socs No SOCS found
404 soc SOC not found
404 inheritBy All resellers were not found
409 start Start date if after end date
409 productCode The product code is already in use
409 soc_in_use The SOC is already in use on another master product
409 reseller Product belongs to reseller, but inheritFrom is missing
409 inheritFrom Product inherits from a master product but reseller is missing
409 inheritFrom Master product is not a master product
409 applyByResellerOnly Cannot set apply by reseller only when no reseller is selected
422 start / end Start/End date is invalid - must be null or between 2014 and 2049
422 productCode Product code is required
422 name Product name is required
422 unitType Unit type is not recognized
422 recurrence Product type does not allow recurrence mode NONE
422 destinations.cc.<section>.<price> <Section> destination override for <CC> <price> is invalid
422 socs Duplicate SOCS detected
The following socs are invalid: <soc>, …
404 <property> Property is missing.
409 <property> Value is not one of the permitted values.
Invalid property type.
422 <property> Invalid value. Must not be lower than <N>. / Must not be higher than <N>.
422 multiple More than one validation error - the response body holds the individual errors
500 unknown_error Omitting cost, wholesale or price currently fails
500 internal_error <Unspecified>