Table of Contents

API : Customer Create

Introduction

This request will create a new customer.

Request

URL https://api.telecomx.dk/customer
Method POST
Access level RESELLER, RESELLER_ADMIN or ADMIN
Body name String Name of the customer.
phoneNumber String Primary customer phone number.
faxNumber String [optional] primary customer fax number.
parentReseller Id [optional] Id of the reseller the customer belongs to.
Top level resellers does not have a parent reseller.
Requires access level RESELLER or ADMIN to set, otherwise it is ignored.
A reseller may point to self or sub resellers, only admins may set a customer as top level (null).
emailAddress String Primary e-mail address.
website String [optional] Primary website address.
notes String [optional] Notes about the customer (only visible for reseller/admin).
addresses (at least 1 must be present at any time)
addresses[item].primary Boolean True if this is the primary address.
addresses[item].alternativeName String [optional] Alternative name for this address.
addresses[item].address String Street, number etc., min 5 chars.
addresses[item].zip String Zip code, if country is Denmark or blank, zip is validated, otherwise min. 3 chars.
addresses[item].city String City, min. 2 chars. If country is Denmark (or blank), the city is automatically set from the zip code.
addresses[item].state String [optional] State, only applies to US addresses.
addresses[item].country String ISO3166-1 2-char country code.
addresses[item].fixedNumber String [optional] Fixed phone number on this address, if it differs from the primary.
addresses[item].faxNumber String [optional] Fax number on this address, if it differs from the primary.
addresses[item].municipalityCode Integer Municipality code, automatically set by the system.
Finanical settings
finance.vatNumber String VAT number.
finance.accountingSystemId String [optional] Id for linking the customer to the accounting system that does the invoicing.
finance.accountingSystemRef String [optional] Name of the customer contact in the accounting system that does the invoicing.
finance.invoiceMethod Enum How the customer wishes to be invoiced: MAIL, EMAIL, ELECTRONIC.
finance.emailAddress String If invoiceMethod is EMAIL, this is the e-mail address to send it to.
finance.electronicAddress String If invoiceMethod is ELECTRONIC, this is the address to send it to.
finance.paymentTerms Enum Payment terms: DAYS_5, DAYS_7, DAYS_14, DAYS_30, DAYS_60, DAYS_90, CURRENT_MONTH_PLUS_DAYS_7, CURRENT_MONTH_PLUS_DAYS_14, CURRENT_MONTH_PLUS_DAYS_30.
finance.sipUsageLimit Integer Combined maximum monthly usage in DKK for all SIP accounts. Range 1000-1000000. Values above 25000 are reduced to 25000 unless set by an ADMIN or a RESELLER_ADMIN with tele rights.
finance.mvnoUsageLimit Integer Maximum monthly usage in DKK for an MVNO account. Range 100-20000. Values above 5000 are reduced to 5000 unless set by an ADMIN or a RESELLER_ADMIN with tele rights.
finance.channelLimit Integer Maximum number of concurrent calls the customer may conduct on SIP accounts. Range 2-1000.
finance.numberRentProduct Id Id of the product used to invoice number rent.
finance.durationMethod Number 0 for standard, >0 for custom (ADMIN or RESELLER_ADMIN with finance rights only).
finance.skipInvoicing Boolean This customer's invoices will not be shown in various endpoints that fetches lists of invoices. Used in cases where resellers don't want to bill a specific customer. Defaults to false. Can only be set by ADMIN or a RESELLER_ADMIN with finance rights.
finance.skipResellerInvoicing Boolean If true, this customer is skipped when the reseller's own invoicing is generated. Defaults to false. Can only be set by ADMIN or a RESELLER_ADMIN with finance rights.
isReseller Boolean True if customer is a reseller who can create and manage other customers. Can only be set by RESELLER_ADMIN and up.
resellerPortal String [optional] If customer is a reseller and have a customized management portal, this is the URL for the site. The standard site check if this points to it and will then customize the branding accordingly.
resellerInvoice Boolean [optional] True if the platform sends out invoices to the customers (e-mail and electronic), false if reseller sends out invoices from their financial system.
resellerNextInvoiceNumber Integer [optional] Invoice number to use on the next invoice that is generated. auto-incremented when an invoice is created. Only used if resellerInvoice is true.
resellerSkin String Name of the skin to apply on UI for this resellers customers: EARTH, TEAL, DARK. Only used if isReseller is true.
resellerEmailAsSender Boolean Sends e-mails with the reseller's own e-mail as sender. Requires the reseller setting up an SPF-record for Telecom X, for it to work properly.
resellerCustomerGroups Array List of customer groups the reseller wish to use.
resellerCustomerGroups[]._id Id Id of group.
resellerCustomerGroups[].name String Name of group.
MVNO settings
mvno.dataTopUpSms Boolean If true, then a link allowing the MVNO account to buy top-up data, will be included in the SMS that warns the mobile user that they are approaching their data limit, for all MVNO accounts on this customer. This setting can be overridden on each individual mobile account. All MVNO accounts created on this customer, will use the state of this variable as their default value. Can only be set by OWNER and up; ignored unless the customer has the MVNO feature.
Misc settings
features Array List of features in the TelecomX platform that the customer has access to. Can only be set by ADMIN or RESELLER users. A reseller can only assign features that the reseller has to the resellers customers.
The available features are:
CUSTOMER - Basics, addresses, financial, usage limits, employees
SIP - SIP trunks
MVNO - Mobile phones
PBX - Hosted PBX, SIP phones, music on hold, Webhooks (auto-enables SIP, MVNO, CUSTOMER)
DNS - Domain management
INTERNET - Fiber & xDSL
IPTVPRIVATE - Private IPTV customer
IPTVBUSINESS - Business IPTV customer
FLEXCARE - FlexCare HealthTech
ZEROTIER - ZeroTier networking
EXTERNAL_LICENSES - external licenses
NETWORK_MANAGEMENT - allows managing network devices
DIALOG - FlexCare dialog
CHANGELOG - logging to short term changelog is enabled
ORGANIZATION - customer has organizational rights.
organizationResellers Array List of ids of resellers this organization can manage. This can only be set/changed by RESELLER_ADMIN or ADMIN users.
authenticationSecurity String [optional] The required security level for all users when performing login:
NONE - only username/password (default)
SMS - 2FA using SMS required
AUTHENTICATOR - 2FA using authenticator app.
custom Object [optional] Optional custom data that 3rd parties may append to a customer, max. 4Kb.
Storage information
storage.total Number Maximum file storage capacity in bytes, default is 1 gigabyte (can only be set by RESELLER and up)
Integrations
integrations Object Contains information about 3rd party integrations
integrations.billing Object Contains billing integrations
integrations.billing.economic Object Integration for visma e-conomic (settings can only be changed by RESELLER and up, for customers that are resellers)
integrations.billing.economic.enabled Boolean True if the integration is enabled, default false.
integrations.billing.economic.agreementGrantToken String Agreement grant token. It's set when allowing the “Telecom X Billing Integration” e-conomic app to access the reseller's e-conomic account.
integrations.billing.economic.accrual Boolean Determines whether the reseller wants to use the accrual-module in e-conomic. Requires the module to be bought in e-conomic.
integrations.billing.rackbeat Object Integration for rackbeat, defaults false
integrations.billing.rackbeat.enabled Boolean True if the integration is enabled
integrations.billing.rackbeat.bearerToken String Bearer token created from rackbeat, used to verify against their API
integrations.billing.uniconta Object Integration for Uniconta
integrations.billing.uniconta.enabled Boolean True if the integration is enabled, defaults false
integrations.billing.uniconta.username String Username for logging into Uniconta
integrations.billing.uniconta.password String Password for logging into Uniconta
integrations.billing.uniconta.companyId String Company Id the user is connected to, in Uniconta
integrations.licenses Object Licenses from 3rd parties, e.g ALSO.
integrations.licenses.also Object ALSO licenses integration (can only be set by RESELLER and up)
integrations.licenses.also.enabled Boolean Whether this customer/reseller should have their licenses synchronized from ALSO, etc.
integrations.licenses.also.username String ALSO username
integrations.licenses.also.password String ALSO password
integrations.licenses.also.customerId String The customer's ID from ALSO.
integrations.criipto Object Settings for the integration with criipto
integrations.criipto.enabled Boolean True if the integration is enabled, defaults false
integrations.criipto.clientId String UUID for creating signature orders with criipto
integrations.criipto.clientSecret String Client secret for creating signature orders with criipto
integrations.criipto.domain String Domain for redirection login
integrations.criipto.clientIdRealm String Client Id for domain
integrations.ms365 Object Settings for integration with Microsoft 365
integrations.ms365.enabled Boolean Whether this integration is enabled for this customer.
integrations.ms365.tenantId String Id of customers tenant in MS 365
integrations.ms365.verified Boolean True if connection to tenant has been verified
integrations.ms365.calendarSync Boolean True to integrate users calendars
integrations.ms365.contactsSync Boolean True to integrate users contacts
integrations.ms365.orgContactsSync Boolean True to integrate the organisation contacts
integrations.ms365.presenceSync Boolean True to sync presence and/or Trams InAMeeting/InACall status
integrations.ms365.calendarShowAsMappings Object Calendar mappings
integrations.ms365.calendarShowAsMappings.free String Presence state to map free to: AVAILABLE, BUSY, OUT_OF_OFFICE, OFF_WORK, HOLIDAY or IGNORE to do nothing.
integrations.ms365.calendarShowAsMappings.tentative String Presence state to map tentative to: AVAILABLE, BUSY, OUT_OF_OFFICE, OFF_WORK, HOLIDAY or IGNORE to do nothing.
integrations.ms365.calendarShowAsMappings.busy String Presence state to map busy to: AVAILABLE, BUSY, OUT_OF_OFFICE, OFF_WORK, HOLIDAY or IGNORE to do nothing.
integrations.ms365.calendarShowAsMappings.oof String Presence state to map oof to: AVAILABLE, BUSY, OUT_OF_OFFICE, OFF_WORK, HOLIDAY or IGNORE to do nothing.
integrations.ms365.calendarShowAsMappings.workingElsewhere String Presence state to map workingElsewhere to: AVAILABLE, BUSY, OUT_OF_OFFICE, OFF_WORK, HOLIDAY or IGNORE to do nothing.
integrations.ms365.calendarCategoryMappings Array List of calendar category mappings
integrations.ms365.calendarCategoryMappings[].category String Category label to map to presence state.
integrations.ms365.calendarCategoryMappings[].presence String Presence state to map the category to: AVAILABLE, BUSY, OUT_OF_OFFICE, OFF_WORK or HOLIDAY.
integrations.mvnoPrivate Object Settings for integration with MVNO for private customers (can only be set by RESELLER_ADMIN and up)
integrations.mvnoPrivate.enabled Boolean True to enable the integration
integrations.mvnoPrivate.portal String The portal URL to redirect customers to
Service-level Agreements (Can only be set by RESELLER_ADMIN and up)
serviceLevelAgreements Object Contains information about service-level agreements between the customer and their reseller. Only used currently for specific customers, and is not available to everyone.
serviceLevelAgreements.remote Object Contains information about remote service-level agreement
serviceLevelAgreements.remote.responseTime Number Response-time in hours. Valid values are 1, 3, 8, 24.
serviceLevelAgreements.remote.days String Which days of the week this service-level agreement covers. Valid values are “WEEK_DAYS”, “WEEK_DAYS_AND_SATURDAY”, “ALL”
serviceLevelAgreements.remote.period String Which period/hours in the day this service-level-agreement covers. Valid values are “07:45-16:00”, “08:00-22:00”, “00:00-23:59”
serviceLevelAgreements.onsite Object Contains information about on-site service-level agreement
serviceLevelAgreements.onsite.responseTime Number Response-time in hours. Valid values are 1, 3, 8, 24.
serviceLevelAgreements.onsite.days String Which days of the week this service-level agreement covers. Valid values are “WEEK_DAYS”, “WEEK_DAYS_AND_SATURDAY”, “ALL”
serviceLevelAgreements.onsite.period String Which period/hours in the day this service-level-agreement covers. Valid values are “07:45-16:00”, “08:00-22:00”, “00:00-23:59”
serviceLevelAgreements.services Object Which services are covered as a part of this service-level agreement.
serviceLevelAgreements.services.phoneSupportErrors Boolean Phone support - troubleshooting/bug fixing included
serviceLevelAgreements.services.phoneSupportChanges Boolean Phone support - functional changes included
serviceLevelAgreements.services.onsiteInclusive Boolean On-site assistance included
serviceLevelAgreements.services.hardwareInclusive Boolean Hardware-parts included
serviceLevelAgreements.services.mitelSwas Boolean Mitel software assurance included
serviceLevelAgreements.services.prescriptionStatus Boolean Prescription status included, used when integrating with medical systems.
simTag String Optional name of the eSIM pool to assign sims from.
bindingDate Date A date field that can be used by resellers to document when a customer's contract with their reseller expires.
customerGroup Id Id of group the customer belongs to, null if not using groups.

