- 08 Jul 2022
- 41 Minutes to read
- Print
- DarkLight
Partner Billing
- Updated on 08 Jul 2022
- 41 Minutes to read
- Print
- DarkLight
Partner Billing API
Change Version | API Version | Change notes | Change Date | Author |
---|---|---|---|---|
1.0 | v1 | 2022-04-15 | Hardy, Cyrus |
Summary
- Billing
Site
You need the Manage Site
permission to manage sites.
GET /api/billing/site/search
- Get paged collection of sitesGET /api/billing/sites
- Get collection of sitesGET /api/billing/sites/{id}
- Get a site
Site Object JSON format
Site Object
Site
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
id | int | yes | no | Site identifier. |
partnerId | int | yes | no | Partner identifier. |
platformId | int | yes | no | Platform identifier. |
company | string | no | no | Company. |
companySize | string | no | no | Company size. |
website | string | no | no | Web site. |
phone | string | no | no | Phone. |
fax | string | no | no | Fax. |
countryOrRegion | string | no | no | Country or region. |
stateOrProvince | string | no | no | State or province. |
city | string | no | no | City. |
mailingAddress | string | no | no | Mailing adress. |
postalOrZipCode | string | no | no | Postal or zipcode. |
firstName | string | no | no | First name. |
lastName | string | no | no | Last name. |
dateTimeFormat | string | no | no | Datetime format. |
languageId | string | no | no | Language identifier. |
timeZone | string | no | no | Timezone. |
status | string | no | no | Status. |
subdomain | string | no | no | Subdomain. |
customDomain | string | no | no | Custom domain. |
industry | string | no | no | Industry. |
otherIndustryDescription | string | no | no | Other industry description. |
tagIds | Guid[] | no | no | Collection of tags. |
tags | Tag [] | no | no | Collection of tags. |
siteAgents | Agent [] | no | no | Collection of agents. |
siteContracts | SiteContract [] | no | no | Collection of site contracts. |
siteExtraInfo | SiteExtraInfo | no | no | Extra info of a site. |
siteActivity | SiteActivity | no | no | Activity of a site. |
siteBillingConfig | SiteBillingConfig | no | no | Billing config of a site. |
siteBillingActivity | SiteBillingActivity | no | no | Billing activity of a site. |
siteRegistration | SiteRegistration | no | no | Registration info of a site. |
subscriptions | Subscription [] | no | no | Collection of subscriptions of a site. |
Site Extra Info Object
SiteExtraInfo
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
siteId | int | yes | yes | Site identifier. |
profitCenterId | Guid | yes | no | Profit center identifier. |
deploymentType | string | no | yes | Deployment type. |
accountExecutive | Guid | no | no | Executive user identifier. |
accountManager | Guid | no | no | Manager identifier. |
isSandboxSite | bool | no | no | Is sandbox site. |
isSpam | bool | no | no | Is spam. |
Site Activity Object
SiteActivity
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
siteId | int | yes | yes | Site identifier. |
lastLoginTime | DateTime | no | no | Last login time. |
isActive | bool | no | no | Is active. |
livechatCustomerLastWebPageVisitTime | DateTime | no | yes | Live chat customer last web page visit time. |
livechatCustomerLastWebPageUrl | string | no | no | Live chat customer last web page URL. |
Site Billing Activity Object
SiteBillingActivity
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
siteId | int | yes | yes | Site identifier. |
buyingStage | stirng | no | no | Buying stage. |
Site Registration Object
SiteRegistration
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
siteId | int | yes | yes | Site identifier. |
registerEmail | stirng | no | no | Register email. |
registerTime | DateTime | no | no | Register time. |
Tag Object
Tag
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
id | Guid | yes | no | Tag identifier. |
partnerId | int | no | yes | Partner identifier. |
name | string | no | yes | Tag name. |
Agent Object
Agent
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
id | Guid | yes | no | Agent identifier. |
siteId | int | yes | no | Site identifier. |
email | string | no | no | Agent email address. |
displayName | string | no | no | Display name. |
firstName | string | no | no | First name. |
lastName | string | no | no | Last name. |
isAdmin | bool | no | no | Is admin. |
isActive | bool | no | no | Is active. |
createdTime | DateTime | no | no | Created time. |
Site Contract Object
SiteContract
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
id | Guid | yes | no | Agent identifier. |
siteId | int | yes | no | Site identifier. |
name | string | no | no | Name. |
description | string | no | no | Description. |
startDate | DateTime | no | no | Start time. |
endDate | DateTime | no | no | End time. |
actionWhenContractEnds | string | no | no | Action when contract ends. |
siteContractAttachments | SiteContractAttachment [] | no | no | Collection of site contract attachments. |
Site Contract Attachment Object
SiteContractAttachment
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
id | Guid | yes | no | Agent identifier. |
siteId | int | yes | no | Site identifier. |
sitecontractId | Guid | yes | no | Site contract identifier. |
name | string | no | no | Name. |
attachment | string | no | no | Attachment URL. |
Site Paged Model Object
SitePagedModel
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
siteId | int | yes | no | Site identifier. |
platformName | string | no | no | Platform name. |
registerDate | DateTime | no | no | Register date. |
lastActivityDate | DateTime | no | no | Last activity date. |
siteStatus | string | no | no | Site status. |
profitCenterId | Guid | no | no | Profit center identifier. |
profitCenterName | string | no | no | Profit center name. |
isActive | bool | no | no | Is active. |
buyingStage | string | no | no | Buying stage. |
accountExecutiveId | Guid | no | no | Executive user identifier. |
accountExecutiveName | string | no | no | Executive user name. |
company | string | no | no | Company. |
country | string | no | no | Country or region. |
ifHasSiteBillingProfile | int | no | no | Wether exist billing profile. |
billingPeriod | string | no | no | Billing period. |
billingStartDate | DateTime | no | no | Billing start date. |
nextBillingDate | DateTime | no | no | Next billing date. |
balance | decimal | no | no | Balance. |
purchasedAgents | int | no | no | Purchased agents. |
activeAgents | int | no | no | Active agents. |
agent | SiteAgent[] | no | no | The collection of agents. |
subscription | string[] | no | no | The collection of subscriptions' name. |
Site Agent Object
SiteAgent
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
siteId | int | yes | no | Site identifier. |
agentId | Guid | no | no | Agent identifier. |
email | string | no | no | Agent email address. |
lastActivityDate | DateTime | no | no | Last activity date. |
displayName | string | no | no | Display name. |
isAdmin | bool | no | no | Is admin. |
Site Endpoints
Get paged collection of sites
GET /api/billing/site/search
Parameters
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
siteId | int | no | Unique identifier of a Site . |
Response
The response is paged collection of SitePagedModel objects.
Example
Using curl
curl https://partner.comm100.io/api/billing/site/search \
-H 'Content-Type: application/json' \
-X 'GET' \
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"pageIndex": 1,
"pageSize": 10,
"pageCount": 7,
"total": 67,
"items": [
{
"siteId": 10000,
"platformName": "internal",
"registerDate": "2021-03-31T06:05:15.28Z",
"lastActivityDate": "2022-04-07T08:58:28.9447384Z",
"siteStatus": "open",
"agent": [
{
"siteId": 10000,
"agentId": "1ce38293-786b-4452-90a0-54adb3d31204",
"email": "test1@internal.com",
"displayName": "test1 internal",
"isAdmin": true
}
],
"billingPeriod": "annually",
"billingStartDate": "2022-03-04T00:00:00Z",
"nextBillingDate": "2023-03-04T00:00:00Z",
"balance": 0.00,
"purchasedAgents": 5,
"activeAgents": 1,
"subscription": [
"Comm100 Omnichannel Business",
"Comm100 Bot Enterprise"
],
"profitCenterId": "02000000-0000-0000-0000-271000002710",
"profitCenterName": "Vancouver ENT CS",
"isActive": false,
"buyingStage": "paying",
"accountExecutiveId": "00000000-0000-0000-0000-000000000000",
"accountExecutiveName": "No Account Executive",
"company": "",
"country": "Bosnia and Herzegovina",
"ifHasSiteBillingProfile": 1
}
]
}
Get collection of sites
GET /api/billing/sites
Parameters
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
id | int | no | Unique identifier of a Site . |
Response
The response is collection of Site objects.
Example
Using curl
curl https://partner.comm100.io/api/billing/sites \
-H 'Content-Type: application/json' \
-X 'GET' \
Response
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id": 10000,
"partnerId": 10000,
"platformId": 100,
"company": "",
"companySize": "",
"website": "",
"phone": "",
"fax": "",
"countryOrRegion": "Bosnia and Herzegovina",
"stateOrProvince": "",
"city": "",
"mailingAddress": "",
"postalOrZipCode": "",
"firstName": "test1",
"lastName": "internal",
"dateTimeFormat": "MM/DD/YYYY HH:mm:ss",
"languageId": "en",
"timeZone": "UTC-08",
"status": "open",
"subdomain": "",
"customDomain": "",
"industry": "Others",
"otherIndustryDescription": "",
"tagIds": [
"fe53fe17-bd77-42c7-8cc0-278422bd89d6"
],
"tags": [
{
"id": "fe53fe17-bd77-42c7-8cc0-278422bd89d6",
"partnerId": 10000,
"name": "Free Email Not Allowed"
}
],
"siteAgents": [
{
"id": "1ce38293-786b-4452-90a0-54adb3d31204",
"siteId": 10000,
"email": "test1@internal.com",
"displayName": "test1 internal",
"firstName": "test1",
"lastName": "internal",
"isAdmin": true,
"isActive": true,
"createdTime": "2022-02-17T06:44:51.3966667Z"
}
],
"siteContracts": [
{
"id": "8d33378a-5a12-49f4-aa2a-bcb2fddf5ab6",
"siteId": 100000001,
"name": "re",
"description": "1",
"startDate": "2022-02-03T08:21:19Z",
"endDate": "2022-02-16T08:21:20Z",
"actionWhenContractEnds": "stopService",
"siteContractAttachments": [
{
"id": "f7fe4f76-ecf9-4ed7-adb3-46187577744e",
"siteId": 100000001,
"sitecontractId": "8d33378a-5a12-49f4-aa2a-bcb2fddf5ab6",
"name": "desk.jpeg",
"attachment": "https://partner.comm100.io/api/billing/siteContractAttachments/f7fe4f76-ecf9-4ed7-adb3-46187577744e/attachment?siteId=10000&version=32b7b8b1af4bc663983f01100363da4a"
}
]
}
],
"siteExtraInfo": {
"siteId": 10000,
"profitCenterId": "02000000-0000-0000-0000-271000002710",
"deploymentType": "Shared",
"accountExecutive": "00000000-0000-0000-0000-000000000000",
"accountManager": "00000000-0000-0000-0000-000000000000",
"isSandboxSite": false,
"isSpam": false
},
"siteActivity": {
"siteId": 10000,
"lastLoginTime": "2022-04-07T08:58:28.9447384Z",
"isActive": false,
"livechatCustomerLastWebPageVisitTime": null,
"livechatCustomerLastWebPageUrl": ""
},
"siteBillingConfig": {
"siteId": 10000,
"billingPeriod": "annual",
"billingStartDate": "2022-03-04T00:00:00Z",
"nextBillingDate": "2023-03-04T00:00:00Z",
"balance": 0.00,
"currencyId": "USD",
"isPricingVisible": false,
"isSubscriptionChangeByCustomerAllowed": false,
"isAgentsPurchasedInAdvance": true,
"purchasedAgents": 5,
"isInvoiceVisibleToCustomer": false,
"isBillingEmailSentAutomatically": false,
"isBillingPopupAutomatically": false,
"paymentTerm": "net0",
"paymentTermValue": 0,
"currency": {
"id": "USD",
"symbol": "$",
"description": ""
}
},
"siteBillingActivity": {
"siteId": 10000,
"buyingStage": "paying"
},
"subscriptions": [
{
"id": "895a5d94-97e8-410f-8ff3-53d8038e908a",
"planId": 211,
"siteId": 10000,
"name": "Comm100 Omnichannel Business",
"isServicePlan": false,
"canBeCancelledByCustomer": false,
"createdTime": "2022-02-17T06:44:51.2766667Z",
"subscriptionPricingModels": [
{
"id": "35ed9d79-1a5c-418b-b8c1-77c63e7083d7",
"siteId": 10000,
"subscriptionId": "895a5d94-97e8-410f-8ff3-53d8038e908a",
"name": "Omnichannel business",
"pricingModel": "perAgent",
"freeQuantity": 0,
"maxQuantity": 500,
"unitType": "additionalTwitterAccount",
"volumeType": "botActionPerMonth",
"isServiceStoppedWhenBotActionsQuotaExceeded": false,
"purchasedQuantity": 0,
"purchasedOverageQuantity": 0,
"subscriptionPriceSegmentByAgents": [
{
"id": "e7796bab-7c5f-4ca7-a9b6-1ef97aeb6091",
"subscriptionPricingModelId": "35ed9d79-1a5c-418b-b8c1-77c63e7083d7",
"siteId": 10000,
"from": 1,
"to": 5,
"monthlyPrice": 89.00,
"quarterlyPrice": 267.00,
"semiAnnualPrice": 534.00,
"annualPrice": 979.00,
"monthlyPriceDiscount": 0.10,
"quarterlyPriceDiscount": 0.00,
"semiAnnualPriceDiscount": 0.00,
"annualPriceDiscount": 0.00
}
],
"subscriptionPriceSegmentByVolumes": [
{
"id": "8a206344-4b07-4e3f-b736-aa6f1b922858",
"subscriptionPricingModelId": "add5cdab-9566-4140-f6c7-08da12bc6f77",
"siteId": 10000,
"quotaPerMonth": 10000,
"monthlyPrice": 0.00,
"quarterlyPrice": 0.00,
"semiAnnualPrice": 0.00,
"annualPrice": 0.00,
"isOverageQuotaAddedByCustomerAllowed": false,
"overageQuota": 2500,
"overageUnitPrice": 49.00,
"monthlyPriceDiscount": 0.00,
"quarterlyPriceDiscount": 0.00,
"semiAnnualPriceDiscount": 0.00,
"annualPriceDiscount": 0.00,
"overageUnitPriceDiscount": 0.00
}
],
"subscriptionPriceWithFlatFee": {
"subscriptionPricingModelId": "68d961ca-865f-4557-f6c8-08da12bc6f77",
"siteId": 10000,
"monthlyPrice": 599.00,
"quarterlyPrice": 1198.00,
"semiAnnualPrice": 3594.00,
"annualPrice": 7188.00,
"monthlyPriceDiscount": 0.00,
"quarterlyPriceDiscount": 0.00,
"semiAnnualPriceDiscount": 0.00,
"annualPriceDiscount": 0.00
}
}
]
}
],
"siteRegistration": {
"siteId": 10000,
"registerEmail": "test1@internal.com",
"registerTime": "2021-03-31T06:05:15.28Z"
}
}
]
Get a site
GET /api/billing/sites/{id}
Parameters
Path Parameters
Name | Type | Required | Description |
---|---|---|---|
id | int | no | Unique identifier of a Site . |
Response
The response is a Site object.
Example
Using curl
curl https://partner.comm100.io/api/billing/sites/10000 \
-H 'Content-Type: application/json' \
-X 'GET' \
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 10000,
"partnerId": 10000,
"platformId": 100,
"company": "",
"companySize": "",
"website": "",
"phone": "",
"fax": "",
"countryOrRegion": "Bosnia and Herzegovina",
"stateOrProvince": "",
"city": "",
"mailingAddress": "",
"postalOrZipCode": "",
"firstName": "test1",
"lastName": "internal",
"dateTimeFormat": "MM/DD/YYYY HH:mm:ss",
"languageId": "en",
"timeZone": "UTC-08",
"status": "open",
"subdomain": "",
"customDomain": "",
"industry": "Others",
"otherIndustryDescription": "",
"tagIds": [
"fe53fe17-bd77-42c7-8cc0-278422bd89d6"
],
"tags": [
{
"id": "fe53fe17-bd77-42c7-8cc0-278422bd89d6",
"partnerId": 10000,
"name": "Free Email Not Allowed"
}
],
"siteAgents": [
{
"id": "1ce38293-786b-4452-90a0-54adb3d31204",
"siteId": 10000,
"email": "test1@internal.com",
"displayName": "test1 internal",
"firstName": "test1",
"lastName": "internal",
"isAdmin": true,
"isActive": true,
"createdTime": "2022-02-17T06:44:51.3966667Z"
}
],
"siteContracts": [
{
"id": "8d33378a-5a12-49f4-aa2a-bcb2fddf5ab6",
"siteId": 100000001,
"name": "re",
"description": "1",
"startDate": "2022-02-03T08:21:19Z",
"endDate": "2022-02-16T08:21:20Z",
"actionWhenContractEnds": "stopService",
"siteContractAttachments": [
{
"id": "f7fe4f76-ecf9-4ed7-adb3-46187577744e",
"siteId": 100000001,
"sitecontractId": "8d33378a-5a12-49f4-aa2a-bcb2fddf5ab6",
"name": "desk.jpeg",
"attachment": "https://partner.comm100.io/api/billing/siteContractAttachments/f7fe4f76-ecf9-4ed7-adb3-46187577744e/attachment?siteId=10000&version=32b7b8b1af4bc663983f01100363da4a"
}
]
}
],
"siteExtraInfo": {
"siteId": 10000,
"profitCenterId": "02000000-0000-0000-0000-271000002710",
"deploymentType": "Shared",
"accountExecutive": "00000000-0000-0000-0000-000000000000",
"accountManager": "00000000-0000-0000-0000-000000000000",
"isSandboxSite": false,
"isSpam": false
},
"siteActivity": {
"siteId": 10000,
"lastLoginTime": "2022-04-07T08:58:28.9447384Z",
"isActive": false,
"livechatCustomerLastWebPageVisitTime": null,
"livechatCustomerLastWebPageUrl": ""
},
"siteBillingConfig": {
"siteId": 10000,
"billingPeriod": "annual",
"billingStartDate": "2022-03-04T00:00:00Z",
"nextBillingDate": "2023-03-04T00:00:00Z",
"balance": 0.00,
"currencyId": "USD",
"isPricingVisible": false,
"isSubscriptionChangeByCustomerAllowed": false,
"isAgentsPurchasedInAdvance": true,
"purchasedAgents": 5,
"isInvoiceVisibleToCustomer": false,
"isBillingEmailSentAutomatically": false,
"isBillingPopupAutomatically": false,
"paymentTerm": "net0",
"paymentTermValue": 0,
"currency": {
"id": "USD",
"symbol": "$",
"description": ""
}
},
"siteBillingActivity": {
"siteId": 10000,
"buyingStage": "paying"
},
"subscriptions": [
{
"id": "895a5d94-97e8-410f-8ff3-53d8038e908a",
"planId": 211,
"siteId": 10000,
"name": "Comm100 Omnichannel Business",
"isServicePlan": false,
"canBeCancelledByCustomer": false,
"createdTime": "2022-02-17T06:44:51.2766667Z",
"subscriptionPricingModels": [
{
"id": "35ed9d79-1a5c-418b-b8c1-77c63e7083d7",
"siteId": 10000,
"subscriptionId": "895a5d94-97e8-410f-8ff3-53d8038e908a",
"name": "Omnichannel business",
"pricingModel": "perAgent",
"freeQuantity": 0,
"maxQuantity": 500,
"unitType": "additionalTwitterAccount",
"volumeType": "botActionPerMonth",
"isServiceStoppedWhenBotActionsQuotaExceeded": false,
"purchasedQuantity": 0,
"purchasedOverageQuantity": 0,
"subscriptionPriceSegmentByAgents": [
{
"id": "e7796bab-7c5f-4ca7-a9b6-1ef97aeb6091",
"subscriptionPricingModelId": "35ed9d79-1a5c-418b-b8c1-77c63e7083d7",
"siteId": 10000,
"from": 1,
"to": 5,
"monthlyPrice": 89.00,
"quarterlyPrice": 267.00,
"semiAnnualPrice": 534.00,
"annualPrice": 979.00,
"monthlyPriceDiscount": 0.10,
"quarterlyPriceDiscount": 0.00,
"semiAnnualPriceDiscount": 0.00,
"annualPriceDiscount": 0.00
}
],
"subscriptionPriceSegmentByVolumes": [
{
"id": "8a206344-4b07-4e3f-b736-aa6f1b922858",
"subscriptionPricingModelId": "add5cdab-9566-4140-f6c7-08da12bc6f77",
"siteId": 10000,
"quotaPerMonth": 10000,
"monthlyPrice": 0.00,
"quarterlyPrice": 0.00,
"semiAnnualPrice": 0.00,
"annualPrice": 0.00,
"isOverageQuotaAddedByCustomerAllowed": false,
"overageQuota": 2500,
"overageUnitPrice": 49.00,
"monthlyPriceDiscount": 0.00,
"quarterlyPriceDiscount": 0.00,
"semiAnnualPriceDiscount": 0.00,
"annualPriceDiscount": 0.00,
"overageUnitPriceDiscount": 0.00
}
],
"subscriptionPriceWithFlatFee": {
"subscriptionPricingModelId": "68d961ca-865f-4557-f6c8-08da12bc6f77",
"siteId": 10000,
"monthlyPrice": 599.00,
"quarterlyPrice": 1198.00,
"semiAnnualPrice": 3594.00,
"annualPrice": 7188.00,
"monthlyPriceDiscount": 0.00,
"quarterlyPriceDiscount": 0.00,
"semiAnnualPriceDiscount": 0.00,
"annualPriceDiscount": 0.00
}
}
]
}
],
"siteRegistration": {
"siteId": 10000,
"registerEmail": "test1@internal.com",
"registerTime": "2021-03-31T06:05:15.28Z"
}
}
Site Billing Config
You need the Manage Site
permission to manage site billing config.
GET /api/billing/siteBillingConfigs
- Get the list of site billing configsGET /api/billing/siteBillingConfigs/{siteId}
- Get billing config of a sitePOST /api/billing/siteBillingConfigs
- Create billing config of a sitePUT /api/billing/siteBillingConfigs/{siteId}
- Update billing configs of a site
Site Billing Config Object JSON format
Site Billing Config Object
SiteBillingConfig
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
siteId | integer | yes | no | Site identifier. |
billingPeriod | enum | no | yes | Billing period, value options include : monthly, quarterly, semi-annual, annual, ... |
billingStartDate | DateTime | yes | no | The first billing date. |
nextBillingDate | DateTime | yes | no | The next billing date. |
balance | decimal | yes | no | Account balance. |
currencyId | string | no | yes | Currency identifier. |
isPricingVisible | bool | no | no | Is the price displayed explicitly. |
isSubscriptionChangeByCustomerAllowed | bool | no | no | Wether to allow customers to change their subscriptions. |
isAgentsPurchasedInAdvance | bool | no | no | Wether to allow customers to purchase agents by themselves. |
purchasedAgents | int | yes | no | The number of purchased agents. |
isInvoiceVisibleToCustomer | bool | no | no | Wether to show invoice to customer. |
isBillingEmailSentAutomatically | bool | no | no | Wether to send billing email to customers authmatically. |
isBillingPopupAutomatically | bool | no | no | Wether to show billing popup to customers. |
paymentTerm | string | no | no | The name of payment term. |
paymentTermValue | string | no | yes | The value of payment term. |
currency | Currency | no | yes | The currency object. |
Currency Object
Currency
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
id | string | no | yes | Currency identifier. |
symbol | string | no | yes | Currency symbol. $, €, £, ¥, ... |
description | string | no | no | Currency description. |
Site Endpoints
Get the list of site billing configs
GET /api/billing/siteBillingConfigs
Parameters
No parameters
Response
The response is collection of SiteBillingConfig objects.
Example
Using curl
curl https://partner.comm100.io/api/billing/siteBillingConfigs \
-H 'Content-Type: application/json' \
-X 'GET' \
Response
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"siteId": 10000,
"billingPeriod": "annual",
"billingStartDate": "2022-03-04T00:00:00Z",
"nextBillingDate": "2023-03-04T00:00:00Z",
"balance": 0.00,
"currencyId": "USD",
"isPricingVisible": false,
"isSubscriptionChangeByCustomerAllowed": false,
"isAgentsPurchasedInAdvance": true,
"purchasedAgents": 5,
"isInvoiceVisibleToCustomer": false,
"isBillingEmailSentAutomatically": false,
"isBillingPopupAutomatically": false,
"paymentTerm": "net0",
"paymentTermValue": 0,
"currency": {
"id": "USD",
"symbol": "$",
"description": ""
}
}
]
Get billing config of a site
GET /api/billing/siteBillingConfigs/{siteId}
Parameters
Path Parameters
Name | Type | Required | Description |
---|---|---|---|
siteId | int | yes | Unique identifier of the site. |
Response
The response is SiteBillingConfig object.
Example
Using curl
curl https://partner.comm100.io/api/billing/siteBillingConfigs/10000 \
-H 'Content-Type: application/json' \
-X 'GET' \
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"siteId": 10000,
"billingPeriod": "annual",
"billingStartDate": "2022-03-04T00:00:00Z",
"nextBillingDate": "2023-03-04T00:00:00Z",
"balance": 0.00,
"currencyId": "USD",
"isPricingVisible": false,
"isSubscriptionChangeByCustomerAllowed": false,
"isAgentsPurchasedInAdvance": true,
"purchasedAgents": 5,
"isInvoiceVisibleToCustomer": false,
"isBillingEmailSentAutomatically": false,
"isBillingPopupAutomatically": false,
"paymentTerm": "net0",
"paymentTermValue": 0,
"currency": {
"id": "USD",
"symbol": "$",
"description": ""
}
}
Create billing config of a site
POST /api/billing/siteBillingConfigs
Parameters
Request body
The request body contains data with the SiteBillingConfig structure.
Response
The response is the SiteBillingConfig Object.
Example
Using curl
curl https://partner.comm100.io/api/billing/siteBillingConfigs \
-H 'Content-Type: application/json' \
-X 'POST' \
-D '{
"siteId": 10000,
"billingPeriod": "annual",
"currencyId": "USD",
"isPricingVisible": false,
"isSubscriptionChangeByCustomerAllowed": false,
"isAgentsPurchasedInAdvance": true,
"isInvoiceVisibleToCustomer": false,
"isBillingEmailSentAutomatically": false,
"isBillingPopupAutomatically": false,
"paymentTerm": "net0",
"paymentTermValue": 0,
...,
}'
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"siteId": 10000,
"billingPeriod": "annual",
"billingStartDate": "2022-03-04T00:00:00Z",
"nextBillingDate": "2023-03-04T00:00:00Z",
"balance": 0.00,
"currencyId": "USD",
"isPricingVisible": false,
"isSubscriptionChangeByCustomerAllowed": false,
"isAgentsPurchasedInAdvance": true,
"purchasedAgents": 5,
"isInvoiceVisibleToCustomer": false,
"isBillingEmailSentAutomatically": false,
"isBillingPopupAutomatically": false,
"paymentTerm": "net0",
"paymentTermValue": 0,
"currency": {
"id": "USD",
"symbol": "$",
"description": ""
}
}
Update billing config of a site
PUT /api/billing/siteBillingConfigs/{siteId}
Parameters
Path Parameters
Name | Type | Required | Description |
---|---|---|---|
siteId | int | yes | Unique identifier of the site. |
Request body
The request body contains data with the SiteBillingConfig structure.
Response
The response is the SiteBillingConfig Object.
Example
Using curl
curl https://partner.comm100.io/api/billing/siteBillingConfigs/10000 \
-H 'Content-Type: application/json' \
-X 'POST' \
-D '{
"siteId": 10000,
"billingPeriod": "annual",
"currencyId": "USD",
"isPricingVisible": false,
"isSubscriptionChangeByCustomerAllowed": false,
"isAgentsPurchasedInAdvance": true,
"isInvoiceVisibleToCustomer": false,
"isBillingEmailSentAutomatically": false,
"isBillingPopupAutomatically": false,
"paymentTerm": "net0",
"paymentTermValue": 0,
...,
}'
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"siteId": 10000,
"billingPeriod": "annual",
"billingStartDate": "2022-03-04T00:00:00Z",
"nextBillingDate": "2023-03-04T00:00:00Z",
"balance": 0.00,
"currencyId": "USD",
"isPricingVisible": false,
"isSubscriptionChangeByCustomerAllowed": false,
"isAgentsPurchasedInAdvance": true,
"purchasedAgents": 5,
"isInvoiceVisibleToCustomer": false,
"isBillingEmailSentAutomatically": false,
"isBillingPopupAutomatically": false,
"paymentTerm": "net0",
"paymentTermValue": 0,
"currency": {
"id": "USD",
"symbol": "$",
"description": ""
}
}
Site Billing Profile
You need the Manage Site
permission to manage site billing profile.
GET /api/billing/siteBillingProfiles
- Get a list of site billing profilesGET /api/billing/siteBillingProfiles/{siteId}
- Get billing profile of a sitePOST /api/billing/siteBillingProfiles
- Create billing profile of a sitePUT /api/billing/siteBillingProfiles/{siteId}
- Update billing profile of a site
Site Billing Profile Object JSON format
Site Billing Profile Object
SiteBillingProfile
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
siteId | integer | yes | no | Site identifier. |
firstName | string | no | no | First name. |
lastName | string | no | no | Last name. |
companyName | string | no | no | Company name. |
email | string | no | no | Email address. |
phone | string | no | no | Phone number. |
fax | string | no | no | Fax number. |
countryOrRegion | string | no | no | Country or region. |
stateOrProvince | string | no | no | State or province. |
city | string | yes | no | City. |
mailingAddress | string | no | no | Mailing address. |
postalOrZipCode | string | no | no | Postal or zipcode. |
jobTitle | string | no | no | Job title. |
billTo | string | no | no | Bill to. |
isChargedAutomatically | bool | no | no | Is charged automatically. |
isEPayment | bool | no | no | Is EPayment. |
primaryPaymentTypeId | string | no | no | Primary payment type. Amex |
primaryPayPalBillingAgreementId | string | no | no | Primary paypal billing agreement. |
primaryPayPalEmail | string | no | no | Primary paypal email. |
nameOnPrimaryCard | string | no | no | Who is the primary card belonged. |
primaryCardNumber | string | no | no | Primary card number. |
primaryCardCSCOrCVD | string | no | no | The CSC or CVD of the primary card. |
primaryCardExpirationDate | DateTime | no | no | The expiration date of the primary card. |
secondaryPaymentTypeId | string | no | no | Secondary payment type. Amex |
secondaryPayPalBillingAgreementId | string | no | no | Secondary paypal billing agreement. |
secondaryPayPalEmail | string | no | no | Secondary paypal email. |
nameOnSecondaryCard | string | no | no | Who is the secondary card belonged. |
secondaryCardNumber | string | no | no | Secondary card number. |
secondaryCardCSCOrCVD | string | no | no | The CSC or CVD of the secondary card. |
secondaryCardExpirationDate | DateTime | no | no | The expiration date of the secondary card. |
nonEPaymentTypeId | string | no | no | Non EPayment type. Undefine |
Site Endpoints
Get sites' billing profiles
GET /api/billing/siteBillingProfiles
Parameters
No parameters
Response
The response is collection of SiteBillingProfile objects.
Example
Using curl
curl https://partner.comm100.io/api/billing/siteBillingProfiles \
-H 'Content-Type: application/json' \
-X 'GET' \
Response
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"siteId": 10000,
"firstName": "1",
"lastName": "1",
"companyName": "1",
"email": "1@1.com",
"phone": "13111111111",
"fax": "",
"countryOrRegion": "Afghanistan",
"stateOrProvince": "",
"city": "",
"mailingAddress": "1",
"postalOrZipCode": "",
"jobTitle": "",
"billTo": "1",
"isChargedAutomatically": true,
"isEPayment": true,
"primaryPaymentTypeId": "Amex",
"primaryPayPalBillingAgreementId": "",
"primaryPayPalEmail": "",
"nameOnPrimaryCard": "1",
"primaryCardNumber": "2222222222222",
"primaryCardCSCOrCVD": "123",
"primaryCardExpirationDate": "2024-12-01T00:00:00Z",
"secondaryPaymentTypeId": "Amex",
"secondaryPayPalBillingAgreementId": "",
"secondaryPayPalEmail": "",
"nameOnSecondaryCard": "2",
"secondaryCardNumber": "2222222222222",
"secondaryCardCSCOrCVD": "123",
"secondaryCardExpirationDate": "2024-12-01T00:00:00Z",
"nonEPaymentTypeId": "Undefine"
}
]
Get billing profile of a site
GET /api/billing/siteBillingProfiles/{siteId}
Parameters
Path Parameters
Name | Type | Required | Description |
---|---|---|---|
siteId | int | yes | Unique identifier of the site. |
Response
The response is SiteBillingProfile object.
Example
Using curl
curl https://partner.comm100.io/api/billing/siteBillingProfiles/10000
-H 'Content-Type: application/json'
-X 'GET'
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"siteId": 10000,
"firstName": "1",
"lastName": "1",
"companyName": "1",
"email": "1@1.com",
"phone": "13111111111",
"fax": "",
"countryOrRegion": "Afghanistan",
"stateOrProvince": "",
"city": "",
"mailingAddress": "1",
"postalOrZipCode": "",
"jobTitle": "",
"billTo": "1",
"isChargedAutomatically": true,
"isEPayment": true,
"primaryPaymentTypeId": "Amex",
"primaryPayPalBillingAgreementId": "",
"primaryPayPalEmail": "",
"nameOnPrimaryCard": "1",
"primaryCardNumber": "2222222222222",
"primaryCardCSCOrCVD": "123",
"primaryCardExpirationDate": "2024-12-01T00:00:00Z",
"secondaryPaymentTypeId": "Amex",
"secondaryPayPalBillingAgreementId": "",
"secondaryPayPalEmail": "",
"nameOnSecondaryCard": "2",
"secondaryCardNumber": "2222222222222",
"secondaryCardCSCOrCVD": "123",
"secondaryCardExpirationDate": "2024-12-01T00:00:00Z",
"nonEPaymentTypeId": "Undefine"
}
Create billing profile of a site
POST /api/billing/siteBillingProfiles
Parameters
Request body
The request body contains data with the SiteBillingProfile structure.
Response
The response is the SiteBillingProfile Object.
Example
Using curl
curl https://partner.comm100.io/api/billing/siteBillingProfiles \
-H 'Content-Type: application/json' \
-X 'POST' \
-D '{
"siteId": 10000,
"firstName": "1",
"lastName": "1",
"companyName": "1",
"email": "1@1.com",
"phone": "13111111111",
"fax": "",
"countryOrRegion": "Afghanistan",
"stateOrProvince": "",
"city": "",
"mailingAddress": "1",
"postalOrZipCode": "",
"jobTitle": "",
"billTo": "1",
"isChargedAutomatically": true,
"isEPayment": true,
"primaryPaymentTypeId": "Amex",
"primaryPayPalBillingAgreementId": "",
"primaryPayPalEmail": "",
"nameOnPrimaryCard": "1",
"primaryCardNumber": "2222222222222",
"primaryCardCSCOrCVD": "123",
"primaryCardExpirationDate": "2024-12-01T00:00:00Z",
"secondaryPaymentTypeId": "Amex",
"secondaryPayPalBillingAgreementId": "",
"secondaryPayPalEmail": "",
"nameOnSecondaryCard": "2",
"secondaryCardNumber": "2222222222222",
"secondaryCardCSCOrCVD": "123",
"secondaryCardExpirationDate": "2024-12-01T00:00:00Z",
"nonEPaymentTypeId": "Undefine"
...,
}'
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"siteId": 10000,
"firstName": "1",
"lastName": "1",
"companyName": "1",
"email": "1@1.com",
"phone": "13111111111",
"fax": "",
"countryOrRegion": "Afghanistan",
"stateOrProvince": "",
"city": "",
"mailingAddress": "1",
"postalOrZipCode": "",
"jobTitle": "",
"billTo": "1",
"isChargedAutomatically": true,
"isEPayment": true,
"primaryPaymentTypeId": "Amex",
"primaryPayPalBillingAgreementId": "",
"primaryPayPalEmail": "",
"nameOnPrimaryCard": "1",
"primaryCardNumber": "2222222222222",
"primaryCardCSCOrCVD": "123",
"primaryCardExpirationDate": "2024-12-01T00:00:00Z",
"secondaryPaymentTypeId": "Amex",
"secondaryPayPalBillingAgreementId": "",
"secondaryPayPalEmail": "",
"nameOnSecondaryCard": "2",
"secondaryCardNumber": "2222222222222",
"secondaryCardCSCOrCVD": "123",
"secondaryCardExpirationDate": "2024-12-01T00:00:00Z",
"nonEPaymentTypeId": "Undefine"
}
Update billing profile of a site
PUT /api/billing/siteBillingProfiles/{siteId}
Parameters
Path Parameters
Name | Type | Required | Description |
---|---|---|---|
siteId | int | yes | Unique identifier of the site. |
Request body
The request body contains data with the SiteBillingProfile structure.
Response
The response is the SiteBillingProfile Object.
Example
Using curl
curl https://partner.comm100.io/api/billing/siteBillingProfiles/10000 \
-H "Content-Type: application/json" \
-X 'POST' \
-D '{
"siteId": 10000,
"firstName": "1",
"lastName": "1",
"companyName": "1",
"email": "1@1.com",
"phone": "13111111111",
"fax": "",
"countryOrRegion": "Afghanistan",
"stateOrProvince": "",
"city": "",
"mailingAddress": "1",
"postalOrZipCode": "",
"jobTitle": "",
"billTo": "1",
"isChargedAutomatically": true,
"isEPayment": true,
"primaryPaymentTypeId": "Amex",
"primaryPayPalBillingAgreementId": "",
"primaryPayPalEmail": "",
"nameOnPrimaryCard": "1",
"primaryCardNumber": "2222222222222",
"primaryCardCSCOrCVD": "123",
"primaryCardExpirationDate": "2024-12-01T00:00:00Z",
"secondaryPaymentTypeId": "Amex",
"secondaryPayPalBillingAgreementId": "",
"secondaryPayPalEmail": "",
"nameOnSecondaryCard": "2",
"secondaryCardNumber": "2222222222222",
"secondaryCardCSCOrCVD": "123",
"secondaryCardExpirationDate": "2024-12-01T00:00:00Z",
"nonEPaymentTypeId": "Undefine"
...,
}'
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"siteId": 10000,
"firstName": "1",
"lastName": "1",
"companyName": "1",
"email": "1@1.com",
"phone": "13111111111",
"fax": "",
"countryOrRegion": "Afghanistan",
"stateOrProvince": "",
"city": "",
"mailingAddress": "1",
"postalOrZipCode": "",
"jobTitle": "",
"billTo": "1",
"isChargedAutomatically": true,
"isEPayment": true,
"primaryPaymentTypeId": "Amex",
"primaryPayPalBillingAgreementId": "",
"primaryPayPalEmail": "",
"nameOnPrimaryCard": "1",
"primaryCardNumber": "2222222222222",
"primaryCardCSCOrCVD": "123",
"primaryCardExpirationDate": "2024-12-01T00:00:00Z",
"secondaryPaymentTypeId": "Amex",
"secondaryPayPalBillingAgreementId": "",
"secondaryPayPalEmail": "",
"nameOnSecondaryCard": "2",
"secondaryCardNumber": "2222222222222",
"secondaryCardCSCOrCVD": "123",
"secondaryCardExpirationDate": "2024-12-01T00:00:00Z",
"nonEPaymentTypeId": "Undefine"
}
Subscription
You need the Manage Site
permission to manage Site's
subscriptions.
GET /api/billing/subscriptions
- Get collection of subscriptionsGET /api/billing/subscriptions/{id}
- Get a subscriptionGET /api/billing/subscriptions/{id}
- Update a subscriptionPOST /api/billing/subscriptions:new
- Add a subscriptionPOST /api/billing/subscriptions:calculateNew
- Preview adding a subscriptionPOST /api/billing/subscriptions:changes
- Change subscriptionsPOST /api/billing/subscriptions/{id}:cancel
- Cancel a subscriptionsPOST /api/billing/subscriptions/{id}:calculateCancel
- Preview cancelling a subscriptionsPOST /api/billing/subscriptions/{id}:switchPlan
- Switch a subscription planPOST /api/billing/subscriptions/{id}:calculateSwitchPlan
- Preview switching a subscription planPOST /api/billing/subscriptions/{id}/productFeaturePoints
- Add product feature points to a subscription
Subscription Object JSON format
Subscription Object
Subscription
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
id | Guid | yes | no | Subscription identifier. |
planId | int | no | no | Plan identifier. |
siteId | int | no | no | Site identifier. |
name | string | no | no | Subscription name. |
isServicePlan | bool | no | no | Is service plan. |
canBeCancelledByCustomer | bool | no | no | Wether to allow customers to cancal by themselfs. |
createdTime | DateTime | yes | no | The time when created. |
subscriptionPricingModels | SubscriptionPricingModel | no | no | Chatbot engine identifier. |
lineItems | InvoiceLineItem [] | no | no | Invoice line items. |
Subscription Output Object
SubscriptionOutput
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
srcAmount | decimal | no | no | SRC amount. |
srcTax | decimal | no | no | SRC tax. |
newAmount | decimal | no | no | New amount. |
newTax | decimal | no | no | New tax. |
chargeResult | bool | no | no | Charge result. |
Subscription Change Dto Object
SubscriptionChangeDto
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
actionType | enum | no | no | Action type. Include AddSubscription (0), SwitchSubscription (1), EditPricingModel (2), CancelSubscription (3), UpgradeSubscription (4), DowngradeSubscription (5) |
srcSubscriptionId | Guid | no | no | Source subscription identifier. |
subscription | SubscriptionDto | no | no | Subscription info. |
Subscription Dto Object
SubscriptionDto
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
id | Guid | no | no | Subscription identifier. |
planId | int | no | yes | Plan identifier. |
siteId | int | no | no | Site identifier. |
name | int | no | yes | Name. |
isServicePlan | bool | no | yes | Is service plan. |
canBeCancelledByCustomer | bool | no | yes | Wether to allow customers to cancel by themselves. |
subscriptionPricingModels | SubscriptionPricingModelDto [] | no | yes | Wether to allow customers to cancel by themselves. |
Subscription Pricing Model Dto Object
SubscriptionPricingModelDto
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
id | Guid | no | no | Identifier. |
subscriptionId | Guid | no | no | Subscription identifier. |
siteId | int | no | no | Site identifier. |
name | int | no | yes | Name. |
pricingModel | string | no | no | Pricing model. |
freeQuantity | int | no | no | Free quantity. |
maxQuantity | int | no | no | Max quantity. |
unitType | string | no | no | Unit type. |
volumeType | string | no | no | Volume type. |
isServiceStoppedWhenBotActionsQuotaExceeded | bool | no | no | Is service stopped when bot actions quota exceeded. |
purchasedQuantity | int | no | no | Purchased quantity. |
purchasedOverageUnit | int | no | no | Purchased overage unit. |
purchasedOverageQuantity | int | no | no | Purchased overage quantity. |
isDeleted | bool | no | no | Is deleted. |
subscriptionPriceSegmentByAgents | SubscriptionPriceSegmentByAgentDto [] | no | no | Collection of suscription price segment by agents. |
subscriptionPriceSegmentByVolumes | SubscriptionPriceSegmentByVolumeDto [] | no | no | Collection of suscription price segment by volumes. |
subscriptionPriceByUnit | SubscriptionPriceByUnitDto | no | no | Suscription price by unit. |
subscriptionPriceWithFlatFee | SubscriptionPriceWithFlatFeeDto | no | no | Suscription price with flat fee. |
Subscription Price Segment By Agent Dto Object
SubscriptionPriceSegmentByAgentDto
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
id | Guid | yes | no | Subscription price segment by agent identifier. |
siteId | int | no | no | Site identifier. |
subscriptionPricingModelId | Guid | yes | no | Subscription pricing model identifier. |
from | int | no | no | The minimum quantity of agents. |
to | int | no | no | The maximum quantity of agents. |
monthlyPrice | decimal | no | no | Monthly price. |
quarterlyPrice | decimal | no | no | Quarterly price. |
semiAnnualPrice | decimal | no | no | Semi annual price. |
annualPrice | decimal | no | no | Annual price. |
monthlyPriceDiscount | decimal | no | no | Monthly price discount. |
quarterlyPriceDiscount | decimal | no | no | Quarterly price discount. |
semiAnnualPriceDiscount | decimal | no | no | Semi annual price discount. |
annualPriceDiscount | decimal | no | no | Annual price discount. |
Subscription Price Segment By Volume Dto Object
SubscriptionPriceSegmentByVolumnDto
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
id | Guid | yes | no | Subscription price segment by agent identifier. |
siteId | int | no | no | Site identifier. |
subscriptionPricingModelId | Guid | yes | no | Subscription pricing model identifier. |
quotaPerMonth | int | no | no | Monthly quota. |
monthlyPrice | decimal | no | no | Monthly price. |
quarterlyPrice | decimal | no | no | Quarterly price. |
semiAnnualPrice | decimal | no | no | Semi annual price. |
annualPrice | decimal | no | no | Annual price. |
monthlyPriceDiscount | decimal | no | no | Monthly price discount. |
quarterlyPriceDiscount | decimal | no | no | Quarterly price discount. |
semiAnnualPriceDiscount | decimal | no | no | Semi annual price discount. |
annualPriceDiscount | decimal | no | no | Annual price discount. |
isOverageQuotaAddedByCustomerAllowed | bool | no | no | Wether to allow customers to add overage quota by themselfs. |
overageQuota | int | no | no | Monthly quota. |
overageUnitPrice | decimal | no | no | Overage unit price. |
overageUnitPriceDiscount | decimal | no | no | Overage unit price discount. |
isSelected | bool | no | no | Is selected. |
Subscription Price By Unit Dto Object
SubscriptionPriceByUnitDto
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
siteId | int | no | no | Site identifier. |
subscriptionPricingModelId | Guid | yes | no | Subscription pricing model identifier. |
oneTimeFee | decimal | no | no | One-off fee. |
monthlyPrice | decimal | no | no | Monthly price. |
quarterlyPrice | decimal | no | no | Quarterly price. |
semiAnnualPrice | decimal | no | no | Semi annual price. |
annualPrice | decimal | no | no | Annual price. |
oneTimeFeeDiscount | decimal | no | no | One-off fee discount. |
monthlyPriceDiscount | decimal | no | no | Monthly price discount. |
quarterlyPriceDiscount | decimal | no | no | Quarterly price discount. |
semiAnnualPriceDiscount | decimal | no | no | Semi annual price discount. |
annualPriceDiscount | decimal | no | no | Annual price discount. |
Subscription Price With Flat Fee Dto Object
SubscriptionPriceWithFlatFeeDto
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
siteId | int | no | no | Site identifier. |
subscriptionPricingModelId | Guid | yes | no | Subscription pricing model identifier. |
monthlyPrice | decimal | no | no | Monthly price. |
quarterlyPrice | decimal | no | no | Quarterly price. |
semiAnnualPrice | decimal | no | no | Semi annual price. |
annualPrice | decimal | no | no | Annual price. |
monthlyPriceDiscount | decimal | no | no | Monthly price discount. |
quarterlyPriceDiscount | decimal | no | no | Quarterly price discount. |
semiAnnualPriceDiscount | decimal | no | no | Semi annual price discount. |
annualPriceDiscount | decimal | no | no | Annual price discount. |
Subscriptions Change Output Object
SubscriptionsChangeOutput
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
amount | decimal | no | no | Amount. |
tax | decimal | no | no | Tax. |
invoiceId | Guid | no | no | Invoice identifier. |
Invoice Line Item Object
InvoiceLineItem
definition
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
id | Guid | no | no | Invoice line item identifier. |
invoiceId | Guid | no | no | Invoice identifier. |
siteId | int | no | no | Site identifier. |
subscriptionPricingModelId | Guid | yes | no | Subscription pricing model identifier. |
profitCenterId | Guid | yes | no | Profit center identifier. |
name | string | no | no | Invoice line item name. |
unitPrice | decimal | no | no | Unit price. |
unitPriceToRound | decimal | no | no | Unit price to round. |
unitPriceToRoundWithUnit | string | no | no | Unit price to round with unit. |
unit | string | no | no | Unit. |
quantity | int | no | no | Quantity. |
discount | decimal | no | no | Discount. |
discountToRound | string | no | no | Discount to round. |
discountRate | string | no | no | Discount rate. |
serviceStartDate | DateTime | no | yes | Service start date. |
serviceEndDate | DateTime | no | yes | Service end date. |
months | string | no | no | Months. |
licenseTerm | string | no | no | License term. |
order | int | no | no | Order. |
type | string | no | no | Type. |
amount | decimal | no | no | Amount. |
amountToRound | string | no | no | Amount to round. |
taxTotal | decimal | no | no | Tax total. |
tax | decimal | no | no | Tax. |
taxToRound | string | no | no | Tax to round. |
lineTotal | decimal | no | no | Line total. |
lineTotalToRound | string | no | no | Line total to round. |
lineTotalWithDiscountToRound | string | no | no | Line total with discount to round. |
cancelledInvoiceLineItemId | Guid | no | no | Cancelled invoice line item related. |
paidAmount | decimal | no | no | Paid amount. |
amountUsdToPay | decimal | no | no | Amount USD to pay. |
amountUsdToRefund | decimal | no | no | Amount USD to refund. |
serviceDays | int | no | no | Service days. |
Subscription Endpoints
Get collection of subscriptions
GET /api/billing/subscriptions
Parameters
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
siteId | int | no | Unique identifier of a Site . |
Response
The response is collection of Subscription objects.
Example
Using curl
curl https://partner.comm100.io/api/billing/subscriptions \
-H 'Content-Type: application/json' \
-X 'GET' \
Response
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id": "895a5d94-97e8-410f-8ff3-53d8038e908a",
"planId": 211,
"siteId": 10000,
"name": "Comm100 Omnichannel Business",
"isServicePlan": false,
"canBeCancelledByCustomer": false,
"createdTime": "2022-02-17T06:44:51.2766667Z",,
"isShowUpgrade": false,
"isOneTimeFeePlan": false,
"isShowCancel": false
"subscriptionPricingModels": [
{
"id": "35ed9d79-1a5c-418b-b8c1-77c63e7083d7",
"siteId": 10000,
"subscriptionId": "895a5d94-97e8-410f-8ff3-53d8038e908a",
"name": "Omnichannel business",
"pricingModel": "perAgent",
"freeQuantity": 0,
"maxQuantity": 500,
"unitType": "additionalTwitterAccount",
"volumeType": "botActionPerMonth",
"isServiceStoppedWhenBotActionsQuotaExceeded": false,
"purchasedQuantity": 0,
"purchasedOverageQuantity": 0,
"subscriptionPriceSegmentByAgents": [
{
"id": "e7796bab-7c5f-4ca7-a9b6-1ef97aeb6091",
"subscriptionPricingModelId": "35ed9d79-1a5c-418b-b8c1-77c63e7083d7",
"siteId": 10000,
"from": 1,
"to": 5,
"monthlyPrice": 89.00,
"quarterlyPrice": 267.00,
"semiAnnualPrice": 534.00,
"annualPrice": 979.00,
"monthlyPriceDiscount": 0.10,
"quarterlyPriceDiscount": 0.00,
"semiAnnualPriceDiscount": 0.00,
"annualPriceDiscount": 0.00
}
],
"subscriptionPriceSegmentByVolumes": [
{
"id": "8a206344-4b07-4e3f-b736-aa6f1b922858",
"subscriptionPricingModelId": "add5cdab-9566-4140-f6c7-08da12bc6f77",
"siteId": 10000,
"quotaPerMonth": 10000,
"monthlyPrice": 0.00,
"quarterlyPrice": 0.00,
"semiAnnualPrice": 0.00,
"annualPrice": 0.00,
"isOverageQuotaAddedByCustomerAllowed": false,
"overageQuota": 2500,
"overageUnitPrice": 49.00,
"monthlyPriceDiscount": 0.00,
"quarterlyPriceDiscount": 0.00,
"semiAnnualPriceDiscount": 0.00,
"annualPriceDiscount": 0.00,
"overageUnitPriceDiscount": 0.00,
"isSelected": true
}
],
"subscriptionPriceWithFlatFee": {
"subscriptionPricingModelId": "68d961ca-865f-4557-f6c8-08da12bc6f77",
"siteId": 10000,
"monthlyPrice": 599.00,
"quarterlyPrice": 1198.00,
"semiAnnualPrice": 3594.00,
"annualPrice": 7188.00,
"monthlyPriceDiscount": 0.00,
"quarterlyPriceDiscount": 0.00,
"semiAnnualPriceDiscount": 0.00,
"annualPriceDiscount": 0.00
}
}
],
"lineItems": [
{
"id": "00000000-0000-0000-0000-000000000000",
"invoiceId": "00000000-0000-0000-0000-000000000000",
"subscriptionPricingModelId": "35ed9d79-1a5c-418b-b8c1-77c63e7083d7",
"profitCenterId": "02000000-0000-0000-0000-271000002710",
"siteId": 0,
"name": "Comm100 Omnichannel Business - Omnichannel business",
"unitPrice": 979.00,
"unitPriceToRound": "979.00",
"unitPriceToRoundWithUnit": "979.00/Year",
"unit": "Year",
"quantity": 5,
"discount": 0.0000,
"discountToRound": "0.00",
"discountRate": "",
"serviceStartDate": "2022-04-15T00:00:00Z",
"serviceEndDate": "2023-04-14T00:00:00Z",
"months": "12 Months",
"licenseTerm": "12 Months<br><span>(2022/04/15-2023/04/14)</span>",
"order": 0,
"type": "changeSiteBillingPeriod",
"isDeleted": false,
"invoiceLineItemTaxs": [],
"amount": 4895.0000,
"amountToRound": "4,895.00",
"taxTotal": 0.0,
"tax": 0.0,
"taxToRound": "0.00",
"lineTotal": 4895.0000,
"lineTotalToRound": "4,895.00",
"lineTotalWithDiscountToRound": "4,895.00",
"cancelledInvoiceLineItemId": "00000000-0000-0000-0000-000000000000",
"paidAmount": 0.0,
"amountUsdToPay": 0.0,
"amountUsdToRefund": 0.0,
"serviceDays": 365
}
]
}
]
Get a subscription
GET /api/billing/subscriptions/{id}
Parameters
Path Parameters
Name | Type | Required | Description |
---|---|---|---|
id | Guid | yes | Unique identifier of the subscription. |
Response
The response is Subscription object.
Example
Using curl
curl https://partner.comm100.io/api/billing/subscriptions/895a5d94-97e8-410f-8ff3-53d8038e908a \
-H 'Content-Type: application/json' \
-X 'GET' \
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "895a5d94-97e8-410f-8ff3-53d8038e908a",
"planId": 211,
"siteId": 10000,
"name": "Comm100 Omnichannel Business",
"isServicePlan": false,
"canBeCancelledByCustomer": false,
"createdTime": "2022-02-17T06:44:51.2766667Z",,
"isShowUpgrade": false,
"isOneTimeFeePlan": false,
"isShowCancel": false
"subscriptionPricingModels": [
{
"id": "35ed9d79-1a5c-418b-b8c1-77c63e7083d7",
"siteId": 10000,
"subscriptionId": "895a5d94-97e8-410f-8ff3-53d8038e908a",
"name": "Omnichannel business",
"pricingModel": "perAgent",
"freeQuantity": 0,
"maxQuantity": 500,
"unitType": "additionalTwitterAccount",
"volumeType": "botActionPerMonth",
"isServiceStoppedWhenBotActionsQuotaExceeded": false,
"purchasedQuantity": 0,
"purchasedOverageQuantity": 0,
"subscriptionPriceSegmentByAgents": [
{
"id": "e7796bab-7c5f-4ca7-a9b6-1ef97aeb6091",
"subscriptionPricingModelId": "35ed9d79-1a5c-418b-b8c1-77c63e7083d7",
"siteId": 10000,
"from": 1,
"to": 5,
"monthlyPrice": 89.00,
"quarterlyPrice": 267.00,
"semiAnnualPrice": 534.00,
"annualPrice": 979.00,
"monthlyPriceDiscount": 0.10,
"quarterlyPriceDiscount": 0.00,
"semiAnnualPriceDiscount": 0.00,
"annualPriceDiscount": 0.00
}
],
"subscriptionPriceSegmentByVolumes": [
{
"id": "8a206344-4b07-4e3f-b736-aa6f1b922858",
"subscriptionPricingModelId": "add5cdab-9566-4140-f6c7-08da12bc6f77",
"siteId": 10000,
"quotaPerMonth": 10000,
"monthlyPrice": 0.00,
"quarterlyPrice": 0.00,
"semiAnnualPrice": 0.00,
"annualPrice": 0.00,
"isOverageQuotaAddedByCustomerAllowed": false,
"overageQuota": 2500,
"overageUnitPrice": 49.00,
"monthlyPriceDiscount": 0.00,
"quarterlyPriceDiscount": 0.00,
"semiAnnualPriceDiscount": 0.00,
"annualPriceDiscount": 0.00,
"overageUnitPriceDiscount": 0.00,
"isSelected": true
}
],
"subscriptionPriceWithFlatFee": {
"subscriptionPricingModelId": "68d961ca-865f-4557-f6c8-08da12bc6f77",
"siteId": 10000,
"monthlyPrice": 599.00,
"quarterlyPrice": 1198.00,
"semiAnnualPrice": 3594.00,
"annualPrice": 7188.00,
"monthlyPriceDiscount": 0.00,
"quarterlyPriceDiscount": 0.00,
"semiAnnualPriceDiscount": 0.00,
"annualPriceDiscount": 0.00
}
}
],
"lineItems": [
{
"id": "00000000-0000-0000-0000-000000000000",
"invoiceId": "00000000-0000-0000-0000-000000000000",
"subscriptionPricingModelId": "35ed9d79-1a5c-418b-b8c1-77c63e7083d7",
"profitCenterId": "02000000-0000-0000-0000-271000002710",
"siteId": 0,
"name": "Comm100 Omnichannel Business - Omnichannel business",
"unitPrice": 979.00,
"unitPriceToRound": "979.00",
"unitPriceToRoundWithUnit": "979.00/Year",
"unit": "Year",
"quantity": 5,
"discount": 0.0000,
"discountToRound": "0.00",
"discountRate": "",
"serviceStartDate": "2022-04-15T00:00:00Z",
"serviceEndDate": "2023-04-14T00:00:00Z",
"months": "12 Months",
"licenseTerm": "12 Months<br><span>(2022/04/15-2023/04/14)</span>",
"order": 0,
"type": "changeSiteBillingPeriod",
"isDeleted": false,
"invoiceLineItemTaxs": [],
"amount": 4895.0000,
"amountToRound": "4,895.00",
"taxTotal": 0.0,
"tax": 0.0,
"taxToRound": "0.00",
"lineTotal": 4895.0000,
"lineTotalToRound": "4,895.00",
"lineTotalWithDiscountToRound": "4,895.00",
"cancelledInvoiceLineItemId": "00000000-0000-0000-0000-000000000000",
"paidAmount": 0.0,
"amountUsdToPay": 0.0,
"amountUsdToRefund": 0.0,
"serviceDays": 365
}
]
}
Update a subscription
PUT /api/billing/subscriptions/{id}
Parameters
Path Parameters
Name | Type | Required | Description |
---|---|---|---|
id | Guid | yes | Unique identifier of the subscription. |
Request body
The request body contains data with the Subscription structure.
Response
The response is Subscription object.
Example
Using curl
curl https://partner.comm100.io/api/billing/subscriptions/895a5d94-97e8-410f-8ff3-53d8038e908a \
-H 'Content-Type: application/json' \
-X 'PUT' \
-D '{
"name": "Comm100 Omnichannel Business",
"isServicePlan": false,
"canBeCancelledByCustomer": false,
"isShowUpgrade": false,
"isOneTimeFeePlan": false,
"isShowCancel": false,
...
}'
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "895a5d94-97e8-410f-8ff3-53d8038e908a",
"planId": 211,
"siteId": 10000,
"name": "Comm100 Omnichannel Business",
"isServicePlan": false,
"canBeCancelledByCustomer": false,
"createdTime": "2022-02-17T06:44:51.2766667Z",
"isShowUpgrade": false,
"isOneTimeFeePlan": false,
"isShowCancel": false
"subscriptionPricingModels": [
{
"id": "35ed9d79-1a5c-418b-b8c1-77c63e7083d7",
"siteId": 10000,
"subscriptionId": "895a5d94-97e8-410f-8ff3-53d8038e908a",
"name": "Omnichannel business",
"pricingModel": "perAgent",
"freeQuantity": 0,
"maxQuantity": 500,
"unitType": "additionalTwitterAccount",
"volumeType": "botActionPerMonth",
"isServiceStoppedWhenBotActionsQuotaExceeded": false,
"purchasedQuantity": 0,
"purchasedOverageQuantity": 0,
"subscriptionPriceSegmentByAgents": [
{
"id": "e7796bab-7c5f-4ca7-a9b6-1ef97aeb6091",
"subscriptionPricingModelId": "35ed9d79-1a5c-418b-b8c1-77c63e7083d7",
"siteId": 10000,
"from": 1,
"to": 5,
"monthlyPrice": 89.00,
"quarterlyPrice": 267.00,
"semiAnnualPrice": 534.00,
"annualPrice": 979.00,
"monthlyPriceDiscount": 0.10,
"quarterlyPriceDiscount": 0.00,
"semiAnnualPriceDiscount": 0.00,
"annualPriceDiscount": 0.00
}
],
"subscriptionPriceSegmentByVolumes": [
{
"id": "8a206344-4b07-4e3f-b736-aa6f1b922858",
"subscriptionPricingModelId": "add5cdab-9566-4140-f6c7-08da12bc6f77",
"siteId": 10000,
"quotaPerMonth": 10000,
"monthlyPrice": 0.00,
"quarterlyPrice": 0.00,
"semiAnnualPrice": 0.00,
"annualPrice": 0.00,
"isOverageQuotaAddedByCustomerAllowed": false,
"overageQuota": 2500,
"overageUnitPrice": 49.00,
"monthlyPriceDiscount": 0.00,
"quarterlyPriceDiscount": 0.00,
"semiAnnualPriceDiscount": 0.00,
"annualPriceDiscount": 0.00,
"overageUnitPriceDiscount": 0.00,
"isSelected": true
}
],
"subscriptionPriceWithFlatFee": {
"subscriptionPricingModelId": "68d961ca-865f-4557-f6c8-08da12bc6f77",
"siteId": 10000,
"monthlyPrice": 599.00,
"quarterlyPrice": 1198.00,
"semiAnnualPrice": 3594.00,
"annualPrice": 7188.00,
"monthlyPriceDiscount": 0.00,
"quarterlyPriceDiscount": 0.00,
"semiAnnualPriceDiscount": 0.00,
"annualPriceDiscount": 0.00
}
}
],
"lineItems": [
{
"id": "00000000-0000-0000-0000-000000000000",
"invoiceId": "00000000-0000-0000-0000-000000000000",
"subscriptionPricingModelId": "35ed9d79-1a5c-418b-b8c1-77c63e7083d7",
"profitCenterId": "02000000-0000-0000-0000-271000002710",
"siteId": 0,
"name": "Comm100 Omnichannel Business - Omnichannel business",
"unitPrice": 979.00,
"unitPriceToRound": "979.00",
"unitPriceToRoundWithUnit": "979.00/Year",
"unit": "Year",
"quantity": 5,
"discount": 0.0000,
"discountToRound": "0.00",
"discountRate": "",
"serviceStartDate": "2022-04-15T00:00:00Z",
"serviceEndDate": "2023-04-14T00:00:00Z",
"months": "12 Months",
"licenseTerm": "12 Months<br><span>(2022/04/15-2023/04/14)</span>",
"order": 0,
"type": "changeSiteBillingPeriod",
"isDeleted": false,
"invoiceLineItemTaxs": [],
"amount": 4895.0000,
"amountToRound": "4,895.00",
"taxTotal": 0.0,
"tax": 0.0,
"taxToRound": "0.00",
"lineTotal": 4895.0000,
"lineTotalToRound": "4,895.00",
"lineTotalWithDiscountToRound": "4,895.00",
"cancelledInvoiceLineItemId": "00000000-0000-0000-0000-000000000000",
"paidAmount": 0.0,
"amountUsdToPay": 0.0,
"amountUsdToRefund": 0.0,
"serviceDays": 365
}
]
}
Add a subscription
POST /api/billing/subscriptions:new
Parameters
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
siteId | int | yes | Unique identifier of the Site. |
agentId | Guid | yes | Unique identifier of the Agent. |
Body Parameters
Name | Type | Required | Description |
---|---|---|---|
billingPeriod | int | no | Billing period. |
planId | int | yes | Plan identifier. |
overageQuota | int | no | Overage quota. |
overageQuotaUnit | int | no | Overage quota unit. |
purchasedQuantityByUnit | int | no | Purchased quantity by unit. |
selectedVolumeId | Guid | no | Selected volume identifier. |
name | string | yes | Name. |
Response
The response is SubscriptionOutput object.
Example
Using curl
curl https://partner.comm100.io/api/billing/subscriptions:new \
-H 'Content-Type: application/json' \
-X 'POST' \
-D '{"billingPeriod": 0, "planId": 10, "overageQuota": 1, "overageQuotaUnit": 1, "purchasedQuantityByUnit": 1, "selectedVolumeId": "895a5d94-97e8-410f-8ff3-53d8038e908a", "name": "name"}'
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"srcAmount": 211.11,
"srcTax": 1.00,
"newAmount": 3.33,
"newTax": 1.00,
"chargeResult": true
}
Preview adding a subscription
POST /api/billing/subscriptions:calculateNew
Parameters
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
siteId | int | yes | Unique identifier of the Site. |
agentId | Guid | yes | Unique identifier of the Agent. |
Body Parameters
Name | Type | Required | Description |
---|---|---|---|
billingPeriod | int | no | Billing period. |
planId | int | yes | Plan identifier. |
overageQuota | int | no | Overage quota. |
overageQuotaUnit | int | no | Overage quota unit. |
purchasedQuantityByUnit | int | no | Purchased quantity by unit. |
selectedVolumeId | Guid | no | Selected volume identifier. |
name | string | yes | Name. |
Response
The response is SubscriptionOutput object.
Example
Using curl
curl https://partner.comm100.io/api/billing/subscriptions:calculateNew \
-H 'Content-Type: application/json' \
-X 'POST' \
-D '{"billingPeriod": 0, "planId": 10, "overageQuota": 1, "overageQuotaUnit": 1, "purchasedQuantityByUnit": 1, "selectedVolumeId": "895a5d94-97e8-410f-8ff3-53d8038e908a", "name": "name"}'
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"srcAmount": 211.11,
"srcTax": 1.00,
"newAmount": 3.33,
"newTax": 1.00,
"chargeResult": true
}
Change subscriptions
POST /api/billing/subscriptions:changes
Parameters
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
siteId | int | yes | Unique identifier of the Site. |
Body Parameters
Name | Type | Required | Description |
---|---|---|---|
ifCreateInvoice | bool | yes | If create invoice. |
isDraft | bool | yes | Is draft. |
purchasedAgents | int | no | Purchased agents. |
subscriptionChangeDtos | SubscriptionChangeDto [] | no | Collection of subscription dtos. |
Response
The response is SubscriptionsChangeOutput object.
Example
Using curl
curl https://partner.comm100.io/api/billing/subscriptions:new \
-H 'Content-Type: application/json' \
-X 'POST' \
-D '{"ifCreateInvoice": true, "isDraft": false, "purchasedAgents": 1, "subscriptionChangeDtos": []}'
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"amount": 211.11,
"tax": 1.00,
"invoiceId": "d95a5d94-97e8-410f-8ff3-53d8038e908a"
}
Preview changing subscriptions
POST /api/billing/subscriptions:calculateChanges
Parameters
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
siteId | int | yes | Unique identifier of the Site. |
Body Parameters
Name | Type | Required | Description |
---|---|---|---|
ifCreateInvoice | bool | yes | If create invoice. |
isDraft | bool | yes | Is draft. |
purchasedAgents | int | no | Purchased agents. |
subscriptionChangeDtos | SubscriptionChangeDto [] | no | Collection of subscription dtos. |
Response
The response is SubscriptionsChangeOutput object.
Example
Using curl
curl https://partner.comm100.io/api/billing/subscriptions:calculateNew
-H 'Content-Type: application/json'
-X 'POST'
-D '{"ifCreateInvoice": false, "isDraft": false, "purchasedAgents": 1, "subscriptionChangeDtos": []}'
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"amount": 211.11,
"tax": 1.00,
"invoiceId": "00000000-0000-0000-0000-000000000000"
}
Cancel a subscription
POST /api/billing/subscriptions:calculateChanges
Parameters
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
siteId | int | yes | Unique identifier of the Site. |
Body Parameters
Name | Type | Required | Description |
---|---|---|---|
ifCreateInvoice | bool | yes | If create invoice. |
isDraft | bool | yes | Is draft. |
purchasedAgents | int | no | Purchased agents. |
subscriptionChangeDtos | SubscriptionChangeDto [] | no | Collection of subscription dtos. |
Response
The response is SubscriptionOutput object.
Example
Using curl
curl https://partner.comm100.io/api/billing/subscriptions/895a5d94-97e8-410f-8ff3-53d8038e908a:cancel \
-H 'Content-Type: application/json' \
-X 'POST' \
-D '{"ifCreateInvoice": false, "isDraft": false, "purchasedAgents": 1, "subscriptionChangeDtos": []}'
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"amount": 211.11,
"tax": 1.00,
"invoiceId": "00000000-0000-0000-0000-000000000000"
}
Preview cancelling a subscription
POST /api/billing/subscriptions/{id}:calculateCancel
Parameters
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
siteId | int | yes | Unique identifier of the Site. |
agentId | Guid | yes | Unique identifier of the Agent. |
Body Parameters
Name | Type | Required | Description |
---|---|---|---|
cancelReason | string | no | Cancel reason. |
comment | string | yes | Comment. |
Response
The response is SubscriptionOutput object.
Example
Using curl
curl https://partner.comm100.io/api/billing/subscriptions/895a5d94-97e8-410f-8ff3-53d8038e908a:calculateCancel \
-H 'Content-Type: application/json' \
-X 'POST' \
-D '{"cancelReason": "reason", "comment": "comment"}'
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"srcAmount": 211.11,
"srcTax": 1.00,
"newAmount": 3.33,
"newTax": 1.00,
"chargeResult": true
}
Switch a subscription plan
POST /api/billing/subscriptions/{id}:switchPlan
Parameters
Path Parameters
Name | Type | Required | Description |
---|---|---|---|
id | int | yes | Unique identifier of the Subscription . |
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
siteId | int | yes | Unique identifier of the Site. |
agentId | Guid | yes | Unique identifier of the Agent. |
Body Parameters
Name | Type | Required | Description |
---|---|---|---|
billingPeriod | int | no | Billing period. |
planId | int | yes | Plan identifier. |
overageQuota | int | no | Overage quota. |
overageQuotaUnit | int | no | Overage quota unit. |
purchasedQuantityByUnit | int | no | Purchased quantity by unit. |
selectedVolumeId | Guid | no | Selected volume identifier. |
name | string | yes | Name. |
Response
The response is SubscriptionOutput object.
Example
Using curl
curl https://partner.comm100.io/api/billing/subscriptions/{id}:switchPlan \
-H 'Content-Type: application/json' \
-X 'POST' \
-D '{"billingPeriod": 0, "planId": 10, "overageQuota": 1, "overageQuotaUnit": 1, "purchasedQuantityByUnit": 1, "selectedVolumeId": "895a5d94-97e8-410f-8ff3-53d8038e908a", "name": "name"}'
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"srcAmount": 211.11,
"srcTax": 1.00,
"newAmount": 3.33,
"newTax": 1.00,
"chargeResult": true
}
Preview switching a subscription plan
POST /api/billing/subscriptions/{id}:calculateSwitchPlan
Parameters
Path Parameters
Name | Type | Required | Description |
---|---|---|---|
id | int | yes | Unique identifier of the Subscription . |
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
siteId | int | yes | Unique identifier of the Site. |
agentId | Guid | yes | Unique identifier of the Agent. |
Body Parameters
Name | Type | Required | Description |
---|---|---|---|
billingPeriod | int | no | Billing period. |
planId | int | yes | Plan identifier. |
overageQuota | int | no | Overage quota. |
overageQuotaUnit | int | no | Overage quota unit. |
purchasedQuantityByUnit | int | no | Purchased quantity by unit. |
selectedVolumeId | Guid | no | Selected volume identifier. |
name | string | yes | Name. |
Response
The response is SubscriptionOutput object.
Example
Using curl
curl -H "Content-Type: application/json" -X POST https://partner.comm100.io/api/billing/subscriptions/895a5d94-97e8-410f-8ff3-53d8038e908a:calculateSwitchPlan -D '{"billingPeriod": 0, "planId": 10, "overageQuota": 1, "overageQuotaUnit": 1, "purchasedQuantityByUnit": 1, "selectedVolumeId": "895a5d94-97e8-410f-8ff3-53d8038e908a", "name": "name"}'
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"srcAmount": 211.11,
"srcTax": 1.00,
"newAmount": 3.33,
"newTax": 1.00,
"chargeResult": true
}
Add product feature points to a subscription
POST /api/billing/subscriptions/{id}/productFeaturePoints
Parameters
Path Parameters
Name | Type | Required | Description |
---|---|---|---|
id | int | yes | Unique identifier of the Subscription . |
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
siteId | int | yes | Unique identifier of the Site. |
Body Parameters
Name | Type | Required | Description |
---|---|---|---|
productId | string | yes | Product identifier. |
featurePointItems | string[] | yes | Collection of feature point items. |
Response
No response.
Example
Using curl
curl -H "Content-Type: application/json" -X POST https://partner.comm100.io/api/billing/subscriptions/895a5d94-97e8-410f-8ff3-53d8038e908a/productFeaturePoints -D '{"productId": "AdditionalTwitterAccount", "featurePointItems": ["AgentAssist"]}'
Response
HTTP/1.1 200 OK
Subscription Product Relation
You need the Manage Feature
permission to manage subscription product relation.
GET /api/billing/subscriptionProductRelations
- Get collection of subscription product relations
Subscription Product Relation Object JSON format
Subscription Product Relation Object
SubscriptionProductRelation
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
id | Guid | yes | no | Identifier. |
subscriptionId | Guid | no | yes | Subscription identifier. |
productId | string | no | yes | Product identifier. |
siteId | int | no | no | Site identifier. |
subscriptionProductFeaturePointRelations | SubscriptionProductFeaturePointRelation[] | no | no | The collection of subscription product feature point relations. |
Subscription Product Feature Point Relation Object
SubscriptionProductFeaturePointRelation
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
id | Guid | yes | no | Identifier. |
subscriptionProductRelationId | Guid | no | yes | Subscription product relation id identifier. |
featurePointItemId | string | no | yes | Feature point item identifier. |
siteId | int | no | no | Site identifier. |
Subscription Product Relation Endpoints
Get collection of product feature points
GET /api/billing/subscriptionProductRelations
Parameters
No parameters
Response
The response is collection of SubscriptionProductRelation objects.
Example
Using curl
curl https://partner.comm100.io/api/billing/subscriptionProductRelations \
-H 'Content-Type: application/json' \
-X 'GET' \
Response
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id": "3fb06039-d671-4c5c-9414-2ca085efb6f8",
"subscriptionId": "895a5d94-97e8-410f-8ff3-53d8038e908a",
"productId": "LiveChat",
"siteId": 10000,
"subscriptionProductFeaturePointRelations": [
{
"id": "b14bfbd0-9c78-4130-bc00-04260bcd4df1",
"subscriptionProductRelationId": "3fb06039-d671-4c5c-9414-2ca085efb6f8",
"featurePointItemId": "Integrations",
"siteId": 10000
}
]
}
]
Subscription Pricing Model
You need the Manage Feature
permission to manage subscription product relation.
GET /api/billing/subscriptionPricingModels
Subscription Pricing Model Object JSON format
Subscription Pricing Model Object
SubscriptionPricingModel
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
id | Guid | yes | no | Subscription pricing model identifier. |
siteId | int | no | no | Site identifier. |
subscriptionId | Guid | yes | no | Subscription identifier. |
name | string | no | no | Subscription pricing model name. |
pricingModel | string | no | no | Pricing model. |
freeQuantity | int | no | no | Free quantity of agents. |
maxQuantity | int | no | no | Max quantity of agents. |
unitType | string | no | no | Unit type. |
volumeType | string | no | no | Volume type. |
isServiceStoppedWhenBotActionsQuotaExceeded | bool | no | no | Wether the service will be stopped when bot actions quota exceeded. |
purchasedQuantity | int | no | no | Purchased quantity of volume. |
purchasedOverageQuantity | int | no | no | Purchased overage quantity of volume. |
isShowUpgrade | bool | no | no | Wether to show upgrade button. |
isOneTimeFeePlan | bool | no | no | Is one-off fee plan. |
isShowCancel | bool | no | no | Wether to show cancel button. |
subscriptionPriceSegmentByAgents | SubscriptionPriceSegmentByAgent [] | no | no | Subscription price segment by agents. |
subscriptionPriceSegmentByVolumes | SubscriptionPriceSegmentByVolume [] | no | no | Subscription price segment by volumes. |
subscriptionPriceWithFlatFee | SubscriptionPriceWithFlatFee | no | no | Subscription price with flat fee. |
Subscription Price Segment By Agent Object
SubscriptionPriceSegmentByAgent
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
id | Guid | yes | no | Subscription price segment by agent identifier. |
siteId | int | no | no | Site identifier. |
subscriptionPricingModelId | Guid | yes | no | Subscription pricing model identifier. |
from | int | no | no | The minimum quantity of agents. |
to | int | no | no | The maximum quantity of agents. |
monthlyPrice | decimal | no | no | Monthly price. |
quarterlyPrice | decimal | no | no | Quarterly price. |
semiAnnualPrice | decimal | no | no | Semi annual price. |
annualPrice | decimal | no | no | Annual price. |
monthlyPriceDiscount | decimal | no | no | Monthly price discount. |
quarterlyPriceDiscount | decimal | no | no | Quarterly price discount. |
semiAnnualPriceDiscount | decimal | no | no | Semi annual price discount. |
annualPriceDiscount | decimal | no | no | Annual price discount. |
Subscription Price Segment By Volume Object
SubscriptionPriceSegmentByVolumn
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
id | Guid | yes | no | Subscription price segment by agent identifier. |
siteId | int | no | no | Site identifier. |
subscriptionPricingModelId | Guid | yes | no | Subscription pricing model identifier. |
quotaPerMonth | int | no | no | Monthly quota. |
monthlyPrice | decimal | no | no | Monthly price. |
quarterlyPrice | decimal | no | no | Quarterly price. |
semiAnnualPrice | decimal | no | no | Semi annual price. |
annualPrice | decimal | no | no | Annual price. |
monthlyPriceDiscount | decimal | no | no | Monthly price discount. |
quarterlyPriceDiscount | decimal | no | no | Quarterly price discount. |
semiAnnualPriceDiscount | decimal | no | no | Semi annual price discount. |
annualPriceDiscount | decimal | no | no | Annual price discount. |
isOverageQuotaAddedByCustomerAllowed | bool | no | no | Wether to allow customers to add overage quota by themselfs. |
overageQuota | int | no | no | Monthly quota. |
overageUnitPrice | decimal | no | no | Overage unit price. |
overageUnitPriceDiscount | decimal | no | no | Overage unit price discount. |
isSelected | bool | no | no | Is selected. |
Subscription Price With Flat Fee Object
SubscriptionPriceWithFlatFee
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
siteId | int | no | no | Site identifier. |
subscriptionPricingModelId | Guid | yes | no | Subscription pricing model identifier. |
monthlyPrice | decimal | no | no | Monthly price. |
quarterlyPrice | decimal | no | no | Quarterly price. |
semiAnnualPrice | decimal | no | no | Semi annual price. |
annualPrice | decimal | no | no | Annual price. |
monthlyPriceDiscount | decimal | no | no | Monthly price discount. |
quarterlyPriceDiscount | decimal | no | no | Quarterly price discount. |
semiAnnualPriceDiscount | decimal | no | no | Semi annual price discount. |
annualPriceDiscount | decimal | no | no | Annual price discount. |
Subscription Pricing Model Endpoints
Get collection of subscription pricing models
GET /api/billing/subscriptionPricingModels
Parameters
No parameters
Response
The response is collection of SubscriptionPricingModel objects.
Example
Using curl
curl https://partner.comm100.io/api/billing/subscriptionPricingModels \
-H 'Content-Type: application/json' \
-X 'GET' \
Response
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id": "3fb06039-d671-4c5c-9414-2ca085efb6f8",
"subscriptionId": "895a5d94-97e8-410f-8ff3-53d8038e908a",
"productId": "LiveChat",
"siteId": 10000,
"subscriptionProductFeaturePointRelations": [
{
"id": "b14bfbd0-9c78-4130-bc00-04260bcd4df1",
"subscriptionProductRelationId": "3fb06039-d671-4c5c-9414-2ca085efb6f8",
"featurePointItemId": "Integrations",
"siteId": 10000
}
]
}
]
Subscription Feature Limitation Config
You need the Manage Feature
permission to manage subscription feature limitation config.
GET /api/billing/subscriptionFeatureLimitationConfigs
- Get collection of subscription feature limitation configsGET /api/billing/subscriptionFeatureLimitationConfigs/{subscriptionId}
- Get collection of subscription feature limitation configs
Subscription Feature Limitation Config Object JSON format
Subscription Feature Limitation Config Object
SubscriptionFeatureLimitationConfig
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
subscriptionId | Guid | no | yes | Subscription identifier. |
siteId | int | no | no | Site identifier. |
monthsOfHistoryCanBeAccessed | int | no | no | Months of history can be accessed. |
monthsOfHistoryCanBeAccessedBeyondFreemium | int | no | no | Months of history can be accessed beyond freemium. |
monthsOfHistoryBeingStored | int | no | no | Months of history being stored. |
monthsOfHistoryBeingStoredBeyondFreemium | int | no | no | Months of history being stored beyond freemium. |
Subscription Feature Limitation Config Endpoints
Get collection of subscription feature limitation configs
GET /api/billing/subscriptionFeatureLimitationConfigs
Parameters
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
siteId | int | no | Unique identifier of a Site . |
Response
The response is collection of SubscriptionFeatureLimitationConfig objects.
Example
Using curl
curl https://partner.comm100.io/api/billing/subscriptionFeatureLimitationConfigs \
-H 'Content-Type: application/json' \
-X 'GET' \
Response
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"subscriptionId": "895a5d94-97e8-410f-8ff3-53d8038e908a",
"siteId": 10000,
"monthsOfHistoryCanBeAccessed": 0,
"monthsOfHistoryCanBeAccessedBeyondFreemium": 0,
"monthsOfHistoryBeingStored": 0,
"monthsOfHistoryBeingStoredBeyondFreemium": 0
}
]
Get a subscription feature limitation config
GET /api/billing/subscriptionFeatureLimitationConfigs/{subscriptionId}
Parameters
Path Parameters
Name | Type | Required | Description |
---|---|---|---|
subscriptionId | Guid | yes | Unique identifier of a Subscription . |
Response
The response is a SubscriptionFeatureLimitationConfig object.
Example
Using curl
curl https://partner.comm100.io/api/billing/subscriptionFeatureLimitationConfigs/895a5d94-97e8-410f-8ff3-53d8038e908a \
-H 'Content-Type: application/json' \
-X 'GET' \
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"subscriptionId": "895a5d94-97e8-410f-8ff3-53d8038e908a",
"siteId": 10000,
"monthsOfHistoryCanBeAccessed": 0,
"monthsOfHistoryCanBeAccessedBeyondFreemium": 0,
"monthsOfHistoryBeingStored": 0,
"monthsOfHistoryBeingStoredBeyondFreemium": 0
}
Product
You need the Manage Product
permission to manage product.
GET /api/billing/products
- Get collection of productsGET /api/billing/products/{id}
- Get a product
Product Object JSON format
Product Object
Product
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
id | string | yes | no | Product identifier. |
moduleId | string | no | yes | Module identifier. |
name | string | no | yes | Product name. |
description | string | no | yes | Product description. |
Product Endpoints
Get collection of products
GET /api/billing/products
Parameters
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
id | string | no | Unique identifier of a Product . |
Response
The response is collection of Product objects.
Example
Using curl
curl https://partner.comm100.io/api/billing/products \
-H 'Content-Type: application/json' \
-X 'GET' \
Response
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id": "AdditionalTwitterAccount",
"moduleId": "Ticketing",
"name": "Additional Twitter Account",
"description": ""
}
]
Get a product
GET /api/billing/products/{id}
Parameters
Path Parameters
Name | Type | Required | Description |
---|---|---|---|
id | Guid | yes | Unique identifier of a Product . |
Response
The response is a Product object.
Example
Using curl
curl https://partner.comm100.io/api/billing/products/AdditionalTwitterAccount \
-H 'Content-Type: application/json' \
-X 'GET' \
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "AdditionalTwitterAccount",
"moduleId": "Ticketing",
"name": "Additional Twitter Account",
"description": ""
}
Product
You need the Manage Product
permission to manage product.
GET /api/billing/products
- Get collection of productsGET /api/billing/products/{id}
- Get a product
Product Object JSON format
Product Object
Product
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
id | string | yes | no | Product identifier. |
moduleId | string | no | yes | Module identifier. |
name | string | no | yes | Product name. |
description | string | no | yes | Product description. |
Product Endpoints
Get collection of products
GET /api/billing/products
Parameters
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
id | string | no | Unique identifier of a Product . |
Response
The response is collection of Product objects.
Example
Using curl
curl https://partner.comm100.io/api/billing/products \
-H 'Content-Type: application/json' \
-X 'GET' \
Response
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id": "AdditionalTwitterAccount",
"moduleId": "Ticketing",
"name": "Additional Twitter Account",
"description": ""
}
]
Get a product
GET /api/billing/products/{id}
Parameters
Path Parameters
Name | Type | Required | Description |
---|---|---|---|
id | Guid | yes | Unique identifier of a Product . |
Response
The response is a Product object.
Example
Using curl
curl https://partner.comm100.io/api/billing/products/AdditionalTwitterAccount \
-H 'Content-Type: application/json' \
-X 'GET' \
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "AdditionalTwitterAccount",
"moduleId": "Ticketing",
"name": "Additional Twitter Account",
"description": ""
}
Product Feature Point
You need the Manage Feature
permission to manage product feature point.
GET /api/global/productFeaturePoint
- Get collection of product feature points
Product Feature Point Object JSON format
Product Feature Point Object
ProductFeaturePoint
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
id | string | yes | no | Feature point identifier. |
moduleId | string | no | no | Module identifier. |
name | string | no | no | Feature point item name. |
description | string | no | no | Feature point item description. |
featurePointItems | FeaturePointItem[] | no | no | The collection of feature point items. |
Product Feature Point Endpoints
Get collection of product feature points
GET /api/global/productFeaturePoint
Parameters
No parameters
Response
The response is collection of ProductFeaturePoint objects.
Example
Using curl
curl https://partner.comm100.io/api/global/productFeaturePoint \
-H 'Content-Type: application/json' \
-X 'GET' \
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"errorCode": 0,
"errorMessage": "",
"data":[
{
"id": "Chatbot",
"moduleId": "Bot",
"name": "Chatbot",
"description": "",
"featurePointItems": [
{
"id": "ChatBot",
"productId": "Chatbot",
"name": "Chatbot",
"description": "",
"parentId": "",
"category": "default",
"chatbotEngineId": "00000000-0000-0000-0000-000000000000"
}
]
}
]
}
Feature Point Item
You need the Manage Feature
permission to manage feature point item.
GET /api/global/featurePointItems
- Get a list of site billing profilesGET /api/billing/featurePointItems/{siteId}
- Get billing profile of a site
Feature Point Item Object JSON format
Feature Point Item Object
FeaturePointItem
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
id | string | yes | no | Feature point item identifier. |
productId | string | no | no | Product identifier. |
name | string | no | no | Feature point item name. |
description | string | no | no | Feature point item description. |
parentId | string | no | no | Parent feature point item identifier. |
category | string | no | no | Feature point category. |
chatbotEngineId | Guid | no | no | Chatbot engine identifier. |
Feature Point Item Endpoints
Get collection of feature point items
GET /api/global/featurePointItems
Parameters
No parameters
Response
The response is collection of FeaturePointItem objects.
Example
Using curl
curl https://partner.comm100.io/api/global/featurePointItems \
-H 'Content-Type: application/json' \
-X 'GET'
Response
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id": "Mention",
"productId": "Ticketing",
"name": "@mention",
"description": "",
"parentId": "",
"category": "default",
"chatbotEngineId": "00000000-0000-0000-0000-000000000000"
}
]
Get a feature point item
GET /api/global/featurePointItems/{id}
Parameters
Path Parameters
Name | Type | Required | Description |
---|---|---|---|
id | string | yes | Unique identifier of the feature point item. |
Response
The response is FeaturePointItem object.
Example
Using curl
curl https://partner.comm100.io/api/global/featurePointItems/Mention \
-H 'Content-Type: application/json' \
-X 'GET' \
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "Mention",
"productId": "Ticketing",
"name": "@mention",
"description": "",
"parentId": "",
"category": "default",
"chatbotEngineId": "00000000-0000-0000-0000-000000000000"
}
Invoice Bill To
You need the Manage Invoice
permission to manage invoice bill to.
GET /api/billing/invoiceBillTos
- Get paged collection of invoice bill tosGET /api/billing/invoiceBillTos/{invoiceId}
- Get a invoice bill to
Invoice Bill To Object JSON format
Invoice Bill To Object
InvoiceBillTo
definition.
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
invoiceId | Guid | no | no | Invoice identifier. |
siteId | int | no | no | Site identifier. |
firstName | string | no | yes | First name. |
lastName | string | no | yes | Last name. |
companyName | string | no | yes | Company name. |
email | string | no | yes | Email address. |
phone | string | no | yes | Phone number. |
countryOrRegion | string | no | yes | Country or region. |
stateOrProvince | string | no | yes | State or province. |
city | string | no | yes | City. |
mailingAddress | string | no | yes | Mailing address. |
jobTitle | string | no | yes | Job title. |
billTo | string | no | yes | Bill to. |
Invoice Bill To Endpoints
Get paged collection of invoice bill tos
GET /api/billing/invoiceBillTos
Parameters
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
siteId | string | no | Unique identifier of a Site . |
Response
The response is paged collection of InvoiceBillTo objects.
Example
Using curl
curl https://partner.comm100.io/api/billing/invoiceBillTos
-H 'Content-Type: application/json'
-X 'GET'
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"invoiceBillTos": [
{
"invoiceId": "27493bc9-9eb5-4bb3-2b95-08d9fc1fda3a",
"siteId": 10000,
"firstName": "1",
"lastName": "1",
"companyName": "1",
"email": "1@1.com",
"phone": "13111111111",
"countryOrRegion": "Afghanistan",
"stateOrProvince": "",
"city": "",
"mailingAddress": "1",
"jobTitle": "",
"billTo": "1"
}
],
"nextPage": null,
"previousPage": null,
"total": 4
}
Get a invoice bill to
GET /api/billing/invoiceBillTos/{invoiceId}
Parameters
Path Parameters
Name | Type | Required | Description |
---|---|---|---|
invoiceId | Guid | no | Unique identifier of a Invoice . |
Response
The response a InvoiceBillTo object.
Example
Using curl
curl https://partner.comm100.io/api/billing/invoiceBillTos/27493bc9-9eb5-4bb3-2b95-08d9fc1fda3a \
-H 'Content-Type: application/json' \
-X 'GET' \
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"invoiceId": "27493bc9-9eb5-4bb3-2b95-08d9fc1fda3a",
"siteId": 10000,
"firstName": "1",
"lastName": "1",
"companyName": "1",
"email": "1@1.com",
"phone": "13111111111",
"countryOrRegion": "Afghanistan",
"stateOrProvince": "",
"city": "",
"mailingAddress": "1",
"jobTitle": "",
"billTo": "1"
}