

Ooyala eCommerce PCM API
version v3
https://player.ooyala.com/_commerce/v3/
Overview
Product Catalog Manager (PCM)
Description
The eCommerce PCM API is the product catalog manager for the eCommerce API that is payment API for the Revenue Builder project.
Products
The PCM Product types are Pay Per View (PPV) and Subscriptions. The main difference is the periodic renovation of a Subscription. In the Pay Per View is not a recurring product.
Pay Per View (PPV)
In the PPV the Price Plan(PP) is not present due it is not a recurring product. The Amount is necessary.
Subscription
The PCM Subscription in order to create a product type Subscription the Price Plan must be created first.
Price Plans
The PCM Price Plan(PP) contains the data such as currency and cycles for the periodic renovation of a Subscription. In the PPV the Price Plan(PP) is not present due it is not a recurring product. In order to add a Price Plan into a Product the currency should be the same.
Security
Please refer to http://help-ooyala.brightcove.com/video-platform/tasks/api_signing_requests.html
/{pCode}/products
The PCM Product types are Pay Per View(PPV) and Subscriptions. In the PPV the Price Plan(PP) is not present due it is not a recurring product.
Get the products, also the products can be filtered by query parameters.
Create a product type Subscription or Pay Per View(PPV), for the PPV the Price Plan(PP) is not necesary, in order to create a product type Subscription the PP must be created first.
get /{pCode}/products
Get the products, also the products can be filtered by query parameters.
Every request made to Backlot requires three query string parameters for authentication, the API Key, the request expiration, and the signature.
URI Parameters
- pCode: required (string)
Query Parameters
-
ids: (string)
Products ids
Example:
ids=id_1,id_2,id_3
-
type: (one of ppv, subscription)
Type of the product
Example:
type=ppv
-
created_at: (string)
Created time RFC3339
Example:
created_at=2011-10-10T10:10:00Z
-
updeted_at: (string)
Updated time RFC3339
Example:
updated_at=2011-10-10T10:10:00Z
-
deleted_at: (string)
Deleted time RFC3339
Example:
deleted_at=2011-10-10T10:10:00Z
-
includes: (one of price_plan, entitlements, price_plan.cycles)
Elements of the Products
Example:
includes=price_plan
HTTP status code 200
Success - Everything is working fine.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"products": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"price_plan": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"description": {
"type": "string"
},
"currency": {
"type": "string",
"description": "Currency based on ISO4217"
},
"cycles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"unit": {
"type": "integer"
},
"period": {
"type": "string",
"enum": [
"day",
"week",
"month",
"year"
]
},
"cycles": {
"type": "integer"
},
"amount": {
"type": "integer"
},
"created_at": {
"type": "string",
"description": "Time based on RFC3339"
},
"updated_at": {
"type": "string",
"description": "Time based on RFC3339"
}
}
}
},
"created_at": {
"type": "string",
"description": "Time based on RFC3339"
},
"updated_at": {
"type": "string",
"description": "Time based on RFC3339"
}
}
},
"currency": {
"type": "string",
"description": "Currency based on ISO4217"
},
"metadata": {
"type": "object",
"properties": {
"lenght": {
"type": "string"
}
}
},
"type": {
"type": "string"
},
"description": {
"type": "string"
},
"offer_manager": {
"type": "string"
},
"start_date": {
"type": "string",
"description": "Time based on RFC3339"
},
"end_date": {
"type": "string",
"description": "Time based on RFC3339"
},
"entitlements": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"label",
"asset",
"offer"
]
},
"created_at": {
"type": "string",
"description": "Time based on RFC3339"
},
"updated_at": {
"type": "string",
"description": "Time based on RFC3339"
}
}
}
},
"created_at": {
"type": "string",
"description": "Time based on RFC3339"
},
"updated_at": {
"type": "string",
"description": "Time based on RFC3339"
}
}
}
}
}
}
Example:
{
"products": [
{
"id": "product1",
"price_plan": {
"id": "price_plan1",
"description": "example",
"currency": "USD",
"cycles": [
{
"unit": 1,
"period": "week",
"cycles": 1,
"amount": 100,
"created_at": "2017-02-01T13:33:51.196959354-06:00",
"updated_at": "2017-02-01T13:33:51.196959354-06:00"
}
],
"created_at": "2017-01-10T21:01:05Z",
"updated_at": "2017-01-10T21:01:05Z"
},
"currency": "USD",
"metadata": {
"currency": "USD"
},
"type": "subscription",
"description": "example",
"offer_manager": "example_manager",
"start_date": "2016-07-03T20:00:27Z",
"end_date": "2016-07-03T20:00:27Z",
"entitlements": [
{
"id": "entitlemen1",
"type": "label",
"created_at": "2017-01-31T18:56:45Z",
"updated_at": "2017-01-31T18:56:45Z"
}
],
"created_at": "2017-01-31T18:56:45Z",
"updated_at": "2017-01-31T18:56:45Z"
}
]
}
HTTP status code 400
Bad Request - Some of the parameters are missing invalid or malformed.
Body
Type: application/json
Example:
{"error": "ParameterMissingError", "message": "Request is missing required query parameter 'param name'"}
HTTP status code 401
Unauthorized - The supplied credentials are not valid.
Body
Type: application/json
Example:
{"error":"AdapterAuthenticationError", "message":"The supplied credetials are no valid"}
HTTP status code 403
Forbidden - The user has not enough privileges to query the information of the specified provider.
Body
Type: application/json
Example:
{"error": "UnauthorizedRequestError", "message": "The supplied authentication is not authorized to access this resource"}
HTTP status code 404
Not Found - The user has not the item specified.
Body
Type: application/json
Example:
{"error": "ResourceNotFound", "message": "The item requested has not be found"}
HTTP status code 500
Server Error - Something is wrong with the API and it might be intermittently unavailable.
Body
Type: application/json
Example:
{"error":"InternalServerError","message":"There was an unexpected error, if problems persits please contact the application owner."}


