AlphaOTT Middleware Integration APIs (0.8.1)

Download OpenAPI specification:Download

Middleware Subsystems

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
  • Content Management Platform
  • Client Applications

Service Delivery Platform

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:

  • Customer
    • Service
    • Device
    • Profile
    • Account
  • Service Specification

It provides the following integration points:

  • ICustomerManagementAPI
  • IServiceProvisioningAPI
  • IServiceManagementAPI

Service Delivery Platform Overview Diagram

Content Management Platform

Content Management Platform manages content items, groups, packages and catalogs, also defines the media access rules, encryption, recording and other content related things.

Content Managment Platform Overview Diagram

The core entities are:

  • TV Channel
  • Radio Channel
  • Movie
  • TV Show
  • Application
  • Genre
  • Content Category
  • Content Package

It provides the following integration points:

  • IContentManagementAPI

Client Applications

Client Applications provide customer UI to access to the IPTV/OTT services and content

  • Mobile UI for Apple smartphones & tablets
  • Mobile UI for Android smartphones & tablets
  • TV UI for AndroidTV devices
  • TV UI for AppleTV devices
  • TV UI for SmartTV devices

All client applications access the system using IClientAPI implemented by the Client Services component of Service Delivery Platform

Client Applications Overview Diagram

Billing System

Billing System provides available products(tariffs) and offers(plans) by customer request, process & manages the customer orders/subscriptions.

Here is an architecture overview diagram

Overview Diagram

AlphaOTT Middleware communicates with Billing System in two main aspects:

  • Product Catalog
  • Order Management & Fullfilment

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

Billing Adapter Overview Diagram

Product Catalog

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:

  • Product Catalog
  • Product Specification
  • Product Offer

It provides the following integration points:

  • IProductManagementAPI
  • IProductCatalogAPI

Product Catalog Overview Diagram

Order Management and Fullfilment

Order Management and Fullfilment process & manages customer orders/subscriptions and provision the services to the Service Delivery Platform

The core entities are:

  • Order
  • Invoice
  • Transaction
  • Payment

It provides the folowing integration points:

  • IOrderManagementAPI

Order Management Overview Diagram

Use Cases

Customer -> Billing Use Cases Diagram

Customer orders subscription

  1. Customer ask MW to provide list of available Products (Tariffs) & Offers (Plans)
  2. MW request a list of Products & Offers for this Customer from Billing System using IProductCatalogAPI
  3. Customer choose some Offer for specific Product to order
  4. MW request IOrderManagementAPI.creatOrderHostedPage from Billing System
  5. Billing System provide the URL to the Hosted Page with payment form
  6. MW redirects customer to this Hosted Page
  7. Customer fill the payment form and submit the data on the hosted page (to the Billing System)
  8. Billing System handle the payment information from customer and process the payment
  9. After the payment succeded the Billing System activates the corresponding Services to the MW using IServiceProvisioningAPI
  10. MW provisions the Services so the customer will be able to consume the Services ordered

Authentication

JWT

Example:

Authorization: JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzIOiJPazhCYzNmc0o0RGcwZGg2YkRIOWJkOHdnMWdjZXQiLCJjbGllbIxNzguNzQuODSI6eyJfaWQiOiJiN2JlYmNjMy0xZWJjLTQ3MmUtODI1Ni0yNTg2ZmEyMDc3NjAiLCJ0eXBlIjoiVU5LTk9XTiIsInBsYXRmb3JtIjoiR0VORVJJQyIsInNlcmlhbCI6IjZBRUE2MDU5MzE3RjczRiIsIm1hYyI6IkYzOjFGOjY6RDM6Q0U6OTcifSwiZ3JhbnRfc2NvcGUiOiJjbGllbnQtYXBpIiwiZ3JhbnRfdHlwZSI6ImFjY2Vzc190b2tlbiIsImlhdCI6MTUzNDQ4Nzg5OCwiZXhwIjoxNTM0NTc0Mjk4LCJhdWQiOiJ6YWFwdHYiLCJpc3MiOiJjbG91ZGFudGVubmUuY2giLCJzdWIiOiI1YTBkMzcxYmY2ZjNjMTAwMDExNTQ1YzgiLCJqdGkiOiJFbGlTVW9kRXlucWZmWVdlIn0.wgQtIVVT2XkbpEV39Dh4Tw67IL9XP2bxOMGIjArHFKQ
Security Scheme Type API Key
Header parameter name: Authorization