All properties marked as [optional] can be left out of the request.

The most basic data required to create a customer is: name and a single address in addresses with address, zip and city. Resellers with the SIP, MVNO or PBX feature must also have emailAddress and phoneNumber set.

Request body example

{
  "name": "Example Company",
  "phoneNumber": "+4588888888",
  "parentReseller": "650000000000000000000201",
  "emailAddress": "info@example.dk",
  "website": "https://www.example.dk",
  "notes": "Customer created via the API.",
  "authenticationSecurity": "SMS",
  "addresses": [
    {
      "primary": true,
      "address": "Eksempelvej 23",
      "zip": "4000",
      "city": "Roskilde",
      "country": "DK"
    }
  ],
  "finance": {
    "vatNumber": "12345678",
    "invoiceMethod": "EMAIL",
    "emailAddress": "invoice@example.dk",
    "paymentTerms": "DAYS_14",
    "sipUsageLimit": 10000,
    "mvnoUsageLimit": 3000,
    "channelLimit": 25
  },
  "features": ["CUSTOMER", "SIP", "MVNO"]
}

Response

The response will be the newly created customer, if no errors occurred.

Json object
_id Id Unique customer id
name String Name of the customer
phoneNumber String Primary customer phone number
faxNumber String primary customer fax number
state Enum State of the customer: ACTIVE, BLOCKED (all services disabled), DELETED
parentReseller Id Id of the reseller the customer belongs to (only top level resellers does not have a parent reseller)
emailAddress String Primary e-mail address
website String Primary website address
notes String Notes about the customer (only visible for reseller)
Addresses
addresses[]._id Id Id of address
addresses[].primary Boolean True if this is the primary address
addresses[].alternativeName String Alternative name for this address
addresses[].address String Street, number etc., min. 5 chars.
addresses[].zip String Zip code
addresses[].city String City
addresses[].state String State
addresses[].country String Country
addresses[].fixedNumber String Fixed phone number on this address, if it differs from the primary
addresses[].faxNumber String Fax number on this address, if it differs from the primary
addresses[].municipalityCode Integer Municipality code, automatically set by the system
Financial settings
finance.vatNumber String VAT number
finance.accountingSystemId String Id for linking the customer to the accounting system that does the invoicing
finance.accountingSystemRef String Saved customer contact in the accounting system that does the invoicing
finance.invoiceMethod String How the customer wishes to be invoiced: MAIL, EMAIL, ELECTRONIC
finance.emailAddress String If invoiceMethod is EMAIL, this is the e-mail address to send it to
finance.electronicAddress String If invoiceMethod is ELECTRONIC, this is the address to send it to
finance.paymentTerms String Payment terms: DAYS_5, DAYS_7, DAYS_14, DAYS_30, DAYS_60, DAYS_90, CURRENT_MONTH_PLUS_DAYS_7, CURRENT_MONTH_PLUS_DAYS_14, CURRENT_MONTH_PLUS_DAYS_30
finance.sipUsageLimit Integer Combined maximum monthly usage in DKK for all SIP accounts
finance.mvnoUsageLimit Integer Maximum monthly usage in DKK for a MVNO account
finance.channelLimit Integer Maximum number of concurrent calls the customer may conduct on SIP accounts
finance.numberRentProduct Id Id of the product used to invoice number rent.
finance.numberRentUntil Date Date that number rent has been invoiced until.
finance.numberRentCount.singles Integer Number of single phone numbers counted during last invoicing.
finance.numberRentCount.hundreds Integer Number of 100-number-series counted during last invoicing.
finance.numberRentLastProduct Id Id of the product used at the last number rent invoicing.
finance.durationMethod Number 0 for standard, >0 for custom (ADMIN only).
finance.billingCustomers Array List of ids of billing customers linked to this customer.
finance.skipInvoicing Boolean If true, this customer's invoices are not shown in endpoints that list invoices.
finance.skipResellerInvoicing Boolean If true, this customer is skipped when the reseller's own invoicing is generated.
isReseller Boolean True if customer is a reseller who can create and manage other customers
resellerPortal String If customer is a reseller and have a customized management portal, this is the URL for the login page.
resellerInvoice Boolean True if the platform sends out invoices to the customers (e-mail and electronic), false if reseller sends out invoices from their financial system.
resellerNextInvoiceNumber Integer Invoice number to use on the next invoice that is generated. auto-incremented when an invoice is created. Only used if resellerInvoice is true.
resellerSkin String Name of the skin to apply on UI for this resellers customers: EARTH, TEAL, DARK.
resellerEmailAsSender Boolean Sends e-mails with the reseller's own e-mail as sender. Requires the reseller setting up an SPF-record for Telecom X, for it to work properly.
resellerCustomerGroups Array List of customer groups the reseller wish to use.
resellerCustomerGroups[]._id Id Id of group.
resellerCustomerGroups[].name String Name of group.
MVNO settings
mvno.dataTopUpSms Boolean If true, a link allowing a mobile account to buy top-up data is included in the data-limit warning SMS, for all mobile accounts on this customer.
Misc settings
features Array List of features in the TelecomX platform that the customer has access to. Can only be set by ADMIN or RESELLER users. A reseller can only assign features that the reseller has to the resellers customers.
The available features are:
CUSTOMER - Basics, addresses, financial, usage limits, employees
SIP - SIP trunks
MVNO - Mobile phones
PBX - Hosted PBX, SIP phones, music on hold, Webhooks (auto-enables SIP, MVNO, CUSTOMER)
DNS - Domain management
INTERNET - Fiber & xDSL
IPTVPRIVATE - Private IPTV customer
IPTVBUSINESS - Business IPTV customer
FLEXCARE - FlexCare HealthTech
ZEROTIER - ZeroTier networking
EXTERNAL_LICENSES - external licenses
NETWORK_MANAGEMENT - allows managing network devices
DIALOG - FlexCare dialog
CHANGELOG - logging to short term changelog is enabled.
ORGANIZATION - customer has organizational rights.
organizationResellers Array List of ids of resellers this organization may manage.
authenticationSecurity String The required security level for all users when performing login:
NONE - only username/password
SMS - 2FA using SMS required
AUTHENTICATOR - 2FA using authenticator app.
custom Object Optional custom data that 3rd parties may append to a customer, max. 4Kb
Storage information
storage.total Number Maximum file storage capacity in bytes, default is 1 gigabyte
Integrations
integrations Object Contains information about 3rd party integrations
integrations.billing Object Contains billing integrations
integrations.billing.economic Object Integration for visma e-conomic
integrations.billing.economic.enabled Boolean True if the integration is enabled, default false.
integrations.billing.economic.agreementGrantToken String Agreement grant token. It's set when allowing the “Telecom X Billing Integration” e-conomic app to access the reseller's e-conomic account.
integrations.billing.economic.accrual Boolean Determines whether the reseller wants to use the accrual-module in e-conomic. Requires the module to be bought in e-conomic.
integrations.billing.rackbeat Object Integration for rackbeat
integrations.billing.rackbeat.enabled Boolean True if the integration is enabled
integrations.billing.rackbeat.bearerToken String Bearer token created from rackbeat, used to verify against their API
integrations.billing.uniconta Object Integration for Uniconta
integrations.billing.uniconta.enabled Boolean True if the integration is enabled, defaults false
integrations.billing.uniconta.username String Username for logging into Uniconta
integrations.billing.uniconta.password String Password for logging into Uniconta
integrations.billing.uniconta.companyId String Company Id the user is connected to, in Uniconta
integrations.licenses Object Licenses from 3rd parties, e.g ALSO.
integrations.licenses.also Object ALSO licenses integration
integrations.licenses.also.enabled Boolean Whether this customer/reseller should have their licenses synchronized from ALSO, etc.
integrations.licenses.also.username String ALSO username
integrations.licenses.also.password String ALSO password
integrations.licenses.also.customerId String The customer's ID from ALSO.
integrations.licenses.also.tenantId String The Microsoft tenant ID of the customer, synchronized from ALSO.
integrations.criipto Object Settings for the integration with criipto
integrations.criipto.enabled Boolean True if the integration is enabled, defaults false
integrations.criipto.clientId String UUID for creating signature orders with criipto
integrations.criipto.clientSecret String Client secret for creating signature orders with criipto
integrations.criipto.domain String Domain for redirection login
integrations.criipto.clientIdRealm String Client Id for domain
integrations.ms365 Object Settings for integration with Microsoft 365
integrations.ms365.enabled Boolean Whether this integration is enabled for this customer.
integrations.ms365.tenantId String Id of customers tenant in MS 365
integrations.ms365.verified Boolean True if connection to tenant has been verified
integrations.ms365.calendarSync Boolean True to integrate users calendars
integrations.ms365.contactsSync Boolean True to integrate users contacts
integrations.ms365.orgContactsSync Boolean True to integrate the organisation contacts
integrations.ms365.presenceSync Boolean True to sync presence and/or Trams InAMeeting/InACall status
integrations.ms365.calendarShowAsMappings Object Calendar mappings
integrations.ms365.calendarShowAsMappings.free String Presence state to map free to: AVAILABLE, BUSY, OUT_OF_OFFICE, OFF_WORK, HOLIDAY or IGNORE to do nothing.
integrations.ms365.calendarShowAsMappings.tentative String Presence state to map tentative to: AVAILABLE, BUSY, OUT_OF_OFFICE, OFF_WORK, HOLIDAY or IGNORE to do nothing.
integrations.ms365.calendarShowAsMappings.busy String Presence state to map busy to: AVAILABLE, BUSY, OUT_OF_OFFICE, OFF_WORK, HOLIDAY or IGNORE to do nothing.
integrations.ms365.calendarShowAsMappings.oof String Presence state to map oof to: AVAILABLE, BUSY, OUT_OF_OFFICE, OFF_WORK, HOLIDAY or IGNORE to do nothing.
integrations.ms365.calendarShowAsMappings.workingElsewhere String Presence state to map workingElsewhere to: AVAILABLE, BUSY, OUT_OF_OFFICE, OFF_WORK, HOLIDAY or IGNORE to do nothing.
integrations.ms365.calendarCategoryMappings Array List of calendar category mappings
integrations.ms365.calendarCategoryMappings[].category String Category label to map to presence state.
integrations.ms365.calendarCategoryMappings[].presence String Presence state to map the category to: AVAILABLE, BUSY, OUT_OF_OFFICE, OFF_WORK or HOLIDAY.
integrations.mvnoPrivate Object Settings for integration with MVNO for private customers
integrations.mvnoPrivate.enabled Boolean True to enable the integration
integrations.mvnoPrivate.portal String The portal URL to redirect customers to
Service-level Agreements (Can only be viewed by RESELLER, RESELLER_ADMIN or ADMIN)
serviceLevelAgreements Object Contains information about service-level agreements between the customer and their reseller. Only used currently for specific customers, and is not available to everyone.
serviceLevelAgreements.remote Object Contains information about remote service-level agreement
serviceLevelAgreements.remote.responseTime Number Response-time in hours. Valid values are 1, 3, 8, 24.
serviceLevelAgreements.remote.days String Which days of the week this service-level agreement covers. Valid values are “WEEK_DAYS”, “WEEK_DAYS_AND_SATURDAY”, “ALL”
serviceLevelAgreements.remote.period String Which period/hours in the day this service-level-agreement covers. Valid values are “07:45-16:00”, “08:00-22:00”, “00:00-23:59”
serviceLevelAgreements.onsite Object Contains information about on-site service-level agreement
serviceLevelAgreements.onsite.responseTime Number Response-time in hours. Valid values are 1, 3, 8, 24.
serviceLevelAgreements.onsite.days String Which days of the week this service-level agreement covers. Valid values are “WEEK_DAYS”, “WEEK_DAYS_AND_SATURDAY”, “ALL”
serviceLevelAgreements.onsite.period String Which period/hours in the day this service-level-agreement covers. Valid values are “07:45-16:00”, “08:00-22:00”, “00:00-23:59”
serviceLevelAgreements.services Object Which services are covered as a part of this service-level agreement.
serviceLevelAgreements.services.phoneSupportErrors Boolean Phone support - troubleshooting/bug fixing included
serviceLevelAgreements.services.phoneSupportChanges Boolean Phone support - functional changes included
serviceLevelAgreements.services.onsiteInclusive Boolean On-site assistance included
serviceLevelAgreements.services.hardwareInclusive Boolean Hardware-parts included
serviceLevelAgreements.services.mitelSwas Boolean Mitel software assurance included
serviceLevelAgreements.services.prescriptionStatus Boolean Prescription status included, used when integrating with medical systems.
simTag String Optional name of the eSIM pool to assign sims from.
bindingDate Date A date field that can be used by resellers to document when a customer's contract with their reseller expires.
customerGroup Id Id of group the customer belongs to, null if not using groups.

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