Secured by pcm-auth
post /{pCode}/products
Create a product type Subscription or Pay Per View(PPV), for the PPV the Price Plan(PP) is not necesary, in order to create a product type Subscription the PP must be created first.
Every request made to Backlot requires three query string parameters for authentication, the API Key, the request expiration, and the signature.
URI Parameters
- pCode: required (string)
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"product": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"ppv",
"subscription"
]
},
"description": {
"type": "string"
},
"start_date": {
"type": "string",
"description": "Time based on RFC3339"
},
"end_date": {
"type": "string",
"description": "Time based on RFC3339"
},
"offer_manager": {
"type": "string",
"enum": [
"media platform"
]
},
"price_plan": {
"type": "object",
"properties": {
"id": {
"type": "string"
}
}
},
"entitlements": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"label",
"asset",
"offer"
]
}
}
}
},
"metadata": {
"type": "object",
"properties": {
"lenght": {
"type": "string"
}
}
},
"currency": {
"type": "string",
"description": "Currency based on ISO4217"
}
}
}
}
}
Example:
{
"product": {
"id": "product1",
"name": "example",
"type": "subscription",
"description": "example product",
"offer_manager": "media platform",
"start_date": "2016-07-03T20:00:27Z",
"end_date": "2016-07-03T20:00:27Z",
"price_plan": {
"id": "price_plan1"
},
"entitlements": [
{
"id": "entitlement1",
"type": "label"
}
],
"metadata": {
"currency": "USD"
},
"currency": "USD"
}
}
HTTP status code 200
Success - Everything is working fine.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"product": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"price_plan": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"description": {
"type": "string"
},
"currency": {
"type": "string",
"description": "Currency based on ISO4217"
},
"cycles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"unit": {
"type": "integer"
},
"period": {
"type": "string"
},
"cycles": {
"type": "integer"
},
"amount": {
"type": "integer"
},
"created_at": {
"type": "string",
"description": "Time based on RFC3339"
},
"updated_at": {
"type": "string",
"description": "Time based on RFC3339"
}
}
}
},
"created_at": {
"type": "string",
"description": "Time based on RFC3339"
},
"updated_at": {
"type": "string",
"description": "Time based on RFC3339"
}
}
},
"currency": {
"type": "string",
"description": "Currency based on ISO4217"
},
"metadata": {
"type": "object",
"properties": {
"lenght": {
"type": "string"
}
}
},
"type": {
"type": "string"
},
"description": {
"type": "string"
},
"offer_manager": {
"type": "string"
},
"start_date": {
"type": "string",
"description": "Time based on RFC3339"
},
"end_date": {
"type": "string",
"description": "Time based on RFC3339"
},
"entitlements": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"label",
"asset",
"offer"
]
},
"created_at": {
"type": "string",
"description": "Time based on RFC3339"
},
"updated_at": {
"type": "string",
"description": "Time based on RFC3339"
}
}
}
},
"created_at": {
"type": "string",
"description": "Time based on RFC3339"
},
"updated_at": {
"type": "string",
"description": "Time based on RFC3339"
}
}
}
}
}
Example:
{
"product": {
"id": "product1",
"price_plan": {
"id": "price_plan1",
"description": "example",
"currency": "USD",
"cycles": [
{
"unit": 1,
"period": "week",
"cycles": 1,
"amount": 100,
"created_at": "2017-02-01T13:33:51.196959354-06:00",
"updated_at": "2017-02-01T13:33:51.196959354-06:00"
}
],
"created_at": "2017-01-10T21:01:05Z",
"updated_at": "2017-01-10T21:01:05Z"
},
"currency": "USD",
"metadata": {
"currency": "USD"
},
"type": "subscription",
"description": "example",
"offer_manager": "example_manager",
"start_date": "2016-07-03T20:00:27Z",
"end_date": "2016-07-03T20:00:27Z",
"entitlements": [
{
"id": "entitlemen1",
"type": "label",
"created_at": "2017-01-31T18:56:45Z",
"updated_at": "2017-01-31T18:56:45Z"
}
],
"created_at": "2017-01-31T18:56:45Z",
"updated_at": "2017-01-31T18:56:45Z"
}
}
HTTP status code 400
Bad Request - Some of the parameters are missing invalid or malformed.
Body
Type: application/json
Example:
{"error": "ParameterMissingError", "message": "Request is missing required query parameter 'param name'"}
HTTP status code 401
Unauthorized - The supplied credentials are not valid.
Body
Type: application/json
Example:
{"error":"AdapterAuthenticationError", "message":"The supplied credetials are no valid"}
HTTP status code 403
Forbidden - The user has not enough privileges to query the information of the specified provider.
Body
Type: application/json
Example:
{"error": "UnauthorizedRequestError", "message": "The supplied authentication is not authorized to access this resource"}
HTTP status code 404
Not Found - The user has not the item specified.
Body
Type: application/json
Example:
{"error": "ResourceNotFound", "message": "The item requested has not be found"}
HTTP status code 500
Server Error - Something is wrong with the API and it might be intermittently unavailable.
Body
Type: application/json
Example:
{"error":"InternalServerError","message":"There was an unexpected error, if problems persits please contact the application owner."}


