User Tools

Site Tools


api:customer:update

API : Customer Update

Introduction

This request will update an existing customer.

When updating a customer, you do not need to send the full customer object. As little as a single property can be sent, so only send the properties you need to update, and the rest will be untouched.

Request

URL https://api.telecomx.dk/customer/CUSTOMER_ID
Method POST
Access level MANAGER or OWNER if user belongs to the customer.
RESELLER if customer belongs to the reseller or a subreseller.
RESELLER_ADMIN or ADMIN.
Param CUSTOMER_ID Id of the customer (24 hex-char string)
Body _id Id Unique customer id.
name String Name of the customer.
phoneNumber String Primary customer phone number.
faxNumber String [optional] primary customer fax number.
state Enum State of the customer: ACTIVE, BLOCKED (all services disabled). A customer cannot be deleted by setting the state, instead use the delete api.
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[].primary Boolean True if this is the primary address.
addresses[].alternativeName String [optional] Alternative name for this address.
addresses[].address String Street, number etc., min 5 chars.
addresses[].zip String Zip code, if country is Denmark or blank, zip is validated, otherwise min. 3 chars.
addresses[].city String City, if country is Denmark, the city is validated, otherwise min. 2 chars.
addresses[].state String [optional] State, only applies to US addresses.
addresses[].country String ISO3166-1 2-char country code.
addresses[].fixedNumber String [optional] Fixed phone number on this address, if it differs from the primary.
addresses[].faxNumber String [optional] Fax number on this address, if it differs from the primary.
addresses[].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] Nmae 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. 1000-25000 for resellers, 1000-999999 for admins.
finance.mvnoUsageLimit Integer Maximum monthly usage in DKK for an MVNO account. 1000-5000 for resellers, 1000-20000 for admins.
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.durationMethod Number 0 for standard, >0 for custom (ADMIN 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.
isReseller Boolean True if customer is a reseller who can create and manage other customers.
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.
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. (min. RESELLER only)
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 a mobile account to buy top-up data, will be included in the SMS that warns the mobile user that they are approaching their data limit.
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)
TCE - Telecom Call Enhancer
DNS - Domain management
INTERNET - Fiber & xDSL
TV - TV
IPTVPRIVATE - Private IPTV customer
IPTVBUSINESS - Business IPTV customer
FLEXCARE - FlexCare HealthTech
ZEROTIER - ZeroTier networking
EXTERNAL_LICENSES - external licenses
NETWORK_MANAGEMENT - allows managing network devices
CHANGELOG - logging to short term changelog is enabled
ORGANIZATION - customer has organizational rights.
organizationResellers Array List of resellers this organization can manage (only if customer has ORGANIZATION feature, otherwise null.
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
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, defaults false
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.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 null to do nothing.
integrations.ms365.calendarShowAsMappings.tentative String Presence state to map tentaive to: AVAILABLE, BUSY, OUT_OF_OFFICE, OFF_WORK, HOLIDAY or null to do nothing.
integrations.ms365.calendarShowAsMappings.busy String Presence state to map busy to: AVAILABLE, BUSY, OUT_OF_OFFICE, OFF_WORK, HOLIDAY or null to do nothing.
integrations.ms365.calendarShowAsMappings.oof String Presence state to map oof to: AVAILABLE, BUSY, OUT_OF_OFFICE, OFF_WORK, HOLIDAY or null to do nothing.
integrations.ms365.calendarShowAsMappings.workingElsewhere String Presence state to map workingElsewhere to: AVAILABLE, BUSY, OUT_OF_OFFICE, OFF_WORK, HOLIDAY or null 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 tp 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 set by 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.

Request body example

{
  name: 'Anders And & Co',
  phoneNumber: '88888888',
  emailAddress: 'anders@andeby.dk',
  website: 'www.andeby.duck',
  notes: 'Pas på Joakim, han er en hård pris forhandler.'
}

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.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.
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.
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)
TCE - Telecom Call Enhancer
DNS - Domain management
INTERNET - Fiber & xDSL
TV - TV
IPTVPRIVATE - Private IPTV customer
IPTVBUSINESS - Business IPTV customer
FLEXCARE - FlexCare HealthTech
ZEROTIER - ZeroTier networking
EXTERNAL_LICENSES - external licenses
NETWORK_MANAGEMENT - allows managing network devices
CHANGELOG - logging to short term changelog is enabled
ORGANIZATION - customer has organizational rights.
organizationResellers Array List of ids of resellers this organization can manage (only if customer has ORGANIZATION feture, otherwise null).
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.used Number How much file storage the customer has used in bytes.
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.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.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 null to do nothing.
integrations.ms365.calendarShowAsMappings.tentative String Presence state to map tentaive to: AVAILABLE, BUSY, OUT_OF_OFFICE, OFF_WORK, HOLIDAY or null to do nothing.
integrations.ms365.calendarShowAsMappings.busy String Presence state to map busy to: AVAILABLE, BUSY, OUT_OF_OFFICE, OFF_WORK, HOLIDAY or null to do nothing.
integrations.ms365.calendarShowAsMappings.oof String Presence state to map oof to: AVAILABLE, BUSY, OUT_OF_OFFICE, OFF_WORK, HOLIDAY or null to do nothing.
integrations.ms365.calendarShowAsMappings.workingElsewhere String Presence state to map workingElsewhere to: AVAILABLE, BUSY, OUT_OF_OFFICE, OFF_WORK, HOLIDAY or null 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 tp map the category to: AVAILABLE, BUSY, OUT_OF_OFFICE, OFF_WORK or HOLIDAY.
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: '52f4fd7734697b28ccaf77ec',
  name: 'Anders And & Co',
  phoneNumber: '88888888',
  faxNumber: '99999999',
  state: 'ACTIVE',
  parentReseller: '52f4fd7734697b28ccaf77ec',
  emailAddress: 'anders@andeby.dk',
  website: 'www.andeby.duck',
  notes: 'Pas på Joakim, han er en hård pris forhandler.',
  authenticationSecurity: 'AUTHENTICATOR',
  addresses: [
    {
      _id: '52f4fd7734697b2800000001',
      primary: true,
      address: 'Paradis Æblevej 23',
      zip: '123',
      city: 'Andeby',
      country: 'Cartoonistan',
      municipalityCode: 101
    },
    {
      _id: '52f4fd7734697b2800000002',
      primary: false,
      alternativeName: 'Joakim Von And\'s pengetank',
      address: 'Guldvej 1',
      zip: '123',
      city: 'Andeby',
      country: 'Cartoonistan',
      fixedNumber: '7913',
      municipalityCode: 102
    }
  ],
  mvno: {
    dataTopUpSms: false
  },
  tv: {
    portalURL: 'http://mw.powernet.dk/stalker_1/api',
    portalUsername: 'userA',
    portalPassword: 'secret',
    prefix: 'custA',
    nameParts: [ 'Bygning','Afdeling','Stue' ]
  },
  storage: {
    total: 0
  },
  finance: {
    vatNumber: '35240136',
    accountingSystemId: '12345',
    accountingSystemRef: 'Thomas Tog',
    invoiceMethod: 'EMAIL',
    emailAddress: 'bogholderi@andeby.dk',
    paymentTerms: '14DAYS',
    sipUsageLimit: 10000,
    mvnoUsageLimit: 3000,
    channelLimit: 25,
    numberRentProduct: '123457890123457890ABCDEF',
    numberRentUntil: '2014-01-01T12:34:56.789Z',
    numberRentCount: { singles: 23, hundreds: 1 },
    numberRentLastProduct: '1234567890123457890ABCD',
    skipInvoicing: false
  },
  features: [ 'CUSTOMER', 'SIP', 'MVNO' ],
  organizationReseller: null,
  isReseller: true,
  resellerPortal: 'https://admin.andeby.dk',
  resellerInvoice: true,
  resellerNextInvoiceNumber: 10000,
  resellerSkin: 'TEAL',
  resellerEmailAsSender: true,
  tv: {
    portalURL: 'http://host.dom/portal_1/api',
    portalUsername: 'userA',
    portalPassword: 'secret',
    prefix: 'custA',
    nameParts: [ 'Building','Floor','Door' ]
  },
  integrations: {
    billing: {
      economic: {
        enabled: true,
        agreementGrantToken: '123971249ahsdaksdhi612',
        accrual: false
      },
      rackbeat: {
        enabled: true,
        bearerToken: '123456789abcefg'
      },
      uniconta: {
        enabled: true,
        username: 'apitestbruger',
        password: 'apitestpassword123!',
        companyId: '10203040'
      },
    },
    licenses: {
      also: {
        enabled: true,
        username: 'bob@tele-it.com',
        password: '18628817',
        customerId: '9787712'
      }
    },
    ms365: {
      enabled: true,
      tenantId: '12397jhdsd-128378ydjas-fhjgg78128',
      verified: true,
      calendarSync: true,
      contactsSync: true,
      orgContactsSync: true,
      presenceSync: true,
      calendarShowAsMappings: {
        free: null,
        tentative: null,
        busy: 'BUSY',
        oof: 'HOLIDAY',
        workingElsewhere: 'OUT_OF_OFFICE'
      },
      calendarCategoryMappings: [
        {
          category: 'Ferie',
          presence: 'HOLIDAY'
        }
      ]
    },
    mvnoPrivate: {
      enabled: true,
      portal: 'https://telefoni.andeby.dk'
    }
  },
  simTag: 'providerx',
  bindingDate: '2023-06-30T22:00:00.000Z',
  customerGroup: '1234567890123457890DDEE'
}