Core

API Version

Provides version information for API services component deployed

Responses

200

OK

get/integration/api/version

AlphaOTT [production]

http://mw.{brand}.com/integration/api/version

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/integration/api/version

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "version": "1.1.8"
}

System Status

Provides status information for API services

Responses

200

OK

get/integration/api/status

AlphaOTT [production]

http://mw.{brand}.com/integration/api/status

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/integration/api/status

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "status": "OK"
}

Customer Management

ICustomerManagementAPI implemented by Service Delivery Platform and provides methods to manage customers entities

ICustomerManagementAPI Diagram

Get customers

Authorizations:
query Parameters
status
Array of strings
Items Enum: "ACTIVE" "INACTIVE" "AWAITING_AUTHORIZATION" "SUSPENDED" "DELETED"

Filter customers by status.

email
string
Example: email=customer@example.com

Filter customers by email.

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

Responses

200

OK

401

API key is missing or invalid

get/integration/api/customer

AlphaOTT [production]

http://mw.{brand}.com/integration/api/customer

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/integration/api/customer

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "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":
    {
    },
  • "billingAddress":
    {
    },
  • "address":
    {
    },
  • "phones":
    [
    ]
}

Create customer

Authorizations:
Request Body schema: application/json
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" "DELETED"
email
string
serviceProvider
string
location
object
billingAddress
object
address
object
phones
Array of strings

Responses

200

OK

401

API key is missing or invalid

post/integration/api/customer

AlphaOTT [production]

http://mw.{brand}.com/integration/api/customer

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/integration/api/customer

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "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":
    {
    },
  • "billingAddress":
    {
    },
  • "address":
    {
    },
  • "phones":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "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":
    {
    },
  • "billingAddress":
    {
    },
  • "address":
    {
    },
  • "phones":
    [
    ]
}

Get customer by Id

Authorizations:
path Parameters
customerId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Customer id

Responses

200

OK

401

API key is missing or invalid

404

Item not found

get/integration/api/customer/{customerId}

AlphaOTT [production]

http://mw.{brand}.com/integration/api/customer/{customerId}

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/integration/api/customer/{customerId}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "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":
    {
    },
  • "billingAddress":
    {
    },
  • "address":
    {
    },
  • "phones":
    [
    ]
}

Update customer

Authorizations:
path Parameters
customerId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Customer id

Request Body schema: application/json
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" "DELETED"
email
string
serviceProvider
string
location
object
billingAddress
object
address
object
phones
Array of strings

Responses

200

OK

401

API key is missing or invalid

404

Item not found

patch/integration/api/customer/{customerId}

AlphaOTT [production]

http://mw.{brand}.com/integration/api/customer/{customerId}

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/integration/api/customer/{customerId}

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "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":
    {
    },
  • "billingAddress":
    {
    },
  • "address":
    {
    },
  • "phones":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "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":
    {
    },
  • "billingAddress":
    {
    },
  • "address":
    {
    },
  • "phones":
    [
    ]
}

Remove customer

Authorizations:
path Parameters
customerId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Customer id

Responses

200

OK

401

API key is missing or invalid

404

Item not found

delete/integration/api/customer/{customerId}

AlphaOTT [production]

http://mw.{brand}.com/integration/api/customer/{customerId}

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/integration/api/customer/{customerId}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "code": "UnauthorizedError",
  • "message": "Authorization required"
}

Change customer password

Authorizations:
path Parameters
customerId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Customer id

Request Body schema: application/json
password
required
string

Responses

200

OK

401

API key is missing or invalid

404

Item not found

post/integration/api/customer/{customerId}/password

AlphaOTT [production]

http://mw.{brand}.com/integration/api/customer/{customerId}/password

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/integration/api/customer/{customerId}/password

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "password": "new-password"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "message": "Password has been successfully changed"
}

Reset customer password

Authorizations:
path Parameters
customerId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Customer id

Responses

200

OK

401

API key is missing or invalid

404

Item not found

delete/integration/api/customer/{customerId}/password

AlphaOTT [production]

http://mw.{brand}.com/integration/api/customer/{customerId}/password

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/integration/api/customer/{customerId}/password

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "message": "Password has been successfully changed"
}

Customer Device Management

ICustomerDeviceManagementAPI implemented by Service Delivery Platform and provides methods to manage customer devices

ICustomerDeviceManagementAPI Diagram

Get customer device list

Authorizations:
path Parameters
customerId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Customer id

query Parameters
status
Array of strings
Items Enum: "ACTIVE" "INACTIVE" "BROKEN" "STOCK" "RETIRED"
Example: status=ACTIVE

Filter devices by status`.

Responses

200

OK

401

API key is missing or invalid

404

Item not found

get/integration/api/customer/{customerId}/devices

AlphaOTT [production]

http://mw.{brand}.com/integration/api/customer/{customerId}/devices

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/integration/api/customer/{customerId}/devices

Response samples

Content type
application/json
Copy
Expand all Collapse all
[
  • {
    }
]

Add customer device

Authorizations:
path Parameters
customerId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Customer id

Request Body schema: application/json
_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"

Responses

200

OK

401

API key is missing or invalid

404

Item not found

post/integration/api/customer/{customerId}/devices

AlphaOTT [production]

http://mw.{brand}.com/integration/api/customer/{customerId}/devices

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/integration/api/customer/{customerId}/devices

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "_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"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
[
  • {
    }
]

Get customer device by id

Authorizations:
path Parameters
customerId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Customer id

deviceId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Device id

Responses

200

OK

401

API key is missing or invalid

404

Item not found

get/integration/api/customer/{customerId}/device/{deviceId}

AlphaOTT [production]

http://mw.{brand}.com/integration/api/customer/{customerId}/device/{deviceId}

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/integration/api/customer/{customerId}/device/{deviceId}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "_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"
}

Update customer device

Authorizations:
path Parameters
customerId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Customer id

deviceId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Device id

Request Body schema: application/json
status
string
Enum: "ACTIVE" "INACTIVE" "BROKEN" "STOCK" "RETIRED"

Responses

200

OK

401

API key is missing or invalid

404

Item not found

patch/integration/api/customer/{customerId}/device/{deviceId}

AlphaOTT [production]

http://mw.{brand}.com/integration/api/customer/{customerId}/device/{deviceId}

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/integration/api/customer/{customerId}/device/{deviceId}

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "status": "ACTIVE"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "_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"
}

Remove customer device

Authorizations:
path Parameters
customerId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Customer id

deviceId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Device id

Responses

200

OK

401

API key is missing or invalid

404

Item not found

delete/integration/api/customer/{customerId}/device/{deviceId}

AlphaOTT [production]

http://mw.{brand}.com/integration/api/customer/{customerId}/device/{deviceId}

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/integration/api/customer/{customerId}/device/{deviceId}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "code": "UnauthorizedError",
  • "message": "Authorization required"
}

Customer Service Provisioning

IServiceProvisioningAPI implemented by Service Delivery Platform and provides methods to provision services to the specific customer

IServiceProvisioningAPI Diagram

Get customer services list

Authorizations:
path Parameters
customerId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Customer id

query Parameters
status
Array of strings
Items Enum: "ACTIVE" "INACTIVE" "EXPIRED" "FROZEN" "DELETED"

Filter services by status`.

Responses

200

OK

401

API key is missing or invalid

404

Item not found

get/integration/api/customer/{customerId}/services

AlphaOTT [production]

http://mw.{brand}.com/integration/api/customer/{customerId}/services

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/integration/api/customer/{customerId}/services

Response samples

Content type
application/json
Copy
Expand all Collapse all
[
  • {
    }
]

Add customer service

Authorizations:
path Parameters
customerId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Customer id

Request Body schema: application/json
status
string
Enum: "ACTIVE" "INACTIVE" "EXPIRED" "FROZEN" "DELETED"
expires
string <date-time>
serviceSpec
any

Service specification id

Responses

200

OK

401

API key is missing or invalid

404

Item not found

post/integration/api/customer/{customerId}/services

AlphaOTT [production]

http://mw.{brand}.com/integration/api/customer/{customerId}/services

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/integration/api/customer/{customerId}/services

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "status": "ACTIVE",
  • "expires": "2018-01-29T04:27:16.275Z",
  • "serviceSpec": "4e8e8494-ef9f-4bc1-9c65-31ef1e372f05"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
[
  • {
    }
]

Get customer service by id

Authorizations:
path Parameters
customerId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Customer id

serviceId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Service id

Responses

200

OK

401

API key is missing or invalid

404

Item not found

get/integration/api/customer/{customerId}/service/{serviceId}

AlphaOTT [production]

http://mw.{brand}.com/integration/api/customer/{customerId}/service/{serviceId}

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/integration/api/customer/{customerId}/service/{serviceId}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "_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":
    [
    ],
  • "serviceSpec": "5915c39c1d6d2f134d69afb1"
}

Remove customer service

Authorizations:
path Parameters
customerId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Customer id

serviceId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Service id

Responses

200

OK

401

API key is missing or invalid

404

Item not found

delete/integration/api/customer/{customerId}/service/{serviceId}

AlphaOTT [production]

http://mw.{brand}.com/integration/api/customer/{customerId}/service/{serviceId}

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/integration/api/customer/{customerId}/service/{serviceId}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "code": "UnauthorizedError",
  • "message": "Authorization required"
}

Service Management

IServiceManagementAPI implemented by Service Delivery Platform and provides methods to manage Service Specifications

IServiceManagementAPI Diagram

Get service specifications

Authorizations:
query Parameters
status
Array of strings
Items Enum: "ACTIVE" "INACTIVE" "EXPIRED" "FROZEN" "DELETED"

Filter service specifications by status

serviceType
Array of strings
Items Enum: "LIVE_TV" "CATCHUP_TV" "RADIO" "VOD" "APPS"

Filter service specifications by type

contentType
Array of strings
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

Responses

200

OK

401

API key is missing or invalid

get/integration/api/services

AlphaOTT [production]

http://mw.{brand}.com/integration/api/services

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/integration/api/services

Response samples

Content type
application/json
Copy
Expand all Collapse all
[
  • {
    }
]

Get service specification by id

Authorizations:
path Parameters
serviceSpecId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Service specification id

Responses

200

OK

401

API key is missing or invalid

404

Item not found

get/integration/api/service/{serviceSpecId}

AlphaOTT [production]

http://mw.{brand}.com/integration/api/service/{serviceSpecId}

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/integration/api/service/{serviceSpecId}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "_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":
    [
    ]
}

Product Catalog

IProductCatalogAPI should be implemented by external Billing System to get Products and Offers for the specific Customer to order

IProductCatalogAPI Diagram

Get products specifications available for customer

Authorizations:
path Parameters
customerId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Customer id

query Parameters
status
Array of strings
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

Responses

200

OK

401

API key is missing or invalid

404

Item not found

get/external/api/customer/{customerId}/products

AlphaOTT [production]

http://mw.{brand}.com/external/api/customer/{customerId}/products

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/external/api/customer/{customerId}/products

Response samples

Content type
application/json
Copy
Expand all Collapse all
[
  • {
    }
]

Get product offers available for customer

Authorizations:
path Parameters
customerId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Customer id

productSpecId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Product specification id

query Parameters
status
string
Enum: "ACTIVE" "INACTIVE"

Filter offers by status`.

Responses

200

OK

401

API key is missing or invalid

404

Item not found

get/external/api/customer/{customerId}/product/{productSpecId}/offer

AlphaOTT [production]

http://mw.{brand}.com/external/api/customer/{customerId}/product/{productSpecId}/offer

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/external/api/customer/{customerId}/product/{productSpecId}/offer

Response samples

Content type
application/json
Copy
Expand all Collapse all
[
  • {
    }
]

Product Management

IProductManagementAPI should be implemented by external Billing System to manage Product Specifications(Tarifs) and Product Offers(Plans)

IProductManagementAPI Diagram

Get product specifications

Authorizations:
query Parameters
status
Array of strings
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

Responses

200

OK

401

API key is missing or invalid

404

Item not found

get/external/api/products

AlphaOTT [production]

http://mw.{brand}.com/external/api/products

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/external/api/products

Response samples

Content type
application/json
Copy
Expand all Collapse all
[
  • {
    }
]

Get product specification

Authorizations:
path Parameters
productSpecId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Product specification id

Responses

200

OK

401

API key is missing or invalid

404

Item not found

get/external/api/product/{productSpecId}

AlphaOTT [production]

http://mw.{brand}.com/external/api/product/{productSpecId}

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/external/api/product/{productSpecId}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "_id": "5915c3bacc8e1e13969de081",
  • "title": "string",
  • "description": "string",
  • "scope": "ONE_ITEM",
  • "status": "ACTTIVE",
  • "serviceSpecs":
    [
    ],
  • "created": "2017-12-29T04:27:16.275Z",
  • "updated": "2017-12-29T04:27:16.275Z",
  • "expires": "2018-01-29T04:27:16.275Z",
  • "posters":
    [],
  • "externalRefs":
    [
    ]
}

Update product specification

Authorizations:
path Parameters
productSpecId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Product specification id

Request Body schema: application/json
_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>
posters
Array of objects
externalRefs
Array of objects

Responses

200

OK

401

API key is missing or invalid

404

Item not found

patch/external/api/product/{productSpecId}

AlphaOTT [production]

http://mw.{brand}.com/external/api/product/{productSpecId}

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/external/api/product/{productSpecId}

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "_id": "5915c3bacc8e1e13969de081",
  • "title": "string",
  • "description": "string",
  • "scope": "ONE_ITEM",
  • "status": "ACTTIVE",
  • "serviceSpecs":
    [
    ],
  • "created": "2017-12-29T04:27:16.275Z",
  • "updated": "2017-12-29T04:27:16.275Z",
  • "expires": "2018-01-29T04:27:16.275Z",
  • "posters":
    [],
  • "externalRefs":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "_id": "5915c3bacc8e1e13969de081",
  • "title": "string",
  • "description": "string",
  • "scope": "ONE_ITEM",
  • "status": "ACTTIVE",
  • "serviceSpecs":
    [
    ],
  • "created": "2017-12-29T04:27:16.275Z",
  • "updated": "2017-12-29T04:27:16.275Z",
  • "expires": "2018-01-29T04:27:16.275Z",
  • "posters":
    [],
  • "externalRefs":
    [
    ]
}

Remove product specification

Authorizations:
path Parameters
productSpecId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Product specification id

Responses

200

OK

401

API key is missing or invalid

404

Item not found

delete/external/api/product/{productSpecId}

AlphaOTT [production]

http://mw.{brand}.com/external/api/product/{productSpecId}

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/external/api/product/{productSpecId}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "code": "UnauthorizedError",
  • "message": "Authorization required"
}

Get product offers

Authorizations:
path Parameters
productSpecId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Product specification id

query Parameters
status
string
Enum: "ACTIVE" "INACTIVE"

Filter offers by status`.

Responses

200

OK

401

API key is missing or invalid

404

Item not found

get/external/api/product/{productSpecId}/offers

AlphaOTT [production]

http://mw.{brand}.com/external/api/product/{productSpecId}/offers

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/external/api/product/{productSpecId}/offers

Response samples

Content type
application/json
Copy
Expand all Collapse all
[
  • {
    }
]

Create product offer

Authorizations:
path Parameters
productSpecId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Product specification id

Request Body schema: application/json
_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"
charges
Array of objects
created
string <date-time>
updated
string <date-time>
expires
string <date-time>
externalRefs
Array of objects

Responses

200

OK

401

API key is missing or invalid

404

Item not found

post/external/api/product/{productSpecId}/offers

AlphaOTT [production]

http://mw.{brand}.com/external/api/product/{productSpecId}/offers

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/external/api/product/{productSpecId}/offers

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "_id": "string",
  • "productSpec": "string",
  • "title": "string",
  • "description": "string",
  • "duration": 0,
  • "period": "DAY",
  • "numberOfBillingCycles": 0,
  • "type": "ONE_TIME",
  • "status": "ACTTIVE",
  • "charges":
    [
    ],
  • "created": "2017-12-29T04:27:16.275Z",
  • "updated": "2017-12-29T04:27:16.275Z",
  • "expires": "2018-01-29T04:27:16.275Z",
  • "externalRefs":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "code": "UnauthorizedError",
  • "message": "Authorization required"
}

Get product offer by id

Authorizations:
path Parameters
productSpecId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Product specification id

offerId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Product offer id

Responses

200

OK

401

API key is missing or invalid

404

Item not found

get/external/api/product/{productSpecId}/offer/{offerId}

AlphaOTT [production]

http://mw.{brand}.com/external/api/product/{productSpecId}/offer/{offerId}

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/external/api/product/{productSpecId}/offer/{offerId}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "_id": "string",
  • "productSpec": "string",
  • "title": "string",
  • "description": "string",
  • "duration": 0,
  • "period": "DAY",
  • "numberOfBillingCycles": 0,
  • "type": "ONE_TIME",
  • "status": "ACTTIVE",
  • "charges":
    [
    ],
  • "created": "2017-12-29T04:27:16.275Z",
  • "updated": "2017-12-29T04:27:16.275Z",
  • "expires": "2018-01-29T04:27:16.275Z",
  • "externalRefs":
    [
    ]
}

Update product offer

Authorizations:
path Parameters
productSpecId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Product specification id

offerId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Product offer id

Request Body schema: application/json
_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"
charges
Array of objects
created
string <date-time>
updated
string <date-time>
expires
string <date-time>
externalRefs
Array of objects

Responses

200

OK

401

API key is missing or invalid

404

Item not found

patch/external/api/product/{productSpecId}/offer/{offerId}

AlphaOTT [production]

http://mw.{brand}.com/external/api/product/{productSpecId}/offer/{offerId}

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/external/api/product/{productSpecId}/offer/{offerId}

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "_id": "string",
  • "productSpec": "string",
  • "title": "string",
  • "description": "string",
  • "duration": 0,
  • "period": "DAY",
  • "numberOfBillingCycles": 0,
  • "type": "ONE_TIME",
  • "status": "ACTTIVE",
  • "charges":
    [
    ],
  • "created": "2017-12-29T04:27:16.275Z",
  • "updated": "2017-12-29T04:27:16.275Z",
  • "expires": "2018-01-29T04:27:16.275Z",
  • "externalRefs":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "_id": "string",
  • "productSpec": "string",
  • "title": "string",
  • "description": "string",
  • "duration": 0,
  • "period": "DAY",
  • "numberOfBillingCycles": 0,
  • "type": "ONE_TIME",
  • "status": "ACTTIVE",
  • "charges":
    [
    ],
  • "created": "2017-12-29T04:27:16.275Z",
  • "updated": "2017-12-29T04:27:16.275Z",
  • "expires": "2018-01-29T04:27:16.275Z",
  • "externalRefs":
    [
    ]
}

Remove product offer

Authorizations:
path Parameters
productSpecId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Product specification id

offerId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Product offer id

Responses

200

OK

401

API key is missing or invalid

404

Item not found

delete/external/api/product/{productSpecId}/offer/{offerId}

AlphaOTT [production]

http://mw.{brand}.com/external/api/product/{productSpecId}/offer/{offerId}

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/external/api/product/{productSpecId}/offer/{offerId}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "code": "UnauthorizedError",
  • "message": "Authorization required"
}

Order Management

IOrderManagementAPI should be implemented by external Billing System to manage Orders(Subscriptions) for the specific Customer

IOrderManagementAPI Diagram

Get customer orders

Authorizations:
path Parameters
customerId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Customer id

query Parameters
status
Array of strings
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

Responses

200

OK

401

API key is missing or invalid

get/external/api/customer/{customerId}/orders

AlphaOTT [production]

http://mw.{brand}.com/external/api/customer/{customerId}/orders

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/external/api/customer/{customerId}/orders