Secured by pcm-auth
Operations for a specific product, the product ID is required for these endpoints.
Returns a specific product, also to return all the properties such as Price Plan(PP), Entitlements should be include as query params. The products type Pay Per View(PPV) do not have Price Plan(PP).
Update a specific product, the values that can be update are Price Plan(PP) for Subscriptions, Currency for Subscriptions and Pay Per View(PPV) in case of the subscriptions currency should match with currency of the PP, Amount for PPV, Description, Metadata and Entitlements for both.
Delete a specific product, in case the product has a Offer Manager, the product shouldn't have active offers in order to delete it.
get /{pCode}/products/{productID}
Returns a specific product, also to return all the properties such as Price Plan(PP), Entitlements should be include as query params. The products type Pay Per View(PPV) do not have Price Plan(PP).
Every request made to Backlot requires three query string parameters for authentication, the API Key, the request expiration, and the signature.
URI Parameters
- pCode: required (string)
- productID: required (string)
HTTP status code 200
Success - Everything is working fine.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"product": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"price_plan": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"description": {
"type": "string"
},
"currency": {
"type": "string",
"description": "Currency based on ISO4217"
},
"cycles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"unit": {
"type": "integer"
},
"period": {
"type": "string"
},
"cycles": {
"type": "integer"
},
"amount": {
"type": "integer"
},
"created_at": {
"type": "string",
"description": "Time based on RFC3339"
},
"updated_at": {
"type": "string",
"description": "Time based on RFC3339"
}
}
}
},
"created_at": {
"type": "string",
"description": "Time based on RFC3339"
},
"updated_at": {
"type": "string",
"description": "Time based on RFC3339"
}
}
},
"currency": {
"type": "string",
"description": "Currency based on ISO4217"
},
"metadata": {
"type": "object",
"properties": {
"lenght": {
"type": "string"
}
}
},
"type": {
"type": "string"
},
"description": {
"type": "string"
},
"offer_manager": {
"type": "string"
},
"start_date": {
"type": "string",
"description": "Time based on RFC3339"
},
"end_date": {
"type": "string",
"description": "Time based on RFC3339"
},
"entitlements": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"label",
"asset",
"offer"
]
},
"created_at": {
"type": "string",
"description": "Time based on RFC3339"
},
"updated_at": {
"type": "string",
"description": "Time based on RFC3339"
}
}
}
},
"created_at": {
"type": "string",
"description": "Time based on RFC3339"
},
"updated_at": {
"type": "string",
"description": "Time based on RFC3339"
}
}
}
}
}
Example:
{
"product": {
"id": "product1",
"price_plan": {
"id": "price_plan1",
"description": "example",
"currency": "USD",
"cycles": [
{
"unit": 1,
"period": "week",
"cycles": 1,
"amount": 100,
"created_at": "2017-02-01T13:33:51.196959354-06:00",
"updated_at": "2017-02-01T13:33:51.196959354-06:00"
}
],
"created_at": "2017-01-10T21:01:05Z",
"updated_at": "2017-01-10T21:01:05Z"
},
"currency": "USD",
"metadata": {
"currency": "USD"
},
"type": "subscription",
"description": "example",
"offer_manager": "example_manager",
"start_date": "2016-07-03T20:00:27Z",
"end_date": "2016-07-03T20:00:27Z",
"entitlements": [
{
"id": "entitlemen1",
"type": "label",
"created_at": "2017-01-31T18:56:45Z",
"updated_at": "2017-01-31T18:56:45Z"
}
],
"created_at": "2017-01-31T18:56:45Z",
"updated_at": "2017-01-31T18:56:45Z"
}
}
HTTP status code 400
Bad Request - Some of the parameters are missing invalid or malformed.
Body
Type: application/json
Example:
{"error": "ParameterMissingError", "message": "Request is missing required query parameter 'param name'"}
HTTP status code 401
Unauthorized - The supplied credentials are not valid.
Body
Type: application/json
Example:
{"error":"AdapterAuthenticationError", "message":"The supplied credetials are no valid"}
HTTP status code 403
Forbidden - The user has not enough privileges to query the information of the specified provider.
Body
Type: application/json
Example:
{"error": "UnauthorizedRequestError", "message": "The supplied authentication is not authorized to access this resource"}
HTTP status code 404
Not Found - The user has not the item specified.
Body
Type: application/json
Example:
{"error": "ResourceNotFound", "message": "The item requested has not be found"}
HTTP status code 500
Server Error - Something is wrong with the API and it might be intermittently unavailable.
Body
Type: application/json
Example:
{"error":"InternalServerError","message":"There was an unexpected error, if problems persits please contact the application owner."}


Secured by pcm-auth
put /{pCode}/products/{productID}
Update a specific product, the values that can be update are Price Plan(PP) for Subscriptions, Currency for Subscriptions and Pay Per View(PPV) in case of the subscriptions currency should match with currency of the PP, Amount for PPV, Description, Metadata and Entitlements for both.
Every request made to Backlot requires three query string parameters for authentication, the API Key, the request expiration, and the signature.
URI Parameters
- pCode: required (string)
- productID: required (string)
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"product": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"start_date": {
"type": "string",
"description": "Time based on RFC3339"
},
"end_date": {
"type": "string",
"description": "Time based on RFC3339"
},
"price_plan": {
"type": "object",
"properties": {
"id": {
"type": "string"
}
}
},
"entitlements": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"label",
"asset",
"offer"
]
}
}
}
},
"metadata": {
"type": "object",
"properties": {
"lenght": {
"type": "string"
}
}
},
"currency": {
"type": "string",
"description": "Currency based on ISO4217"
}
}
}
}
}
Example:
{
"product": {
"description": "example",
"start_date": "2016-07-03T20:00:27Z",
"end_date": "2016-07-03T20:00:27Z",
"price_plan": {
"id": "price_plan1"
},
"entitlements": [
{
"id": "entitlement1",
"type": "label"
}
],
"metadata": {
"lenght": "10m"
},
"currency": "MXN"
}
}
HTTP status code 200
Success - Everything is working fine.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"product": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"price_plan": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"description": {
"type": "string"
},
"currency": {
"type": "string",
"description": "Currency based on ISO4217"
},
"cycles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"unit": {
"type": "integer"
},
"period": {
"type": "string"
},
"cycles": {
"type": "integer"
},
"amount": {
"type": "integer"
},
"created_at": {
"type": "string",
"description": "Time based on RFC3339"
},
"updated_at": {
"type": "string",
"description": "Time based on RFC3339"
}
}
}
},
"created_at": {
"type": "string",
"description": "Time based on RFC3339"
},
"updated_at": {
"type": "string",
"description": "Time based on RFC3339"
}
}
},
"currency": {
"type": "string",
"description": "Currency based on ISO4217"
},
"metadata": {
"type": "object",
"properties": {
"lenght": {
"type": "string"
}
}
},
"type": {
"type": "string"
},
"description": {
"type": "string"
},
"offer_manager": {
"type": "string"
},
"start_date": {
"type": "string",
"description": "Time based on RFC3339"
},
"end_date": {
"type": "string",
"description": "Time based on RFC3339"
},
"entitlements": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"label",
"asset",
"offer"
]
},
"created_at": {
"type": "string",
"description": "Time based on RFC3339"
},
"updated_at": {
"type": "string",
"description": "Time based on RFC3339"
}
}
}
},
"created_at": {
"type": "string",
"description": "Time based on RFC3339"
},
"updated_at": {
"type": "string",
"description": "Time based on RFC3339"
}
}
}
}
}
Example:
{
"product": {
"id": "product1",
"price_plan": {
"id": "price_plan1",
"description": "example",
"currency": "USD",
"cycles": [
{
"unit": 1,
"period": "week",
"cycles": 1,
"amount": 100,
"created_at": "2017-02-01T13:33:51.196959354-06:00",
"updated_at": "2017-02-01T13:33:51.196959354-06:00"
}
],
"created_at": "2017-01-10T21:01:05Z",
"updated_at": "2017-01-10T21:01:05Z"
},
"currency": "USD",
"metadata": {
"currency": "USD"
},
"type": "subscription",
"description": "example",
"offer_manager": "example_manager",
"start_date": "2016-07-03T20:00:27Z",
"end_date": "2016-07-03T20:00:27Z",
"entitlements": [
{
"id": "entitlemen1",
"type": "label",
"created_at": "2017-01-31T18:56:45Z",
"updated_at": "2017-01-31T18:56:45Z"
}
],
"created_at": "2017-01-31T18:56:45Z",
"updated_at": "2017-01-31T18:56:45Z"
}
}
HTTP status code 400
Bad Request - Some of the parameters are missing invalid or malformed.
Body
Type: application/json
Example:
{"error": "ParameterMissingError", "message": "Request is missing required query parameter 'param name'"}
HTTP status code 401
Unauthorized - The supplied credentials are not valid.
Body
Type: application/json
Example:
{"error":"AdapterAuthenticationError", "message":"The supplied credetials are no valid"}
HTTP status code 403
Forbidden - The user has not enough privileges to query the information of the specified provider.
Body
Type: application/json
Example:
{"error": "UnauthorizedRequestError", "message": "The supplied authentication is not authorized to access this resource"}
HTTP status code 404
Not Found - The user has not the item specified.
Body
Type: application/json
Example:
{"error": "ResourceNotFound", "message": "The item requested has not be found"}
HTTP status code 500
Server Error - Something is wrong with the API and it might be intermittently unavailable.
Body
Type: application/json
Example:
{"error":"InternalServerError","message":"There was an unexpected error, if problems persits please contact the application owner."}