Errors

Error code Message Description
400 bad_request Customer not found in body of request
422 multiple Multiple errors (the inner property holds an array of errors this request generated, which can be any of the errors below)
422 name Name is required
422 phoneNumber Phone number is required
422 faxNumber Fax number is not a valid number
422 emailAddress Email address is invalid
422 parentReseller Parent reseller is invalid
422 finance.vatNumber VAT number not found or invalid
422 finance.invoiceEmailAddress E-mail address for invoicing is not valid
422 finance.invoiceElectronicAddress Address for electronic invoicing is not valid
422 finance.channelLimit Channel limit is out of range (1-1000)
422 finance.sipUsageLimit SIP usage limit is out of range (1000-999999)
422 finance.mvnoUsageLimit MVNO usage limit is out of range (1000-20000)
404 finance.numberRentProduct Number rent product not found
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 zip code for Denmark
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
500 internal_error <Unspecified>
409 address Addresses in use, cannot be deleted
409 address Addresses in use for Internet accounts cannot be changed
404 parentReseller The selected reseller was not found or not a reseller
403 parentReseller Insufficient access level to set parentReseller
403 features Cannot assign features to customer - reseller does not have access to the features
409 features IPTVPRIVATE and IPTVBUSINESS is mutual exclusive
404 organizationResellers One or more of the selected organization resellers were not found or not resellers
403 access_denied Insufficient access level
500 internal_error <Unspecified>
api/customer/update.txt · Last modified: 2025/11/10 08:18 by Per Møller

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki