FIWARE Business API Ecosystem Open API Specification

DATE: 20 December 2017
This version:
https://fiware-tmforum.github.io/Business-API-Ecosystem/v6.4.0
Previous version:
https://fiware-tmforum.github.io/Business-API-Ecosystem/v5.4.1

Editors

License

This specification is licensed under the [FIWARE Open Specification License (implicit patent license)] (https://forge.fiware.org/plugins/mediawiki/wiki/fiware/index.php/Implicit_Patents_License).


Abstract

The Business API Ecosystem is a joint component made up of the FIWARE Business Framework and a set of APIs (and its reference implementations) provided by the TMForum. This component allows the monetization of different kind of assets (both digital and physical) during the whole service life cycle, from offering creation to its charging, accounting and revenue settlement and sharing. The Business API Ecosystem exposes its complete functionality through TMForum standard APIs; concretely, it includes the catalog management, ordering management, inventory management, usage management, billing, customer, and party APIs.

Status of this document

This is a work in progress and is changing on a daily basis. You can check the latest available version on GitHub.

Please send your comments to wstore@conwet.com.

This specification is licensed under the FIWARE Open Specification License


Specification

Authentication

Each HTTP request against the Business API Ecosystem API requires the inclusion of specific authentication credentials. The specific implementation of this API may support multiple authentication schemes (OAuth, Basic Auth, Token) and will be determined by the specific provider that implements the GE. Please contact the provider to determine the best way to authenticate against this API. Remember that some authentication schemes may require that the API operates using SSL over HTTP (HTTPS).

The reference implementation of the Business API Ecosystem provides support for Cookie, and OAuth2 authentication, being OAuth2 the default in FIWARE Lab.

Synchronous Faults

Error responses will be encoded using the most appropriated content-type in base to the Accept header of the request.

JSON Example

{
    "error": "No JSON object could be decoded",
}

XML Example

<?xml version="1.0" encoding="utf-8"?>
<error>No JSON object could be decoded</error>

Used HTTP Codes

HTTP Code Type Description
200 OK Your request has been completed properly
201 Created Your resource has been created.
204 No content Your request has been processed, but a response is not available. Generally used when deleting entities
400 Bad Request The content of your request is not correct
401 Unauthorized You are not logged in or the Authorization token you are providing is not valid
403 Forbidden You have no rights to perform the request
404 Not Found The resource you are looking for does not exists
409 Conflict The resource you are tring to create already exists
422 Unprocessable Entity The entity included in the request cannot be processed (e.g. It includes invalid fields)
500 Internal server error There was an internal error in the system so your request cannot be completed

API Specification

Software Status API

API for retrieving information about the running instance. It manages the following fields:

  • version - Current version of the software

  • release_date - Release date of the current version

  • uptime - Time the current version is up and running

  • git_hash - Hash of the release of the current version

  • doc - URL of the documentation

  • user_doc - URL of the user guide

Status API

[/version]

Get Status

GET /version

Asset Type Management API

API for the management of asset types. These asset types represent the different kind of digital assets that can be validated, managed, and activated by the system. The different asset types are included in the system by the admins, who can install them as plugins.

This API manages the following fields:

  • id - id in the system of the asset type

  • href - URL pointing to the asset type info

  • name - Name of the asset type

  • author - Author of the installed plugin that implements the asset type

  • version - Version of the plugin that implements the asset type

  • mediaTypes - List of media types that are valid when provided an asset of the given type. If this field is empty, any media type is allowed

  • formats - List of formats that are valid when providing an asset of the given type. URL and FILE formats are supported

  • overrides - List of product fields whose value will be overrided by the plugin implementation, when a product spec is created including the asset

  • form - (Optional) Defines the structure of a dynamic form to be used for rertieving asset-specific metadata

Asset Types Collection

[/charging/api/assetManagement/assetTypes]

List asset types

GET /charging/api/assetManagement/assetTypes

Asset Type Entry

[/charging/api/assetManagement/assetTypes/{id}]

Get asset type

GET /charging/api/assetManagement/assetTypes/{id}

Asset Management API

API for the management of digital assets. These assets can be used by the Business API Ecosystem for the creation of digital products or as attachments in product specifications (e.g the logo, a pdf document, etc)

This API manages the following fields:

  • id - Id in the system of the digital asset

  • href - URL that can be used to retrieve the information of the digital asset

  • version - Version of the digital asset

  • contentType - Media type of the digital asset (e.g application/pdf)

  • state - Current status of the asset in its life cycle

  • location - URL where it is possible to download the digital asset itself

  • resourceType - Type of digital asset chosen between the supported by the system

  • metadata - A generic field with information provided by the owner of the asset

Additionally, for uploading assets the API manages the following fields:

  • isPublic - Specifies whether the asset could be downloaded by any user or only by the authorized ones (typically the owner and customers if the assets has been included in a product)

  • content - Object containing the file itself. This object includes the following fields:

    • name - Name of the asset file being uploaded
    • data - Base64 encoded raw data of the asset file being uploaded

Asset Info collection

[/charging/api/assetManagement/assets{?offset}{?size}]

List seller assets

GET /charging/api/assetManagement/assets{?offset}{?size}
Parameters
offset (optional)

Optional parameter used to specify the first element to be returned

size (optional)

Optional parameter used to limit the number of elements returned

Asset Info Entry

[/charging/api/assetManagement/assets/{id}]

Get asset

GET /charging/api/assetManagement/assets/{id}
Parameters
id (required)

Id of the element to be retrieved

Product Asset Info Collection

[/charging/api/assetManagement/assets/product/{id}]

Get asset

GET /charging/api/assetManagement/assets/product/{id}
Parameters
id (required)

Id of the product whose assets are retrieved

Upload asset task

[/charging/api/assetManagement/assets/uploadJob/]

There are two different ways of uploading digital assets in the Business API Ecosystem GE. On the one hand, it is possible to encode the asset in base64 and make a pure JSON request including the encoded data. On the other hand, it is possible to make a multipart form request, providing a JSON with the asset metadata and including the asset as a file in the HTTP request.

Upload base64 encoded asset

POST /charging/api/assetManagement/assets/uploadJob/

Ugrade asset task

[/charging/api/assetManagement/assets/{id}/upgradeJob/]

In a similar way as it is done for uploading assets, it is possible to encode the new version of an asset in base64 and make a pure JSON request including the encoded data, or it is possible to make a multipart form request.

Upgrade base64 encoded asset

POST /charging/api/assetManagement/assets/{id}/upgradeJob/
Parameters
id (required)

Id of the asset to be upgraded

Category Management API

API for the management of categories. A Category is used to group catalogs and product offerings in logical containers. Categories can contain other categories being possible to create a tree of categories.

Category Management API uses the following fields:

  • id - Unique identifier of the category

  • href - URL pointing to the category info

  • version - Version of the category

  • lastUpdate - Date and time of the last update

  • name - Name of the category

  • lifecycleStatus - Current lifecycle status

  • parentId - Id of the parent of the current category. If this field has a value, isRoot must be false

  • isRoot - Specifies whether this category is a root category or has a parent

  • description - Descrfiption of the category

Category Collection

[/DSProductCatalog/api/catalogManagement/v2/category{?offset}{?size}]

List Categories

GET /DSProductCatalog/api/catalogManagement/v2/category{?offset}{?size}
Parameters
offset (optional)

Optional parameter used to specify the first element to be returned

size (optional)

Optional parameter used to limit the number of elements returned

Create Category

POST /DSProductCatalog/api/catalogManagement/v2/category{?offset}{?size}

Category Entry

[/DSProductCatalog/api/catalogManagement/v2/category/{id}]

Get Category

GET /DSProductCatalog/api/catalogManagement/v2/category/{id}
Parameters
id (required)

Id of the category to be returned

Update Category

PATCH /DSProductCatalog/api/catalogManagement/v2/category/{id}
Parameters
id (required)

Id of the category to be updated

Product Catalog Management API

API for the management of catalogs. These catalogs are collections of product offerings that are grouped togueter according to the seller needs.

The product catalog management API uses the following fields:

  • id - Unique identifier of the catalog

  • href - URL pointing to the catalog info

  • version - Version of the catalog

  • lastUpdate - Date and time of the last update

  • category - List of categories of the catalog. For each category the id, href, and name fields are included as described in Category Management section.

  • name - Name of the catalog

  • lifecycleStatus - Current lifecycle status

  • relatedParty - List of parties and its roles related to the current catalog. For each party, it is included the id and the href as described in the Party Management section. Additionally, it is inlcluded a role field specifing the role of the user in the current catalog

Product Catalog Collection

[/DSProductCatalog/api/catalogManagement/v2/catalog{?offset}{?size}{?name}{?relatedParty.id}{?lifecycleStatus}{?sort}{?body}]

List Product Catalogs

GET /DSProductCatalog/api/catalogManagement/v2/catalog{?offset}{?size}{?name}{?relatedParty.id}{?lifecycleStatus}{?sort}{?body}
Parameters
body (optional)

Optional parameter used to make keyword searches

lifecycleStatus (optional)

Optional parameter used to filter the returned catalogs by lifecycle status

name (optional)

Optional paramener used to filter the returned catalogs by name

offset (optional)

Optional parameter used to specify the first element to be returned

relatedParty.id (optional)

Optional parameter used to filter the returned catalogs by owner

size (optional)

Optional parameter used to limit the number of elements returned

sort (optional)

Optional parameter used to specify how to sort results

Create Product Catalog

POST /DSProductCatalog/api/catalogManagement/v2/catalog{?offset}{?size}{?name}{?relatedParty.id}{?lifecycleStatus}{?sort}{?body}

Product Catalog Entry

[/DSProductCatalog/api/catalogManagement/v2/catalog/{id}]

Get Product Catalog

GET /DSProductCatalog/api/catalogManagement/v2/catalog/{id}
Parameters
id (required)

Id of the catalog to be retrieved

Update Product Catalog

PATCH /DSProductCatalog/api/catalogManagement/v2/catalog/{id}
Parameters
id (required)

Id of the catalog to be updated

Product Specification Management API

API for the management of Product Specifications. A Product Specification is a detailed description of a tangible or intangible object made available in the form of a Product Offering to customers or other parties playing a party role.

The Product Specification Management API uses the folowing fields:

  • id - Unique identifier of the product specification

  • href - URL pointing to the product specification info

  • productNumber - An id number asigned by the seller to identify its product specification

  • version - Version of the product specification

  • lastUpdate - Date and time of the last update

  • name - Name of the product specification

  • description - Narrative text that explains what the product specification is

  • isBundle - Determines whether the current specification represents a single product specification or a bundle of product specifications

  • brand - The manufacturer or trademark of the specification

  • lifecycleStatus - Current lifecycle status of the product specification

  • relatedParty - List of parties and its roles related to the current product specification. For each party, it is included the id and the href as described in the Party Management section. Additionally, it is inlcluded a role field specifing the role of the user in the current product specifrication

  • attachment - List of product attachments, such as video, pictures, pdf documents, etc. Which help describing the product specification. Each attachment contains the following fields:

    • type - Attachment type, video, picture, document, etc. The type Picture can be included only once and is used by the platform as the logo of the product specification (and its product offering)
    • url - URL pointing to the attachment itself. Note that if the attachment has been uploaded to the system using the asset management API, you can use the URL returned by the upload task in the Location header
  • bundledProductSpecification - In case the current product is a bundle (isBundle is true), this field contains the list of product specifications that made up the bundle. Each element of the list must contain the id, the href and the name of the product specification being bundled

  • productSpecificationRelationship - Describes the relationships of the current product specification with other product specifications of the system. For each relationship, it is required to include the id and the href of the related product specification, and a type which describes the type of relationship. The supported types are migration, substitution, dependency, and exclusivity

  • productSpecCharacteristic - A characteristic or distintive feature of the product specification. Characteristics can be a discrete value, such as color, or can be a range of values. Additionally, some characteristics may be selected during the ordering process. Characteristics have the following fields:

    • configurable - Determines whether the characteristic can be configured during the ordering process
    • name - Name of the characteristic
    • description - Narrative text explaining what the characteristic is
    • valueType - The kind of value the characteristic could have. Valid values are String and Number
    • productSpecCharacteristicValue - List of values of the characteristic. If configurable is false, this field must contain a single value. Each of these elements contain the following fields:
      • default - Indicates whether tghe current value is the default for the characteristic
      • unitOfMeasure - Could be minutes, MB, etc. This field is only used when the type is Number
      • value - Value of the characteristic when it is a discrete value. If this field is included, valueFrom and valueTo must be empty
      • valueFrom - Starting value of the characteristic when it is a range. If this field is included, valueTo must be also included and value must be empty
      • valueTo - Ending value of the characteristic when it is a range. If this field is included, valueFrom must be also included and value must be empty
      • valueType - The kind of value the characteristic could have. Valid values are String and Number

Product Specification Collection

[/DSProductCatalog/api/catalogManagement/v2/productSpecification{?offset}{?size}{?isBundle}{?productNumber}{?relatedParty.id}{?lifecycleStatus}{?sort}{?body}]

List Product Specifications

GET /DSProductCatalog/api/catalogManagement/v2/productSpecification{?offset}{?size}{?isBundle}{?productNumber}{?relatedParty.id}{?lifecycleStatus}{?sort}{?body}
Parameters
body (optional)

Optional parameter used to make keyword searches

isBundle (optional)

Optional parameter used to filter the returned product specifications by isBundle

lifecycleStatus (optional)

Optional parameter used to filter the returned product specifications by lifecycle status

offset (optional)

Optional parameter used to specify the first element to be returned

productNumber (optional)

Optional parameter used to filter the returned product specifications by product number

relatedParty.id (optional)

Optional parameter used to filter the returned product specifications by owner

size (optional)

Optional parameter used to limit the number of elements returned

sort (optional)

Optional parameter used to specify how to sort results

Create Product Specification

POST /DSProductCatalog/api/catalogManagement/v2/productSpecification{?offset}{?size}{?isBundle}{?productNumber}{?relatedParty.id}{?lifecycleStatus}{?sort}{?body}

Product Specification Entry

[/DSProductCatalog/api/catalogManagement/v2/productSpecification/{id}]

Get Product Specification

GET /DSProductCatalog/api/catalogManagement/v2/productSpecification/{id}
Parameters
id (required)

Id of the product to be retrieved

Update Product Specification

PATCH /DSProductCatalog/api/catalogManagement/v2/productSpecification/{id}
Parameters
id (required)

Id of the product specification to be updated

Product Offering Management API

API for the management of Product Offerings. Product Offerings represents entities that are orderable from the provider of the catalog, this resource includes pricing information.

The Product Offering Management API uses the following fields:

  • id - Unique identifier of the product offering

  • href - URL pointing to the product offering info

  • version - Version of the product offering

  • lastUpdate - Date and time of the last update

  • name - Name of the product offering

  • description - Narrative text that explains what the product offering is

  • isBundle - Determines whether the current offering represents a single offering or a bundle of offerings. If false, then a productSpecification will be returned, but the bundledProductOfferings will be absent or empty and vice-versa if isBundle is true.

  • lifecycleStatus - Current lifecycle status of the product offering

  • category - List of categories of the product offering. For each category the id, href, and name fields are included as described in Category Management section.

  • place - List of places where the offering is available. Each object includes the name of the place

  • bundledProductOffering - List of offerings included when the product offering is a bundle. For each offering is included the id, the name, and the href

  • productSpecification - Product specification offered when the offering is not a bundle

  • serviceCandidate - Object used to specify the product class of the current offering as described in the Revenue Sharing Management sections.

  • productOfferingPrice - List of pricing models of the product offering. Each of the pricing models included defines a price that can be selected by the customers during the ordering process. Each pricing model includes the following fields:

    • name - Name of the pricing model
    • description - Narrative text explaining what the pricing models is
    • priceType - Type of the pricing model. It could be one time for payments made once at acquisition time, recurring for payments made periodically, and usage for payments calculated based on the usage made by the customer of the product
    • unitOfMeasure - Unit that is monitored when the priceType is usage, otherwise this field is empty
    • recurringChargePeriod - Specifies the period between charges when the priceType is recurring, otherwise the field is empty
    • price - Object describing the price of the pricing model. It contains the following fields:
      • taxIncludedAmount - Price of the model
      • dutyFreeAmount - Price of the model without imcluding taxes
      • taxRate - Percentage of taxes that apply to the price
      • currencyCode - Currency of the price
    • productOfferPriceAlteration - Object that specifies alterations over the final price based on certain conditions. This object contains the following fields:
      • name - Specifies if the alteration is a discount or a fee
      • description - Narrative text explaining what the alteration is
      • priceType - Type of the alteration. It could be one time if the alterarion onlyu applies to the initial charge, or recurring if the alteration applies to all charges
      • priceCondition - Condition of the alteration with the format [lt | le | eq | ge | gt ]
      • price - fixed price or percentage for be deducted or added to the final price

Product Offering Collection

[/DSProductCatalog/api/catalogManagement/v2/catalog/{catId}/productOffering{?offset}{?size}{?isBundle}{?name}{?relatedParty.id}{?category.id}{?category.name}{?productSpecification.id}{bundledProductOffering.id}{?lifecycleStatus}{?sort}{?body}]

List Product Offerings

GET /DSProductCatalog/api/catalogManagement/v2/catalog/{catId}/productOffering{?offset}{?size}{?isBundle}{?name}{?relatedParty.id}{?category.id}{?category.name}{?productSpecification.id}{bundledProductOffering.id}{?lifecycleStatus}{?sort}{?body}
Parameters
body (optional)

Optional parameter used to make keyword searches

bundledProductOffering.id (optional)

Optional parameter used to filter the returned product offerings by bundled offerings id

category.id (optional)

Optional parameter used to filter the returned product offerings by category id

category.name (optional)

Optional parameter used to filter the returned product offerings by category name

catId (required)

Id of the catalog whose offerings are going to be retrieved

isBundle (optional)

Optional parameter used to filter the returned product offerings by isBundle

lifecycleStatus (optional)

Optional parameter used to filter the returned product offering by lifecycle status

name (optional)

Optional parameter used to filter the returned product offerings by name

offset (optional)

Optional parameter used to specify the first element to be returned

productSpecification.id (optional)

Optional parameter used to filter the returned product offerings by product specification id

relatedParty.id (optional)

Optional parameter used to filter the returned product offerings by owner

size (optional)

Optional parameter used to limit the number of elements returned

sort (optional)

Optional parameter used to specify how to sort results

Create Product Offering

POST /DSProductCatalog/api/catalogManagement/v2/catalog/{catId}/productOffering{?offset}{?size}{?isBundle}{?name}{?relatedParty.id}{?category.id}{?category.name}{?productSpecification.id}{bundledProductOffering.id}{?lifecycleStatus}{?sort}{?body}
Parameters
catId (required)

Id of the catalog whose offerings are going to be retrieved

Product Offering Entry

[/DSProductCatalog/api/catalogManagement/v2/catalog/{catId}/productOffering/{id}]

Get Product Offering

GET /DSProductCatalog/api/catalogManagement/v2/catalog/{catId}/productOffering/{id}
Parameters
catId (required)

Id of the catalog whose offerings are going to be retrieved

id (required)

Id of the product offering to be retrieved

Update Product Offering

PATCH /DSProductCatalog/api/catalogManagement/v2/catalog/{catId}/productOffering/{id}
Parameters
catId (required)

Id of the catalog whose offerings are going to be retrieved

id (required)

Id of the product offering to be retrieved

Order Management API

API for the management of Product Orders. Product orders are made by customers, and include a set of order items each specifiying an offering to be acquired. When creating an order, customers can select the value of the different configurable characteristics as well as the concrete pricing to be aplied.

This API manages the following fields:

  • id - Unique identifier of the order

  • href - URL pointing to the product order info

  • externalId - Id of the order given by customer, which can be used by them to identify the order in their own systems

  • priority - Number between 1 and 4 (1 the highest) that can used by the customer to specify the priority of their orders

  • description - Description of the product order

  • state - Status of the order, relative to the status of the different order items

  • orderDate - Date when the order was created

  • completionDate - Date when the order was completed

  • requestedStartDate - Order start date wished by the requestor

  • requestedCompletionDate - Requested delivery date from the requestor perspective

  • expectedCompletionDate - Expected delivery date amended by the provider

  • notificationContact - Contact attached to the order to send back information regarding the current order

  • note - List of extra information about the order. For each note is included the following info:

    • date - Date of the note
    • author - Author of the note
    • text - Text of the note
  • relatedParty - Defines parties which are involved in the order and the role they are playing. For each party, it is included the id and the href as described in the Party Management section. Additionally, it is inlcluded a role field specifing the role of the user in the current product order

  • orderItem - List of order items that have to be treated. For each order item the following information is managed:

    • id - Id of the order item relative to to the product order (Only need to be unique within the order)
    • action - Type of the order item. Currently only add is supported (acquisition)
    • state - Status of the order item
    • billingAccount - Billing account selected by the customer to acquire the offering according to the Billing Management API section
    • productOffering - Product offering being acquired. It includes the id and the href of the product offering
    • product - Information provided to create the inventory product. It contains the selected characteristics and the selected pricing. The different fields managed by this object are the same as the described in the Inventory Management API Section

Product Order Collection

[/DSProductOrdering/api/productOrdering/v2/productOrder{?offset}{?size}{?priority}{?state}{?relatedParty.id}{?relatedParty.role}]

List Product Orders

GET /DSProductOrdering/api/productOrdering/v2/productOrder{?offset}{?size}{?priority}{?state}{?relatedParty.id}{?relatedParty.role}
Parameters
offset (optional)

Optional parameter used to specify the first element to be returned

priority (optional)

Optional parameter used to filter the returned orders by priority

relatedParty.id (optional)

Optional parameter used to filter the returned orders by user id

relatedParty.role (optional)

Optional parameter used to filter the returned orders by user role (customer or seller)

size (optional)

Optional parameter used to limit the number of elements returned

state (optional)

Optional parameter used to filter the returned orders by state

Create Product Order

POST /DSProductOrdering/api/productOrdering/v2/productOrder{?offset}{?size}{?priority}{?state}{?relatedParty.id}{?relatedParty.role}

Product Order Entry

[/DSProductOrdering/api/productOrdering/v2/productOrder/{id}]

Get Product Order

GET /DSProductOrdering/api/productOrdering/v2/productOrder/{id}
Parameters
id (required)

Id of the product order to be retrieved

Update Product Order

PATCH /DSProductOrdering/api/productOrdering/v2/productOrder/{id}
Parameters
id (required)

Id of the product order to be updated

Inventory Management API

API for the Management of the Inventory. This API allows to retrieve instantiated products, that is, this API allows customers to retrieved information of the products they have acquired including the specific characteristics and pricing model selected. Note that this API does not allow to create or update products. This process is done by the system when an order is completed or renovated.

This API manages the following fields:

  • id - Id that identifies the product

  • href - URL pointing to the product info

  • name - Name of the product (maps the name of the product specification)

  • description - Description of the product (maps the description of the product specification)

  • status - Current status of the products. Specifies if the user has access to the service (Active), if the service is temporally unaccessible for the customer (Suspended), or if the customer has no longer access to the service (Terminated)

  • isBundle - Specifies whether the acquired offering is a bunlde

  • startDate - Date when the product was activated. The customer has access to the acqured service from this date

  • orderDate - Date when the order that generated the current product was created

  • terminationDate - Date when the product was terminated. The customer has no longer access to the acquired service from this date

  • productOffering - Offering that has been acquired. This object includes the id and the href of the offering

  • productSpecification - Product specification that has been acquired. This object includes the id and the href of the product specification

  • productCharacteristic - Selected values of the configurable characteristics defined in the product specificacion

  • billingAccount - Billing account used by the customer to acquire the product offering

  • relatedParty - Defines parties which are involved in the product and the role they are playing. For each party, it is included the id and the href as described in the Party Management section. Additionally, it is inlcluded a role field specifing the role of the user in the current product

  • productPrice - Price model of the product offering selected by the user when the order was created

Product Collection

[/DSProductInventory/api/productInventory/v2/product{?offset}{?size}{?name}{?relatedParty.id}{?status}{?sort}{?body}]

List Products

GET /DSProductInventory/api/productInventory/v2/product{?offset}{?size}{?name}{?relatedParty.id}{?status}{?sort}{?body}
Parameters
body (optional)

Optional parameter used to make keyword searches

name (optional)

Optional parameter used to filter the returned products by name

offset (optional)

Optional parameter used to specify the first element to be returned

relatedParty.id (optional)

Optional parameter used to filter the returned products by owner

size (optional)

Optional parameter used to limit the number of elements returned

sort (optional)

Optional parameter used to specify how to sort results

status (optional)

Optional parameter used to filter the returned products by status

Product Entry

[/DSProductInventory/api/productInventory/v2/product/{id}]

Get Product

GET /DSProductInventory/api/productInventory/v2/product/{id}
Parameters
id (required)

Id of the product to be retrieved

Party Management API

API for the management of the parties. This API allows to create, retrieve and update the different parties of the system, who are included as related parties in the rest of APIs. For the different individuals of the system the following information is used:

  • id - Id of the party. Corresponds with the username of the user in the system

  • href - URL pointing to the party info

  • gender - Gender of the individual owner of the account

  • placeOfBirth - Place where the owner of the account was born

  • countryOfBirth - Country where the owner of the account was born

  • nationality - Nationality of the owner of the account

  • maritalStatus - Marital status (married, divorced, widow, etc)

  • birthDate - Date when the owner of the account was born

  • title - Preferred title of the user (Mr., Dr., etc)

  • givenName - First name of the user owner of the account

  • familyName - Family name of the user owner of the account

  • contactMedium - List of mediums that can be used to contact the user. Note that this information is public to all the users of the system, so this mediums are used as seller contact. Each medium contains the following fields:

    • type - Type of the contact medium. It could be Email, TelephoneNumber, or PostalAddress
    • preferred - If true, indicates that is the preferred contact medium
    • emailAddress - Full email address in standard format. This field is only used when the type is Email
    • number - Phone number. This field is only used when the type is TelephoneNumber
    • street1 - Describes the street. This field is only used when the type is PostalAddress
    • street2 - Complementary street description. This field is only used when the type is PostalAddress
    • city - City of the medium. This field is only used when the type is PostalAddress
    • postCode - PostCode of the medium. This field is only used when the type is PostalAddress
    • stateOrProvince - State or province of the medium. This field is only used when the type is PostalAddress
    • country - Country of the medium. This field is only used when the type is PostalAddress

Individuals Collection

[/DSPartyManagement/api/partyManagement/v2/individual]

List Individuals

GET /DSPartyManagement/api/partyManagement/v2/individual

Create Individual

POST /DSPartyManagement/api/partyManagement/v2/individual

Individual Entry

[/DSPartyManagement/api/partyManagement/v2/individual/{id}]

Get Individual

GET /DSPartyManagement/api/partyManagement/v2/individual/{id}
Parameters
id (required)

de-la-vega - Id of the individual to be retrieved

Update Individual

PATCH /DSPartyManagement/api/partyManagement/v2/individual/{id}
Parameters
id (required)

de-la-vega - Id of the individual to be updated

Customer Management API

API for the management of customer information. This API is used for saving customer private information that cannot be included within the party resources. Concretely, this API is used jointly with Customer Account, and Billing Account to maintain different shipping contact mediums (including, email, phone, and address) attached to different billing accounts.

This API manages the following fields:

  • id - Id that identifies the customer object

  • href - URL pointing to the customer info

  • name - Username of the owner of the customer object. Note that this field maps the id field of the individual object

  • relatedParty - Party which owns the Customer object

  • contactMedium - List of contact mediums that define a shipping contact. This list has the same format as the contact medium described in the Party Management API, and must include an email, a telephone, and an address. In this case, this address is private and only vissible by sellers when they need it.

  • customerAccount - Reference of the customer account attached to this customer object

Note that a complete shipping profile is created as a tuple of a Customer object, a Customer Account, and a Billing Account. In this way, the Billing account reference is included when creating an order (see Order Management API section), the Billing Account includes a reference to a Customer Account which links to a Customer object. The later contains the contact medium chosen as shipping address for the order.

Customer Collection

[/DSCustomerManagement/api/customerManagement/v2/customer]

List Customers

GET /DSCustomerManagement/api/customerManagement/v2/customer

Create a Customer

POST /DSCustomerManagement/api/customerManagement/v2/customer

Customer Entry

[/DSCustomerManagement/api/customerManagement/v2/customer/{id}]

Get Customer

GET /DSCustomerManagement/api/customerManagement/v2/customer/{id}
Parameters
id (required)

Id of the customer to be retrieved

Update Customer

PATCH /DSCustomerManagement/api/customerManagement/v2/customer/{id}
Parameters
id (required)

Id of the individual to be updated

Customer Account Management API

API for the management of Customer Account. These Customer Accounts are used as the nexus between the Billing Account inscluded in products orders and the Customer objects that contain the Shipping contacts.

This API uses the following fields:

  • id - Id that identifies the Customer Account

  • href - URL pointing to the Customer Account info

  • name - Username of the owner of the Customer Account

  • accountType - Type of the Customer Account. Currently only Shipping Address is supported

  • customer - Reference to the customer object that contains the shipping address

  • lastModified - Date and time of the last modification

Note that a complete shipping profile is created as a tuple of a Customer object, a Customer Account, and a Billing Account. In this way, the Billing account reference is included when creating an order (see Order Management API section), the Billing Account includes a reference to a Customer Account which links to a Customer object. The later contains the contact medium chosen as shipping address for the order.

Customer Account Collection

[/DSCustomerManagement/api/customerManagement/v2/customerAccount]

List Customer Accounts

GET /DSCustomerManagement/api/customerManagement/v2/customerAccount

Create a Customer Account

POST /DSCustomerManagement/api/customerManagement/v2/customerAccount

Customer Account Entry

[/DSCustomerManagement/api/customerManagement/v2/customerAccount/{id}]

Get Customer

GET /DSCustomerManagement/api/customerManagement/v2/customerAccount/{id}
Parameters
id (required)

Id of the customer account to be retrieved

Update Customer Account

PATCH /DSCustomerManagement/api/customerManagement/v2/customerAccount/{id}
Parameters
id (required)

Id of the customer account to be updated

Billing Account Management API

API for the management of Billing Account. A Billing Account is a description of a Customer bill structure.

Billing Accounts contain the following fields:

  • id - Id that identifies the Billing Account

  • href - URL pointing to the Billing Account info

  • ratingType - Type of rating to be applied. In this case this value is fixed to Postpaid

  • name - Username of the user that owns the account

  • state - Current status of the Billing Account

  • validFor - Date and time from when the account is valid

  • customerAccount - Reference to the Customer Account that links to the shipping details

  • relatedParty - List of parties that are related to the Billing Account. Note that at least it must include the owner of the account playing the bill receiver role.

Note that a complete shipping profile is created as a tuple of a Customer object, a Customer Account, and a Billing Account. In this way, the Billing account reference is included when creating an order (see Order Management API section), the Billing Account includes a reference to a Customer Account which links to a Customer object. The later contains the contact medium chosen as shipping address for the order.

Billing Account Collection

[/DSBillingManagement/api/billingManagement/v2/billingAccount]

List Billing Accounts

GET /DSBillingManagement/api/billingManagement/v2/billingAccount

Create a Billing Account

POST /DSBillingManagement/api/billingManagement/v2/billingAccount

Billing Account Entry

[/DSBillingManagement/api/billingManagement/v2/billingAccount/{id}]

Get Billing Account

GET /DSBillingManagement/api/billingManagement/v2/billingAccount/{id}
Parameters
id (required)

Id of the billing account to be retrieved

Update Billing Account

PATCH /DSBillingManagement/api/billingManagement/v2/billingAccount/{id}
Parameters
id (required)

Id of the billing account to be updated

Billing Charges Management API

API for the management of Billing Charges. A Billing Charge includes the information of a payment made by a customer for a specific product acquired in the system.

This API uses the following fields:

  • id - Id that identifies the charge

  • href - URL pointing to the charge info

  • date - Date and time when the customer was charged

  • description - Description of the charge, including a URL where downloading an invoice

  • type - Type of the charge, it could be one time, recurring and usage

  • currencyCode - Currency of the charge

  • taxIncludedAmount - Total amount charged

  • taxExcludedAmount - Amount charged without taxes

  • appliedCustomerBillingTaxRate - Tax rate and type applied to the charge

  • productSpecification - Purchased product that generated the charge

  • period - Period of time of the charge. The value of this field depends on the type of charges. If the type is one time, the field is empty. If the type is recurring, this field contains the period until next payment, since recurring charges are paid on advance. Finally, if the type is usage, this field contains the period since last charge

Billing Charge Collection

[/DSBillingManagement/api/billingManagement/v2/appliedCustomerBillingCharge{?serviceId.id}]

List Billing Charges

GET /DSBillingManagement/api/billingManagement/v2/appliedCustomerBillingCharge{?serviceId.id}
Parameters
serviceId.id (required)

Id of the inventory product whose charges are retrieved

Billing Charge Entry

[/DSBillingManagement/api/billingManagement/v2/appliedCustomerBillingCharge/{id}]

Get Billing Charge

GET /DSBillingManagement/api/billingManagement/v2/appliedCustomerBillingCharge/{id}
Parameters
id (required)

Id of the billing charge to be retrieved

Usage Specification Management API

API for the management of Usage Specifications. Usage Specifications are a detailed description of a usage event which can then be used in an usage pricing model. Usage Specifications define all the attributes known for a particular type of usage.

This API uses the following fields:

  • id - Id that identifies the Usage Specification

  • href - URL pointing to the Usage Specification

  • name - Name of the usage specification

  • description - Textual description of the Usage Specification

  • usageSpecCharacteristic - List of characteristics which define the specific attributes of the described usage documents. Each characteristic is defined with the same format as the productSpecCharacteristic field of the Product Specification object, defined in the Product Specification Management API section

Note, that for a usage document to be processed and understood by the system, it is required to include some fields which must also be defined as characteristics of the Usage Specification. This fields are:

  • orderid - Id of the order where the product was acquired

  • productid - Id in the inventory of the product containing the details of the acquisition

  • correlationNumber - Sequence number of the usage documents, used to ensure that no usage has been lost

  • unit - Unit being monitored while accounting the service (e.g second, call, megabyte, etc)

  • value - Usage made of the service of the given unit

Usage Specification Collection [DSUsageManagement/api/usageManagement/v2/usageSpecification]

List Usage Specifications [GET]

  • Request

    • Headers
      Authorization: Bearer YOUR_OAUTH2_TOKEN
      
  • Response 200 (application/json)

    [
        {
            "id": "234",
            "href": "https://store.lab.fiware.org/DSUsageManagement/api/usageManagement/v2/usageSpecification/234",
            "name": "Service Calls",
            "description": "Spec for service calls usage",
            "usageSpecCharacteristic": [{
                "name": "orderId",
                "description": "Order Id",
                "configurable": "false",
                "usageSpecCharacteristicValue": [{
                    "valueType": "number",
                    "default": "false",
                    "value": "",
                    "valueFrom": "0",
                    "valueTo": ""
                }]
            }, {
                "name": "productId",
                "description": "Product Id",
                "configurable": "false",
                "usageSpecCharacteristicValue": [{
                    "valueType": "number",
                    "default": "false",
                    "value": "",
                    "valueFrom": "0",
                    "valueTo": ""
                }]
            }, {
                "name": "correlationNumber",
                "description": "Correlation Number",
                "configurable": "false",
                "usageSpecCharacteristicValue": [{
                    "valueType": "number",
                    "default": "false",
                    "value": "",
                    "valueFrom": "0",
                    "valueTo": ""
                }]
            }, {
                "name": "unit",
                "description": "Accounted Unit",
                "configurable": "false",
                "usageSpecCharacteristicValue": [{
                    "valueType": "string",
                    "default": "false",
                    "value": "call",
                    "valueFrom": "",
                    "valueTo": ""
                }]
            }, {
                "name": "value",
                "description": "Usage Made",
                "configurable": "false",
                "usageSpecCharacteristicValue": [{
                    "valueType": "number",
                    "default": "false",
                    "value": "",
                    "valueFrom": "",
                    "valueTo": ""
                }]
            }]
        }
    ]
    

Create Usage Specification [POST]

  • Request (application/json)

    • Headers

      Authorization: Bearer YOUR_OAUTH2_TOKEN
      X-API-Key: API_KEY
      
    • Body

      {
          "name": "Service Calls",
          "description": "Spec for service calls usage",
          "usageSpecCharacteristic": [{
              "name": "orderId",
              "description": "Order Id",
              "configurable": "false",
              "usageSpecCharacteristicValue": [{
                  "valueType": "number",
                  "default": "false",
                  "value": "",
                  "valueFrom": "0",
                  "valueTo": ""
              }]
          }, {
              "name": "productId",
              "description": "Product Id",
              "configurable": "false",
              "usageSpecCharacteristicValue": [{
                  "valueType": "number",
                  "default": "false",
                  "value": "",
                  "valueFrom": "0",
                  "valueTo": ""
              }]
          }, {
              "name": "correlationNumber",
              "description": "Correlation Number",
              "configurable": "false",
              "usageSpecCharacteristicValue": [{
                  "valueType": "number",
                  "default": "false",
                  "value": "",
                  "valueFrom": "0",
                  "valueTo": ""
              }]
          }, {
              "name": "unit",
              "description": "Accounted Unit",
              "configurable": "false",
              "usageSpecCharacteristicValue": [{
                  "valueType": "string",
                  "default": "false",
                  "value": "call",
                  "valueFrom": "",
                  "valueTo": ""
              }]
          }, {
              "name": "value",
              "description": "Usage Made",
              "configurable": "false",
              "usageSpecCharacteristicValue": [{
                  "valueType": "number",
                  "default": "false",
                  "value": "",
                  "valueFrom": "",
                  "valueTo": ""
              }]
          }]
      }
      
  • Response 201 (application/json)

        {
            "id": "234",
            "href": "https://store.lab.fiware.org/DSUsageManagement/api/usageManagement/v2/usageSpecification/234",
            "name": "Service Calls",
            "description": "Spec for service calls usage",
            "usageSpecCharacteristic": [{
                "name": "orderId",
                "description": "Order Id",
                "configurable": "false",
                "usageSpecCharacteristicValue": [{
                    "valueType": "number",
                    "default": "false",
                    "value": "",
                    "valueFrom": "0",
                    "valueTo": ""
                }]
            }, {
                "name": "productId",
                "description": "Product Id",
                "configurable": "false",
                "usageSpecCharacteristicValue": [{
                    "valueType": "number",
                    "default": "false",
                    "value": "",
                    "valueFrom": "0",
                    "valueTo": ""
                }]
            }, {
                "name": "correlationNumber",
                "description": "Correlation Number",
                "configurable": "false",
                "usageSpecCharacteristicValue": [{
                    "valueType": "number",
                    "default": "false",
                    "value": "",
                    "valueFrom": "0",
                    "valueTo": ""
                }]
            }, {
                "name": "unit",
                "description": "Accounted Unit",
                "configurable": "false",
                "usageSpecCharacteristicValue": [{
                    "valueType": "string",
                    "default": "false",
                    "value": "call",
                    "valueFrom": "",
                    "valueTo": ""
                }]
            }, {
                "name": "value",
                "description": "Usage Made",
                "configurable": "false",
                "usageSpecCharacteristicValue": [{
                    "valueType": "number",
                    "default": "false",
                    "value": "",
                    "valueFrom": "",
                    "valueTo": ""
                }]
            }]
        }
    

Usage Specification Entry [DSUsageManagement/api/usageManagement/v2/usageSpecification/{id}]

Get Usage Specification [GET]

  • Parameters

    • id: 1 - Id of the usage specification to be retrieved
  • Request

    • Headers
      Authorization: Bearer YOUR_OAUTH2_TOKEN
      
  • Response 200 (application/json)

        {
            "id": "234",
            "href": "https://store.lab.fiware.org/DSUsageManagement/api/usageManagement/v2/usageSpecification/234",
            "name": "Service Calls",
            "description": "Spec for service calls usage",
            "usageSpecCharacteristic": [{
                "name": "orderId",
                "description": "Order Id",
                "configurable": "false",
                "usageSpecCharacteristicValue": [{
                    "valueType": "number",
                    "default": "false",
                    "value": "",
                    "valueFrom": "0",
                    "valueTo": ""
                }]
            }, {
                "name": "productId",
                "description": "Product Id",
                "configurable": "false",
                "usageSpecCharacteristicValue": [{
                    "valueType": "number",
                    "default": "false",
                    "value": "",
                    "valueFrom": "0",
                    "valueTo": ""
                }]
            }, {
                "name": "correlationNumber",
                "description": "Correlation Number",
                "configurable": "false",
                "usageSpecCharacteristicValue": [{
                    "valueType": "number",
                    "default": "false",
                    "value": "",
                    "valueFrom": "0",
                    "valueTo": ""
                }]
            }, {
                "name": "unit",
                "description": "Accounted Unit",
                "configurable": "false",
                "usageSpecCharacteristicValue": [{
                    "valueType": "string",
                    "default": "false",
                    "value": "call",
                    "valueFrom": "",
                    "valueTo": ""
                }]
            }, {
                "name": "value",
                "description": "Usage Made",
                "configurable": "false",
                "usageSpecCharacteristicValue": [{
                    "valueType": "number",
                    "default": "false",
                    "value": "",
                    "valueFrom": "",
                    "valueTo": ""
                }]
            }]
        }
    

Usage Management API

API for the management of Usage documents. Usage documents contain the actual usage made of an acquired product, including the information defined in its Usage Specification.

This API manages the following fields:

  • id - Id that identifies the Usage

  • href - URL pointing to the Usage

  • date - Date and time when the usage was created

  • type - Type of the Usage document. It refers to the name of an Usage Specification

  • description - Description of the Usage Document

  • status - Current status of the Usage

  • usageSpecification - Reference to the Usage Specification that defines the current usage. It includes its id and its href

  • usageCharacteristic - List with the values of the characteristics defined in the Usage Specification

  • relatedParty - List of parties that are involved in the Usage. At least this list must include the user the made the usage of the service with the role customer

  • ratedProductUsage - In case the customer had already been charged for the usage made in the current document, this field would contain the amount generated by the document, taking into account the pricing model of the product. This field contains the following fields:

    • ratingDate - Date and time when the document was rated
    • usageRatingTag - Fixed to usage
    • isBilled - Specifies if the rated document has been already charged
    • ratingAmountType - Fixed to Total
    • taxIncludedRatingAmount - Total amount generated by the Usage
    • taxExcludedRatingAmount - Amount without taxes generated by the Usage
    • taxRate - Tax rate of the rated amount
    • currencyCode - Currency of the rated amount
    • productRef - href of the product in the inventory that generated the rate

Note, that for a usage document to be processed and understood by the system, it is required to include some fields which must also be defined as characteristics of the Usage Specification. This fields are:

  • orderid - Id of the order where the product was acquired

  • productid - Id in the inventory of the product containing the details of the acquisition

  • correlationNumber - Sequence number of the usage documents, used to ensure that no usage has been lost

  • unit - Unit being monitored while accounting the service (e.g second, call, megabyte, etc)

  • value - Usage made of the service of the given unit

Usage Collection [DSUsageManagement/api/usageManagement/v2/usage]

List Usages [GET]

Create Usage [POST]

  • Request (application/json)

    • Headers

      Authorization: Bearer YOUR_OAUTH2_TOKEN
      X-API-Key: API_KEY
      
    • Body

      {
          "date": "2013-04-19T16:42:23-04:00",
          "type": "Service Call",
          "description": "Description for individual usage content",
          "status": "rated",
          "usageSpecification": {
              "id": "234",
              "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/fdelavega",
              "name": "Service Calls"
          },
          "usageCharacteristic": [
              {
                  "name": "orderId",
                  "value": "1"
              }, {
                  "name": "productId",
                  "value": "4"
              }, {
                  "name": "value",
                  "value": "2"
              }, {
                  "name": "unit",
                  "value": "call"
              }, {
                  "name": "correlationNumber",
                  "value": "7"
              }
          ],
          "relatedParty": [{
              "role": "customer",
              "id": "fdelavega",
              "href": "http://serverlocation:port/partyManagement/organization/1"
          }],
          "ratedProductUsage": [
              {
                  "ratingDate": "2013-04-19T16:42:23-04:00",
                  "usageRatingTag": "Usage",
                  "isBilled": "False",
                  "ratingAmountType": "Total",
                  "taxIncludedRatingAmount": "12.00",
                  "taxExcludedRatingAmount": "10.00",
                  "taxRate": "20",
                  "currencyCode": "EUR",
                  "productRef": "https://store.lab.fiware.org/DSProductInventory/api/productInventory/v2/product/42"
              }
          ]
      }
      
  • Response 201 (application/json)

        {
            "id": "15",
            "href": "https://store.lab.fiware.org/DSUsageManagement/api/usageManagement/v2/usage/15",
            "date": "2013-04-19T16:42:23-04:00",
            "type": "Service Call",
            "description": "Description for individual usage content",
            "status": "rated",
            "usageSpecification": {
                "id": "234",
                "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/fdelavega",
                "name": "Service Calls"
            },
            "usageCharacteristic": [
                {
                    "name": "orderId",
                    "value": "1"
                }, {
                    "name": "productId",
                    "value": "4"
                }, {
                    "name": "value",
                    "value": "2"
                }, {
                    "name": "unit",
                    "value": "call"
                }, {
                    "name": "correlationNumber",
                    "value": "7"
                }
            ],
            "relatedParty": [{
                "role": "customer",
                "id": "fdelavega",
                "href": "http://serverlocation:port/partyManagement/organization/1"
            }],
            "ratedProductUsage": [
                {
                    "ratingDate": "2013-04-19T16:42:23-04:00",
                    "usageRatingTag": "Usage",
                    "isBilled": "False",
                    "ratingAmountType": "Total",
                    "taxIncludedRatingAmount": "12.00",
                    "taxExcludedRatingAmount": "10.00",
                    "taxRate": "20",
                    "currencyCode": "EUR",
                    "productRef": "https://store.lab.fiware.org/DSProductInventory/api/productInventory/v2/product/42"
                }
            ]
        }
    

Usage Entry [DSUsageManagement/api/usageManagement/v2/usage/{id}]

Get Usage [GET]

  • Parameters

    • id: 1 - Id of the usage specification to be retrieved
  • Request

    • Headers
      Authorization: Bearer YOUR_OAUTH2_TOKEN
      
  • Response 200 (application/json)

    [
        {
            "id": "15",
            "href": "https://store.lab.fiware.org/DSUsageManagement/api/usageManagement/v2/usage/15",
            "date": "2013-04-19T16:42:23-04:00",
            "type": "Service Call",
            "description": "Description for individual usage content",
            "status": "rated",
            "usageSpecification": {
                "id": "234",
                "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/fdelavega",
                "name": "Service Calls"
            },
            "usageCharacteristic": [
                {
                    "name": "orderId",
                    "value": "1"
                }, {
                    "name": "productId",
                    "value": "4"
                }, {
                    "name": "value",
                    "value": "2"
                }, {
                    "name": "unit",
                    "value": "call"
                }, {
                    "name": "correlationNumber",
                    "value": "7"
                }
            ],
            "relatedParty": [{
                "role": "customer",
                "id": "fdelavega",
                "href": "http://serverlocation:port/partyManagement/organization/1"
            }],
            "ratedProductUsage": [
                {
                    "ratingDate": "2013-04-19T16:42:23-04:00",
                    "usageRatingTag": "Usage",
                    "isBilled": "False",
                    "ratingAmountType": "Total",
                    "taxIncludedRatingAmount": "12.00",
                    "taxExcludedRatingAmount": "10.00",
                    "taxRate": "20",
                    "currencyCode": "EUR",
                    "productRef": "https://store.lab.fiware.org/DSProductInventory/api/productInventory/v2/product/42"
                }
            ]
        }
    ]
    

Revenue Sharing Algorithms Management API

API for the management of supported Algorithms. Supported algorithms are those that can be used to calculate the revenue sharing.

This API manages the following fields:

  • algorithmId - ID of the given algorithm

  • description - A textual description that explains how the algorithm works

Algorithms Collection

[/DSRevenueSharing/rss/algorithms]

List Supported Algorithms

GET /DSRevenueSharing/rss/algorithms

Revenue Sharing Models Management API

API for the management of revenue sharing models. A Revenue Sharing Model specifies how the revenues must be distributed between the involved stakeholders. This API allows to retrieve, create, update, and delete revenue sharing models.

This API manages the following fields:

  • ownerProviderId - Provider Id of the owner of the model. This provider is the owner of the application and services whose revenues will be distributed using the Revenue Sharing Model

  • ownerValue - Value of the owner provider in the Revenue Sharing Model. The semantics of this field depends on the algorithm specified, for example if the algorithm is a fixed precentage, this field will contain the percetage of the revenue that belongs to the owner provider.

  • productClass - Id of the Revenue Sharing Model. This field represents a group of services or applications whose revenues are distributed in the same way

  • algorithmType - ID of the algorithm that is used in this model

  • aggregatorId - Id of the aggregator that represents the Store instance where the applications and services are offered, and thus, must receive part of the revenues

  • aggregatorValue - Value of the aggregator in the Revenue Sharing Model

  • stakeholders - List of providers that are stakeholders of the applications and services included in a given product class, and thus, must receive part of the revenues. For each stakeholder the following fields are included:

    • stakeholderId - provider Id of the Stakeholder
    • modelValue - Value of the stakeholder in the Revenue Sharing Model

Revenue Sharing Models Collection

[/DSRevenueSharing/rss/models{?offset}{?size}{?aggregatorId}{?appProviderId}{?productClass}]

List Revenue Sharing models

GET /DSRevenueSharing/rss/models{?offset}{?size}{?aggregatorId}{?appProviderId}{?productClass}
Parameters
aggregatorId (optional)

Optional parameter used to filter by aggragtor Id

appProviderId (optional)

Optional parameter used to filter by provider Id

offset (optional)

Optional parameter used to specify the first element to be returned

productClass (optional)

Optional parameter used to filter by product class

size (optional)

Optional parameter used to limit the number of elements returned

Create Revenue Sharing Model

POST /DSRevenueSharing/rss/models{?offset}{?size}{?aggregatorId}{?appProviderId}{?productClass}

CDRs - Transactions - Management API

API for the management of CDR documents describing transactions. This API allows to register transactions. Additionally, this API allows to launch the settlement process that aggregates the transactions and calculates the distribution of revenues.

This API manages the following fields:

  • cdrSource - Id of the aggregator that represent the Store instance that is generating the charging information

  • productClass - Product Class used to identify the revenue sharing model that will be used to distribute the revenues generated in the current transaction

  • correlationNumber - Correlation number of the transaction

  • timestamp - Timestamp of the transaction

  • application - Textual field with the id of the application or service that generates the transaction

  • transactionType - Type of transaction. This field can contain "C" for charges and "R" for refunds

  • event - Textual field that describes the event that generated the transaction (e.g pay-per-use)

  • referenceCode - Reference code that identifies the purchase in the Store instance that generates the transaction

  • description - Textual description of the transaction

  • chargedAmount - Part of the total charged amount to be distributed. The total amount charged to the customer includes also the field chargedTaxAmount

  • chargedTaxAmount - Part of the total charged amount that are taxes. The total amount charged to the customer includes also the field chargedAmount

  • currency - Currency of the transaction

  • customerId - Id of the customer that acquires the given service or application

  • appProvider - provider Id of the owner of the charged applications or services

Additionally, for lauching the settlement process it uses the following fields:

  • aggregatorId - Optional parameter specifying the aggregator of the transactions

  • providerId - Optional parameter specifying the provider of the transactions

  • productClass - Optional parameter specifying the product class of the transactions

  • callbackUrl - Callback to be called when the settlement process ends

Transactions Collection

[/DSRevenueSharing/rss/cdrs{?offset}{?size}{?aggregatorId}{?providerId}]

List Transactions

GET /DSRevenueSharing/rss/cdrs{?offset}{?size}{?aggregatorId}{?providerId}
Parameters
aggregatorId (optional)

Optional parameter used to filter transactions by aggregatorId

offset (optional)

Optional parameter used to specify the first element to be returned

providerId (optional)

Optional parameter used to filter transactions by providerId

size (optional)

Optional parameter used to limit the number of elements returned

Settlement Collection

[/DSRevenueSharing/rss/settlement]

Launch Settlement

POST /DSRevenueSharing/rss/settlement

Revenue Sharing Reports Management API

API for the management of RS Reports generated during the settlement process. This API allows to retrieve RS Reports.

This API manages the following fields:

  • ownerProviderId - Provider Id of the owner of the model. This provider is the owner of the application and services whose revenues has been aggregated.

  • ownerValue - Amount that has to be paid to the provider.

  • productClass - Id of the Revenue Sharing Model that have been applied. This field represents a group of services or applications whose revenues are distributed in the same way

  • algorithmType - ID of the algorithm that have been used.

  • aggregatorId - Id of the aggregator that represents the Store instance where the applications and services are offered, and thus, must receive part of the revenues

  • aggregatorValue - Amount that has to be paid to the store owners.

  • currency - Currency of the different amounts.

  • timestamp - Timestamp of the reports.

  • paid - Specifies whether the different amounts included in the report have been paid to the involved stakeholders

  • stakeholders - List of providers that are stakeholders of the applications and services included in a given product class, and thus, must receive part of the revenues. For each stakeholder the following fields are included:

    • stakeholderId - provider Id of the Stakeholder
    • modelValue - Amount that has to be paid to the concrete stakeholder

Reports Collection

[/DSRevenueSharing/rss/settlement/reports{?offset}{?size}{?aggregatorId}{?providerId}{?productClass}]

Get Reports

GET /DSRevenueSharing/rss/settlement/reports{?offset}{?size}{?aggregatorId}{?providerId}{?productClass}
Parameters
aggregatorId (optional)

Optional parameter used to get only reports with a given aggregator

offset (optional)

Optional parameter used to specify the first element to be returned

productClass (optional)

Optional parameter used to get only reports with a given product class

providerId (optional)

Optional parameter used to get only reports with a given provider

size (optional)

Optional parameter used to limit the number of elements returned

Examples

Asset Type Management API

Asset Types Collection

[/charging/api/assetManagement/assetTypes]
List asset types
GET /charging/api/assetManagement/assetTypes
Request /charging/api/assetManagement/assetTypes

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

[
    {
        "id": "1",
        "href": "https://store.lab.fiware.org/charging/api/assetManagement/assetTypes/1",
        "name": "Java App",
        "author": "fdelavega",
        "version": "1",
        "mediaTypes": ["application/zip"],
        "formats": ["FILE"],
        "overrides": [],
        "form": {
            "auth_type": {
                "type": "select",
                "label": "Auth type",
                "options": [{
                    "text": "OAuth2",
                    "value": "oauth2"
                }, {
                    "text": "API Key",
                    "value": "key"
                }]
            },
            "token_required": {
                "type": "checkbox",
                "label": "Token required?",
                "default": true
            },
            "auth_server": {
                "type": "text",
                "label": "Auth Server",
                "placeholder": "https://authservice.com/auth"
            }
        }
    }
]

Asset Type Entry

[/charging/api/assetManagement/assetTypes/{id}]
Get asset type
GET /charging/api/assetManagement/assetTypes/{id}
Request /charging/api/assetManagement/assetTypes/{id}

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

{
    "id": "1",
    "href": "https://store.lab.fiware.org/charging/api/assetManagement/assetTypes/1",
    "name": "Java App",
    "author": "fdelavega",
    "version": "1",
    "mediaTypes": ["application/zip"],
    "formats": ["FILE"],
    "overrides": []
}

Asset Management API

Asset Info collection

[/charging/api/assetManagement/assets{?offset}{?size}]
List seller assets
GET /charging/api/assetManagement/assets{?offset}{?size}
Request /charging/api/assetManagement/assets?offset=1?size=10

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

[
    {
        "id": "1",
        "href": "https://store.lab.fiware.org/charging/api/assetManagement/assets/1",
        "version": "1",
        "contentType": "application/zip",
        "state": "Active",
        "location": "https://store.lab.fiware.org/charging/api/media/application.war",
        "resourceType": "Java App",
        "metadata": {}
    }
]

Asset Info Entry

[/charging/api/assetManagement/assets/{id}]
Get asset
GET /charging/api/assetManagement/assets/{id}
Request /charging/api/assetManagement/assets/1

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

{
    "id": "1",
    "href": "https://store.lab.fiware.org/charging/api/assetManagement/assets/1",
    "version": "1",
    "contentType": "application/zip",
    "state": "Active",
    "location": "https://store.lab.fiware.org/charging/api/media/application.war",
    "resourceType": "Java App",
    "metadata": {}
}

Product Asset Info Collection

[/charging/api/assetManagement/assets/product/{id}]
Get asset
GET /charging/api/assetManagement/assets/product/{id}
Request /charging/api/assetManagement/assets/product/1

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

[
    {
        "id": "1",
        "href": "https://store.lab.fiware.org/charging/api/assetManagement/assets/1",
        "version": "1",
        "contentType": "application/zip",
        "state": "Active",
        "location": "https://store.lab.fiware.org/charging/api/media/application.war",
        "resourceType": "Java App",
        "metadata": {}
    }
]    

Upload asset task

[/charging/api/assetManagement/assets/uploadJob/]
Upload base64 encoded asset
POST /charging/api/assetManagement/assets/uploadJob/
Request /charging/api/assetManagement/assets/uploadJob/ (application/json)

Headers

Content-Type: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN

Body

{
    "contentType": "application/zip",
    "isPublic": false,
    "metadata": {},
    "content": {
        "name": "application.war",
        "data": "encoded data"
    }
}
Response 201

Headers

Location: URL_TO_YOUR_ASSET
Request /charging/api/assetManagement/assets/uploadJob/ (multipart/form-data)

Headers

Content-Type: multipart/form-data
Authorization: Bearer YOUR_OAUTH2_TOKEN

Body

{
    "contentType": "application/zip",
    "isPublic": false,
    "metadata": {},
}

+

FILE
Response 201

Headers

Location: URL_TO_YOUR_ASSET

Ugrade asset task

[/charging/api/assetManagement/assets/{id}/upgradeJob/]
Upgrade base64 encoded asset
POST /charging/api/assetManagement/assets/{id}/upgradeJob/
Request /charging/api/assetManagement/assets/1/upgradeJob/ (application/json)

Headers

Content-Type: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN

Body

{
    "contentType": "application/zip",
    "isPublic": false,
    "metadata": {},
    "content": {
        "name": "application.war",
        "data": "encoded data"
    }
}
Response 201

Headers

Location: URL_TO_YOUR_ASSET
Request /charging/api/assetManagement/assets/1/upgradeJob/ (multipart/form-data)

Headers

Content-Type: multipart/form-data
Authorization: Bearer YOUR_OAUTH2_TOKEN

Body

{
    "contentType": "application/zip",
    "isPublic": false,
    "metadata": {},
}

+

FILE
Response 201

Headers

Location: URL_TO_YOUR_ASSET

Category Management API

Category Collection

[/DSProductCatalog/api/catalogManagement/v2/category{?offset}{?size}]
List Categories
GET /DSProductCatalog/api/catalogManagement/v2/category{?offset}{?size}
Request /DSProductCatalog/api/catalogManagement/v2/category?offset=1?size=10

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

[
    {
        "id": "41",
        "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/category/41",,
        "lastUpdate": "2013-04-19T16:42:23.0Z",
        "version": "2.0",
        "lifecycleStatus": "Active",
        "parentId": "",
        "isRoot": true,
        "name": "Digital Service",
        "description": "A category to hold all available digital services"
    },
    {
        "id": "42",
        "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/category/42",,
        "lastUpdate": "2013-04-19T16:42:23.0Z",
        "version": "2.0",
        "lifecycleStatus": "Active",
        "parentId": "41",
        "isRoot": false,
        "name": "Cloud Service",
        "description": "A category to hold all available cloud service offers"
    }
]
Create Category
POST /DSProductCatalog/api/catalogManagement/v2/category{?offset}{?size}
Request /DSProductCatalog/api/catalogManagement/v2/category (application/json)

Headers

Content-Type: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN

Body

{
    "version": "2.0",
    "lifecycleStatus": "Active",
    "parentId": "",
    "isRoot": true,
    "name": "Digital Service",
    "description": "A category to hold all available digital services"
}
Response 201 (application/json)

Headers

Content-Type: application/json

Body

{
    "id": "41",
    "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/category/41",,
    "lastUpdate": "2013-04-19T16:42:23.0Z",
    "version": "2.0",
    "lifecycleStatus": "Active",
    "parentId": "",
    "isRoot": true,
    "name": "Digital Service",
    "description": "A category to hold all available digital services"
}

Category Entry

[/DSProductCatalog/api/catalogManagement/v2/category/{id}]
Get Category
GET /DSProductCatalog/api/catalogManagement/v2/category/{id}
Request /DSProductCatalog/api/catalogManagement/v2/category/1

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

{
    "id": "41",
    "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/category/41",,
    "lastUpdate": "2013-04-19T16:42:23.0Z",
    "version": "2.0",
    "lifecycleStatus": "Active",
    "parentId": "",
    "isRoot": true,
    "name": "Digital Service",
    "description": "A category to hold all available digital services"
}
Update Category
PATCH /DSProductCatalog/api/catalogManagement/v2/category/{id}
Request - Partial update of the category, only the fields to be updated need to be provided - (application/json)

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN

Body

{
    "lifecycleStatus": "Retired"
}
Response 200 (application/json)

Headers

Content-Type: application/json

Body

{
    "id": "41",
    "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/category/41",
    "lastUpdate": "2013-04-19T16:42:23.0Z",
    "version": "2.0",
    "lifecycleStatus": "Retired",
    "parentId": "",
    "isRoot": true,
    "name": "Digital Service",
    "description": "A category to hold all available digital services"
}

Product Catalog Management API

Product Catalog Collection

[/DSProductCatalog/api/catalogManagement/v2/catalog{?offset}{?size}{?name}{?relatedParty.id}{?lifecycleStatus}{?sort}{?body}]
List Product Catalogs
GET /DSProductCatalog/api/catalogManagement/v2/catalog{?offset}{?size}{?name}{?relatedParty.id}{?lifecycleStatus}{?sort}{?body}
Request /DSProductCatalog/api/catalogManagement/v2/catalog?offset=1?size=10?name=Cloud?relatedParty.id=fdelavega?lifecycleStatus=Active?sort=name?body=Cloud

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

[
    {
        "id": "1",
        "version": "",
        "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/catalog/1",
        "name": "Cloud Services",
        "lastUpdate": "2016-07-20T10:03:59.000+0000",
        "lifecycleStatus": "Launched",
        "relatedParty": [
            {
                "id": "fdelavega",
                "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/fdelavega",
                "role": "Owner"
            }
        ],
        "category": [
            {
                "id": "12",
                "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/category/12",
                "name": "Digital Service"
            }
        ]
    }
]
Create Product Catalog
POST /DSProductCatalog/api/catalogManagement/v2/catalog{?offset}{?size}{?name}{?relatedParty.id}{?lifecycleStatus}{?sort}{?body}
Request /DSProductCatalog/api/catalogManagement/v2/catalog (application/json)

Headers

Content-Type: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN

Body

{
    "version": "1.0",
    "name": "Cloud Services",
    "lifecycleStatus": "Launched",
    "relatedParty": [
        {
            "id": "fdelavega",
            "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/fdelavega",
            "role": "Owner"
        }
    ],
    "category": [
        {
            "id": "12",
            "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/category/12",
            "name": "Digital Service"
        }
    ]
}
Response 201 (application/json)

Headers

Content-Type: application/json

Body

{
    "id": "1",
    "version": "1.0",
    "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/catalog/1",
    "name": "Cloud Services",
    "lastUpdate": "2016-07-20T10:03:59.000+0000",
    "lifecycleStatus": "Launched",
    "relatedParty": [
        {
            "id": "fdelavega",
            "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/fdelavega",
            "role": "Owner"
        }
    ],
    "category": [
        {
            "id": "12",
            "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/category/12",
            "name": "Digital Service"
        }
    ]
}

Product Catalog Entry

[/DSProductCatalog/api/catalogManagement/v2/catalog/{id}]
Get Product Catalog
GET /DSProductCatalog/api/catalogManagement/v2/catalog/{id}
Request /DSProductCatalog/api/catalogManagement/v2/catalog/1

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

{
    "id": "1",
    "version": "",
    "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/catalog/1",
    "name": "Cloud Services",
    "lastUpdate": "2016-07-20T10:03:59.000+0000",
    "lifecycleStatus": "Launched",
    "relatedParty": [
        {
            "id": "fdelavega",
            "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/fdelavega",
            "role": "Owner"
        }
    ],
    "category": [
        {
            "id": "12",
            "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/category/12",
            "name": "Digital Service"
        }
    ]
}
Update Product Catalog
PATCH /DSProductCatalog/api/catalogManagement/v2/catalog/{id}
Request - Partial update of the catalog, only the fields to be updated need to be provided - (application/json)

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN

Body

{
    "lifecycleStatus": "Retired"
}
Response 200 (application/json)

Headers

Content-Type: application/json

Body

{
    "id": "1",
    "version": "",
    "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/catalog/1",
    "name": "Cloud Services",
    "lastUpdate": "2016-07-20T10:03:59.000+0000",
    "lifecycleStatus": "Retired",
    "relatedParty": [
        {
            "id": "fdelavega",
            "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/fdelavega",
            "role": "Owner"
        }
    ],
    "category": [
        {
            "id": "12",
            "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/category/12",
            "name": "Digital Service"
        }
    ]
}

Product Specification Management API

Product Specification Collection

[/DSProductCatalog/api/catalogManagement/v2/productSpecification{?offset}{?size}{?isBundle}{?productNumber}{?relatedParty.id}{?lifecycleStatus}{?sort}{?body}]
List Product Specifications
GET /DSProductCatalog/api/catalogManagement/v2/productSpecification{?offset}{?size}{?isBundle}{?productNumber}{?relatedParty.id}{?lifecycleStatus}{?sort}{?body}
Request /DSProductCatalog/api/catalogManagement/v2/productSpecification?offset=1?size=10?isBundle=true?productNumber=1?relatedParty.id=fdelavega?lifecycleStatus=Active?sort=name?body=Cloud

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

[
    {
        "id": "22",
        "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/productSpecification/22",
        "productNumber": "I42-340-DX",
        "version": "2.0",
        "lastUpdate": "2013-04-19T16:42:23.0Z",
        "name": "Services Bundle",
        "description": "A bundle of services",
        "isBundle": true,
        "brand": "UPM",
        "lifecycleStatus": "Active",
        "relatedParty": [
            {
                "id": "fdelavega",
                "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/fdelavega",
                "role": "Owner"
            }
        ],
        "attachment": [
            {
                "type": "Picture",
                "url": "https://store.lab.fiware.org/media/picture.png"
            }
        ],
        "bundledProductSpecification": [
            {
                "id": "15",
                "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/productSpecification/15",
                "name": "Service 15"
            }, {
                "id": "64",
                "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/productSpecification/64",
                "name": "Service 64"
            }
        ],
        "productSpecificationRelationship": [
            {
                "id": "23",
                "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/productSpecification/23",
                "type": "dependency"
            }
        ],
        "productSpecCharacteristic": [
            {
                "name": "Speed",
                "description": "Speed of the service",
                "valueType": "number",
                "configurable": false,
                "productSpecCharacteristicValue": [
                    {
                        "valueType": "number",
                        "default": true,
                        "value": "100",
                        "unitOfMeasure": "mb/s",
                        "valueFrom": "",
                        "valueTo": ""
                    }
                ]
            }
        ]
    }
]
Create Product Specification
POST /DSProductCatalog/api/catalogManagement/v2/productSpecification{?offset}{?size}{?isBundle}{?productNumber}{?relatedParty.id}{?lifecycleStatus}{?sort}{?body}
Request /DSProductCatalog/api/catalogManagement/v2/productSpecification (application/json)

Headers

Content-Type: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN

Body

{
    "productNumber": "I42-340-DX",
    "version": "2.0",
    "lastUpdate": "2013-04-19T16:42:23.0Z",
    "name": "Services Bundle",
    "description": "A bundle of services",
    "isBundle": true,
    "brand": "UPM",
    "lifecycleStatus": "Active",
    "relatedParty": [
        {
            "id": "fdelavega",
            "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/fdelavega",
            "role": "Owner"
        }
    ],
    "attachment": [
        {
            "type": "Picture",
            "url": "https://store.lab.fiware.org/media/picture.png"
        }
    ],
    "bundledProductSpecification": [
        {
            "id": "15",
            "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/productSpecification/15",
            "name": "Service 15"
        }, {
            "id": "64",
            "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/productSpecification/64",
            "name": "Service 64"
        }
    ],
    "productSpecificationRelationship": [
        {
            "id": "23",
            "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/productSpecification/23",
            "type": "dependency"
        }
    ],
    "productSpecCharacteristic": [
        {
            "name": "Speed",
            "description": "Speed of the service",
            "valueType": "number",
            "configurable": false,
            "productSpecCharacteristicValue": [
                {
                    "valueType": "number",
                    "default": true,
                    "value": "100",
                    "unitOfMeasure": "mb/s",
                    "valueFrom": "",
                    "valueTo": ""
                }
            ]
        }
    ]
}
Response 201 (application/json)

Headers

Content-Type: application/json

Body

{
    "id": "22",
    "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/productSpecification/22",
    "productNumber": "I42-340-DX",
    "version": "2.0",
    "lastUpdate": "2013-04-19T16:42:23.0Z",
    "name": "Services Bundle",
    "description": "A bundle of services",
    "isBundle": true,
    "brand": "UPM",
    "lifecycleStatus": "Active",
    "relatedParty": [
        {
            "id": "fdelavega",
            "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/fdelavega",
            "role": "Owner"
        }
    ],
    "attachment": [
        {
            "type": "Picture",
            "url": "https://store.lab.fiware.org/media/picture.png"
        }
    ],
    "bundledProductSpecification": [
        {
            "id": "15",
            "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/productSpecification/15",
            "name": "Service 15"
        }, {
            "id": "64",
            "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/productSpecification/64",
            "name": "Service 64"
        }
    ],
    "productSpecificationRelationship": [
        {
            "id": "23",
            "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/productSpecification/23",
            "type": "dependency"
        }
    ],
    "productSpecCharacteristic": [
        {
            "name": "Speed",
            "description": "Speed of the service",
            "valueType": "number",
            "configurable": false,
            "productSpecCharacteristicValue": [
                {
                    "valueType": "number",
                    "default": true,
                    "value": "100",
                    "unitOfMeasure": "mb/s",
                    "valueFrom": "",
                    "valueTo": ""
                }
            ]
        }
    ]
}

Product Specification Entry

[/DSProductCatalog/api/catalogManagement/v2/productSpecification/{id}]
Get Product Specification
GET /DSProductCatalog/api/catalogManagement/v2/productSpecification/{id}
Request /DSProductCatalog/api/catalogManagement/v2/productSpecification/1

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

{
    "id": "22",
    "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/productSpecification/22",
    "productNumber": "I42-340-DX",
    "version": "2.0",
    "lastUpdate": "2013-04-19T16:42:23.0Z",
    "name": "Services Bundle",
    "description": "A bundle of services",
    "isBundle": true,
    "brand": "UPM",
    "lifecycleStatus": "Active",
    "relatedParty": [
        {
            "id": "fdelavega",
            "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/fdelavega",
            "role": "Owner"
        }
    ],
    "attachment": [
        {
            "type": "Picture",
            "url": "https://store.lab.fiware.org/media/picture.png"
        }
    ],
    "bundledProductSpecification": [
        {
            "id": "15",
            "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/productSpecification/15",
            "name": "Service 15"
        }, {
            "id": "64",
            "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/productSpecification/64",
            "name": "Service 64"
        }
    ],
    "productSpecificationRelationship": [
        {
            "id": "23",
            "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/productSpecification/23",
            "type": "dependency"
        }
    ],
    "productSpecCharacteristic": [
        {
            "name": "Speed",
            "description": "Speed of the service",
            "valueType": "number",
            "configurable": false,
            "productSpecCharacteristicValue": [
                {
                    "valueType": "number",
                    "default": true,
                    "value": "100",
                    "unitOfMeasure": "mb/s",
                    "valueFrom": "",
                    "valueTo": ""
                }
            ]
        }
    ]
}
Update Product Specification
PATCH /DSProductCatalog/api/catalogManagement/v2/productSpecification/{id}
Request - Partial update of the product specification, only the fields to be updated need to be provided - (application/json)

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN

Body

{
    "lifecycleStatus": "Retired"
}
Response 200 (application/json)

Headers

Content-Type: application/json

Body

{
    "id": "22",
    "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/productSpecification/22",
    "productNumber": "I42-340-DX",
    "version": "2.0",
    "lastUpdate": "2013-04-19T16:42:23.0Z",
    "name": "Services Bundle",
    "description": "A bundle of services",
    "isBundle": true,
    "brand": "UPM",
    "lifecycleStatus": "Active",
    "relatedParty": [
        {
            "id": "fdelavega",
            "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/fdelavega",
            "role": "Owner"
        }
    ],
    "attachment": [
        {
            "type": "Picture",
            "url": "https://store.lab.fiware.org/media/picture.png"
        }
    ],
    "bundledProductSpecification": [
        {
            "id": "15",
            "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/productSpecification/15",
            "name": "Service 15"
        }, {
            "id": "64",
            "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/productSpecification/64",
            "name": "Service 64"
        }
    ],
    "productSpecificationRelationship": [
        {
            "id": "23",
            "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/productSpecification/23",
            "type": "dependency"
        }
    ],
    "productSpecCharacteristic": [
        {
            "name": "Speed",
            "description": "Speed of the service",
            "valueType": "number",
            "configurable": false,
            "productSpecCharacteristicValue": [
                {
                    "valueType": "number",
                    "default": true,
                    "value": "100",
                    "unitOfMeasure": "mb/s",
                    "valueFrom": "",
                    "valueTo": ""
                }
            ]
        }
    ]
}

Product Offering Management API

Product Offering Collection

[/DSProductCatalog/api/catalogManagement/v2/catalog/{catId}/productOffering{?offset}{?size}{?isBundle}{?name}{?relatedParty.id}{?category.id}{?category.name}{?productSpecification.id}{bundledProductOffering.id}{?lifecycleStatus}{?sort}{?body}]
List Product Offerings
GET /DSProductCatalog/api/catalogManagement/v2/catalog/{catId}/productOffering{?offset}{?size}{?isBundle}{?name}{?relatedParty.id}{?category.id}{?category.name}{?productSpecification.id}{bundledProductOffering.id}{?lifecycleStatus}{?sort}{?body}
Request /DSProductCatalog/api/catalogManagement/v2/catalog/1/productOffering?offset=1?size=10?isBundle=true?name=1?relatedParty.id=fdelavega?category.id=1?category.name=Cloud?productSpecification.id=11?lifecycleStatus=Active?sort=name?body=Cloud

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

[
    {
        "id": "42",
        "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/catalog/1/productOffering/42",
        "version": "1.0",
        "lastUpdate": "2013-04-19T16:42:23.0Z",
        "name": "Virtual Storage Medium",
        "description": "Virtual Storage Medium",
        "isBundle": true,
        "lifecycleStatus": "Active",
        "category": [
            {
                "id": "12",
                "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/category/12",
                "name": "Cloud offerings"
            }
        ],
        "place": [
            {
                "name": "France"
            }
        ],
        "bundledProductOffering": [],
        "productSpecification": 
            {
                "id": "13",
                "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/productSpecification/13",
                "name": "specification product 1"
            },
        "serviceCandidate": {
            "id": "defaultRevenue",
            "name": "Revenue Sharing Model"
        },
        "productOfferingPrice": [
            {
                "name": "Monthly Price",
                "description": "monthlyprice",
                "priceType": "recurring",
                "unitOfMeasure": "",
                "price": {
                    "taxIncludedAmount": 12,
                    "dutyFreeAmount": 10,
                    "taxRate": 20,
                    "currencyCode": "EUR",
                },
                "recurringChargePeriod": "monthly"
            }, {
                "name": "Usage Price",
                "description": "usageprice",
                "priceType": "usage",
                "unitOfMeasure": "second",
                "price": {
                    "taxIncludedAmount": 12,
                    "dutyFreeAmount": 10,
                    "taxRate": 20,
                    "currencyCode": "EUR"
                },
                "recurringChargePeriod": "",
                "productOfferPriceAlteration": {
                    "name": "Discount",
                    "description": "One time shipping discount",
                    "priceType": "one time",
                    "unitOfMeasure": "",
                    "price": {
                        "percentage": 100
                    },
                    "recurringChargePeriod": "",
                    "priceCondition": "gt 300.00"
                }
            }
        ]
    }
]
Create Product Offering
POST /DSProductCatalog/api/catalogManagement/v2/catalog/{catId}/productOffering{?offset}{?size}{?isBundle}{?name}{?relatedParty.id}{?category.id}{?category.name}{?productSpecification.id}{bundledProductOffering.id}{?lifecycleStatus}{?sort}{?body}
Request /DSProductCatalog/api/catalogManagement/v2/catalog/1/productOffering{bundledProductOffering.id} (application/json)

Headers

Content-Type: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN

Body

{
    "version": "1.0",
    "name": "Virtual Storage Medium",
    "description": "Virtual Storage Medium",
    "isBundle": true,
    "lifecycleStatus": "Active",
    "category": [
        {
            "id": "12",
            "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/category/12",
            "name": "Cloud offerings"
        }
    ],
    "place": [
        {
            "name": "France"
        }
    ],
    "bundledProductOffering": [],
    "productSpecification": 
        {
            "id": "13",
            "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/productSpecification/13",
            "name": "specification product 1"
        },
    "serviceCandidate": {
        "id": "defaultRevenue",
        "name": "Revenue Sharing Model"
    },
    "productOfferingPrice": [
        {
            "name": "Monthly Price",
            "description": "monthlyprice",
            "priceType": "recurring",
            "unitOfMeasure": "",
            "price": {
                "taxIncludedAmount": 12,
                "dutyFreeAmount": 10,
                "taxRate": 20,
                "currencyCode": "EUR",
            },
            "recurringChargePeriod": "monthly"
        }, {
            "name": "Usage Price",
            "description": "usageprice",
            "priceType": "usage",
            "unitOfMeasure": "second",
            "price": {
                "taxIncludedAmount": 12,
                "dutyFreeAmount": 10,
                "taxRate": 20,
                "currencyCode": "EUR"
            },
            "recurringChargePeriod": "",
            "productOfferPriceAlteration": {
                "name": "Discount",
                "description": "One time shipping discount",
                "priceType": "one time",
                "unitOfMeasure": "",
                "price": {
                    "percentage": 100
                },
                "recurringChargePeriod": "",
                "priceCondition": "gt 300.00"
            }
        }
    ]
}
Response 201 (application/json)

Headers

Content-Type: application/json

Body

{
    "id": "42",
    "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/catalog/1/productOffering/42",
    "version": "1.0",
    "lastUpdate": "2013-04-19T16:42:23.0Z",
    "name": "Virtual Storage Medium",
    "description": "Virtual Storage Medium",
    "isBundle": true,
    "lifecycleStatus": "Active",
    "category": [
        {
            "id": "12",
            "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/category/12",
            "name": "Cloud offerings"
        }
    ],
    "place": [
        {
            "name": "France"
        }
    ],
    "bundledProductOffering": [],
    "productSpecification": 
        {
            "id": "13",
            "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/productSpecification/13",
            "name": "specification product 1"
        },
    "serviceCandidate": {
        "id": "defaultRevenue",
        "name": "Revenue Sharing Model"
    },
    "productOfferingPrice": [
        {
            "name": "Monthly Price",
            "description": "monthlyprice",
            "priceType": "recurring",
            "unitOfMeasure": "",
            "price": {
                "taxIncludedAmount": 12,
                "dutyFreeAmount": 10,
                "taxRate": 20,
                "currencyCode": "EUR",
            },
            "recurringChargePeriod": "monthly"
        }, {
            "name": "Usage Price",
            "description": "usageprice",
            "priceType": "usage",
            "unitOfMeasure": "second",
            "price": {
                "taxIncludedAmount": 12,
                "dutyFreeAmount": 10,
                "taxRate": 20,
                "currencyCode": "EUR"
            },
            "recurringChargePeriod": "",
            "productOfferPriceAlteration": {
                "name": "Discount",
                "description": "One time shipping discount",
                "priceType": "one time",
                "unitOfMeasure": "",
                "price": {
                    "percentage": 100
                },
                "recurringChargePeriod": "",
                "priceCondition": "gt 300.00"
            }
        }
    ]
}

Product Offering Entry

[/DSProductCatalog/api/catalogManagement/v2/catalog/{catId}/productOffering/{id}]
Get Product Offering
GET /DSProductCatalog/api/catalogManagement/v2/catalog/{catId}/productOffering/{id}
Request /DSProductCatalog/api/catalogManagement/v2/catalog/1/productOffering/1

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

{
    "id": "42",
    "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/catalog/1/productOffering/42",
    "version": "1.0",
    "lastUpdate": "2013-04-19T16:42:23.0Z",
    "name": "Virtual Storage Medium",
    "description": "Virtual Storage Medium",
    "isBundle": true,
    "lifecycleStatus": "Active",
    "category": [
        {
            "id": "12",
            "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/category/12",
            "name": "Cloud offerings"
        }
    ],
    "place": [
        {
            "name": "France"
        }
    ],
    "bundledProductOffering": [],
    "productSpecification": 
        {
            "id": "13",
            "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/productSpecification/13",
            "name": "specification product 1"
        },
    "serviceCandidate": {
        "id": "defaultRevenue",
        "name": "Revenue Sharing Model"
    },
    "productOfferingPrice": [
        {
            "name": "Monthly Price",
            "description": "monthlyprice",
            "priceType": "recurring",
            "unitOfMeasure": "",
            "price": {
                "taxIncludedAmount": 12,
                "dutyFreeAmount": 10,
                "taxRate": 20,
                "currencyCode": "EUR",
            },
            "recurringChargePeriod": "monthly"
        }, {
            "name": "Usage Price",
            "description": "usageprice",
            "priceType": "usage",
            "unitOfMeasure": "second",
            "price": {
                "taxIncludedAmount": 12,
                "dutyFreeAmount": 10,
                "taxRate": 20,
                "currencyCode": "EUR"
            },
            "recurringChargePeriod": "",
            "productOfferPriceAlteration": {
                "name": "Discount",
                "description": "One time shipping discount",
                "priceType": "one time",
                "unitOfMeasure": "",
                "price": {
                    "percentage": 100
                },
                "recurringChargePeriod": "",
                "priceCondition": "gt 300.00"
            }
        }
    ]
}
Update Product Offering
PATCH /DSProductCatalog/api/catalogManagement/v2/catalog/{catId}/productOffering/{id}
Request - Partial update of the product offering, only the fields to be updated need to be provided - (application/json)

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN

Body

{
    "lifecycleStatus": "Retired"
}
Response 200 (application/json)

Headers

Content-Type: application/json

Body

{
    "id": "42",
    "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/catalog/1/productOffering/42",
    "version": "1.0",
    "lastUpdate": "2013-04-19T16:42:23.0Z",
    "name": "Virtual Storage Medium",
    "description": "Virtual Storage Medium",
    "isBundle": true,
    "lifecycleStatus": "Active",
    "category": [
        {
            "id": "12",
            "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/category/12",
            "name": "Cloud offerings"
        }
    ],
    "place": [
        {
            "name": "France"
        }
    ],
    "bundledProductOffering": [],
    "productSpecification": 
        {
            "id": "13",
            "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/productSpecification/13",
            "name": "specification product 1"
        },
    "serviceCandidate": {
        "id": "defaultRevenue",
        "name": "Revenue Sharing Model"
    },
    "productOfferingPrice": [
        {
            "name": "Monthly Price",
            "description": "monthlyprice",
            "priceType": "recurring",
            "unitOfMeasure": "",
            "price": {
                "taxIncludedAmount": 12,
                "dutyFreeAmount": 10,
                "taxRate": 20,
                "currencyCode": "EUR",
            },
            "recurringChargePeriod": "monthly"
        }, {
            "name": "Usage Price",
            "description": "usageprice",
            "priceType": "usage",
            "unitOfMeasure": "second",
            "price": {
                "taxIncludedAmount": 12,
                "dutyFreeAmount": 10,
                "taxRate": 20,
                "currencyCode": "EUR"
            },
            "recurringChargePeriod": "",
            "productOfferPriceAlteration": {
                "name": "Discount",
                "description": "One time shipping discount",
                "priceType": "one time",
                "unitOfMeasure": "",
                "price": {
                    "percentage": 100
                },
                "recurringChargePeriod": "",
                "priceCondition": "gt 300.00"
            }
        }
    ]
}

Order Management API

Product Order Collection

[/DSProductOrdering/api/productOrdering/v2/productOrder{?offset}{?size}{?priority}{?state}{?relatedParty.id}{?relatedParty.role}]
List Product Orders
GET /DSProductOrdering/api/productOrdering/v2/productOrder{?offset}{?size}{?priority}{?state}{?relatedParty.id}{?relatedParty.role}
Request /DSProductOrdering/api/productOrdering/v2/productOrder?offset=1?size=10?priority=1?state=InProgress?relatedParty.id=fdelavega?relatedParty.role=seller

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

[
    {
        "id":"42",
        "href":"https://store.lab.fiware.org/DSProductOrdering/api/productOrdering/v2/productOrder/42",
        "externalId": "CustomerId",
        "priority":"1",
        "description":"A wonderful 42 order for brand new products",
        "state":"InProgress",
        "orderDate":"2013-04-12T16:42:23-04:00",
        "completionDate":"2013-04-19T16:42:23-04:00",
        "requestedStartDate":"2013-04-12T16:42:23-04:00",
        "requestedCompletionDate":"2013-04-19T16:42:23-04:00",
        "expectedCompletionDate":"2013-04-19T16:42:23-04:00",
        "notificationContact":"fdelavega@conwet.com",
        "note":[
            {
                "text": "A free text detailing the note",
                "date": "2013-04-12T16:42:23-04:00",
                "author": "fdelavega"
            }
        ],
        "relatedParty":[
            {
                "role": "customer",
                "id": "fdelavega",
                "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/fdelavega"
            }, {
                "role": "seller",
                "id": "aarranz",
                "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/aarranz"
            }
        ],
        "orderItem": {
            "id":"1",
            "action":"add",
            "state":"Acknowledged",
            "billingAccount":[{
                "id": "5",
                "href": "https://store.lab.fiware.org/DSBillingManagement/api/billingManagement/v2/billingAccount/5"
            }],
            "productOffering":{
                "id":"42",
                "href":"http: //serverlocation: port/catalogManagement/productOffering/42"
            },
            "product":{
                "productCharacteristic":[
                    {
                        "name":"Colour",
                        "value":"White"
                    },
                    {
                        "name":"Memory",
                        "value":"16"
                    }
                ],
                "productPrice": [
                    {
                        "name" : "Monthly payment",
                        "description" : "A monthly payment price model",
                        "priceType":"recurring",
                        "recurringChargePeriod":"monthly",
                        "unitOfMeasure":"",
                        "price":{
                            "amount":"12",
                            "currency":"EUR"
                        }
                    }
                ]
            }
        }  
    }
]
Create Product Order
POST /DSProductOrdering/api/productOrdering/v2/productOrder{?offset}{?size}{?priority}{?state}{?relatedParty.id}{?relatedParty.role}
Request /DSProductOrdering/api/productOrdering/v2/productOrder (application/json)

Headers

Content-Type: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN

Body

{
    "externalId": "CustomerId",
    "priority":"1",
    "description":"A wonderful 42 order for brand new products",
    "state":"InProgress",
    "requestedStartDate":"2013-04-12T16:42:23-04:00",
    "requestedCompletionDate":"2013-04-19T16:42:23-04:00"
    "notificationContact":"fdelavega@conwet.com",
    "note":[
        {
            "text": "A free text detailing the note",
            "date": "2013-04-12T16:42:23-04:00",
            "author": "fdelavega"
        }
    ],
    "relatedParty":[
        {
            "role": "customer",
            "id": "fdelavega",
            "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/fdelavega"
        }, {
            "role": "seller",
            "id": "aarranz",
            "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/aarranz"
        }
    ],
    "orderItem": {
        "id":"1",
        "action":"add",
        "state":"Acknowledged",
        "billingAccount":[{
            "id": "5",
            "href": "https://store.lab.fiware.org/DSBillingManagement/api/billingManagement/v2/billingAccount/5"
        }],
        "productOffering":{
            "id":"42",
            "href":"http: //serverlocation: port/catalogManagement/productOffering/42"
        },
        "product":{
            "productCharacteristic":[
                {
                    "name":"Colour",
                    "value":"White"
                },
                {
                    "name":"Memory",
                    "value":"16"
                }
            ],
            "productPrice": [
                {
                    "name" : "Monthly payment",
                    "description" : "A monthly payment price model",
                    "priceType":"recurring",
                    "recurringChargePeriod":"monthly",
                    "unitOfMeasure":"",
                    "price":{
                        "amount":"12",
                        "currency":"EUR"
                    }
                }
            ]
        }
    }
}
Response 201 (application/json)

Headers

Content-Type: application/json

Body

{
    "id":"42",
    "href":"https://store.lab.fiware.org/DSProductOrdering/api/productOrdering/v2/productOrder/42",
    "externalId": "CustomerId",
    "priority":"1",
    "description":"A wonderful 42 order for brand new products",
    "state":"InProgress",
    "orderDate":"2013-04-12T16:42:23-04:00",
    "requestedStartDate":"2013-04-12T16:42:23-04:00",
    "requestedCompletionDate":"2013-04-19T16:42:23-04:00",
    "notificationContact":"fdelavega@conwet.com",
    "note":[
        {
            "text": "A free text detailing the note",
            "date": "2013-04-12T16:42:23-04:00",
            "author": "fdelavega"
        }
    ],
    "relatedParty":[
        {
            "role": "customer",
            "id": "fdelavega",
            "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/fdelavega"
        }, {
            "role": "seller",
            "id": "aarranz",
            "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/aarranz"
        }
    ],
    "orderItem": {
        "id":"1",
        "action":"add",
        "state":"Acknowledged",
        "billingAccount":[{
            "id": "5",
            "href": "https://store.lab.fiware.org/DSBillingManagement/api/billingManagement/v2/billingAccount/5"
        }],
        "productOffering":{
            "id":"42",
            "href":"http: //serverlocation: port/catalogManagement/productOffering/42"
        },
        "product":{
            "productCharacteristic":[
                {
                    "name":"Colour",
                    "value":"White"
                },
                {
                    "name":"Memory",
                    "value":"16"
                }
            ],
            "productPrice": [
                {
                    "name" : "Monthly payment",
                    "description" : "A monthly payment price model",
                    "priceType":"recurring",
                    "recurringChargePeriod":"monthly",
                    "unitOfMeasure":"",
                    "price":{
                        "amount":"12",
                        "currency":"EUR"
                    }
                }
            ]
        }
    }
}

Product Order Entry

[/DSProductOrdering/api/productOrdering/v2/productOrder/{id}]
Get Product Order
GET /DSProductOrdering/api/productOrdering/v2/productOrder/{id}
Request /DSProductOrdering/api/productOrdering/v2/productOrder/1

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

{
    "id":"42",
    "href":"https://store.lab.fiware.org/DSProductOrdering/api/productOrdering/v2/productOrder/42",
    "externalId": "CustomerId",
    "priority":"1",
    "description":"A wonderful 42 order for brand new products",
    "state":"InProgress",
    "orderDate":"2013-04-12T16:42:23-04:00",
    "completionDate":"2013-04-19T16:42:23-04:00",
    "requestedStartDate":"2013-04-12T16:42:23-04:00",
    "requestedCompletionDate":"2013-04-19T16:42:23-04:00",
    "expectedCompletionDate":"2013-04-19T16:42:23-04:00",
    "notificationContact":"fdelavega@conwet.com",
    "note":[
        {
            "text": "A free text detailing the note",
            "date": "2013-04-12T16:42:23-04:00",
            "author": "fdelavega"
        }
    ],
    "relatedParty":[
        {
            "role": "customer",
            "id": "fdelavega",
            "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/fdelavega"
        }, {
            "role": "seller",
            "id": "aarranz",
            "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/aarranz"
        }
    ],
    "orderItem": {
        "id":"1",
        "action":"add",
        "state":"Acknowledged",
        "billingAccount":[{
            "id": "5",
            "href": "https://store.lab.fiware.org/DSBillingManagement/api/billingManagement/v2/billingAccount/5"
        }],
        "productOffering":{
            "id":"42",
            "href":"http: //serverlocation: port/catalogManagement/productOffering/42"
        },
        "product":{
            "productCharacteristic":[
                {
                    "name":"Colour",
                    "value":"White"
                },
                {
                    "name":"Memory",
                    "value":"16"
                }
            ],
            "productPrice": [
                {
                    "name" : "Monthly payment",
                    "description" : "A monthly payment price model",
                    "priceType":"recurring",
                    "recurringChargePeriod":"monthly",
                    "unitOfMeasure":"",
                    "price":{
                        "amount":"12",
                        "currency":"EUR"
                    }
                }
            ]
        }
    }
}
Update Product Order
PATCH /DSProductOrdering/api/productOrdering/v2/productOrder/{id}
Request - Partial update of the product order, only the fields to be updated need to be provided - (application/json)

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN

Body

{
    "state": "Completed"
}
Response 200 (application/json)

Headers

Content-Type: application/json

Body

{
    "id":"42",
    "href":"https://store.lab.fiware.org/DSProductOrdering/api/productOrdering/v2/productOrder/42",
    "externalId": "CustomerId",
    "priority":"1",
    "description":"A wonderful 42 order for brand new products",
    "state":"Completed",
    "orderDate":"2013-04-12T16:42:23-04:00",
    "completionDate":"2013-04-19T16:42:23-04:00",
    "requestedStartDate":"2013-04-12T16:42:23-04:00",
    "requestedCompletionDate":"2013-04-19T16:42:23-04:00",
    "expectedCompletionDate":"2013-04-19T16:42:23-04:00",
    "notificationContact":"fdelavega@conwet.com",
    "note":[
        {
            "text": "A free text detailing the note",
            "date": "2013-04-12T16:42:23-04:00",
            "author": "fdelavega"
        }
    ],
    "relatedParty":[
        {
            "role": "customer",
            "id": "fdelavega",
            "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/fdelavega"
        }, {
            "role": "seller",
            "id": "aarranz",
            "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/aarranz"
        }
    ],
    "orderItem": {
        "id":"1",
        "action":"add",
        "state":"Completed",
        "billingAccount":[{
            "id": "5",
            "href": "https://store.lab.fiware.org/DSBillingManagement/api/billingManagement/v2/billingAccount/5"
        }],
        "productOffering":{
            "id":"42",
            "href":"http: //serverlocation: port/catalogManagement/productOffering/42"
        },
        "product":{
            "productCharacteristic":[
                {
                    "name":"Colour",
                    "value":"White"
                },
                {
                    "name":"Memory",
                    "value":"16"
                }
            ],
            "productPrice": [
                {
                    "name" : "Monthly payment",
                    "description" : "A monthly payment price model",
                    "priceType":"recurring",
                    "recurringChargePeriod":"monthly",
                    "unitOfMeasure":"",
                    "price":{
                        "amount":"12",
                        "currency":"EUR"
                    }
                }
            ]
        }
    }
}

Inventory Management API

Product Collection

[/DSProductInventory/api/productInventory/v2/product{?offset}{?size}{?name}{?relatedParty.id}{?status}{?sort}{?body}]
List Products
GET /DSProductInventory/api/productInventory/v2/product{?offset}{?size}{?name}{?relatedParty.id}{?status}{?sort}{?body}
Request /DSProductInventory/api/productInventory/v2/product?offset=1?size=10?name=Broadband?relatedParty.id=fdelavega?status=Active?sort=name?body=Cloud

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

[
    {
        "id": "42",
        "href": "https://store.lab.fiware.org/DSProductInventory/api/productInventory/v2/product/42",
        "name": "Broadband",
        "description": "Description of the instantiated broadband product",
        "status": "active",
        "isBundle" : false,
        "startDate": "2013-07-21 08:16:39ZGMT+1",
        "orderDate": "2013-07-21 06:16:39ZGMT+1",
        "terminationDate": "",
        "productOffering": {
            "id":"42",
            "href":"http: //serverlocation: port/catalogManagement/productOffering/42"
        },
        "productSpecification": {
            "id": "13",
            "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/productSpecification/13",
        },
        "productCharacteristic":[{
            "name":"speed",
            "value":"16M"
        }],
        "billingAccount": [{
            "id": "5",
            "href": "https://store.lab.fiware.org/DSBillingManagement/api/billingManagement/v2/billingAccount/5"
        }],
        "relatedParty": [{
            "role": "owner",
            "id": "aarranz",
            "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/aarranz"
        }],
        "productPrice" : [
            {
                "name" : "Monthly payment",
                "description" : "A monthly payment price model",
                "priceType":"recurring",
                "recurringChargePeriod":"monthly",
                "unitOfMeasure":"",
                "price":{
                    "amount":"12",
                    "currency":"EUR"
                }
            }
        ]
    }
]

Product Entry

[/DSProductInventory/api/productInventory/v2/product/{id}]
Get Product
GET /DSProductInventory/api/productInventory/v2/product/{id}
Request /DSProductInventory/api/productInventory/v2/product/1

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

{
    "id": "42",
    "href": "https://store.lab.fiware.org/DSProductInventory/api/productInventory/v2/product/42",
    "name": "Broadband",
    "description": "Description of the instantiated broadband product",
    "status": "active",
    "isBundle" : false,
    "startDate": "2013-07-21 08:16:39ZGMT+1",
    "orderDate": "2013-07-21 06:16:39ZGMT+1",
    "terminationDate": "",
    "productOffering": {
        "id":"42",
        "href":"http: //serverlocation: port/catalogManagement/productOffering/42"
    },
    "productSpecification": {
        "id": "13",
        "href": "https://store.lab.fiware.org/DSProductCatalog/api/catalogManagement/v2/productSpecification/13",
    },
    "productCharacteristic":[{
            "name":"speed",
            "value":"16M"
    }],
    "billingAccount": [{
        "id": "5",
        "href": "https://store.lab.fiware.org/DSBillingManagement/api/billingManagement/v2/billingAccount/5"
    }],
    "relatedParty": [{
        "role": "owner",
        "id": "aarranz",
        "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/aarranz"
    }],
    "productPrice" : [
        {
            "name" : "Monthly payment",
            "description" : "A monthly payment price model",
            "priceType":"recurring",
            "recurringChargePeriod":"monthly",
            "unitOfMeasure":"",
            "price":{
                "amount":"12",
                "currency":"EUR"
            }
        }
    ]
}

Party Management API

Individuals Collection

[/DSPartyManagement/api/partyManagement/v2/individual]
List Individuals
GET /DSPartyManagement/api/partyManagement/v2/individual
Request /DSPartyManagement/api/partyManagement/v2/individual

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

[
    {
        "id": "francisco-de-la-vega",
        "href": "http://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/francisco-de-la-vega",
        "birthDate": "1970-01-04T01:00:00+01:00",
        "countryOfBirth": "DZ",
        "familyName": "de la Vega",
        "gender": "Male",
        "givenName": "Francisco",
        "maritalStatus": "Married",
        "nationality": "spanish",
        "placeOfBirth": "Madrid",
        "title": "Mr",
        "contactMedium": [{
            "type": "Email",
            "preferred": "false",
            "medium": {
                 "emailAddress": "fdelavega@conwet.com"
            }
        }]
    }
]
Create Individual
POST /DSPartyManagement/api/partyManagement/v2/individual
Request /DSPartyManagement/api/partyManagement/v2/individual (application/json)

Headers

Content-Type: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN

Body

{
    "id": "francisco-de-la-vega",
    "birthDate": "1970-01-04T01:00:00+01:00",
    "countryOfBirth": "DZ",
    "familyName": "de la Vega",
    "gender": "Male",
    "givenName": "Francisco",
    "maritalStatus": "Married",
    "nationality": "spanish",
    "placeOfBirth": "Madrid",
    "title": "Mr",
    "contactMedium": [{
        "type": "Email",
        "preferred": "false",
        "medium": {
             "emailAddress": "fdelavega@conwet.com"
        }
    }]
}
Response 201 (application/json)

Headers

Content-Type: application/json

Body

{
    "id": "francisco-de-la-vega",
    "href": "http://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/francisco-de-la-vega",
    "birthDate": "1970-01-04T01:00:00+01:00",
    "countryOfBirth": "DZ",
    "familyName": "de la Vega",
    "gender": "Male",
    "givenName": "Francisco",
    "maritalStatus": "Married",
    "nationality": "spanish",
    "placeOfBirth": "Madrid",
    "title": "Mr",
    "contactMedium": [{
        "type": "Email",
        "preferred": "false",
        "medium": {
            "emailAddress": "fdelavega@conwet.com"
        }
    }]
}

Individual Entry

[/DSPartyManagement/api/partyManagement/v2/individual/{id}]
Get Individual
GET /DSPartyManagement/api/partyManagement/v2/individual/{id}
Request /DSPartyManagement/api/partyManagement/v2/individual/francisco

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

{
    "id": "francisco-de-la-vega",
    "href": "http://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/francisco-de-la-vega",
    "birthDate": "1970-01-04T01:00:00+01:00",
    "countryOfBirth": "DZ",
    "familyName": "de la Vega",
    "gender": "Male",
    "givenName": "Francisco",
    "maritalStatus": "Married",
    "nationality": "spanish",
    "placeOfBirth": "Madrid",
    "title": "Mr",
    "contactMedium": [{
        "type": "Email",
        "preferred": "false",
        "medium": {
             "emailAddress": "fdelavega@conwet.com"
        }
    }]
}
Update Individual
PATCH /DSPartyManagement/api/partyManagement/v2/individual/{id}
Request - Partial update of the individual, only the fields to be updated need to be provided - (application/json)

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN

Body

{
    "maritalStatus": "Divorced"
}
Response 200 (application/json)

Headers

Content-Type: application/json

Body

{
    "id": "francisco-de-la-vega",
    "href": "http://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/francisco-de-la-vega",
    "birthDate": "1970-01-04T01:00:00+01:00",
    "countryOfBirth": "DZ",
    "familyName": "de la Vega",
    "gender": "Male",
    "givenName": "Francisco",
    "maritalStatus": "Divorced",
    "nationality": "spanish",
    "placeOfBirth": "Madrid",
    "title": "Mr",
    "contactMedium": [{
        "type": "Email",
        "preferred": "false",
        "medium": {
             "emailAddress": "fdelavega@conwet.com"
        }
    }]
}

Customer Management API

Customer Collection

[/DSCustomerManagement/api/customerManagement/v2/customer]
List Customers
GET /DSCustomerManagement/api/customerManagement/v2/customer
Request /DSCustomerManagement/api/customerManagement/v2/customer

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

[
    {
        "id": 51,
        "href":"https://store.lab.fiware.org/DSCustomerManagement/api/customerManagement/v2/customer/51",
        "name":"francisco-de-la-vega",
        "relatedParty": {
            "id":"francisco-de-la-vega",
            "href":"https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/francisco-de-la-vega",
            "role":"Owner"
        },
        "contactMedium":[{
            "type":"Email",
            "medium": {
                "emailAddress": "fdelavega@conwet.com.com"
            },
            "preferred":false
        }, {
            "type": "PostalAddress", 
            "medium": {
                "city":"Madrid",
                "country": "SP",
                "postcode": "28016",
                "stateOrProvince": "Madrid",
                "streetOne":"Campus Montegancedo S/N"
            },
            "preferred":false
        }, {
            "type":"TelephoneNumber",
            "medium":{
                "type": "mobile",
                "number":"+34622222222"
            },
            "preferred":false
        }],
        "customerAccount":[{
            "href": "http://store.lab.fiware.org/DSCustomerManagement/api/customerManagement/v2/customerAccount/60"
            "id": "60"
            "name": "francisco-de-la-vega"
            "status": "Active"
        }]
    }
]
Create a Customer
POST /DSCustomerManagement/api/customerManagement/v2/customer
Request /DSCustomerManagement/api/customerManagement/v2/customer (application/json)

Headers

Content-Type: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN

Body

{
    "name":"francisco-de-la-vega",
    "relatedParty": {
        "id":"francisco-de-la-vega",
        "href":"https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/francisco-de-la-vega",
        "role":"Owner"
    },
    "contactMedium":[{
        "type":"Email",
        "medium": {
            "emailAddress": "fdelavega@conwet.com.com"
        },
        "preferred":false
    }, {
        "type": "PostalAddress", 
        "medium": {
            "city":"Madrid",
            "country": "SP",
            "postcode": "28016",
            "stateOrProvince": "Madrid",
            "streetOne":"Campus Montegancedo S/N"
        },
        "preferred":false
    }, {
        "type":"TelephoneNumber",
        "medium":{
            "type": "mobile",
            "number":"+34622222222"
        },
        "preferred":false
    }],
    "customerAccount":[]
}
Response 201 (application/json)

Headers

Content-Type: application/json

Body

{
    "id": 51,
    "href":"https://store.lab.fiware.org/DSCustomerManagement/api/customerManagement/v2/customer/51",
    "name":"francisco-de-la-vega",
    "relatedParty": {
        "id":"francisco-de-la-vega",
        "href":"https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/francisco-de-la-vega",
        "role":"Owner"
    },
    "contactMedium":[{
        "type":"Email",
        "medium": {
            "emailAddress": "fdelavega@conwet.com.com"
        },
        "preferred":false
    }, {
        "type": "PostalAddress", 
        "medium": {
            "city":"Madrid",
            "country": "SP",
            "postcode": "28016",
            "stateOrProvince": "Madrid",
            "streetOne":"Campus Montegancedo S/N"
        },
        "preferred":false
    }, {
        "type":"TelephoneNumber",
        "medium":{
            "type": "mobile",
            "number":"+34622222222"
        },
        "preferred":false
    }],
    "customerAccount":[]
}

Customer Entry

[/DSCustomerManagement/api/customerManagement/v2/customer/{id}]
Get Customer
GET /DSCustomerManagement/api/customerManagement/v2/customer/{id}
Request /DSCustomerManagement/api/customerManagement/v2/customer/1

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

{
    "id": 51,
    "href":"https://store.lab.fiware.org/DSCustomerManagement/api/customerManagement/v2/customer/51",
    "name":"francisco-de-la-vega",
    "relatedParty": {
        "id":"francisco-de-la-vega",
        "href":"https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/francisco-de-la-vega",
        "role":"Owner"
    },
    "contactMedium":[{
        "type":"Email",
        "medium": {
            "emailAddress": "fdelavega@conwet.com.com"
        },
        "preferred":false
    }, {
        "type": "PostalAddress", 
        "medium": {
            "city":"Madrid",
            "country": "SP",
            "postcode": "28016",
            "stateOrProvince": "Madrid",
            "streetOne":"Campus Montegancedo S/N"
        },
        "preferred":false
    }, {
        "type":"TelephoneNumber",
        "medium":{
            "type": "mobile",
            "number":"+34622222222"
        },
        "preferred":false
    }],
    "customerAccount":[{
        "href": "http://store.lab.fiware.org/DSCustomerManagement/api/customerManagement/v2/customerAccount/60"
        "id": "60"
        "name": "francisco-de-la-vega"
        "status": "Active"
    }]
}
Update Customer
PATCH /DSCustomerManagement/api/customerManagement/v2/customer/{id}
Request - Partial update of the customer, only the fields to be updated need to be provided - (application/json)

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN

Body

{
    "customerAccount":[{
        "href": "http://store.lab.fiware.org/DSCustomerManagement/api/customerManagement/v2/customerAccount/60"
        "id": "60"
        "name": "francisco-de-la-vega"
        "status": "Active"
    }]
}
Response 200 (application/json)

Headers

Content-Type: application/json

Body

{
    "id": 51,
    "href":"https://store.lab.fiware.org/DSCustomerManagement/api/customerManagement/v2/customer/51",
    "name":"francisco-de-la-vega",
    "relatedParty": {
        "id":"francisco-de-la-vega",
        "href":"https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/francisco-de-la-vega",
        "role":"Owner"
    },
    "contactMedium":[{
        "type":"Email",
        "medium": {
            "emailAddress": "fdelavega@conwet.com.com"
        },
        "preferred":false
    }, {
        "type": "PostalAddress", 
        "medium": {
            "city":"Madrid",
            "country": "SP",
            "postcode": "28016",
            "stateOrProvince": "Madrid",
            "streetOne":"Campus Montegancedo S/N"
        },
        "preferred":false
    }, {
        "type":"TelephoneNumber",
        "medium":{
            "type": "mobile",
            "number":"+34622222222"
        },
        "preferred":false
    }],
    "customerAccount":[{
        "href": "http://store.lab.fiware.org/DSCustomerManagement/api/customerManagement/v2/customerAccount/60"
        "id": "60"
        "name": "francisco-de-la-vega"
        "status": "Active"
    }]
}

Customer Account Management API

Customer Account Collection

[/DSCustomerManagement/api/customerManagement/v2/customerAccount]
List Customer Accounts
GET /DSCustomerManagement/api/customerManagement/v2/customerAccount
Request /DSCustomerManagement/api/customerManagement/v2/customerAccount

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

[
    {
        "id": 60,
        "href":"https://store.lab.fiware.org//DSCustomerManagement/api/customerManagement/v2/customerAccount/60",
        "name":"francisco-de-la-vega",
        "accountType":"shipping address",
        "lastModified":"2016-08-29T10:44:30+02:00",
        "customer":{
            "id":"51", 
            "href":"http://localhost:8004/DSCustomer/api/customerManagement/v2/customer/51",
            "name":"francisco-de-la-vega"
        }
    }
]
Create a Customer Account
POST /DSCustomerManagement/api/customerManagement/v2/customerAccount
Request /DSCustomerManagement/api/customerManagement/v2/customerAccount (application/json)

Headers

Content-Type: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN

Body

{
    "name":"francisco-de-la-vega",
    "accountType":"shipping address",
    "lastModified":"2016-08-29T10:44:30+02:00",
    "customer":{
        "id":"51", 
        "href":"http://localhost:8004/DSCustomer/api/customerManagement/v2/customer/51",
        "name":"francisco-de-la-vega"
    }
}
Response 201 (application/json)

Headers

Content-Type: application/json

Body

{
    "id": 60,
    "href": "https://store.lab.fiware.org//DSCustomerManagement/api/customerManagement/v2/customerAccount/60",
    "name": "francisco-de-la-vega",
    "accountType": "shipping address",
    "lastModified": "2016-08-29T10:44:30+02:00",
    "customer": {
        "id": "51", 
        "href": "http://localhost:8004/DSCustomer/api/customerManagement/v2/customer/51",
        "name": "francisco-de-la-vega"
    }
}

Customer Account Entry

[/DSCustomerManagement/api/customerManagement/v2/customerAccount/{id}]
Get Customer
GET /DSCustomerManagement/api/customerManagement/v2/customerAccount/{id}
Request /DSCustomerManagement/api/customerManagement/v2/customerAccount/1

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

{
    "id": 60,
    "href": "https://store.lab.fiware.org//DSCustomerManagement/api/customerManagement/v2/customerAccount/60",
    "name": "francisco-de-la-vega",
    "accountType": "shipping address",
    "lastModified": "2016-08-29T10:44:30+02:00",
    "customer": {
        "id": "51", 
        "href": "http://localhost:8004/DSCustomer/api/customerManagement/v2/customer/51",
        "name": "francisco-de-la-vega"
    }
}
Update Customer Account
PATCH /DSCustomerManagement/api/customerManagement/v2/customerAccount/{id}
Request - Partial update of the customer account, only the fields to be updated need to be provided - (application/json)

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN

Body

{
    "customer": {
        "id": "30", 
        "href": "http://localhost:8004/DSCustomer/api/customerManagement/v2/customer/30",
        "name": "fdelavega"
    }
}
Response 200 (application/json)

Headers

Content-Type: application/json

Body

{
    "id": 60,
    "href": "https://store.lab.fiware.org//DSCustomerManagement/api/customerManagement/v2/customerAccount/60",
    "name": "francisco-de-la-vega",
    "accountType": "shipping address",
    "lastModified": "2016-08-29T10:44:30+02:00",
    "customer": {
        "id": "30", 
        "href": "http://localhost:8004/DSCustomer/api/customerManagement/v2/customer/30",
        "name": "fdelavega"
    }
}

Billing Account Management API

Billing Account Collection

[/DSBillingManagement/api/billingManagement/v2/billingAccount]
List Billing Accounts
GET /DSBillingManagement/api/billingManagement/v2/billingAccount
Request /DSBillingManagement/api/billingManagement/v2/billingAccount

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

[
    {
        "id": 51,
        "href":"https://store.lab.fiware.org/DSBillingManagement/api/billingManagement/v2/billingAccount/51",
        "ratingType": "Postpaid",
        "name": "francisco-de-la-vega",
        "state":"Defined",
        "validFor": {
            "startPeriod": "2016-08-29T10:44:31+02:00", 
            "endPeriod": null
        },
        "customerAccount": { 
            "id":"60", 
            "href":"https://store.lab.fiware.org/DSCustomerManagement/api/customerManagement/v2/customerAccount/60",
            "name": "francisco-de-la-vega"
        },
        "relatedParty": [{
            "id": "francisco-de-la-vega",
            "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/francisco-de-la-vega",
            "role": "bill receiver"
        }]
    }
]
Create a Billing Account
POST /DSBillingManagement/api/billingManagement/v2/billingAccount
Request /DSBillingManagement/api/billingManagement/v2/billingAccount (application/json)

Headers

Content-Type: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN

Body

{
    "ratingType": "Postpaid",
    "name": "francisco-de-la-vega",
    "state":"Defined",
    "validFor": {
        "startPeriod": "2016-08-29T10:44:31+02:00"
    },
    "customerAccount": { 
        "id":"60", 
        "href":"https://store.lab.fiware.org/DSCustomerManagement/api/customerManagement/v2/customerAccount/60",
        "name": "francisco-de-la-vega"
    },
    "relatedParty": [{
        "id": "francisco-de-la-vega",
        "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/francisco-de-la-vega",
        "role": "bill receiver"
    }]
}
Response 201 (application/json)

Headers

Content-Type: application/json

Body

{
    "id": 51,
    "href":"https://store.lab.fiware.org/DSBillingManagement/api/billingManagement/v2/billingAccount/51",
    "ratingType": "Postpaid",
    "name": "francisco-de-la-vega",
    "state":"Defined",
    "validFor": {
        "startPeriod": "2016-08-29T10:44:31+02:00", 
        "endPeriod": null
    },
    "customerAccount": { 
        "id":"60", 
        "href":"https://store.lab.fiware.org/DSCustomerManagement/api/customerManagement/v2/customerAccount/60",
        "name": "francisco-de-la-vega"
    },
    "relatedParty": [{
        "id": "francisco-de-la-vega",
        "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/francisco-de-la-vega",
        "role": "bill receiver"
    }]
}

Billing Account Entry

[/DSBillingManagement/api/billingManagement/v2/billingAccount/{id}]
Get Billing Account
GET /DSBillingManagement/api/billingManagement/v2/billingAccount/{id}
Request /DSBillingManagement/api/billingManagement/v2/billingAccount/1

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

{
    "id": 51,
    "href":"https://store.lab.fiware.org/DSBillingManagement/api/billingManagement/v2/billingAccount/51",
    "ratingType": "Postpaid",
    "name": "francisco-de-la-vega",
    "state":"Defined",
    "validFor": {
        "startPeriod": "2016-08-29T10:44:31+02:00", 
        "endPeriod": null
    },
    "customerAccount": { 
        "id":"60", 
        "href":"https://store.lab.fiware.org/DSCustomerManagement/api/customerManagement/v2/customerAccount/60",
        "name": "francisco-de-la-vega"
    },
    "relatedParty": [{
        "id": "francisco-de-la-vega",
        "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/francisco-de-la-vega",
        "role": "bill receiver"
    }]
}
Update Billing Account
PATCH /DSBillingManagement/api/billingManagement/v2/billingAccount/{id}
Request - Partial update of the billing account, only the fields to be updated need to be provided - (application/json)

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN

Body

{
    "state":"Active"
}
Response 200 (application/json)

Headers

Content-Type: application/json

Body

{
    "id": 51,
    "href":"https://store.lab.fiware.org/DSBillingManagement/api/billingManagement/v2/billingAccount/51",
    "ratingType": "Postpaid",
    "name": "francisco-de-la-vega",
    "state":"Active",
    "validFor": {
        "startPeriod": "2016-08-29T10:44:31+02:00", 
        "endPeriod": null
    },
    "customerAccount": { 
        "id":"60", 
        "href":"https://store.lab.fiware.org/DSCustomerManagement/api/customerManagement/v2/customerAccount/60",
        "name": "francisco-de-la-vega"
    },
    "relatedParty": [{
        "id": "francisco-de-la-vega",
        "href": "https://store.lab.fiware.org/DSPartyManagement/api/partyManagement/v2/individual/francisco-de-la-vega",
        "role": "bill receiver"
    }]
}

Billing Charges Management API

Billing Charge Collection

[/DSBillingManagement/api/billingManagement/v2/appliedCustomerBillingCharge{?serviceId.id}]
List Billing Charges
GET /DSBillingManagement/api/billingManagement/v2/appliedCustomerBillingCharge{?serviceId.id}
Request /DSBillingManagement/api/billingManagement/v2/appliedCustomerBillingCharge?serviceId.id=1

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

[
    {
        "id": "10",
        "href": "http://store.lab.fiware.org/DSBillingManagement/api/billingManagement/v2/appliedCustomerBillingCharge/10"
        "date": "2013-04-19T16:42:23.0Z",
        "description": "invoice http://store.lab.fiware.org/media/bills/invoice1.pdf",
        "type": "recurring",
        "currencyCode": "USD",
        "taxIncludedAmount": 2.4,
        "taxExcludedAmount": 2,
        "appliedCustomerBillingTaxRate": [
            {
                "amount": 0.4,
                "taxCategory": "VAT"
            }
        ],
        "productSpecification": [
            {
                "name": "Partner Premium",
                "productNumber": "45"
            }
        ],
        "period": [
            {
                "startPeriod": "2013-10-01T00:00:00.0Z",
                "endPeriod": "2013-10-31T00:00:00.0Z"
            }
        ]
    }
]

Billing Charge Entry

[/DSBillingManagement/api/billingManagement/v2/appliedCustomerBillingCharge/{id}]
Get Billing Charge
GET /DSBillingManagement/api/billingManagement/v2/appliedCustomerBillingCharge/{id}
Request /DSBillingManagement/api/billingManagement/v2/appliedCustomerBillingCharge/1

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

    {
        "id": "10",
        "href": "http://store.lab.fiware.org/DSBillingManagement/api/billingManagement/v2/appliedCustomerBillingCharge/10"
        "date": "2013-04-19T16:42:23.0Z",
        "description": "invoice http://store.lab.fiware.org/media/bills/invoice1.pdf",
        "type": "recurring",
        "currencyCode": "USD",
        "taxIncludedAmount": 2.4,
        "taxExcludedAmount": 2,
        "appliedCustomerBillingTaxRate": [
            {
                "amount": 0.4,
                "taxCategory": "VAT"
            }
        ],
        "productSpecification": [
            {
                "name": "Partner Premium",
                "productNumber": "45"
            }
        ],
        "period": [
            {
                "startPeriod": "2013-10-01T00:00:00.0Z",
                "endPeriod": "2013-10-31T00:00:00.0Z"
            }
        ]
    }

Revenue Sharing Algorithms Management API

Algorithms Collection

[/DSRevenueSharing/rss/algorithms]
List Supported Algorithms
GET /DSRevenueSharing/rss/algorithms
Request /DSRevenueSharing/rss/algorithms

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

[
    {
        "algorithmId": "FIXED_PERCENTAGE",
        "description": "Fixed percentage distribution of revenues"
    }
]

Revenue Sharing Models Management API

Revenue Sharing Models Collection

[/DSRevenueSharing/rss/models{?offset}{?size}{?aggregatorId}{?appProviderId}{?productClass}]
List Revenue Sharing models
GET /DSRevenueSharing/rss/models{?offset}{?size}{?aggregatorId}{?appProviderId}{?productClass}
Request /DSRevenueSharing/rss/models?offset=1?size=10?aggregatorId=fdelavega@conwet.com?appProviderId=aarranz?productClass=orionServices

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

[
    {
        "ownerProviderId": "fdelavega",
        "ownerValue": 60,
        "productClass": "orionServices",
        "algorithmType": "FIXED_PERCENTAGE",
        "aggregatorId": "fdelavega@conwet.com",
        "aggregatorValue": 20,
        "stakeholders": [
            {
                "stakeholderId": "aarranz",
                "modelValue": 20
            }
        ]
    }
]
Create Revenue Sharing Model
POST /DSRevenueSharing/rss/models{?offset}{?size}{?aggregatorId}{?appProviderId}{?productClass}
Request /DSRevenueSharing/rss/models (application/json)

Headers

Content-Type: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN

Body

{
    "ownerProviderId": "fdelavega",
    "ownerValue": 60,
    "productClass": "orionServices",
    "algorithmType": "FIXED_PERCENTAGE",
    "aggregatorId": "fdelavega@conwet.com",
    "aggregatorValue": 20,
    "stakeholders": [
        {
            "stakeholderId": "aarranz",
            "modelValue": 20
        }
    ]
}
Response 201

CDRs - Transactions - Management API

Transactions Collection

[/DSRevenueSharing/rss/cdrs{?offset}{?size}{?aggregatorId}{?providerId}]
List Transactions
GET /DSRevenueSharing/rss/cdrs{?offset}{?size}{?aggregatorId}{?providerId}
Request /DSRevenueSharing/rss/cdrs?offset=1?size=10?aggregatorId=fdelavega@conwet.com?providerId=aarranz

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 201 (application/json)

Headers

Content-Type: application/json

Body

[
    {
        "cdrSource": "fdelavega@conwet.com",
        "productClass": "orionServices",
        "correlationNumber": 112,
        "timestamp": "2015-07-15T19:00:01.000Z",
        "application": "OrionStarterKit",
        "transactionType": "C",
        "event": "use",
        "referenceCode": "555b079d8e05ac213ff15827",
        "description": "Usage of OrionStarterKit Offering",
        "chargedAmount": 10,
        "chargedTaxAmount": 3,
        "currency": "EUR",
        "customerId": "amagan",
        "appProvider": "fdelavega"
    }
]

Settlement Collection

[/DSRevenueSharing/rss/settlement]
Launch Settlement
POST /DSRevenueSharing/rss/settlement
Request /DSRevenueSharing/rss/settlement

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN

Body

{
    "aggregatorId": "fdelavega@conwet.com",
    "providerId": "aarranz",
    "productClass": "orionServices"
}
Response 202

Revenue Sharing Reports Management API

Reports Collection

[/DSRevenueSharing/rss/settlement/reports{?offset}{?size}{?aggregatorId}{?providerId}{?productClass}]
Get Reports
GET /DSRevenueSharing/rss/settlement/reports{?offset}{?size}{?aggregatorId}{?providerId}{?productClass}
Request /DSRevenueSharing/rss/settlement/reports?offset=1?size=10?aggregatorId=fdelavega@conwet.com?providerId=aarranz?productClass=orionServices

Headers

Authorization: Bearer YOUR_OAUTH2_TOKEN
Response 200 (application/json)

Headers

Content-Type: application/json

Body

[
    {
        "ownerProviderId": "fdelavega",
        "ownerValue": 4578,
        "productClass": "orionServices",
        "algorithmType": "FIXED_PERCENTAGE",
        "aggregatorId": "fdelavega@conwet.com",
        "aggregatorValue": 3000,
        "currency": EUR,
        "timestamp": "2015-07-15T19:00:01",
        "paid": false,
        "stakeholders": [
            {
                "stakeholderId": "aarranz",
                "modelValue": 2500
            }
        ]
    }
]

Acknowledgements

The editors would like to express their gratitude to the following people who actively contributed to this specification: Pierre Gauthier, Aitor Magán, and Álvaro Arranz García

References