Secured by pcm-auth
delete /{pCode}/products/{productID}
Delete a specific product, in case the product has a Offer Manager, the product shouldn't have active offers in order to delete it.
Every request made to Backlot requires three query string parameters for authentication, the API Key, the request expiration, and the signature.
URI Parameters
- pCode: required (string)
- productID: required (string)
HTTP status code 200
Success - Everything is working fine.
Body
Type: application/json
HTTP status code 400
Bad Request - Some of the parameters are missing invalid or malformed.
Body
Type: application/json
Example:
{"error": "ParameterMissingError", "message": "Request is missing required query parameter 'param name'"}
HTTP status code 401
Unauthorized - The supplied credentials are not valid.
Body
Type: application/json
Example:
{"error":"AdapterAuthenticationError", "message":"The supplied credetials are no valid"}
HTTP status code 403
Forbidden - The user has not enough privileges to query the information of the specified provider.
Body
Type: application/json
Example:
{"error": "UnauthorizedRequestError", "message": "The supplied authentication is not authorized to access this resource"}
HTTP status code 404
Not Found - The user has not the item specified.
Body
Type: application/json
Example:
{"error": "ResourceNotFound", "message": "The item requested has not be found"}
HTTP status code 500
Server Error - Something is wrong with the API and it might be intermittently unavailable.
Body
Type: application/json
Example:
{"error":"InternalServerError","message":"There was an unexpected error, if problems persits please contact the application owner."}


Secured by pcm-auth
/{pCode}/price-plans
The PCM Price Plan(PP) contains the data such as currency and cycles for the periodic renovation of a Subscription. In the Pay Per View(PPV) the Price Plan(PP) is not present due it is not a recurring product. In order to add a PP into a Product the currency should be the same.
Get the Price Plans, the Price Plan can be filtered by query parameters.
Create a Price Plan(PP), Price Plan are use by Subcriptions to manage its recurring period.
get /{pCode}/price-plans
Get the Price Plans, the Price Plan can be filtered by query parameters.
Every request made to Backlot requires three query string parameters for authentication, the API Key, the request expiration, and the signature.
URI Parameters
- pCode: required (string)
Query Parameters
-
ids: (string)
Price Plans ids
Example:
id_1,id_2,id_3
-
created_at: (string)
Created time RFC3339
Example:
created_at=2011-10-10T10:10:00Z
-
updeted_at: (string)
Updated time RFC3339
Example:
updated_at=2011-10-10T10:10:00Z
-
deleted_at: (string)
Deleted time RFC3339
Example:
deleted_at=2011-10-10T10:10:00Z
-
includes: (one of cycles)
Elements of the Price Plan
Example:
includes=cycles
HTTP status code 200
Success - Everything is working fine.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"price_plans": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"description": {
"type": "string"
},
"currency": {
"type": "string",
"description": "Currency based on ISO4217"
},
"cycles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"unit": {
"type": "integer"
},
"period": {
"type": "string",
"enum": [
"day",
"week",
"month",
"year"
]
},
"cycles": {
"type": "integer"
},
"amount": {
"type": "integer"
},
"created_at": {
"type": "string",
"description": "Time based on RFC3339"
},
"updated_at": {
"type": "string",
"description": "Time based on RFC3339"
}
}
}
},
"created_at": {
"type": "string",
"description": "Time based on RFC3339"
},
"updated_at": {
"type": "string",
"description": "Time based on RFC3339"
}
}
}
}
}
}
Example:
{
"price_plans": [
{
"id": "price_plan1",
"description": "example",
"currency": "USD",
"cycles": [
{
"unit": 1,
"period": "week",
"cycles": 1,
"amount": 100,
"created_at": "2017-01-10T21:01:05Z",
"updated_at": "2017-01-10T21:01:05Z"
}
],
"created_at": "2017-01-10T21:01:05Z",
"updated_at": "2017-01-10T21:01:05Z"
}
]
}
HTTP status code 400
Bad Request - Some of the parameters are missing invalid or malformed.
Body
Type: application/json
Example:
{"error": "ParameterMissingError", "message": "Request is missing required query parameter 'param name'"}
HTTP status code 401
Unauthorized - The supplied credentials are not valid.
Body
Type: application/json
Example:
{"error":"AdapterAuthenticationError", "message":"The supplied credetials are no valid"}
HTTP status code 403
Forbidden - The user has not enough privileges to query the information of the specified provider.
Body
Type: application/json
Example:
{"error": "UnauthorizedRequestError", "message": "The supplied authentication is not authorized to access this resource"}
HTTP status code 404
Not Found - The user has not the item specified.
Body
Type: application/json
Example:
{"error": "ResourceNotFound", "message": "The item requested has not be found"}
HTTP status code 500
Server Error - Something is wrong with the API and it might be intermittently unavailable.
Body
Type: application/json
Example:
{"error":"InternalServerError","message":"There was an unexpected error, if problems persits please contact the application owner."}


Secured by pcm-auth
post /{pCode}/price-plans
Create a Price Plan(PP), Price Plan are use by Subcriptions to manage its recurring period.
Every request made to Backlot requires three query string parameters for authentication, the API Key, the request expiration, and the signature.
URI Parameters
- pCode: required (string)
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"price_plan": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"description": {
"type": "string"
},
"currency": {
"type": "string",
"description": "Currency based on ISO4217"
},
"cycles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"unit": {
"type": "integer"
},
"period": {
"type": "string",
"enum": [
"day",
"week",
"month",
"year"
]
},
"cycles": {
"type": "integer"
},
"amount": {
"type": "integer"
}
}
}
}
}
}
}
}
Example:
{
"price_plan": {
"id": "price_plan1",
"description": "example",
"currency": "USD",
"cycles": [
{
"unit": 1,
"period": "week",
"cycles": 1,
"amount": 100
}
]
}
}
HTTP status code 200
Success - Everything is working fine.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"price_plan": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"description": {
"type": "string"
},
"currency": {
"type": "string",
"description": "Currency based on ISO4217"
},
"cycles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"unit": {
"type": "integer"
},
"period": {
"type": "string",
"enum": [
"day",
"week",
"month",
"year"
]
},
"cycles": {
"type": "integer"
},
"amount": {
"type": "integer"
},
"created_at": {
"type": "string",
"description": "Time based on RFC3339"
},
"updated_at": {
"type": "string",
"description": "Time based on RFC3339"
}
}
}
},
"created_at": {
"type": "string",
"description": "Time based on RFC3339"
},
"updated_at": {
"type": "string",
"description": "Time based on RFC3339"
}
}
}
}
}
Example:
{
"price_plan": {
"id": "price_plan1",
"description": "example",
"currency": "USD",
"cycles": [
{
"unit": 1,
"period": "week",
"cycles": 1,
"amount": 100,
"created_at": "2017-02-01T13:33:51.196959354-06:00",
"updated_at": "2017-02-01T13:33:51.196959354-06:00"
}
],
"created_at": "2017-02-01T13:33:51.196623032-06:00",
"updated_at": "2017-02-01T13:33:51.196623032-06:00"
}
}
HTTP status code 400
Bad Request - Some of the parameters are missing invalid or malformed.
Body
Type: application/json
Example:
{"error": "ParameterMissingError", "message": "Request is missing required query parameter 'param name'"}
HTTP status code 401
Unauthorized - The supplied credentials are not valid.
Body
Type: application/json
Example:
{"error":"AdapterAuthenticationError", "message":"The supplied credetials are no valid"}
HTTP status code 403
Forbidden - The user has not enough privileges to query the information of the specified provider.
Body
Type: application/json
Example:
{"error": "UnauthorizedRequestError", "message": "The supplied authentication is not authorized to access this resource"}
HTTP status code 500
Server Error - Something is wrong with the API and it might be intermittently unavailable.
Body
Type: application/json
Example:
{"error":"InternalServerError","message":"There was an unexpected error, if problems persits please contact the application owner."}