Example

{
  "_id": "650000000000000000000101",
  "name": "Example Company",
  "phoneNumber": "+4588888888",
  "faxNumber": "",
  "state": "ACTIVE",
  "parentReseller": "650000000000000000000201",
  "emailAddress": "info@example.dk",
  "website": "https://www.example.dk",
  "notes": "Customer created via the API.",
  "authenticationSecurity": "SMS",
  "addresses": [
    {
      "_id": "650000000000000000000301",
      "primary": true,
      "alternativeName": "",
      "address": "Eksempelvej 23",
      "zip": "4000",
      "city": "Roskilde",
      "country": "DK",
      "municipalityCode": 265
    }
  ],
  "finance": {
    "vatNumber": "12345678",
    "invoiceMethod": "EMAIL",
    "emailAddress": "invoice@example.dk",
    "electronicAddress": "",
    "paymentTerms": "DAYS_14",
    "sipUsageLimit": 10000,
    "mvnoUsageLimit": 3000,
    "channelLimit": 25,
    "numberRentProduct": "650000000000000000000401",
    "numberRentCount": { "singles": 0, "hundreds": 0 },
    "durationMethod": 0,
    "billingCustomers": [],
    "skipInvoicing": false,
    "skipResellerInvoicing": false
  },
  "isReseller": false,
  "resellerPortal": "",
  "resellerInvoice": false,
  "resellerNextInvoiceNumber": 1,
  "resellerSkin": "EARTH",
  "resellerEmailAsSender": false,
  "features": ["CUSTOMER", "SIP", "MVNO"],
  "mvno": { "dataTopUpSms": false },
  "storage": { "total": 0 },
  "integrations": {
    "billing": {
      "economic": { "enabled": false },
      "rackbeat": { "enabled": false },
      "uniconta": { "enabled": false }
    },
    "licenses": { "also": { "enabled": false } },
    "ms365": { "enabled": false },
    "mvnoPrivate": { "enabled": false },
    "criipto": { "enabled": false }
  }
}

