api:destination:create
Table of Contents
API : Destination Create
Introduction
This request will create a new destination.
A destination consists of the prefixes (e.g. +4677 and +4674 for Swedish high-rated numbers) that is the beginning of the number you dial to get to a number in that destination, the country it belongs to, the type of numbers that the destination holds (landline, mobile, special, free) and the connection fee and rates for calling a number in the destination.
Request
| URL | https://api.telecomx.dk/destination | ||
|---|---|---|---|
| Method | POST | ||
| Access level | RESELLER_ADMIN with FINANCE feature, or ADMIN | ||
| Body | _id | String | ISO3166 2-char uppercase country code. |
| prefix | String | Prefix for the country, e.g. +45. | |
| image | ObjectId | Image Id | |
| names | Array | List of names, used for localization | |
| names[].language | String | ISO 639-1 language code | |
| names[].text | String | The localization of the name. | |
| roamingRegion | Object | Roaming region the country belongs to, depending on mobile network. The key is the provider ID, and the value is the region. Keys can be “telenor”, or “tdc” | |
| roamingRegion.<provider> | ObjectId | ID of roaming region | |
| region | String | The region the country belongs to: HOMELAND, EU_NORDIC, REST_OF_EUROPE, WORLD1, WORLD2, WORLD3. | |
| breakouts | Array | List of breakouts within a country, with prefix, type, fee-cost, fee-rate | |
| breakouts[].prefix | Array | Array of strings, which is the prefixes, that this destination/type covers | |
| breakouts[].type | String | FIXED, MOBILE, SPECIAL | |
| breakouts[].cost | Object | Cost prices for each peer (ADMIN only). | |
| breakouts[].cost.<PeerId> | String | Id of peer the cost prices applies to. | |
| breakouts[].cost.<PeerId>.fee | Number | Connection fee cost. | |
| breakouts[].cost.<PeerId>.rate | Number | Pr. minute cost. | |
| breakouts[].cost.<PeerId>.rates | Array | List of cost rates for the prefixes in this breakout. | |
| fixed | Object | prices for fixed destinations | |
| fixed.wholesaleFee | Number | Connection fee for reseller (RESELLER/ADMIN only) | |
| fixed.customerFee | Number | Connection fee for customer | |
| fixed.wholesaleRate | Number | Pr. minute rate for reseller (RESELLER/ADMIN only) | |
| fixed.customerRate | Number | Pr. minute rate for customer | |
| mobile | Object | prices for mobile destinations | |
| mobile.wholesaleFee | Number | Connection fee for reseller (RESELLER/ADMIN only) | |
| mobile.customerFee | Number | Connection fee for customer | |
| mobile.wholesaleRate | Number | Pr. minute rate for reseller (RESELLER/ADMIN only) | |
| mobile.customerRate | Number | Pr. minute rate for customer | |
| special | Object | prices for fixed destinations | |
| special.wholesaleFee | Number | Connection fee for reseller (RESELLER/ADMIN only) | |
| special.customerFee | Number | Connection fee for customer | |
| special.wholesaleRate | Number | Pr. minute rate for reseller (RESELLER/ADMIN only) | |
| special.customerRate | Number | Pr. minute rate for customer | |
Request body example
{ _id: 'DE', prefix: '+49', names: [ { language: 'DA', text: 'Danmark' }, { language: 'EN', text: 'Denmark' } ], image: ObjectId('1234567890ABCD1234567890'), region: 'EU_NORDIC', roamingRegion: { tdc: ObjectID('1234567890ABCD1234567890'), telenor: ObjectID('12345678901234567890') }, region: 'EU_NORDIC', breakouts: [ { prefix: [ '+4915', '+49151', '+49152', '+491521', '+49155', '+49157', '+49159', '+4916', '+49160', '+49162', '+49163', '+49170', '+49171', '+49172', '+49173', '+49174', '+49175', '+49176', '+49177', '+49178', '+49179' ], type: 'MOBILE', cost: { TELENOR: { fee: 0.02, rate: 0.1795, rates: [ 0.1795 ] }, TDC: { fee: 0, rate: 0.2931, rates: [ 0.1523, 0.1629, 0.1695, 0.2931 ] } } }, { prefix: [ '+49', '+49164', '+491672', '+49168' ], type: 'FIXED', cost: { TELENOR: { fee: 0.02, rate: 0.0955, rates : [ 0.055, 0.0955 ] }, TDC: { fee: 0, rate: 0.4266, rates: [ 0.0647, 0.4266 ] } } }, { prefix: [ '+49700', '+49701' ], type: 'SPECIAL', cost: { TELENOR: { rate: 0.1975, fee: 0.2 }, TDC: { rate: 0.18, fee: 0 } } } ], fixed: { wholesaleFee: 0.1, wholesaleRate: 0.15, customerFee: 0.2, customerRate: 0.25 }, mobile: { wholesaleFee: 0.1, wholesaleRate: 0.5, customerFee: 0.2, customerRate: 0.75 }, special: { wholesaleFee: 0.2, wholesaleRate: 0.5, customerFee: 0.2, customerRate: 0.6 } }
Response
| JSON object | ||
|---|---|---|
| _id | String | ISO3166 2-char uppercase country code. |
| prefix | String | Prefix for the country, e.g. +45. |
| image | ObjectId | Image Id |
| names | Array | List of names, used for localization |
| names[].language | String | ISO 639-1 language code |
| names[].text | String | The localization of the name. |
| roamingRegion | Object | Roaming region the country belongs to, depending on mobile network. The key is the provider ID, and the value is the region. Keys can be “telenor”, or “tdc” |
| roamingRegion.<provider> | ObjectId | ID of roaming region |
| region | String | The region the country belongs to: HOMELAND, EU_NORDIC, REST_OF_EUROPE, WORLD1, WORLD2, WORLD3. |
| breakouts | Array | List of breakouts within a country, with prefix, type, fee-cost, fee-rate |
| breakouts[].prefix | Array | Array of strings, which is the prefixes, that this destination/type covers |
| breakouts[].type | String | FIXED, MOBILE, SPECIAL |
| breakouts[].cost | Object | Cost prices for each peer (ADMIN only). |
| breakouts[].cost.<PeerId> | String | Id of peer the cost prices applies to. |
| breakouts[].cost.<PeerId>.fee | Number | Connection fee cost. |
| breakouts[].cost.<PeerId>.rate | Number | Pr. minute cost. |
| breakouts[].cost.<PeerId>.rates | Array | List of cost rates for the prefixes in this breakout. |
| fixed | Object | prices for fixed destinations |
| fixed.wholesaleFee | Number | Connection fee for reseller (RESELLER/ADMIN only) |
| fixed.customerFee | Number | Connection fee for customer |
| fixed.wholesaleRate | Number | Pr. minute rate for reseller (RESELLER/ADMIN only) |
| fixed.customerRate | Number | Pr. minute rate for customer |
| mobile | Object | prices for mobile destinations |
| mobile.wholesaleFee | Number | Connection fee for reseller (RESELLER/ADMIN only) |
| mobile.customerFee | Number | Connection fee for customer |
| mobile.wholesaleRate | Number | Pr. minute rate for reseller (RESELLER/ADMIN only) |
| mobile.customerRate | Number | Pr. minute rate for customer |
| special | Object | prices for fixed destinations |
| special.wholesaleFee | Number | Connection fee for reseller (RESELLER/ADMIN only) |
| special.customerFee | Number | Connection fee for customer |
| special.wholesaleRate | Number | Pr. minute rate for reseller (RESELLER/ADMIN only) |
| special.customerRate | Number | Pr. minute rate for customer |
Note that properties holding no value may be omitted from the object.
Example
{ _id: 'DE', prefix: '+49', names: [ { language: 'DA', text: 'Danmark' }, { language: 'EN', text: 'Denmark' } ], image: ObjectId('1234567890ABCD1234567890'), roamingRegion: { tdc: ObjectID('1234567890ABCD1234567890'), telenor: ObjectID('12345678901234567890') }, region: 'EU_NORDIC', breakouts: [ { prefix: [ '+4915', '+49151', '+49152', '+491521', '+49155', '+49157', '+49159', '+4916', '+49160', '+49162', '+49163', '+49170', '+49171', '+49172', '+49173', '+49174', '+49175', '+49176', '+49177', '+49178', '+49179' ], type: 'MOBILE', cost: { TELENOR: { fee: 0.02, rate: 0.1795, rates: [ 0.1795 ] }, TDC: { fee: 0, rate: 0.2931, rates: [ 0.1523, 0.1629, 0.1695, 0.2931 ] } } }, { prefix: [ '+49', '+49164', '+491672', '+49168' ], type: 'FIXED', cost: { TELENOR: { fee: 0.02, rate: 0.0955, rates : [ 0.055, 0.0955 ] }, TDC: { fee: 0, rate: 0.4266, rates: [ 0.0647, 0.4266 ] } } }, { prefix: [ '+49700', '+49701' ], type: 'SPECIAL', cost: { TELENOR: { rate: 0.1975, fee: 0.2 }, TDC: { rate: 0.18, fee: 0 } } } ], fixed: { wholesaleFee: 0.1, wholesaleRate: 0.15, customerFee: 0.2, customerRate: 0.25 }, mobile: { wholesaleFee: 0.1, wholesaleRate: 0.5, customerFee: 0.2, customerRate: 0.75 }, special: { wholesaleFee: 0.2, wholesaleRate: 0.5, customerFee: 0.2, customerRate: 0.6 } }
Errors
| Error code | Message | Description |
|---|---|---|
| 400 | bad_request | Destination not found in body of request |
| 422 | _id | Country code is not valid |
| 422 | prefix | Prefix is invalid |
| 422 | region | Region is not valid |
| 404 | breakouts | Breakouts is missing |
| 422 | fixed.wholesaleFee | WholesaleFee is not valid |
| 422 | fixed.wholesaleRate | WholesaleRate is not valid |
| 422 | fixed.customerFee | CustomerFee is not valid |
| 422 | fixed.customerRate | CustomerRate is not valid |
| 422 | mobile.wholesaleFee | WholesaleFee is not valid |
| 422 | mobile.wholesaleRate | WholesaleRate is not valid |
| 422 | mobile.customerFee | CustomerFee is not valid |
| 422 | mobile.customerRate | CustomerRate is not valid |
| 422 | special.wholesaleFee | WholesaleFee is not valid |
| 422 | special.wholesaleRate | WholesaleRate is not valid |
| 422 | special.customerFee | CustomerFee is not valid |
| 422 | special.customerRate | CustomerRate is not valid |
| 409 | breakouts.prefix | Breakout prefix XXX is listed multiple times |
| 409 | breakouts.prefix | Breakout prefix XXX cannot exist within prefix YYY |
| 422 | breakouts.type | Breakout type XXX is invalid |
| 409 | breakouts.type | Breakout type XXX is listed multiple times |
| 422 | breakouts.cost.<provider>.fee | Cost fee is invalid |
| 422 | breakouts.cost.<provider>.rate | Rate is invalid |
| 422 | breakouts.cost | Cost is invalid |
| 404 | breakouts | All required types of breakouts not found |
| 404 | image | Image not found |
| 409 | _id | Country code already in use |
| 409 | breakouts.prefix | One or more prefixes is in use by another destination |
| 403 | access_denied | Insufficient access level |
| 500 | internal_error | <Unspecified> |
api/destination/create.txt · Last modified: 2023/10/30 21:14 by Per Møller