Secured by pcm-auth
Operations for a specific Price Plan, the Price Plan ID is required for these endpoints.
Get a specific Price Plan, can include or not the cycles of the PP.
Update a specific Price Plan, the values that can be updated are Cycles, Currency and Description. In case the Price Plan belong to a Product with an active offer Manager, the update will fail, the Price Plan shouldn't be attached to a Product with active offers.
Delete a specific Price Plan, in case the Price Plan belong to a Product with an active offer Manager, the delete will fail, the Price Plan shouldn't be attached to a Product with active offers.
get /{pCode}/price-plans/{pricePlanID}
Get a specific Price Plan, can include or not the cycles of the PP.
Every request made to Backlot requires three query string parameters for authentication, the API Key, the request expiration, and the signature.
URI Parameters
- pCode: required (string)
- pricePlanID: required (string)
HTTP status code 200
Success - Everything is working fine.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"price_plan": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"description": {
"type": "string"
},
"currency": {
"type": "string",
"description": "Currency based on ISO4217"
},
"cycles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"unit": {
"type": "integer"
},
"period": {
"type": "string",
"enum": [
"day",
"week",
"month",
"year"
]
},
"cycles": {
"type": "integer"
},
"amount": {
"type": "integer"
},
"created_at": {
"type": "string",
"description": "Time based on RFC3339"
},
"updated_at": {
"type": "string",
"description": "Time based on RFC3339"
}
}
}
},
"created_at": {
"type": "string",
"description": "Time based on RFC3339"
},
"updated_at": {
"type": "string",
"description": "Time based on RFC3339"
}
}
}
}
}
Example:
{
"price_plan": {
"id": "price_plan1",
"description": "example",
"currency": "USD",
"cycles": [
{
"unit": 1,
"period": "week",
"cycles": 1,
"amount": 100,
"created_at": "2017-02-01T13:33:51.196959354-06:00",
"updated_at": "2017-02-01T13:33:51.196959354-06:00"
}
],
"created_at": "2017-02-01T13:33:51.196623032-06:00",
"updated_at": "2017-02-01T13:33:51.196623032-06:00"
}
}
HTTP status code 400
Bad Request - Some of the parameters are missing invalid or malformed.
Body
Type: application/json
Example:
{"error": "ParameterMissingError", "message": "Request is missing required query parameter 'param name'"}
HTTP status code 401
Unauthorized - The supplied credentials are not valid.
Body
Type: application/json
Example:
{"error":"AdapterAuthenticationError", "message":"The supplied credetials are no valid"}
HTTP status code 403
Forbidden - The user has not enough privileges to query the information of the specified provider.
Body
Type: application/json
Example:
{"error": "UnauthorizedRequestError", "message": "The supplied authentication is not authorized to access this resource"}
HTTP status code 404
Not Found - The user has not the item specified.
Body
Type: application/json
Example:
{"error": "ResourceNotFound", "message": "The item requested has not be found"}
HTTP status code 500
Server Error - Something is wrong with the API and it might be intermittently unavailable.
Body
Type: application/json
Example:
{"error":"InternalServerError","message":"There was an unexpected error, if problems persits please contact the application owner."}