Response samples

Content type
application/json
Copy
Expand all Collapse all
[
  • {
    }
]

Create customer order

Authorizations:
path Parameters
customerId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Customer id

Request Body schema: application/json
_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>
externalRefs
Array of objects

Responses

200

OK

401

API key is missing or invalid

post/external/api/customer/{customerId}/orders

AlphaOTT [production]

http://mw.{brand}.com/external/api/customer/{customerId}/orders

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/external/api/customer/{customerId}/orders

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "_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":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "code": "UnauthorizedError",
  • "message": "Authorization required"
}

Get customer order

Authorizations:
path Parameters
customerId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Customer id

orderId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Order id

Responses

200

OK

401

API key is missing or invalid

404

Item not found

get/external/api/customer/{customerId}/order/{orderId}

AlphaOTT [production]

http://mw.{brand}.com/external/api/customer/{customerId}/order/{orderId}

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/external/api/customer/{customerId}/order/{orderId}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "_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":
    [
    ]
}

Update customer order

Authorizations:
path Parameters
customerId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Customer id

orderId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Order id

Request Body schema: application/json
status
string
Enum: "ACTTIVE" "INACTIVE" "EXPIRED" "CANCELED" "DELETED"
expires
string <date-time>
nextBillingCycle
string <date-time>
numberOfBillingCycles
integer

Responses

200

OK

401

API key is missing or invalid

404

Item not found

patch/external/api/customer/{customerId}/order/{orderId}

AlphaOTT [production]

http://mw.{brand}.com/external/api/customer/{customerId}/order/{orderId}

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/external/api/customer/{customerId}/order/{orderId}

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "status": "ACTTIVE",
  • "expires": "2018-01-29T04:27:16.275Z",
  • "nextBillingCycle": "2017-12-29T04:27:16.275Z",
  • "numberOfBillingCycles": 0
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "_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":
    [
    ]
}

Remove customer order

Authorizations:
path Parameters
customerId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Customer id

orderId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Order id

Responses

200

OK

401

API key is missing or invalid

404

Item not found

delete/external/api/customer/{customerId}/order/{orderId}

AlphaOTT [production]

http://mw.{brand}.com/external/api/customer/{customerId}/order/{orderId}

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/external/api/customer/{customerId}/order/{orderId}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "code": "UnauthorizedError",
  • "message": "Authorization required"
}

Get customer transactions

Authorizations:
path Parameters
customerId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Customer id

query Parameters
type
string
Enum: "PAYMENT" "REFUND"

Filter transactions by type`.

Responses

200

OK

401

API key is missing or invalid

404

Item not found

get/external/api/customer/{customerId}/transactions

AlphaOTT [production]

http://mw.{brand}.com/external/api/customer/{customerId}/transactions

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/external/api/customer/{customerId}/transactions

Response samples

Content type
application/json
Copy
Expand all Collapse all
[
  • {
    }
]

Get customer account balance

Authorizations:
path Parameters
customerId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Customer id

Responses

200

OK

401

API key is missing or invalid

404

Item not found

get/external/api/customer/{customerId}/balance

AlphaOTT [production]

http://mw.{brand}.com/external/api/customer/{customerId}/balance

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/external/api/customer/{customerId}/balance

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "amount": 102.5,
  • "currency": "USD"
}

Create customer order hosted page

Authorizations:
path Parameters
customerId
string
Example: 4e8e8494-ef9f-4bc1-9c65-31ef1e372f05

Customer id

Request Body schema: application/json
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

Responses

200

Returns order hosted page details

401

API key is missing or invalid

404

Item not found

post/external/api/customer/{customerId}/order/hosted-page

AlphaOTT [production]

http://mw.{brand}.com/external/api/customer/{customerId}/order/hosted-page

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/external/api/customer/{customerId}/order/hosted-page

Request samples

Content type
application/json
Copy
Expand all Collapse all
{}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{}

Redirect URL after payment done

query Parameters
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

get/payment/result

AlphaOTT [production]

http://mw.{brand}.com/payment/result

AlphaOTT [stage]

http://mw.{brand}.test.alphaott.com/payment/result