Errors

Error code Message Description
422 multiple Multiple errors (the inner property holds an array of errors this request generated, which can be any of the errors below)
404 name Name is missing
422 name Name is invalid
422 phoneNumber Phone number is not a valid number
404 phoneNumber Phone number is required for resellers with SIP, MVNO or PBX
422 faxNumber Fax number is not a valid number
422 emailAddress Email address is invalid
404 emailAddress Email address is required for resellers with SIP, MVNO or PBX
422 parentReseller Parent reseller id is invalid
404 parentReseller The selected reseller was not found or not a reseller
403 parentReseller Insufficient access level to set parentReseller
422 finance.emailAddress E-mail address for invoicing is not valid
422 finance.channelLimit Channel limit is out of range (2-1000)
422 finance.sipUsageLimit SIP usage limit is out of range (1000-1000000)
422 finance.mvnoUsageLimit MVNO usage limit is out of range (100-20000)
404 finance.numberRentProduct Number rent product not found
404 numberRentProduct No master number rent product available to inherit
409 numberRentProduct There is no number rent product that can be assigned to this customer
422 storage.total The customer's storage cannot be higher than the maximum storage limit
422 custom Custom data too large, max. 4Kb
404 addresses At least 1 address is required
422 addresses[index]._id Invalid id
422 addresses[index].address Invalid address
422 addresses[index].zip Invalid danish zip code
422 addresses[index].zip Invalid zip code
422 addresses[index].country Invalid country
422 addresses[index].city Invalid city
422 addresses[index].fixedNumber Number is not a valid phone number
422 addresses[index].faxNumber Number is not a valid phone number
404 integrations.mvnoPrivate.portal Portal not found
403 features Cannot assign features to customer - reseller does not have access to the features
403 features Insufficient access level to add ORGANIZATION feature
409 features IPTVPRIVATE and IPTVBUSINESS is mutual exclusive
409 features Telecom X and Powernet cannot be organization customers
409 features_pbx The PBX feature flag can not be added, before a PBX user product is added to the customer, or the users are deleted.
409 features_pbx_reseller The PBX feature flag can not be added, because the reseller has no PBX user products to inherit from.
404 organizationResellers One or more of the selected organization resellers were not found or not resellers
409 organizationResellers Telecom X and Powernet cannot be added as organization resellers
403 access_denied Insufficient access level
500 internal_error <Unspecified>