Secured by pcm-auth
put /{pCode}/price-plans/{pricePlanID}
Update a specific Price Plan, the values that can be updated are Cycles, Currency and Description. In case the Price Plan belong to a Product with an active offer Manager, the update will fail, the Price Plan shouldn't be attached to a Product with active offers.
Every request made to Backlot requires three query string parameters for authentication, the API Key, the request expiration, and the signature.
URI Parameters
- pCode: required (string)
- pricePlanID: required (string)
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"price_plan": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"currency": {
"type": "string",
"description": "Currency based on ISO4217"
},
"cycles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"unit": {
"type": "integer"
},
"period": {
"type": "string",
"enum": [
"day",
"week",
"month",
"year"
]
},
"cycles": {
"type": "integer"
},
"amount": {
"type": "integer"
}
}
}
}
}
}
}
}
Example:
{
"price_plan": {
"description": "example",
"currency": "USD",
"cycles": [
{
"unit": 1,
"period": "week",
"cycles": 1,
"amount": 100
}
]
}
}
HTTP status code 200
Success - Everything is working fine.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"price_plan": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"description": {
"type": "string"
},
"currency": {
"type": "string",
"description": "Currency based on ISO4217"
},
"cycles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"unit": {
"type": "integer"
},
"period": {
"type": "string",
"enum": [
"day",
"week",
"month",
"year"
]
},
"cycles": {
"type": "integer"
},
"amount": {
"type": "integer"
},
"created_at": {
"type": "string",
"description": "Time based on RFC3339"
},
"updated_at": {
"type": "string",
"description": "Time based on RFC3339"
}
}
}
},
"created_at": {
"type": "string",
"description": "Time based on RFC3339"
},
"updated_at": {
"type": "string",
"description": "Time based on RFC3339"
}
}
}
}
}
Example:
{
"price_plan": {
"id": "price_plan1",
"description": "example",
"currency": "USD",
"cycles": [
{
"unit": 1,
"period": "week",
"cycles": 1,
"amount": 100,
"created_at": "2017-02-01T13:33:51.196959354-06:00",
"updated_at": "2017-02-01T13:33:51.196959354-06:00"
}
],
"created_at": "2017-02-01T13:33:51.196623032-06:00",
"updated_at": "2017-02-01T13:33:51.196623032-06:00"
}
}
HTTP status code 400
Bad Request - Some of the parameters are missing invalid or malformed.
Body
Type: application/json
Example:
{"error": "ParameterMissingError", "message": "Request is missing required query parameter 'param name'"}
HTTP status code 401
Unauthorized - The supplied credentials are not valid.
Body
Type: application/json
Example:
{"error":"AdapterAuthenticationError", "message":"The supplied credetials are no valid"}
HTTP status code 403
Forbidden - The user has not enough privileges to query the information of the specified provider.
Body
Type: application/json
Example:
{"error": "UnauthorizedRequestError", "message": "The supplied authentication is not authorized to access this resource"}
HTTP status code 404
Not Found - The user has not the item specified.
Body
Type: application/json
Example:
{"error": "ResourceNotFound", "message": "The item requested has not be found"}
HTTP status code 500
Server Error - Something is wrong with the API and it might be intermittently unavailable.
Body
Type: application/json
Example:
{"error":"InternalServerError","message":"There was an unexpected error, if problems persits please contact the application owner."}


Secured by pcm-auth
delete /{pCode}/price-plans/{pricePlanID}
Delete a specific Price Plan, in case the Price Plan belong to a Product with an active offer Manager, the delete will fail, the Price Plan shouldn't be attached to a Product with active offers.
Every request made to Backlot requires three query string parameters for authentication, the API Key, the request expiration, and the signature.
URI Parameters
- pCode: required (string)
- pricePlanID: required (string)
HTTP status code 200
Success - Everything is working fine.
Body
Type: application/json
HTTP status code 400
Bad Request - Some of the parameters are missing invalid or malformed.
Body
Type: application/json
Example:
{"error": "ParameterMissingError", "message": "Request is missing required query parameter 'param name'"}
HTTP status code 401
Unauthorized - The supplied credentials are not valid.
Body
Type: application/json
Example:
{"error":"AdapterAuthenticationError", "message":"The supplied credetials are no valid"}
HTTP status code 403
Forbidden - The user has not enough privileges to query the information of the specified provider.
Body
Type: application/json
Example:
{"error": "UnauthorizedRequestError", "message": "The supplied authentication is not authorized to access this resource"}
HTTP status code 404
Not Found - The user has not the item specified.
Body
Type: application/json
Example:
{"error": "ResourceNotFound", "message": "The item requested has not be found"}
HTTP status code 500
Server Error - Something is wrong with the API and it might be intermittently unavailable.
Body
Type: application/json
Example:
{"error":"InternalServerError","message":"There was an unexpected error, if problems persits please contact the application owner."}

