Download OpenAPI specification:Download
AlphaOTT Middleware consists of several subsystems communicating with each other and other external systems like Billing System using a well-defined set of APIs
The main Middleware subsystems are:
Service Delivery Platform manages end-user accounts, devices, services and provides access to the IPTV/OTV services for the client applications.
The core entities are:
It provides the following integration points:
Content Management Platform manages content items, groups, packages and catalogs, also defines the media access rules, encryption, recording and other content related things.
The core entities are:
It provides the following integration points:
Client Applications provide customer UI to access to the IPTV/OTT services and content
All client applications access the system using IClientAPI implemented by the Client Services component of Service Delivery Platform
Billing System provides available products(tariffs) and offers(plans) by customer request, process & manages the customer orders/subscriptions.
Here is an architecture overview diagram
AlphaOTT Middleware communicates with Billing System in two main aspects:
In order to integrate the external Billing System with AlphaOTT Middleware the Billing Adapter component should be developed implementing the bridge between AlphaOTT APIs and Customer's Billing System APIs
Product Catalog is a part of Billing subsystem.
It defines how exactly the IPTV/OTT services provided by Service Delivery Platform should be bundled and proposed to the end user.
The core entities are:
It provides the following integration points:
Order Management and Fullfilment process & manages customer orders/subscriptions and provision the services to the Service Delivery Platform
The core entities are:
It provides the folowing integration points:
Example:
Authorization: JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzIOiJPazhCYzNmc0o0RGcwZGg2YkRIOWJkOHdnMWdjZXQiLCJjbGllbIxNzguNzQuODSI6eyJfaWQiOiJiN2JlYmNjMy0xZWJjLTQ3MmUtODI1Ni0yNTg2ZmEyMDc3NjAiLCJ0eXBlIjoiVU5LTk9XTiIsInBsYXRmb3JtIjoiR0VORVJJQyIsInNlcmlhbCI6IjZBRUE2MDU5MzE3RjczRiIsIm1hYyI6IkYzOjFGOjY6RDM6Q0U6OTcifSwiZ3JhbnRfc2NvcGUiOiJjbGllbnQtYXBpIiwiZ3JhbnRfdHlwZSI6ImFjY2Vzc190b2tlbiIsImlhdCI6MTUzNDQ4Nzg5OCwiZXhwIjoxNTM0NTc0Mjk4LCJhdWQiOiJ6YWFwdHYiLCJpc3MiOiJjbG91ZGFudGVubmUuY2giLCJzdWIiOiI1YTBkMzcxYmY2ZjNjMTAwMDExNTQ1YzgiLCJqdGkiOiJFbGlTVW9kRXlucWZmWVdlIn0.wgQtIVVT2XkbpEV39Dh4Tw67IL9XP2bxOMGIjArHFKQ
Security Scheme Type | API Key |
---|---|
Header parameter name: | Authorization |
ICustomerManagementAPI implemented by Service Delivery Platform and provides methods to manage customers entities
status | Array of strings (status) Items Enum: "ACTIVE" "INACTIVE" "AWAITING_AUTHORIZATION" "SUSPENDED_BY_CUSTOMER" "SUSPENDED_BY_BILLING" "DELETED" Filter customers by status. |
string Example: email=customer@example.com Filter customers by email. | |
extraFields | string Example: extraFields=orders Get customer orders. |
limit | integer [ 1 .. 100 ] Default: 50 The numbers of items to return |
offset | integer >= 0 Default: 0 The number of items to skip before starting to collect the result set |
{- "title": "",
- "firstName": "Oliver",
- "lastName": "Queen",
- "middleName": "",
- "prefix": "Mr",
- "suffix": "Sr",
- "activated": "2017-05-12T14:16:27.134Z",
- "created": "2017-05-12T14:16:27.134Z",
- "status": "ACTIVE",
- "email": "oliver@queen.com",
- "serviceProvider": "alphaott",
- "location": {
- "ip": "216.162.47.73"
}, - "billingAddress": {
- "address": "Tade Street",
- "city": "New York",
- "zip": "123 45",
- "country": "USA"
}, - "address": {
- "address": "Tade Street",
- "city": "New York",
- "zip": "123 45",
- "country": "USA"
}, - "phones": [
- "+21 123123123"
]
}
title | string |
firstName | string |
lastName | string |
middleName | string |
prefix | string |
suffix | string |
activated | string <date-time> |
created | string <date-time> |
status | string Enum: "ACTIVE" "INACTIVE" "AWAITING_AUTHORIZATION" "SUSPENDED_BY_CUSTOMER" "SUSPENDED_BY_BILLING" "DELETED" |
string | |
serviceProvider | string |
object | |
object (Address) | |
object (Address) | |
phones | Array of strings |
{- "title": "",
- "firstName": "Oliver",
- "lastName": "Queen",
- "middleName": "",
- "prefix": "Mr",
- "suffix": "Sr",
- "activated": "2017-05-12T14:16:27.134Z",
- "created": "2017-05-12T14:16:27.134Z",
- "status": "ACTIVE",
- "email": "oliver@queen.com",
- "serviceProvider": "alphaott",
- "location": {
- "ip": "216.162.47.73"
}, - "billingAddress": {
- "address": "Tade Street",
- "city": "New York",
- "zip": "123 45",
- "country": "USA"
}, - "address": {
- "address": "Tade Street",
- "city": "New York",
- "zip": "123 45",
- "country": "USA"
}, - "phones": [
- "+21 123123123"
]
}
{- "title": "",
- "firstName": "Oliver",
- "lastName": "Queen",
- "middleName": "",
- "prefix": "Mr",
- "suffix": "Sr",
- "activated": "2017-05-12T14:16:27.134Z",
- "created": "2017-05-12T14:16:27.134Z",
- "status": "ACTIVE",
- "email": "oliver@queen.com",
- "serviceProvider": "alphaott",
- "location": {
- "ip": "216.162.47.73"
}, - "billingAddress": {
- "address": "Tade Street",
- "city": "New York",
- "zip": "123 45",
- "country": "USA"
}, - "address": {
- "address": "Tade Street",
- "city": "New York",
- "zip": "123 45",
- "country": "USA"
}, - "phones": [
- "+21 123123123"
]
}
extraFields | string Example: extraFields=orders Get customer orders. |
{- "title": "",
- "firstName": "Oliver",
- "lastName": "Queen",
- "middleName": "",
- "prefix": "Mr",
- "suffix": "Sr",
- "activated": "2017-05-12T14:16:27.134Z",
- "created": "2017-05-12T14:16:27.134Z",
- "status": "ACTIVE",
- "email": "oliver@queen.com",
- "serviceProvider": "alphaott",
- "location": {
- "ip": "216.162.47.73"
}, - "billingAddress": {
- "address": "Tade Street",
- "city": "New York",
- "zip": "123 45",
- "country": "USA"
}, - "address": {
- "address": "Tade Street",
- "city": "New York",
- "zip": "123 45",
- "country": "USA"
}, - "phones": [
- "+21 123123123"
]
}
title | string |
firstName | string |
lastName | string |
middleName | string |
prefix | string |
suffix | string |
activated | string <date-time> |
created | string <date-time> |
status | string Enum: "ACTIVE" "INACTIVE" "AWAITING_AUTHORIZATION" "SUSPENDED_BY_CUSTOMER" "SUSPENDED_BY_BILLING" "DELETED" |
string | |
serviceProvider | string |
object | |
object (Address) | |
object (Address) | |
phones | Array of strings |
{- "title": "",
- "firstName": "Oliver",
- "lastName": "Queen",
- "middleName": "",
- "prefix": "Mr",
- "suffix": "Sr",
- "activated": "2017-05-12T14:16:27.134Z",
- "created": "2017-05-12T14:16:27.134Z",
- "status": "ACTIVE",
- "email": "oliver@queen.com",
- "serviceProvider": "alphaott",
- "location": {
- "ip": "216.162.47.73"
}, - "billingAddress": {
- "address": "Tade Street",
- "city": "New York",
- "zip": "123 45",
- "country": "USA"
}, - "address": {
- "address": "Tade Street",
- "city": "New York",
- "zip": "123 45",
- "country": "USA"
}, - "phones": [
- "+21 123123123"
]
}
{- "title": "",
- "firstName": "Oliver",
- "lastName": "Queen",
- "middleName": "",
- "prefix": "Mr",
- "suffix": "Sr",
- "activated": "2017-05-12T14:16:27.134Z",
- "created": "2017-05-12T14:16:27.134Z",
- "status": "ACTIVE",
- "email": "oliver@queen.com",
- "serviceProvider": "alphaott",
- "location": {
- "ip": "216.162.47.73"
}, - "billingAddress": {
- "address": "Tade Street",
- "city": "New York",
- "zip": "123 45",
- "country": "USA"
}, - "address": {
- "address": "Tade Street",
- "city": "New York",
- "zip": "123 45",
- "country": "USA"
}, - "phones": [
- "+21 123123123"
]
}
{- "code": "UnauthorizedError",
- "message": "Authorization required"
}
password required | string |
{- "password": "new-password"
}
{- "message": "Password has been successfully changed"
}
{- "message": "Password has been successfully changed"
}
ICustomerDeviceManagementAPI implemented by Service Delivery Platform and provides methods to manage customer devices
status | Array of strings (properties-status) Items Enum: "ACTIVE" "INACTIVE" "BROKEN" "STOCK" "RETIRED" Example: status=ACTIVE Filter devices by status`. |
[- {
- "_id": "4e8e8494-ef9f-4bc1-9c65-31ef1e372f05",
- "type": "UNKNOWN",
- "model": "Gecko",
- "platform": "BROWSER",
- "brand": "Google Inc.",
- "serial": "DA094B950608D8BA",
- "mac": "82:90:A8:59:D2:B1:C0:76",
- "created": "2017-05-12T14:16:27.134Z",
- "status": "ACTIVE"
}
]
_id | string |
type | string Enum: "UNKNOWN" "STB" "PC" "TV" "MOBILE" "TABLET" |
model | string |
platform | string |
brand | string |
serial | string |
mac | string |
created | string <date-time> |
status | string Enum: "ACTIVE" "INACTIVE" "BROKEN" "STOCK" "RETIRED" |
{- "_id": "4e8e8494-ef9f-4bc1-9c65-31ef1e372f05",
- "type": "UNKNOWN",
- "model": "Gecko",
- "platform": "BROWSER",
- "brand": "Google Inc.",
- "serial": "DA094B950608D8BA",
- "mac": "82:90:A8:59:D2:B1:C0:76",
- "created": "2017-05-12T14:16:27.134Z",
- "status": "ACTIVE"
}
[- {
- "_id": "4e8e8494-ef9f-4bc1-9c65-31ef1e372f05",
- "type": "UNKNOWN",
- "model": "Gecko",
- "platform": "BROWSER",
- "brand": "Google Inc.",
- "serial": "DA094B950608D8BA",
- "mac": "82:90:A8:59:D2:B1:C0:76",
- "created": "2017-05-12T14:16:27.134Z",
- "status": "ACTIVE"
}
]
{- "_id": "4e8e8494-ef9f-4bc1-9c65-31ef1e372f05",
- "type": "UNKNOWN",
- "model": "Gecko",
- "platform": "BROWSER",
- "brand": "Google Inc.",
- "serial": "DA094B950608D8BA",
- "mac": "82:90:A8:59:D2:B1:C0:76",
- "created": "2017-05-12T14:16:27.134Z",
- "status": "ACTIVE"
}
status | string (properties-status) Enum: "ACTIVE" "INACTIVE" "BROKEN" "STOCK" "RETIRED" |
{- "status": "ACTIVE"
}
{- "_id": "4e8e8494-ef9f-4bc1-9c65-31ef1e372f05",
- "type": "UNKNOWN",
- "model": "Gecko",
- "platform": "BROWSER",
- "brand": "Google Inc.",
- "serial": "DA094B950608D8BA",
- "mac": "82:90:A8:59:D2:B1:C0:76",
- "created": "2017-05-12T14:16:27.134Z",
- "status": "ACTIVE"
}
{- "code": "UnauthorizedError",
- "message": "Authorization required"
}
IServiceProvisioningAPI implemented by Service Delivery Platform and provides methods to provision services to the specific customer
status | Array of strings (Service-properties-status) Items Enum: "ACTIVE" "INACTIVE" "EXPIRED" "FROZEN" "DELETED" Filter services by status`. |
[- {
- "_id": "5915c3bacc8e1e13969de081",
- "activated": "2017-05-12T14:16:27.134Z",
- "created": "2017-05-12T14:16:27.134Z",
- "expires": "2018-01-29T04:27:16.275Z",
- "updated": "2017-12-29T04:27:16.275Z",
- "serviceType": "LIVE_TV",
- "status": "ACTIVE",
- "contentType": "TV",
- "scope": "ONE_ITEM",
- "externalRefs": [
- {
- "type": "",
- "ref": ""
}
], - "serviceSpec": "5915c39c1d6d2f134d69afb1"
}
]
status | string (Service-properties-status) Enum: "ACTIVE" "INACTIVE" "EXPIRED" "FROZEN" "DELETED" |
expires | string <date-time> (expires) |
serviceSpec | any (ServiceSpecId) Service specification id |
{- "status": "ACTIVE",
- "expires": "2018-01-29T04:27:16.275Z",
- "serviceSpec": "4e8e8494-ef9f-4bc1-9c65-31ef1e372f05"
}
[- {
- "_id": "5915c3bacc8e1e13969de081",
- "activated": "2017-05-12T14:16:27.134Z",
- "created": "2017-05-12T14:16:27.134Z",
- "expires": "2018-01-29T04:27:16.275Z",
- "updated": "2017-12-29T04:27:16.275Z",
- "serviceType": "LIVE_TV",
- "status": "ACTIVE",
- "contentType": "TV",
- "scope": "ONE_ITEM",
- "externalRefs": [
- {
- "type": "",
- "ref": ""
}
], - "serviceSpec": "5915c39c1d6d2f134d69afb1"
}
]
{- "_id": "5915c3bacc8e1e13969de081",
- "activated": "2017-05-12T14:16:27.134Z",
- "created": "2017-05-12T14:16:27.134Z",
- "expires": "2018-01-29T04:27:16.275Z",
- "updated": "2017-12-29T04:27:16.275Z",
- "serviceType": "LIVE_TV",
- "status": "ACTIVE",
- "contentType": "TV",
- "scope": "ONE_ITEM",
- "externalRefs": [
- {
- "type": "",
- "ref": ""
}
], - "serviceSpec": "5915c39c1d6d2f134d69afb1"
}
{- "code": "UnauthorizedError",
- "message": "Authorization required"
}
IServiceManagementAPI implemented by Service Delivery Platform and provides methods to manage Service Specifications
status | Array of strings (ServiceSpec-properties-status) Items Enum: "ACTIVE" "INACTIVE" "EXPIRED" "FROZEN" "DELETED" Filter service specifications by status |
serviceType | Array of strings (serviceType) Items Enum: "LIVE_TV" "CATCHUP_TV" "RADIO" "VOD" "APPS" Filter service specifications by type |
contentType | Array of strings (contentType) Items Enum: "TV" "RADIO" "MOVIE" "APP" "TV_SHOW" Filter service specifications by content type |
limit | integer [ 1 .. 100 ] Default: 50 The numbers of items to return |
offset | integer >= 0 Default: 0 The number of items to skip before starting to collect the result set |
[- {
- "_id": "5915c3bacc8e1e13969de081",
- "activated": "2017-05-12T14:16:27.134Z",
- "created": "2017-05-12T14:16:27.134Z",
- "expires": "2018-01-29T04:27:16.275Z",
- "updated": "2017-12-29T04:27:16.275Z",
- "serviceType": "LIVE_TV",
- "status": "ACTIVE",
- "contentType": "TV",
- "scope": "ONE_ITEM",
- "externalRefs": [
- {
- "type": "",
- "ref": ""
}
]
}
]
{- "_id": "5915c3bacc8e1e13969de081",
- "activated": "2017-05-12T14:16:27.134Z",
- "created": "2017-05-12T14:16:27.134Z",
- "expires": "2018-01-29T04:27:16.275Z",
- "updated": "2017-12-29T04:27:16.275Z",
- "serviceType": "LIVE_TV",
- "status": "ACTIVE",
- "contentType": "TV",
- "scope": "ONE_ITEM",
- "externalRefs": [
- {
- "type": "",
- "ref": ""
}
]
}
IProductCatalogAPI should be implemented by external Billing System to get Products and Offers for the specific Customer to order
status | Array of strings (ProductSpec-properties-status) Items Enum: "ACTTIVE" "INACTIVE" "EXPIRED" "DRAFT" Filter product specifications by status`. |
limit | integer [ 1 .. 100 ] Default: 50 The numbers of items to return |
offset | integer >= 0 Default: 0 The number of items to skip before starting to collect the result set |
[- {
- "_id": "5915c3bacc8e1e13969de081",
- "title": "string",
- "description": "string",
- "scope": "ONE_ITEM",
- "status": "ACTTIVE",
- "serviceSpecs": [
- "string"
], - "created": "2017-12-29T04:27:16.275Z",
- "updated": "2017-12-29T04:27:16.275Z",
- "expires": "2018-01-29T04:27:16.275Z",
- "posters": [
- {
- "_id": "5c7fdbbf12e69800011860cd",
- "title": "Main Poster",
- "width": 300,
- "height": 300
}
], - "externalRefs": [
- {
- "type": "",
- "ref": ""
}
]
}
]
status | string Enum: "ACTIVE" "INACTIVE" Filter offers by status`. |
[- {
- "_id": "string",
- "productSpec": "string",
- "title": "string",
- "description": "string",
- "duration": 0,
- "period": "DAY",
- "numberOfBillingCycles": 0,
- "type": "ONE_TIME",
- "status": "ACTTIVE",
- "charges": [
- {
- "title": "string",
- "description": "string",
- "amount": 10,
- "currency": "USD",
- "type": "ACTIVATION"
}
], - "created": "2017-12-29T04:27:16.275Z",
- "updated": "2017-12-29T04:27:16.275Z",
- "expires": "2018-01-29T04:27:16.275Z",
- "externalRefs": [
- {
- "type": "",
- "ref": ""
}
]
}
]
IProductManagementAPI should be implemented by external Billing System to manage Product Specifications(Tarifs) and Product Offers(Plans)
status | Array of strings (ProductSpec-properties-status) Items Enum: "ACTTIVE" "INACTIVE" "EXPIRED" "DRAFT" Filter product specifications by status`. |
limit | integer [ 1 .. 100 ] Default: 50 The numbers of items to return |
offset | integer >= 0 Default: 0 The number of items to skip before starting to collect the result set |
[- {
- "_id": "5915c3bacc8e1e13969de081",
- "title": "string",
- "description": "string",
- "scope": "ONE_ITEM",
- "status": "ACTTIVE",
- "serviceSpecs": [
- "string"
], - "created": "2017-12-29T04:27:16.275Z",
- "updated": "2017-12-29T04:27:16.275Z",
- "expires": "2018-01-29T04:27:16.275Z",
- "posters": [
- {
- "_id": "5c7fdbbf12e69800011860cd",
- "title": "Main Poster",
- "width": 300,
- "height": 300
}
], - "externalRefs": [
- {
- "type": "",
- "ref": ""
}
]
}
]
{- "_id": "5915c3bacc8e1e13969de081",
- "title": "string",
- "description": "string",
- "scope": "ONE_ITEM",
- "status": "ACTTIVE",
- "serviceSpecs": [
- "string"
], - "created": "2017-12-29T04:27:16.275Z",
- "updated": "2017-12-29T04:27:16.275Z",
- "expires": "2018-01-29T04:27:16.275Z",
- "posters": [
- {
- "_id": "5c7fdbbf12e69800011860cd",
- "title": "Main Poster",
- "width": 300,
- "height": 300
}
], - "externalRefs": [
- {
- "type": "",
- "ref": ""
}
]
}
_id | string Product specification ID |
title | string |
description | string |
scope | string Enum: "ONE_ITEM" "ALL_ITEMS" |
status | string Enum: "ACTTIVE" "INACTIVE" "EXPIRED" "DRAFT" |
serviceSpecs | Array of strings |
created | string <date-time> |
updated | string <date-time> |
expires | string <date-time> |
Array of objects | |
Array of objects |
{- "_id": "5915c3bacc8e1e13969de081",
- "title": "string",
- "description": "string",
- "scope": "ONE_ITEM",
- "status": "ACTTIVE",
- "serviceSpecs": [
- "string"
], - "created": "2017-12-29T04:27:16.275Z",
- "updated": "2017-12-29T04:27:16.275Z",
- "expires": "2018-01-29T04:27:16.275Z",
- "posters": [
- {
- "_id": "5c7fdbbf12e69800011860cd",
- "title": "Main Poster",
- "width": 300,
- "height": 300
}
], - "externalRefs": [
- {
- "type": "",
- "ref": ""
}
]
}
{- "_id": "5915c3bacc8e1e13969de081",
- "title": "string",
- "description": "string",
- "scope": "ONE_ITEM",
- "status": "ACTTIVE",
- "serviceSpecs": [
- "string"
], - "created": "2017-12-29T04:27:16.275Z",
- "updated": "2017-12-29T04:27:16.275Z",
- "expires": "2018-01-29T04:27:16.275Z",
- "posters": [
- {
- "_id": "5c7fdbbf12e69800011860cd",
- "title": "Main Poster",
- "width": 300,
- "height": 300
}
], - "externalRefs": [
- {
- "type": "",
- "ref": ""
}
]
}
{- "code": "UnauthorizedError",
- "message": "Authorization required"
}
status | string Enum: "ACTIVE" "INACTIVE" Filter offers by status`. |
[- {
- "_id": "string",
- "productSpec": "string",
- "title": "string",
- "description": "string",
- "duration": 0,
- "period": "DAY",
- "numberOfBillingCycles": 0,
- "type": "ONE_TIME",
- "status": "ACTTIVE",
- "charges": [
- {
- "title": "string",
- "description": "string",
- "amount": 10,
- "currency": "USD",
- "type": "ACTIVATION"
}
], - "created": "2017-12-29T04:27:16.275Z",
- "updated": "2017-12-29T04:27:16.275Z",
- "expires": "2018-01-29T04:27:16.275Z",
- "externalRefs": [
- {
- "type": "",
- "ref": ""
}
]
}
]
_id | string Product offer ID |
productSpec | string Product specification ID |
title | string |
description | string |
duration | number |
period | string Enum: "DAY" "MONTH" "QUARTER" "YEAR" |
numberOfBillingCycles | number |
type | string Enum: "ONE_TIME" "RECURRING" |
status | string Enum: "ACTTIVE" "INACTIVE" |
Array of objects | |
created | string <date-time> |
updated | string <date-time> |
expires | string <date-time> |
Array of objects |
{- "_id": "string",
- "productSpec": "string",
- "title": "string",
- "description": "string",
- "duration": 0,
- "period": "DAY",
- "numberOfBillingCycles": 0,
- "type": "ONE_TIME",
- "status": "ACTTIVE",
- "charges": [
- {
- "title": "string",
- "description": "string",
- "amount": 10,
- "currency": "USD",
- "type": "ACTIVATION"
}
], - "created": "2017-12-29T04:27:16.275Z",
- "updated": "2017-12-29T04:27:16.275Z",
- "expires": "2018-01-29T04:27:16.275Z",
- "externalRefs": [
- {
- "type": "",
- "ref": ""
}
]
}
{- "code": "UnauthorizedError",
- "message": "Authorization required"
}
{- "_id": "string",
- "productSpec": "string",
- "title": "string",
- "description": "string",
- "duration": 0,
- "period": "DAY",
- "numberOfBillingCycles": 0,
- "type": "ONE_TIME",
- "status": "ACTTIVE",
- "charges": [
- {
- "title": "string",
- "description": "string",
- "amount": 10,
- "currency": "USD",
- "type": "ACTIVATION"
}
], - "created": "2017-12-29T04:27:16.275Z",
- "updated": "2017-12-29T04:27:16.275Z",
- "expires": "2018-01-29T04:27:16.275Z",
- "externalRefs": [
- {
- "type": "",
- "ref": ""
}
]
}
_id | string Product offer ID |
productSpec | string Product specification ID |
title | string |
description | string |
duration | number |
period | string Enum: "DAY" "MONTH" "QUARTER" "YEAR" |
numberOfBillingCycles | number |
type | string Enum: "ONE_TIME" "RECURRING" |
status | string Enum: "ACTTIVE" "INACTIVE" |
Array of objects | |
created | string <date-time> |
updated | string <date-time> |
expires | string <date-time> |
Array of objects |
{- "_id": "string",
- "productSpec": "string",
- "title": "string",
- "description": "string",
- "duration": 0,
- "period": "DAY",
- "numberOfBillingCycles": 0,
- "type": "ONE_TIME",
- "status": "ACTTIVE",
- "charges": [
- {
- "title": "string",
- "description": "string",
- "amount": 10,
- "currency": "USD",
- "type": "ACTIVATION"
}
], - "created": "2017-12-29T04:27:16.275Z",
- "updated": "2017-12-29T04:27:16.275Z",
- "expires": "2018-01-29T04:27:16.275Z",
- "externalRefs": [
- {
- "type": "",
- "ref": ""
}
]
}
{- "_id": "string",
- "productSpec": "string",
- "title": "string",
- "description": "string",
- "duration": 0,
- "period": "DAY",
- "numberOfBillingCycles": 0,
- "type": "ONE_TIME",
- "status": "ACTTIVE",
- "charges": [
- {
- "title": "string",
- "description": "string",
- "amount": 10,
- "currency": "USD",
- "type": "ACTIVATION"
}
], - "created": "2017-12-29T04:27:16.275Z",
- "updated": "2017-12-29T04:27:16.275Z",
- "expires": "2018-01-29T04:27:16.275Z",
- "externalRefs": [
- {
- "type": "",
- "ref": ""
}
]
}
{- "code": "UnauthorizedError",
- "message": "Authorization required"
}
IOrderManagementAPI should be implemented by external Billing System to manage Orders(Subscriptions) for the specific Customer
status | Array of strings (Order-properties-status) Items Enum: "ACTTIVE" "INACTIVE" "EXPIRED" "CANCELED" "DELETED" Filter orders by status`. |
limit | integer [ 1 .. 100 ] Default: 50 The numbers of items to return |
offset | integer >= 0 Default: 0 The number of items to skip before starting to collect the result set |
[- {
- "_id": "5915c3bacc8e1e13969de081",
- "duration": 0,
- "period": "DAY",
- "numberOfBillingCycles": 0,
- "type": "ONE_TIME",
- "status": "ACTTIVE",
- "offer": "string",
- "customer": "string",
- "nextBillingCycle": "2017-12-29T04:27:16.275Z",
- "created": "2017-12-29T04:27:16.275Z",
- "updated": "2017-12-29T04:27:16.275Z",
- "expires": "2018-01-29T04:27:16.275Z",
- "externalRefs": [
- {
- "type": "",
- "ref": ""
}
]
}
]
Order will be created without customer services in case createCustomerServices not true as default value for this flag is false
createCustomerServices | booelan Default: false Flag to enable adding services to customer |
_id | string Order ID |
duration | number |
period | string Enum: "DAY" "MONTH" "QUARTER" "YEAR" |
numberOfBillingCycles | integer |
type | string Enum: "ONE_TIME" "RECURRING" |
status | string Enum: "ACTTIVE" "INACTIVE" "EXPIRED" "CANCELED" "DELETED" |
offer | string Product offer id |
customer | string Customer id |
nextBillingCycle | string <date-time> |
created | string <date-time> |
updated | string <date-time> |
expires | string <date-time> |
Array of objects |
{- "createCustomerServices": false,
- "_id": "5915c3bacc8e1e13969de081",
- "duration": 0,
- "period": "DAY",
- "numberOfBillingCycles": 0,
- "type": "ONE_TIME",
- "status": "ACTTIVE",
- "offer": "string",
- "customer": "string",
- "nextBillingCycle": "2017-12-29T04:27:16.275Z",
- "created": "2017-12-29T04:27:16.275Z",
- "updated": "2017-12-29T04:27:16.275Z",
- "expires": "2018-01-29T04:27:16.275Z",
- "externalRefs": [
- {
- "type": "",
- "ref": ""
}
]
}
{- "code": "UnauthorizedError",
- "message": "Authorization required"
}
{- "_id": "5915c3bacc8e1e13969de081",
- "duration": 0,
- "period": "DAY",
- "numberOfBillingCycles": 0,
- "type": "ONE_TIME",
- "status": "ACTTIVE",
- "offer": "string",
- "customer": "string",
- "nextBillingCycle": "2017-12-29T04:27:16.275Z",
- "created": "2017-12-29T04:27:16.275Z",
- "updated": "2017-12-29T04:27:16.275Z",
- "expires": "2018-01-29T04:27:16.275Z",
- "externalRefs": [
- {
- "type": "",
- "ref": ""
}
]
}
status | string (Order-properties-status) Enum: "ACTTIVE" "INACTIVE" "EXPIRED" "CANCELED" "DELETED" |
expires | string <date-time> (expires) |
nextBillingCycle | string <date-time> (nextBillingCycle) |
numberOfBillingCycles | integer (numberOfBillingCycles) |
{- "status": "ACTTIVE",
- "expires": "2018-01-29T04:27:16.275Z",
- "nextBillingCycle": "2017-12-29T04:27:16.275Z",
- "numberOfBillingCycles": 0
}
{- "_id": "5915c3bacc8e1e13969de081",
- "duration": 0,
- "period": "DAY",
- "numberOfBillingCycles": 0,
- "type": "ONE_TIME",
- "status": "ACTTIVE",
- "offer": "string",
- "customer": "string",
- "nextBillingCycle": "2017-12-29T04:27:16.275Z",
- "created": "2017-12-29T04:27:16.275Z",
- "updated": "2017-12-29T04:27:16.275Z",
- "expires": "2018-01-29T04:27:16.275Z",
- "externalRefs": [
- {
- "type": "",
- "ref": ""
}
]
}
{- "code": "UnauthorizedError",
- "message": "Authorization required"
}
type | string Enum: "PAYMENT" "REFUND" Filter transactions by type`. |
[- {
- "_id": "5915c3bacc8e1e13969de081",
- "title": "string",
- "description": "string",
- "amount": 102.5,
- "currency": "USD",
- "created": "2017-05-12T14:16:27.134Z",
- "externalRefs": [
- {
- "type": "",
- "ref": ""
}
]
}
]
{- "amount": 102.5,
- "currency": "USD"
}
offerId | string Product Offer ID |
returnUrl | string Return URL. After customer finished the payment process billing should redirect him back to the MW Client UI |
{- "offerId": "5915c3bacc8e1e13969de081",
}
{- "hostedPageId": "JI92GibtTdyyR468Rtuj",
}
type required | string Example: type=chargebee-01 Billing System Identifier in as configured in MW |
id required | string Example: id=4qiN5QfYP Hosted page Id |
orderId | string Example: orderId=4qiN5QfYPN8U48nSMRX3FMgJJbJ28HFH Order Id |
status required | string Enum: "succeded" "processing" "failed" Example: status=success Payment status |
JWT:
Authorization: JWT eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjbGllbnRfaXAiOiI6OjEiLCJncmFudF90eXBlIjoiYWNjZXNzX3Rva2VuIiwiaWF0IjoxNjYzNzQwMzg4LCJleHAiOjE3MjY4NTU1ODgsImF1ZCI6InNlcnZpY2VQcm92aWRlcklkIiwiaXNzIjoibG9jYWwtYWRtaW4tYWxwaGFvdHQiLCJzdWIiOiI1Yzg1ZTIxYjEyZTY5ODAwMDExODY4M2UiLCJqdGkiOiI5OTE4NGJmMS0xOWQyLTQ2NmUtYTA0YS00YmYzNjI2MDhjZTkifQ.GugZzF9AoZVxqCns_7a_ALa3I_G8inGDI6O-0KhAZ28
Security Scheme Type | API Key |
---|---|
Header parameter name: | Authorization |
Full Operation:
query CustomerActivityPagination($page: Int, $perPage: Int, $filter: FilterFindManyCustomerActivityInput, $sort: [SortFindManyCustomerActivityInput!]) {
customerActivityPagination(page: $page, perPage: $perPage, filter: $filter, sort: $sort) {
count
pageInfo {
currentPage
perPage
pageCount
itemCount
hasNextPage
hasPreviousPage
}
items {
_id
customer
device
ip
date
action
details
}
}
}
Variables:
{
"page": null,
"perPage": null,
"filter": {
"customer": null,
"device": null,
"ip": null,
"date": null,
"action": null,
"details": null,
"_id": null
},
"sort": null
}
Example
Operation: Get 100 customer activity items filtered by the customer
query CustomerActivityPagination($perPage: Int, $filter: FilterFindManyCustomerActivityInput, $sort: [SortFindManyCustomerActivityInput!]) {
customerActivityPagination(perPage: $perPage, filter: $filter, sort: $sort) {
count
items {
customer
device
ip
date
}
}
}
Variables:
{
"perPage": 100,
"filter": {
"customer": "5b9774e8fbd891004f485ca2"
},
"sort": "DATE_ASC"
}