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.
| 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. | |
{ 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.' }
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.
{ _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' }
| 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> |