Maestrano Enterprise API
API Endpoint
https://api-hub.maestrano.com/api/mnoe/v2This documentation presents all the entities available on MNOE API, provided by Maestrano.
Note this page about the version 2 of the enterprise API which is currently in beta.
API V1
If you are looking for the V1 documentation you will find it here.
Endpoint
The MNOE API production endpoint is available here: https://api-hub.maestrano.com
Path prefixing
All API path must be prefixed by: api/mnoe/v2/
Authentication
The MNOE APIs use HTTP basic authentication:
api_key: <your tenant API key>
api_secret: <your tenant API secret>
JSON API
The Mno Hub api is following the JSON API specifications.
Documentation
-
Unique attribute
-
Read only attribute
-
Write only attribute
-
Create only attribute
-
Mandatory attribute
-
Filterable attribute
Date Format
The date format used for updating and querying data is ISO 8601.
The accepted format are:
-
Complete date:
YYYY-MM-DD
(eg 1985-17-09) -
Complete date plus hours and minutes:
YYYY-MM-DDThh:mmTZD
(eg 1997-07-16T19:20+01:00) -
Complete date plus hours, minutes and seconds:
YYYY-MM-DDThh:mm:ssTZD
(eg 1997-07-16T19:20:30+01:00) -
Complete date plus hours, minutes, seconds and a decimal fraction of a second
YYYY-MM-DDThh:mm:ss.sTZD
(eg 1997-07-16T19:20:30.45+01:00)
where:
-
YYYY
= four-digit year -
MM
= two-digit month (01=January, etc.) -
DD
= two-digit day of month (01 through 31) -
hh
= two digits of hour (00 through 23) (am/pm NOT allowed) -
mm
= two digits of minute (00 through 59) -
ss
= two digits of second (00 through 59) -
s
= one or more digits representing a decimal fraction of a second -
TZD
= time zone designator (Z or +hh:mm or -hh:mm)
API | Querying ¶
Resources collection ¶
Resources collectionGET/:collection_name
To retrieve a collection of resources, an HTTP GET request is issued agains the resources endpoint. By default, only the first 30 elements of the collection ordered by creation date are returned. Refer to the filter and pagination section below for more details.
To retrieve the list of organizations
the following request is sent
GET /organizations
Single Resource ¶
Single ResourceGET/:collection_name/:id
To fetch a single resource by its unique identifier, a GET request against the resource URL can be sent.
GET /organizations/5
See Specifications
Pagination ¶
PaginationGET/:collection_name?page[number]=10&page[size]=10
When retrieving a collection of resources, you may paginate your calls.
-
page[size] the number of elements per page, the maximum is 50
-
page[number]= the index of the page
The pagination details are returned when fetching a collection.
-
first: the first page of data
-
last: the last page of data
-
prev: the previous page of data
-
next: the next page of data
See Specifications
Ordering ¶
OrderingGET/:collection_name?sort=age,name
Examples:
Request to fetch the first 10 Organizations (response provided)
GET /organization?page[number]=1&page[size]=10
Request to retrieve the last created Organizations
GET /organizations?page[number]=1&page[size]=1&sort=-created_at
Request to retrieve the Organizations from index 10 to 19 ordered by name
GET /organizations?page[number]=3&page[size]=10&sort=name
See Specifications
Filtering ¶
FilteringGET/:collection_name?filter[:filter_option]=:value
To filter a request on the collection of resources, the filter
URL parameter can be specified. The following criteria are currently supported:
:filter_option
may be equal to:
-
field
: the request will be filtered for the lines which field is equal to the value -
field.operation
: where operation may be:- ne : attribute must be not equal to value
- none : attribute is null(value is ignored)
- not : attribute must be not equal to value (if value is null, it will return the non null values)
- gte : attribute must be greater or equal to value
- gt : attribute must be greater to value
- lt : attribute must be lower than value
- lte : attribute must be lower or equal to value
- like : attribute must be like to value (for example “%somevalue%”)
- in : attribute must be in the collection
- nin : attribute must be not in the collection
Examples:
Retrieve the Organizations having a billing_currency in USD
GET /organizations?filter[billing_currency]=USD
Retrieve the Invoices that are at status “DRAFT”
GET /invoices?filter[status]=DRAFT
Retrieve the Organization that have a latitude greater than 2000 and have a name starting from a letter a to x
GET /organizations?filter[latitude.gt]=200&filter[name.lte]=x
Retrieve the Invoices that where created before the 1985-09-17T20:00:00
GET /invoices?filter[created_at.lt]=1985-09-17T20:00:00
Retrieve the Users with a name containing “jo”
GET /users?filter[name.like]=%25jo%25
Retrieve the organizations with a name that is in the list[“Corporate Name”, “Maker Association”]
GET /organizations?filter[name.in]=Corporate Name,Maker Association
Retrieve the organizations with a name that is not in the list[“Corporate Name”, “Maker Association”]
GET /organizations?filter[name.nin]=Corporate Name,Maker Association
Relationships
For some resources, you may filter on their relationships. For example: Retrieve the app instances with an app named “Great Application”
GET /app_instances?filter[app.name]=Great Application
Retrieve the users that are linked to the organization with id 48
GET /users?filter[organizations.id]=56
API | Save Data ¶
See Specifications
Resource creation ¶
Resource creationPOST/:collection_name
To create a new resource, an HTTP POST request is issued against the resource collection endpoint. The payload of the request must contain the attributes as described in the resources schemas in the sections below.
To create a resource of type organizations
the following request can be sent:
POST /organizations
with the following payload:
{
"data": {
"type": "organizations",
"attributes": {
"name": "Organization name"
}
}
}
Resource update ¶
Headers
Content-Type: application/vnd.api+json
Body
{
"data": {
"type": "organizations",
"id": "22",
"attributes": {
"name": "Organization name"
}
}
}
Body
{
"data": {
"id": "45",
"type": "organizations",
"links": {
"self": "http://localhost:3000/api/mnoe/v2/organizations/45"
},
"attributes": {
"created_at": "2017-04-13T16:03:10.037Z",
"updated_at": "2017-04-13T16:03:10.037Z",
"uid": "org-fbx1",
"name": "name",
"account_frozen": false,
"soa_enabled": true,
"logo": null,
"latitude": 0,
"longitude": 0,
"geo_country_code": null,
"geo_state_code": null,
"geo_city": null,
"geo_tz": null,
"geo_currency": null,
"meta_data": null,
"industry": null,
"size": null,
"billing_currency": "USD",
"financial_year_end_month": 6,
"external_id": null,
"has_myob_essentials_only": false
},
"relationships": {
"users": {
"links": {
"self": "http://localhost:3000/api/mnoe/v2/organizations/45/relationships/users",
"related": "http://localhost:3000/api/mnoe/v2/organizations/45/users"
}
},
"app_instances": {
"links": {
"self": "http://localhost:3000/api/mnoe/v2/organizations/45/relationships/app_instances",
"related": "http://localhost:3000/api/mnoe/v2/organizations/45/app_instances"
}
},
"invoices": {
"links": {
"self": "http://localhost:3000/api/mnoe/v2/organizations/45/relationships/invoices",
"related": "http://localhost:3000/api/mnoe/v2/organizations/45/invoices"
}
},
"teams": {
"links": {
"self": "http://localhost:3000/api/mnoe/v2/organizations/45/relationships/teams",
"related": "http://localhost:3000/api/mnoe/v2/organizations/45/teams"
}
},
"credit_card": {
"links": {
"self": "http://localhost:3000/api/mnoe/v2/organizations/45/relationships/credit_card",
"related": "http://localhost:3000/api/mnoe/v2/organizations/45/credit_card"
}
}
}
}
}
Headers
Content-Type: application/vnd.api+json
Body
{
"errors": [
{
"title": "can't be blank",
"detail": "name - can't be blank",
"code": "100",
"source": {
"pointer": "/data/attributes/name"
},
"status": "422"
}
]
}
Resource updatePATCH/:collection_name/:id
To update a resource, an HTTP PATCH request is issued against the single resource endpoint. The payload of the request must contain the resource attributes as described in the resources schemas in the sections below.
To update a resource of type organizations
with the id 22 the following request can be sent:
PATCH /organizations/22
with the following payload:
{
"data": {
"type": "organizations",
"id": "22",
"attributes": {
"name": "Organization name"
}
}
}
Common Workflows ¶
Maestrano Model
-
Maestrano model contains User and Organizations/Companies.
-
An organization may contains several users and a user may be in multiple organizations.
-
A user has a role inside an organization.
User Roles
-
Super Admin: has all power within the company including access to billing management
-
Admin: can manage other members (except Super Admin users) and manage the company apps
-
Member: can see other members and access the company apps
Create Users and Organizations
Create User directly linked to Organization
The best way to create a user directly linked to the company is to use the orga_on_create
field when creating a User.
{
"data":{
"type":"users",
"attributes":{
"name":"name",
"surname":"surname",
"email":"email@test.com",
"company": "Bob's Company",
"orga_on_create":"true"
}
}
}
This will automatically create the Organization “Bob’s Company” and the user “Bob Partrige” as a Super Admin of the company.
Add other Users to the Organization
In order to add user to an organization, you may directly use the OrgaRelation endpoint which is the join table between User and Organization.
{
"data":{
"type":"orga_relations",
"attributes":{
"user_id": 35,// The id of the user
"organization_id": 3,// The id of the organization
"role": "Member"// The role of the user
}
}
}
Or use the users
endpoint of Organizations :
Change User role
In order to add user to add user to an organization, you may directly use the OrgaRelation endpoint
Update User’s role in an organization
{
"data":{
"type":"orga_relations",
"id": 42
"attributes":{
"role": "Member"
}
}
}
Or use the users
endpoint of Organizations :
Update User Role inside an Organization
Remove User from an Organization
Use the OrgaRelation endpoint: Remove user from organization
Or use the Organizations endpoint: Remove user from organization
Create a User
Invite the user via email
When user invite other users, we advise to send an mail only containing a confirmation_token. The User should then update his password himself.
You should never send password via email.
Generate a confirmation_token randomly, for example: Bfb7zVWMxU7y6QYxZkZC
. Create the user with the confirmation_token
and set confirmation_sent_at
to the current time.
{
"data":{
"type":"users",
"attributes":{
"name": "Bob",
"surname": "Partridge",
"email": "bob.partridge@test.com",
"password": "HisPassword",
"company": "Bob's Company",
"confirmation_token": "Bfb7zVWMxU7y6QYxZkZC",
"confirmation_sent_at": "2016-09-13T16:28:40"
}
}
}
Send an email to your newly created user containing a link containing the confirmation_token.
For example: http://platform.com/mnoe/auth/users/confirmation?confirmation_token=Bfb7zVWMxU7y6QYxZkZC
The user clicks on the link the request contains the confirmation_token
parameters. Extract that parameter and retrieve the user by confirmation_token
:
GET /users?$limit=1&filter[confirmation_token]=Bfb7zVWMxU7y6QYxZkZC
You may check that the confirmation_sent_at
is not too old. (for example less than 3 days) before proceeding.
The user can decide his password.
{
"data": {
"password": "HisChosenPassword"
}
}
Directly create the user with a password
Use this option if you would like users to give their details and password when they create an account on the platform.
{
"data": {
"name": "Bob",
"surname": "Partridge",
"email": "bob.partridge@test.com",
"password": "HisPassword",
"company": "Bob's Company"
}
}
Provision an App for an Organization
In order to provision an application for an Organization, you should first list the list of available applications and extract their nid
.
{
"data": {
"attributes": {
"app_nid": "cin7-dev",
"owner_id": "3",
"owner_type": "organization"
}
}
}
Addresses ¶
Manage Addresses. An address is a polymorphic resource attached to an owner and represents a physical location where an entity does business. Addresses are important when it comes to calculating taxes for any kind of financial invoicing. Only tenants have addresses at this stage.
Addresses are geocoded upon creation. Fields like the longitude, latitude, city and state_code are automatically populated.
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:21Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:21Z |
city | Filterable Mandatory | string | The city of the location | Sydney |
country_code | Filterable Mandatory | string | An alpha2 code representing the country | AU |
latitude | Filterable Read only | decimal | Latitude coordinate | |
longitude | Filterable Read only | decimal | Longitude coordinate | |
main | Filterable | boolean | Whether this address is the main one. Only one main address per entity. | false |
postal_code | Filterable Mandatory | string | The postal code. Postal codes are essential for tax calculation. | 2000 |
state_code | Filterable Mandatory | string | The federal state of the location | NSW |
street | Filterable Mandatory | string | Unit, street number and name | 46 Market Street |
phone | Filterable Mandatory | string | Phone number of the address | 9174550598 |
phone_country_code | Filterable | string | Phone country code of the address phone number | US |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
owner.id | Owner relation |
owner.type | Owner relation |
Relationships
Name | Type | To |
---|---|---|
tenant | One to One | Tenant |
owner | One to One | Owner |
Addresses ¶
Body
{
"data": [
{
"id": "42",
"type": "addresses",
"links": {
"self": "/api/mnoe/v2/addresses/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.366Z",
"updated_at": "2018-09-21T05:30:21.365Z",
"city": "Sydney",
"country_code": "AU",
"latitude": null,
"longitude": null,
"main": false,
"postal_code": "2000",
"state_code": "NSW",
"street": "46 Market Street",
"phone": "9174550598",
"phone_country_code": "US"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/addresses/42/relationships/tenant",
"related": "/api/mnoe/v2/addresses/42/tenant"
}
},
"owner": {
"links": {
"self": "/api/mnoe/v2/addresses/42/relationships/owner",
"related": "/api/mnoe/v2/addresses/42/owner"
}
}
}
}
]
}
Get AddressesGET/addresses
Get the list of addresses.
Body
{
"data": {
"type": "addresses",
"attributes": {
"street": "46 Market Street",
"postal_code": "2000",
"country_code": "AU"
},
"relationships": {
"owner": {
"data": {
"type": "tenants",
"id": 123
}
}
}
}
}
Body
{
"data": {
"id": "42",
"type": "addresses",
"links": {
"self": "/api/mnoe/v2/addresses/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.366Z",
"updated_at": "2018-09-21T05:30:21.365Z",
"city": "Sydney",
"country_code": "AU",
"latitude": null,
"longitude": null,
"main": false,
"postal_code": "2000",
"state_code": "NSW",
"street": "46 Market Street",
"phone": "9174550598",
"phone_country_code": "US"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/addresses/42/relationships/tenant",
"related": "/api/mnoe/v2/addresses/42/tenant"
}
},
"owner": {
"links": {
"self": "/api/mnoe/v2/addresses/42/relationships/owner",
"related": "/api/mnoe/v2/addresses/42/owner"
}
}
}
}
}
Create New addressesPOST/addresses
Create a new address.
Address ¶
Body
{
"data": {
"id": "42",
"type": "addresses",
"links": {
"self": "/api/mnoe/v2/addresses/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.366Z",
"updated_at": "2018-09-21T05:30:21.365Z",
"city": "Sydney",
"country_code": "AU",
"latitude": null,
"longitude": null,
"main": false,
"postal_code": "2000",
"state_code": "NSW",
"street": "46 Market Street",
"phone": "9174550598",
"phone_country_code": "US"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/addresses/42/relationships/tenant",
"related": "/api/mnoe/v2/addresses/42/tenant"
}
},
"owner": {
"links": {
"self": "/api/mnoe/v2/addresses/42/relationships/owner",
"related": "/api/mnoe/v2/addresses/42/owner"
}
}
}
}
}
Get a AddressGET/addresses/{id}
Get a single address.
- id
integer
(required) Example: 42The address ID
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Alerts ¶
An Alert can be attached on to a KPI containing email recipients & websockets service metadata for delivering the alert.
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:21Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:21Z |
title | Filterable | string | Alert title | |
webhook | Filterable | string | A webhook url string | |
service | Filterable Mandatory | string | Type of Alert: “inapp”, “email” | inapp |
sent | Filterable | boolean | Was the Alert sent | false |
settings | Filterable | string | Alert metadata hash for storing settings | {} |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
kpi.id | Kpi relation |
recipients.id | Recipients relation |
Relationships
Name | Type | To |
---|---|---|
tenant | One to One | Tenant |
kpi | One to One | Kpi |
recipients | One to Many | User |
Alerts ¶
Body
{
"data": [
{
"id": "42",
"type": "alerts",
"links": {
"self": "/api/mnoe/v2/alerts/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.443Z",
"updated_at": "2018-09-21T05:30:21.443Z",
"title": null,
"webhook": null,
"service": "inapp",
"sent": false,
"settings": {},
"recipient_ids": [],
"kpi_id": 1006
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/alerts/42/relationships/tenant",
"related": "/api/mnoe/v2/alerts/42/tenant"
}
},
"kpi": {
"links": {
"self": "/api/mnoe/v2/alerts/42/relationships/kpi",
"related": "/api/mnoe/v2/alerts/42/kpi"
}
},
"recipients": {
"links": {
"self": "/api/mnoe/v2/alerts/42/relationships/recipients",
"related": "/api/mnoe/v2/alerts/42/recipients"
}
}
}
}
]
}
Get AlertsGET/alerts
Get the list of alerts.
Body
{
"data":{
"type":"alerts",
"attributes":{
}
}
}
[Alert][]
Create New AlertPOST/alerts
Create a new alert.
Alert ¶
Body
{
"data": {
"id": "42",
"type": "alerts",
"links": {
"self": "/api/mnoe/v2/alerts/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.443Z",
"updated_at": "2018-09-21T05:30:21.443Z",
"title": null,
"webhook": null,
"service": "inapp",
"sent": false,
"settings": {},
"recipient_ids": [],
"kpi_id": 1006
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/alerts/42/relationships/tenant",
"related": "/api/mnoe/v2/alerts/42/tenant"
}
},
"kpi": {
"links": {
"self": "/api/mnoe/v2/alerts/42/relationships/kpi",
"related": "/api/mnoe/v2/alerts/42/kpi"
}
},
"recipients": {
"links": {
"self": "/api/mnoe/v2/alerts/42/relationships/recipients",
"related": "/api/mnoe/v2/alerts/42/recipients"
}
}
}
}
}
Get AlertGET/Alerts/{id}
Get a single alert.
- id
integer
(required) Example: 42The alert ID
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"data": {
"type": "users",
"id": 9,
"attributes": {
"name": "New Name"
}
}
}
Body
{
"data": {
"id": "42",
"type": "alerts",
"links": {
"self": "/api/mnoe/v2/alerts/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.443Z",
"updated_at": "2018-09-21T05:30:21.443Z",
"title": null,
"webhook": null,
"service": "inapp",
"sent": false,
"settings": {},
"recipient_ids": [],
"kpi_id": 1006
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/alerts/42/relationships/tenant",
"related": "/api/mnoe/v2/alerts/42/tenant"
}
},
"kpi": {
"links": {
"self": "/api/mnoe/v2/alerts/42/relationships/kpi",
"related": "/api/mnoe/v2/alerts/42/kpi"
}
},
"recipients": {
"links": {
"self": "/api/mnoe/v2/alerts/42/relationships/recipients",
"related": "/api/mnoe/v2/alerts/42/recipients"
}
}
}
}
}
Update an AlertPATCH/Alerts/{id}
Update a single alert.
- id
integer
(required) Example: 42The alert ID
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Delete an AlertDELETE/Alerts/{id}
Delete a single alert.
- id
integer
(required) Example: 42The alert ID
Apps ¶
An application available on the platform
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:21Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:21Z |
uid | Filterable Unique | string | public facing ID used by apps | app-15u9 |
nid | Filterable Unique Mandatory | string | Identification Name | testapp1 |
name | Filterable Mandatory | string | Name of the Application | TestApp1 |
description | Filterable | string | Description of the application | This is a description |
logo | Filterable | string | URL to the logo of the application | //hub.dev.maestrano.io/fallback/default_app_logo.jpg |
website | Filterable | string | Main Website of the app | |
slug | Filterable | string | Short name | |
categories | Filterable | string | Categories of the application | [“CRM”] |
key_benefits | Filterable | string | Key Benefits | [] |
key_features | Filterable | string | Key Features | [] |
key_workflows | Filterable | string | Key Workflows | [] |
testimonials | Filterable | string | Testimonials | |
worldwide_usage | Filterable | integer | Worlwide usage | |
tiny_description | Filterable | string | Short Description | |
stack | Filterable | string | Stack. One of: connector | cube | cloud |
cube |
terms_url | Filterable | string | Url of the applications terms of conditions | |
support_url | Filterable | string | Url to the application support center | |
pictures | Filterable | array | Url of the application pictures | [] |
tags | Filterable | array | Tag of the app | [“Sales”] |
pricing_plans | Filterable | hash | pricing plans | {:default=>nil} |
trademark | Filterable | string | Trademark | |
active | Filterable | boolean | Is the app currently active | true |
appinfo | Filterable | text | App Info | |
sso_enabled | Filterable | boolean | Is single sign-on enabled | true |
data_sharing_enabled | Filterable | boolean | Is data-sharing enabled | |
single_billing_enabled | Filterable | boolean | Is single billing enabled | true |
billed_locally | Filterable | boolean | Is single billing managed by MnoHub | |
api_key | Filterable | string | Api Key of the application | |
rank | Filterable | integer | Current rank of the application | 1000 |
multi_instantiable | Filterable | boolean | Can the application be multi instantiated for one owner | true |
metadata | Filterable | text | Metadata of the application | |
subcategories | Filterable | array | Sub Categories | [] |
known_limitations | Filterable | string | Any known limitations on the application | |
getting_started | Filterable | string | Explain to new users how to get started using the application | |
average_rating | Filterable | number | Average Rating | |
running_instances_count | Filterable | number | Number of Instances running | 0 |
pricing_text | Filterable | string | Notes to be displayed along with pricing plans | |
free_trial_duration | Filterable | number | Free trial duration | |
free_trial_unit | Filterable | string | Free trial unit |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
scope | By default, the apps may be filtered to the apps allocated for the tenant. You may set the filter “scope” to “all” to retrieve all the apps. |
app_shared_entities.id | App Shared Entities relation |
app_shared_attributes.id | App Shared Attributes relation |
Examples
Retrieving all the apps
GET /apps?filter[scope]=all
Relationships
Name | Type | To |
---|---|---|
tenant | One to One | Tenant |
app_shared_entities | One to Many | App Shared Entity |
app_shared_attributes | One to Many | App Shared Attribute |
Apps List ¶
Body
{
"data": {
"id": "232",
"type": "apps",
"links": {
"self": "https://api-hub.maestrano.com/api/mnoe/v2/apps/232"
},
"attributes": {
"created_at": "2016-12-07T11:53:36.000Z",
"updated_at": "2017-03-08T10:04:39.000Z",
"nid": "demo-app-java-prod",
"uid": "app-15pj",
"name": "Demo App Java",
"description": null,
"logo": "//cdn.maestrano.com/web/mno/uploads/app/logo/232/java.png",
"website": "http://java-demoapp.maestrano.io",
"slug": "232-demo-app-java",
"categories": [],
"key_benefits": [],
"key_features": [],
"testimonials": "",
"worldwide_usage": null,
"tiny_description": "Simple Application to demonstrate Java SDK Integration",
"stack": "cloud",
"terms_url": null,
"pictures": [],
"tags": "",
"pricing_plans": {
"default": null
},
"trademark": null,
"active": true,
"appinfo": null,
"api_key": "fasdfasdfasdfasdf",
"metadata_url": "http://java-demoapp.maestrano.io/maestrano/metadata",
"metadata": {
"nid": "demo-app-java-prod",
"environment": "demo-app-java",
"app": {
"host": "http://java-demoapp.maestrano.io",
"synchronization_start_path": "/maestrano/maestrano/synchronizations",
"synchronization_toggle_path": "/maestrano/maestrano/synchronizations/toggle_sync",
"synchronization_status_path": "/maestrano/maestrano/synchronizations/:cld-uid"
},
"api": {
"host": "https://api-hub.maestrano.com",
"base": "/api/v1/"
},
"sso": {
"init_path": "/maestrano/auth/saml/init/maestrano",
"consume_path": "/maestrano/auth/saml/consume/maestrano",
"idm": "http://java-demoapp.maestrano.io",
"idp": "https://api-hub.maestrano.com",
"x509_fingerprint": "2f:57:71:e4:40:19:57:37:a6:2c:f0:c5:82:52:2f:2e:41:b7:9d:7e\n",
"x509_certificate": "-----BEGIN CERTIFICATE-----\nMIIDezCCAuSgAwIBAgIJAPFpcH2rW0pyMA0GCSqGSIb3DQEBBQUAMIGGMQswCQYD\nVQQGEwJBVTEMMAoGA1UECBMDTlNXMQ8wDQYDVQQHEwZTeWRuZXkxGjAYBgNVBAoT\nEU1hZXN0cmFubyBQdHkgTHRkMRYwFAYDVQQDEw1tYWVzdHJhbm8uY29tMSQwIgYJ\nKoZIhvcNAQkBFhVzdXBwb3J0QG1hZXN0cmFuby5jb20wHhcNMTQwMTA0MDUyNDEw\nWhcNMzMxMjMwMDUyNDEwWjCBhjELMAkGA1UEBhMCQVUxDDAKBgNVBAgTA05TVzEP\nMA0GA1UEBxMGU3lkbmV5MRowGAYDVQQKExFNYWVzdHJhbm8gUHR5IEx0ZDEWMBQG\nA1UEAxMNbWFlc3RyYW5vLmNvbTEkMCIGCSqGSIb3DQEJARYVc3VwcG9ydEBtYWVz\ndHJhbm8uY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD3feNNn2xfEz5/\nQvkBIu2keh9NNhobpre8U4r1qC7h7OeInTldmxGL4cLHw4ZAqKbJVrlFWqNevM5V\nZBkDe4mjuVkK6rYK1ZK7eVk59BicRksVKRmdhXbANk/C5sESUsQv1wLZyrF5Iq8m\na9Oy4oYrIsEF2uHzCouTKM5n+O4DkwIDAQABo4HuMIHrMB0GA1UdDgQWBBSd/X0L\n/Pq+ZkHvItMtLnxMCAMdhjCBuwYDVR0jBIGzMIGwgBSd/X0L/Pq+ZkHvItMtLnxM\nCAMdhqGBjKSBiTCBhjELMAkGA1UEBhMCQVUxDDAKBgNVBAgTA05TVzEPMA0GA1UE\nBxMGU3lkbmV5MRowGAYDVQQKExFNYWVzdHJhbm8gUHR5IEx0ZDEWMBQGA1UEAxMN\nbWFlc3RyYW5vLmNvbTEkMCIGCSqGSIb3DQEJARYVc3VwcG9ydEBtYWVzdHJhbm8u\nY29tggkA8WlwfatbSnIwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQDE\nhe/18oRh8EqIhOl0bPk6BG49AkjhZZezrRJkCFp4dZxaBjwZTddwo8O5KHwkFGdy\nyLiPV326dtvXoKa9RFJvoJiSTQLEn5mO1NzWYnBMLtrDWojOe6Ltvn3x0HVo/iHh\nJShjAn6ZYX43Tjl1YXDd1H9O+7/VgEWAQQ32v8p5lA==\n-----END CERTIFICATE-----\n"
},
"connec": {
"host": "https://api-connec.maestrano.com"
},
"webhook": {
"account": {
"groups_path": "/maestrano/account/groups/:id/maestrano",
"group_users_path": "/maestrano/account/groups/:group_id/users/:id/maestrano"
},
"connec": {
"external_ids": true,
"initialization_path": null,
"notifications_path": "/maestrano/connec/notifications/maestrano",
"subscriptions": {
"invoices": true,
"journals": true,
"pay_schedules": true,
"people": true,
"payments": true,
"accounts": true,
"tax_codes": true,
"items": true,
"opportunities": true,
"pay_runs": true,
"work_locations": true,
"purchase_orders": true,
"pay_stubs": true,
"company": true,
"employees": true,
"event_orders": true,
"pay_items": true,
"projects": true,
"venues": true,
"tax_rates": true,
"time_activities": true,
"events": true,
"sales_orders": true,
"quotes": true,
"time_sheets": true,
"organizations": true,
"warehouses": true,
"contacts": true
}
}
}
},
"rank": null,
"multi_instantiable": false,
"details": {
"nid": "demo-app-java-prod",
"environment": "demo-app-java",
"app": {
"host": "http://java-demoapp.maestrano.io",
"synchronization_start_path": "/maestrano/maestrano/synchronizations",
"synchronization_toggle_path": "/maestrano/maestrano/synchronizations/toggle_sync",
"synchronization_status_path": "/maestrano/maestrano/synchronizations/:cld-uid"
},
"api": {
"host": "https://api-hub.maestrano.com",
"base": "/api/v1/"
},
"sso": {
"init_path": "/maestrano/auth/saml/init/maestrano",
"consume_path": "/maestrano/auth/saml/consume/maestrano",
"idm": "http://java-demoapp.maestrano.io",
"idp": "https://api-hub.maestrano.com",
"x509_fingerprint": "2f:57:71:e4:40:19:57:37:a6:2c:f0:c5:82:52:2f:2e:41:b7:9d:7e\n",
"x509_certificate": "-----BEGIN CERTIFICATE-----\nMIIDezCCAuSgAwIBAgIJAPFpcH2rW0pyMA0GCSqGSIb3DQEBBQUAMIGGMQswCQYD\nVQQGEwJBVTEMMAoGA1UECBMDTlNXMQ8wDQYDVQQHEwZTeWRuZXkxGjAYBgNVBAoT\nEU1hZXN0cmFubyBQdHkgTHRkMRYwFAYDVQQDEw1tYWVzdHJhbm8uY29tMSQwIgYJ\nKoZIhvcNAQkBFhVzdXBwb3J0QG1hZXN0cmFuby5jb20wHhcNMTQwMTA0MDUyNDEw\nWhcNMzMxMjMwMDUyNDEwWjCBhjELMAkGA1UEBhMCQVUxDDAKBgNVBAgTA05TVzEP\nMA0GA1UEBxMGU3lkbmV5MRowGAYDVQQKExFNYWVzdHJhbm8gUHR5IEx0ZDEWMBQG\nA1UEAxMNbWFlc3RyYW5vLmNvbTEkMCIGCSqGSIb3DQEJARYVc3VwcG9ydEBtYWVz\ndHJhbm8uY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD3feNNn2xfEz5/\nQvkBIu2keh9NNhobpre8U4r1qC7h7OeInTldmxGL4cLHw4ZAqKbJVrlFWqNevM5V\nZBkDe4mjuVkK6rYK1ZK7eVk59BicRksVKRmdhXbANk/C5sESUsQv1wLZyrF5Iq8m\na9Oy4oYrIsEF2uHzCouTKM5n+O4DkwIDAQABo4HuMIHrMB0GA1UdDgQWBBSd/X0L\n/Pq+ZkHvItMtLnxMCAMdhjCBuwYDVR0jBIGzMIGwgBSd/X0L/Pq+ZkHvItMtLnxM\nCAMdhqGBjKSBiTCBhjELMAkGA1UEBhMCQVUxDDAKBgNVBAgTA05TVzEPMA0GA1UE\nBxMGU3lkbmV5MRowGAYDVQQKExFNYWVzdHJhbm8gUHR5IEx0ZDEWMBQGA1UEAxMN\nbWFlc3RyYW5vLmNvbTEkMCIGCSqGSIb3DQEJARYVc3VwcG9ydEBtYWVzdHJhbm8u\nY29tggkA8WlwfatbSnIwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQDE\nhe/18oRh8EqIhOl0bPk6BG49AkjhZZezrRJkCFp4dZxaBjwZTddwo8O5KHwkFGdy\nyLiPV326dtvXoKa9RFJvoJiSTQLEn5mO1NzWYnBMLtrDWojOe6Ltvn3x0HVo/iHh\nJShjAn6ZYX43Tjl1YXDd1H9O+7/VgEWAQQ32v8p5lA==\n-----END CERTIFICATE-----\n"
},
"connec": {
"host": "https://api-connec.maestrano.com"
},
"webhook": {
"account": {
"groups_path": "/maestrano/account/groups/:id/maestrano",
"group_users_path": "/maestrano/account/groups/:group_id/users/:id/maestrano"
},
"connec": {
"external_ids": true,
"initialization_path": null,
"notifications_path": "/maestrano/connec/notifications/maestrano",
"subscriptions": {
"invoices": true,
"journals": true,
"pay_schedules": true,
"people": true,
"payments": true,
"accounts": true,
"tax_codes": true,
"items": true,
"opportunities": true,
"pay_runs": true,
"work_locations": true,
"purchase_orders": true,
"pay_stubs": true,
"company": true,
"employees": true,
"event_orders": true,
"pay_items": true,
"projects": true,
"venues": true,
"tax_rates": true,
"time_activities": true,
"events": true,
"sales_orders": true,
"quotes": true,
"time_sheets": true,
"organizations": true,
"warehouses": true,
"contacts": true
}
}
}
},
"subcategories": "#<AppSubcategory::ActiveRecord_Relation:0x63e43cf1>"
},
"relationships": {
"app_instances": {
"links": {
"self": "https://api-hub.maestrano.com/api/mnoe/v2/apps/232/relationships/app_instances",
"related": "https://api-hub.maestrano.com/api/mnoe/v2/apps/232/app_instances"
}
},
"app_shared_entities": {
"links": {
"self": "https://api-hub.maestrano.com/api/mnoe/v2/apps/232/relationships/app_shared_entities",
"related": "https://api-hub.maestrano.com/api/mnoe/v2/apps/232/app_shared_entities"
}
},
"app_shared_attributes": {
"links": {
"self": "https://api-hub.maestrano.com/api/mnoe/v2/apps/232/relationships/app_shared_attributes",
"related": "https://api-hub.maestrano.com/api/mnoe/v2/apps/232/app_shared_attributes"
}
}
}
}
}
Get AppsGET/apps
Get the list of apps in an array.
App Instances ¶
An application added inside an organization.
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:21Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:21Z |
uid | Filterable Unique Read only | string | public facing ID used by apps | cld-9pfv |
name | Filterable Mandatory | string | Name of the app | MyTestAppInstance |
status | Filterable Read only | string | An App Instance can have 3 status. One of: running | stopped | terminated |
staged |
stack | Filterable Read only | string | Type of the app. One of: connector | cube | cloud |
cube |
billing_type | Filterable Read only Mandatory | string | Type of the billing, default:“monthly” | monthly |
http_url | Filterable Read only | string | Url on which it can be reached | |
soa_enabled | Filterable | boolean | Is SOA enabled | false |
oauth_keys | Filterable | text | Oauth keys used by the app instance | |
owner_type | Filterable Read only Mandatory | string | Owner Type of the App Instance | Organization |
owner_id | Filterable Read only Mandatory | integer | Owner ID of the App Instance | 1013 |
encrypted_oauth_keys | Filterable Read only | text | Encrypted Oauth keys used by the app instance | |
api_key | Filterable Read only | string | API key for API authentication, applies to cube application | |
api_secret | Filterable Read only | string | API Secret for API authentication, applies to cube application | |
channel_id | Filterable Read only | string | Owner UID | |
ssl_enabled | Filterable Read only | boolean | Is SSL Enabled on the app instance | false |
metadata | Filterable Read only | text | Hash Metadata | |
durations | Read only | string | Indicative durations for different stages of the cube lifecycle (cube only) | {} |
url | Filterable Read only | string | Url of the application | |
website | Filterable Read only | string | Website | |
transaction_management | Filterable Read only | boolean | false | |
oauth_company | Read only | string | Oauth company | |
oauth_keys_valid | Read only | string | Is the app properly connected | false |
under_free_trial | Read only | string | Is the app under Free Trial | false |
per_user_licence | Read only | boolean | Is this app billed by users (cube only) | false |
active_licences_count | Read only | string | Number of active licences (cube only) | 0 |
started_at | Filterable Read only | datetime | Timestamp the app was started | |
terminated_at | Filterable Read only | datetime | Timestamp the app was terminated | |
stopped_at | Filterable Read only | datetime | Timestamp the app was stopped | |
next_status | Filterable Read only | string | Next planned status of the app |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
channel_id | Owner ID |
nid | App NID |
app.name | App Name |
fulfilled_only | App instances linked to a product with at least one subscription fulfilled |
app.id | App relation |
owner.id | Owner relation |
owner.type | Owner relation |
sync_status.id | Sync Status relation |
Relationships
Name | Type | To |
---|---|---|
tenant | One to One | Tenant |
app | One to One | App |
owner | One to One | Owner |
sync_status | One to One | Sync Status |
App Instances ¶
Headers
Content-Type: application/json; charset=utf-8
Body
{
"data": [
{
"id": "1",
"type": "app_instances",
"links": {
"self": "https://api-hub.maestrano.com/api/mnoe/v2/app_instances/1"
},
"attributes": {
"created_at": "2012-07-24T11:16:15.000Z",
"updated_at": "2015-03-10T00:50:50.000Z",
"uid": "rae.mcube.co",
"name": "MyJenkins",
"status": "terminated",
"app_id": 1,
"started_at": "2012-10-07T10:30:35.000Z",
"stack": null,
"terminated_at": "2013-02-28T21:39:58.000Z",
"stopped_at": null,
"billing_type": "hourly",
"autostop_at": null,
"autostop_interval": null,
"next_status": null,
"soa_enabled": false,
"http_url": "http://ddd.mcube.co",
"oauth_keys": null,
"owner_type": "Organization",
"owner_id": 767,
"encrypted_oauth_keys": null,
"api_key": "fdffasdfasdfasdfasdfasdf",
"api_secret": "sdfasdfasdf-2226-4dc3-af68-ccc5a7240346",
"channel_id": "org-fbd5",
"ssl_enabled": false,
"metadata": {
"environment": "jenkins",
"app": {
"host": null
},
"api": {
"host": "https://api-hub.maestrano.com",
"base": "/api/v1/"
},
"sso": {
"init_path": null,
"consume_path": null,
"idp": "https://api-hub.maestrano.com",
"x509_fingerprint": "E2:F8:9A:47:DE:AF:1B:60:BB:F6:90:79:B6:65:3C:27:DE:0A:79:73",
"x509_certificate": "-----BEGIN CERTIFICATE-----\nMIIDdjCCAl6gAwIBAgIBAzANBgkqhkiG9w0BAQsFADBMMQswCQYDVQQGEwJBVTEa\nMBgGA1UECgwRTWFlc3RyYW5vIFB0eSBMdGQxITAfBgNVBAMMGGRldmVsb3BlcnMu\nbWFlc3RyYW5vLmNvbTAeFw0xNjA5MjAwMDU3MjBaFw0zNjA5MjEwMDU3MjBaMEEx\nCzAJBgNVBAYTAkFVMRowGAYDVQQKDBFNYWVzdHJhbm8gUHR5IEx0ZDEWMBQGA1UE\nAwwNbWFlc3RyYW5vLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB\nAPOQ27n0Yv+uuyxb1m9JBQOA9N1E8JznK/ieKHH8E9SDo+NQcf0j8vRLd4h67tD8\nLCMfnuxNpOn9hyESzH9EV/G86AAD0FN8CJiG+cIfOltIrQ1opCh9PxftPVAhJ5EB\nBJMY0XOEOSgi4cItDrY337n1b6GpZTkapP4W41mP/xQLYpHMJwHAJd/i4Ycx4PLb\nZu6Q/SiyRxGBr8ApxbijuKKq7XfXCl+pFnKJ2h1w3tAUp/WE5XO3ymiUkhOdBYXH\n4Uxp5X8dCMWx6TpPSjbm1a3qed5cYDHTnF19GOXp7nBtnXaGdTNegur5wMPOrNqD\nq7cd3qQDVu2y0xQKKCsEDY0CAwEAAaNuMGwwLQYJYIZIAYb4QgENBCAWHk1hZXN0\ncmFubyBJbnRlcm5hbCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUtq8zRqgl6r4nf6ux\nst+A6W/db3AwDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCBLAwDQYJKoZIhvcN\nAQELBQADggEBAEyL2b+9Co66U+6RibnMbZ0PjknfCcROrvWYIr54o72/JA1QgfLp\nxjckms+13IX8H5evxIMk6MLkz3RfsdZ0YwfXduiL8P+QYmJhZio/M3cXacq+Eg47\nGa+tcv75+6mBnufBPKfnCQZ4rhjkQdCzLvWX6m++zxHNb3/NdOITgP1bRZ78XFlt\nT4J2HvJaX7oTQH2ZIo5NFBe5UPkdlxMWxRh0TN/gojy/o8ctplotNK5mz85IiT2l\nxMfK6yBcAz9YxkfYkdzyPsD6nm9h+LuQC2qfQEZYeqIHPf8hbk84lGBk9FGtrqG4\nFIZmUtf+haYl0J0f0+TobO3MsNMelFz6aC0=\n-----END CERTIFICATE-----\n"
},
"connec": {
"host": "https://api-connec.maestrano.com"
},
"webhook": {
"account": {
"groups_path": null,
"group_users_path": null
},
"connec": {
"initialization_path": null,
"notifications_path": null
}
}
},
"url": "rae.mcube.co",
"website": "http://jenkins-ci.org",
"app_uid": null,
"app_api_key": null,
"oauth_keys_valid": false
},
"relationships": {
"app": {
"links": {
"self": "https://api-hub.maestrano.com/api/mnoe/v2/app_instances/1/relationships/app",
"related": "https://api-hub.maestrano.com/api/mnoe/v2/app_instances/1/app"
}
},
"owner": {
"links": {
"self": "https://api-hub.maestrano.com/api/mnoe/v2/app_instances/1/relationships/owner",
"related": "https://api-hub.maestrano.com/api/mnoe/v2/app_instances/1/owner"
}
}
}
}
],
"meta": {
"record_count": 14234
},
"links": {
"first": "https://api-hub.maestrano.com/api/mnoe/v2/app_instances?page%5Bnumber%5D=1&page%5Bsize%5D=1",
"next": "https://api-hub.maestrano.com/api/mnoe/v2/app_instances?page%5Bnumber%5D=2&page%5Bsize%5D=1",
"last": "https://api-hub.maestrano.com/api/mnoe/v2/app_instances?page%5Bnumber%5D=14234&page%5Bsize%5D=1"
}
}
Get App InstancesGET/app_instances
Get the list of application instances.
Body
{
"data": {
"attributes": {
"app_nid": "cin7-dev",
"owner_id": "3",
"owner_type": "organization"
}
}
}
Body
{
"data": {
"id": "1",
"type": "app_instances",
"links": {
"self": "https://api-hub.maestrano.com/api/mnoe/v2/app_instances/1"
},
"attributes": {
"created_at": "2012-07-24T11:16:15.000Z",
"updated_at": "2015-03-10T00:50:50.000Z",
"uid": "rae.mcube.co",
"name": "MyJenkins",
"status": "terminated",
"app_id": 1,
"started_at": "2012-10-07T10:30:35.000Z",
"stack": null,
"terminated_at": "2013-02-28T21:39:58.000Z",
"stopped_at": null,
"billing_type": "hourly",
"autostop_at": null,
"autostop_interval": null,
"next_status": null,
"soa_enabled": false,
"http_url": "http://rae.mcube.co",
"oauth_keys": null,
"owner_type": "Organization",
"owner_id": 767,
"encrypted_oauth_keys": null,
"api_key": "dbc675be25daa3e22fc7a1fd82e5e2f93117e7abacab0614438ff29b577f8e3f",
"api_secret": "a12fc38e-2226-4dc3-af68-ccc5a7240346",
"channel_id": "org-fbd5",
"ssl_enabled": false,
"metadata": {
"environment": "jenkins",
"app": {
"host": null
},
"api": {
"host": "https://api-hub.maestrano.com",
"base": "/api/v1/"
},
"sso": {
"init_path": null,
"consume_path": null,
"idp": "https://api-hub.maestrano.com",
"x509_fingerprint": "E2:F8:9A:47:DE:AF:1B:60:BB:F6:90:79:B6:65:3C:27:DE:0A:79:73",
"x509_certificate": "-----BEGIN CERTIFICATE-----\nMIIDdjCCAl6gAwIBAgIBAzANBgkqhkiG9w0BAQsFADBMMQswCQYDVQQGEwJBVTEa\nMBgGA1UECgwRTWFlc3RyYW5vIFB0eSBMdGQxITAfBgNVBAMMGGRldmVsb3BlcnMu\nbWFlc3RyYW5vLmNvbTAeFw0xNjA5MjAwMDU3MjBaFw0zNjA5MjEwMDU3MjBaMEEx\nCzAJBgNVBAYTAkFVMRowGAYDVQQKDBFNYWVzdHJhbm8gUHR5IEx0ZDEWMBQGA1UE\nAwwNbWFlc3RyYW5vLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB\nAPOQ27n0Yv+uuyxb1m9JBQOA9N1E8JznK/ieKHH8E9SDo+NQcf0j8vRLd4h67tD8\nLCMfnuxNpOn9hyESzH9EV/G86AAD0FN8CJiG+cIfOltIrQ1opCh9PxftPVAhJ5EB\nBJMY0XOEOSgi4cItDrY337n1b6GpZTkapP4W41mP/xQLYpHMJwHAJd/i4Ycx4PLb\nZu6Q/SiyRxGBr8ApxbijuKKq7XfXCl+pFnKJ2h1w3tAUp/WE5XO3ymiUkhOdBYXH\n4Uxp5X8dCMWx6TpPSjbm1a3qed5cYDHTnF19GOXp7nBtnXaGdTNegur5wMPOrNqD\nq7cd3qQDVu2y0xQKKCsEDY0CAwEAAaNuMGwwLQYJYIZIAYb4QgENBCAWHk1hZXN0\ncmFubyBJbnRlcm5hbCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUtq8zRqgl6r4nf6ux\nst+A6W/db3AwDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCBLAwDQYJKoZIhvcN\nAQELBQADggEBAEyL2b+9Co66U+6RibnMbZ0PjknfCcROrvWYIr54o72/JA1QgfLp\nxjckms+13IX8H5evxIMk6MLkz3RfsdZ0YwfXduiL8P+QYmJhZio/M3cXacq+Eg47\nGa+tcv75+6mBnufBPKfnCQZ4rhjkQdCzLvWX6m++zxHNb3/NdOITgP1bRZ78XFlt\nT4J2HvJaX7oTQH2ZIo5NFBe5UPkdlxMWxRh0TN/gojy/o8ctplotNK5mz85IiT2l\nxMfK6yBcAz9YxkfYkdzyPsD6nm9h+LuQC2qfQEZYeqIHPf8hbk84lGBk9FGtrqG4\nFIZmUtf+haYl0J0f0+TobO3MsNMelFz6aC0=\n-----END CERTIFICATE-----\n"
},
"connec": {
"host": "https://api-connec.maestrano.com"
},
"webhook": {
"account": {
"groups_path": null,
"group_users_path": null
},
"connec": {
"initialization_path": null,
"notifications_path": null
}
}
},
"url": "rae.mcube.co",
"website": "http://jenkins-ci.org",
"app_uid": null,
"app_api_key": null,
"oauth_keys_valid": false
},
"relationships": {
"app": {
"links": {
"self": "https://api-hub.maestrano.com/api/mnoe/v2/app_instances/1/relationships/app",
"related": "https://api-hub.maestrano.com/api/mnoe/v2/app_instances/1/app"
}
},
"owner": {
"links": {
"self": "https://api-hub.maestrano.com/api/mnoe/v2/app_instances/1/relationships/owner",
"related": "https://api-hub.maestrano.com/api/mnoe/v2/app_instances/1/owner"
}
}
}
}
}
Body
{
"errors": [
{
"title": "requested application does not exist cin7-dev",
"detail": "app_nid - requested application does not exist cin7-dev",
"code": "100",
"source": {
"pointer": "/data/attributes/app_nid"
},
"status": "422"
}
]
}
Provision a New App InstancePOST/app_instances/provision
App Instance ¶
Body
{
"data": {
"id": "1",
"type": "app_instances",
"links": {
"self": "https://api-hub.maestrano.com/api/mnoe/v2/app_instances/1"
},
"attributes": {
"created_at": "2012-07-24T11:16:15.000Z",
"updated_at": "2015-03-10T00:50:50.000Z",
"uid": "rae.mcube.co",
"name": "MyJenkins",
"status": "terminated",
"app_id": 1,
"started_at": "2012-10-07T10:30:35.000Z",
"stack": null,
"terminated_at": "2013-02-28T21:39:58.000Z",
"stopped_at": null,
"billing_type": "hourly",
"autostop_at": null,
"autostop_interval": null,
"next_status": null,
"soa_enabled": false,
"http_url": "http://rae.mcube.co",
"oauth_keys": null,
"owner_type": "Organization",
"owner_id": 767,
"encrypted_oauth_keys": null,
"api_key": "dbc675be25daa3e22fc7a1fd82e5e2f93117e7abacab0614438ff29b577f8e3f",
"api_secret": "a12fc38e-2226-4dc3-af68-ccc5a7240346",
"channel_id": "org-fbd5",
"ssl_enabled": false,
"metadata": {
"environment": "jenkins",
"app": {
"host": null
},
"api": {
"host": "https://api-hub.maestrano.com",
"base": "/api/v1/"
},
"sso": {
"init_path": null,
"consume_path": null,
"idp": "https://api-hub.maestrano.com",
"x509_fingerprint": "E2:F8:9A:47:DE:AF:1B:60:BB:F6:90:79:B6:65:3C:27:DE:0A:79:73",
"x509_certificate": "-----BEGIN CERTIFICATE-----\nMIIDdjCCAl6gAwIBAgIBAzANBgkqhkiG9w0BAQsFADBMMQswCQYDVQQGEwJBVTEa\nMBgGA1UECgwRTWFlc3RyYW5vIFB0eSBMdGQxITAfBgNVBAMMGGRldmVsb3BlcnMu\nbWFlc3RyYW5vLmNvbTAeFw0xNjA5MjAwMDU3MjBaFw0zNjA5MjEwMDU3MjBaMEEx\nCzAJBgNVBAYTAkFVMRowGAYDVQQKDBFNYWVzdHJhbm8gUHR5IEx0ZDEWMBQGA1UE\nAwwNbWFlc3RyYW5vLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB\nAPOQ27n0Yv+uuyxb1m9JBQOA9N1E8JznK/ieKHH8E9SDo+NQcf0j8vRLd4h67tD8\nLCMfnuxNpOn9hyESzH9EV/G86AAD0FN8CJiG+cIfOltIrQ1opCh9PxftPVAhJ5EB\nBJMY0XOEOSgi4cItDrY337n1b6GpZTkapP4W41mP/xQLYpHMJwHAJd/i4Ycx4PLb\nZu6Q/SiyRxGBr8ApxbijuKKq7XfXCl+pFnKJ2h1w3tAUp/WE5XO3ymiUkhOdBYXH\n4Uxp5X8dCMWx6TpPSjbm1a3qed5cYDHTnF19GOXp7nBtnXaGdTNegur5wMPOrNqD\nq7cd3qQDVu2y0xQKKCsEDY0CAwEAAaNuMGwwLQYJYIZIAYb4QgENBCAWHk1hZXN0\ncmFubyBJbnRlcm5hbCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUtq8zRqgl6r4nf6ux\nst+A6W/db3AwDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCBLAwDQYJKoZIhvcN\nAQELBQADggEBAEyL2b+9Co66U+6RibnMbZ0PjknfCcROrvWYIr54o72/JA1QgfLp\nxjckms+13IX8H5evxIMk6MLkz3RfsdZ0YwfXduiL8P+QYmJhZio/M3cXacq+Eg47\nGa+tcv75+6mBnufBPKfnCQZ4rhjkQdCzLvWX6m++zxHNb3/NdOITgP1bRZ78XFlt\nT4J2HvJaX7oTQH2ZIo5NFBe5UPkdlxMWxRh0TN/gojy/o8ctplotNK5mz85IiT2l\nxMfK6yBcAz9YxkfYkdzyPsD6nm9h+LuQC2qfQEZYeqIHPf8hbk84lGBk9FGtrqG4\nFIZmUtf+haYl0J0f0+TobO3MsNMelFz6aC0=\n-----END CERTIFICATE-----\n"
},
"connec": {
"host": "https://api-connec.maestrano.com"
},
"webhook": {
"account": {
"groups_path": null,
"group_users_path": null
},
"connec": {
"initialization_path": null,
"notifications_path": null
}
}
},
"url": "rae.mcube.co",
"website": "http://jenkins-ci.org",
"app_uid": null,
"app_api_key": null,
"oauth_keys_valid": false
},
"relationships": {
"app": {
"links": {
"self": "https://api-hub.maestrano.com/api/mnoe/v2/app_instances/1/relationships/app",
"related": "https://api-hub.maestrano.com/api/mnoe/v2/app_instances/1/app"
}
},
"owner": {
"links": {
"self": "https://api-hub.maestrano.com/api/mnoe/v2/app_instances/1/relationships/owner",
"related": "https://api-hub.maestrano.com/api/mnoe/v2/app_instances/1/owner"
}
}
}
}
}
Get App InstanceGET/app_instances/{id}
Get a single App Instance.
- id
integer
(required) Example: 42The app instance ID
Headers
Content-Type: application/json; charset=utf-8
Body
{
"data": {
"type": "app_instances",
"id": 62,
"attributes": {
"name": "New Name"
}
}
}
Body
{
"data": {
"id": "1",
"type": "app_instances",
"links": {
"self": "https://api-hub.maestrano.com/api/mnoe/v2/app_instances/1"
},
"attributes": {
"created_at": "2012-07-24T11:16:15.000Z",
"updated_at": "2015-03-10T00:50:50.000Z",
"uid": "rae.mcube.co",
"name": "MyJenkins",
"status": "terminated",
"app_id": 1,
"started_at": "2012-10-07T10:30:35.000Z",
"stack": null,
"terminated_at": "2013-02-28T21:39:58.000Z",
"stopped_at": null,
"billing_type": "hourly",
"autostop_at": null,
"autostop_interval": null,
"next_status": null,
"soa_enabled": false,
"http_url": "http://rae.mcube.co",
"oauth_keys": null,
"owner_type": "Organization",
"owner_id": 767,
"encrypted_oauth_keys": null,
"api_key": "dbc675be25daa3e22fc7a1fd82e5e2f93117e7abacab0614438ff29b577f8e3f",
"api_secret": "a12fc38e-2226-4dc3-af68-ccc5a7240346",
"channel_id": "org-fbd5",
"ssl_enabled": false,
"metadata": {
"environment": "jenkins",
"app": {
"host": null
},
"api": {
"host": "https://api-hub.maestrano.com",
"base": "/api/v1/"
},
"sso": {
"init_path": null,
"consume_path": null,
"idp": "https://api-hub.maestrano.com",
"x509_fingerprint": "E2:F8:9A:47:DE:AF:1B:60:BB:F6:90:79:B6:65:3C:27:DE:0A:79:73",
"x509_certificate": "-----BEGIN CERTIFICATE-----\nMIIDdjCCAl6gAwIBAgIBAzANBgkqhkiG9w0BAQsFADBMMQswCQYDVQQGEwJBVTEa\nMBgGA1UECgwRTWFlc3RyYW5vIFB0eSBMdGQxITAfBgNVBAMMGGRldmVsb3BlcnMu\nbWFlc3RyYW5vLmNvbTAeFw0xNjA5MjAwMDU3MjBaFw0zNjA5MjEwMDU3MjBaMEEx\nCzAJBgNVBAYTAkFVMRowGAYDVQQKDBFNYWVzdHJhbm8gUHR5IEx0ZDEWMBQGA1UE\nAwwNbWFlc3RyYW5vLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB\nAPOQ27n0Yv+uuyxb1m9JBQOA9N1E8JznK/ieKHH8E9SDo+NQcf0j8vRLd4h67tD8\nLCMfnuxNpOn9hyESzH9EV/G86AAD0FN8CJiG+cIfOltIrQ1opCh9PxftPVAhJ5EB\nBJMY0XOEOSgi4cItDrY337n1b6GpZTkapP4W41mP/xQLYpHMJwHAJd/i4Ycx4PLb\nZu6Q/SiyRxGBr8ApxbijuKKq7XfXCl+pFnKJ2h1w3tAUp/WE5XO3ymiUkhOdBYXH\n4Uxp5X8dCMWx6TpPSjbm1a3qed5cYDHTnF19GOXp7nBtnXaGdTNegur5wMPOrNqD\nq7cd3qQDVu2y0xQKKCsEDY0CAwEAAaNuMGwwLQYJYIZIAYb4QgENBCAWHk1hZXN0\ncmFubyBJbnRlcm5hbCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUtq8zRqgl6r4nf6ux\nst+A6W/db3AwDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCBLAwDQYJKoZIhvcN\nAQELBQADggEBAEyL2b+9Co66U+6RibnMbZ0PjknfCcROrvWYIr54o72/JA1QgfLp\nxjckms+13IX8H5evxIMk6MLkz3RfsdZ0YwfXduiL8P+QYmJhZio/M3cXacq+Eg47\nGa+tcv75+6mBnufBPKfnCQZ4rhjkQdCzLvWX6m++zxHNb3/NdOITgP1bRZ78XFlt\nT4J2HvJaX7oTQH2ZIo5NFBe5UPkdlxMWxRh0TN/gojy/o8ctplotNK5mz85IiT2l\nxMfK6yBcAz9YxkfYkdzyPsD6nm9h+LuQC2qfQEZYeqIHPf8hbk84lGBk9FGtrqG4\nFIZmUtf+haYl0J0f0+TobO3MsNMelFz6aC0=\n-----END CERTIFICATE-----\n"
},
"connec": {
"host": "https://api-connec.maestrano.com"
},
"webhook": {
"account": {
"groups_path": null,
"group_users_path": null
},
"connec": {
"initialization_path": null,
"notifications_path": null
}
}
},
"url": "rae.mcube.co",
"website": "http://jenkins-ci.org",
"app_uid": null,
"app_api_key": null,
"oauth_keys_valid": false
},
"relationships": {
"app": {
"links": {
"self": "https://api-hub.maestrano.com/api/mnoe/v2/app_instances/1/relationships/app",
"related": "https://api-hub.maestrano.com/api/mnoe/v2/app_instances/1/app"
}
},
"owner": {
"links": {
"self": "https://api-hub.maestrano.com/api/mnoe/v2/app_instances/1/relationships/owner",
"related": "https://api-hub.maestrano.com/api/mnoe/v2/app_instances/1/owner"
}
}
}
}
}
Update an App InstancePATCH/app_instances/{id}
Update a single App Instance.
- id
integer
(required) Example: 42The app instance ID
Headers
Content-Type: application/json; charset=utf-8
Body
{
"data": {
"name": "Another Name"
}
}
Body
{
"data": {
"id": "1",
"type": "app_instances",
"links": {
"self": "https://api-hub.maestrano.com/api/mnoe/v2/app_instances/1"
},
"attributes": {
"created_at": "2012-07-24T11:16:15.000Z",
"updated_at": "2015-03-10T00:50:50.000Z",
"uid": "rae.mcube.co",
"name": "MyJenkins",
"status": "terminated",
"app_id": 1,
"started_at": "2012-10-07T10:30:35.000Z",
"stack": null,
"terminated_at": "2013-02-28T21:39:58.000Z",
"stopped_at": null,
"billing_type": "hourly",
"autostop_at": null,
"autostop_interval": null,
"next_status": null,
"soa_enabled": false,
"http_url": "http://rae.mcube.co",
"oauth_keys": null,
"owner_type": "Organization",
"owner_id": 767,
"encrypted_oauth_keys": null,
"api_key": "dbc675be25daa3e22fc7a1fd82e5e2f93117e7abacab0614438ff29b577f8e3f",
"api_secret": "a12fc38e-2226-4dc3-af68-ccc5a7240346",
"channel_id": "org-fbd5",
"ssl_enabled": false,
"metadata": {
"environment": "jenkins",
"app": {
"host": null
},
"api": {
"host": "https://api-hub.maestrano.com",
"base": "/api/v1/"
},
"sso": {
"init_path": null,
"consume_path": null,
"idp": "https://api-hub.maestrano.com",
"x509_fingerprint": "E2:F8:9A:47:DE:AF:1B:60:BB:F6:90:79:B6:65:3C:27:DE:0A:79:73",
"x509_certificate": "-----BEGIN CERTIFICATE-----\nMIIDdjCCAl6gAwIBAgIBAzANBgkqhkiG9w0BAQsFADBMMQswCQYDVQQGEwJBVTEa\nMBgGA1UECgwRTWFlc3RyYW5vIFB0eSBMdGQxITAfBgNVBAMMGGRldmVsb3BlcnMu\nbWFlc3RyYW5vLmNvbTAeFw0xNjA5MjAwMDU3MjBaFw0zNjA5MjEwMDU3MjBaMEEx\nCzAJBgNVBAYTAkFVMRowGAYDVQQKDBFNYWVzdHJhbm8gUHR5IEx0ZDEWMBQGA1UE\nAwwNbWFlc3RyYW5vLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB\nAPOQ27n0Yv+uuyxb1m9JBQOA9N1E8JznK/ieKHH8E9SDo+NQcf0j8vRLd4h67tD8\nLCMfnuxNpOn9hyESzH9EV/G86AAD0FN8CJiG+cIfOltIrQ1opCh9PxftPVAhJ5EB\nBJMY0XOEOSgi4cItDrY337n1b6GpZTkapP4W41mP/xQLYpHMJwHAJd/i4Ycx4PLb\nZu6Q/SiyRxGBr8ApxbijuKKq7XfXCl+pFnKJ2h1w3tAUp/WE5XO3ymiUkhOdBYXH\n4Uxp5X8dCMWx6TpPSjbm1a3qed5cYDHTnF19GOXp7nBtnXaGdTNegur5wMPOrNqD\nq7cd3qQDVu2y0xQKKCsEDY0CAwEAAaNuMGwwLQYJYIZIAYb4QgENBCAWHk1hZXN0\ncmFubyBJbnRlcm5hbCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUtq8zRqgl6r4nf6ux\nst+A6W/db3AwDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCBLAwDQYJKoZIhvcN\nAQELBQADggEBAEyL2b+9Co66U+6RibnMbZ0PjknfCcROrvWYIr54o72/JA1QgfLp\nxjckms+13IX8H5evxIMk6MLkz3RfsdZ0YwfXduiL8P+QYmJhZio/M3cXacq+Eg47\nGa+tcv75+6mBnufBPKfnCQZ4rhjkQdCzLvWX6m++zxHNb3/NdOITgP1bRZ78XFlt\nT4J2HvJaX7oTQH2ZIo5NFBe5UPkdlxMWxRh0TN/gojy/o8ctplotNK5mz85IiT2l\nxMfK6yBcAz9YxkfYkdzyPsD6nm9h+LuQC2qfQEZYeqIHPf8hbk84lGBk9FGtrqG4\nFIZmUtf+haYl0J0f0+TobO3MsNMelFz6aC0=\n-----END CERTIFICATE-----\n"
},
"connec": {
"host": "https://api-connec.maestrano.com"
},
"webhook": {
"account": {
"groups_path": null,
"group_users_path": null
},
"connec": {
"initialization_path": null,
"notifications_path": null
}
}
},
"url": "rae.mcube.co",
"website": "http://jenkins-ci.org",
"app_uid": null,
"app_api_key": null,
"oauth_keys_valid": false
},
"relationships": {
"app": {
"links": {
"self": "https://api-hub.maestrano.com/api/mnoe/v2/app_instances/1/relationships/app",
"related": "https://api-hub.maestrano.com/api/mnoe/v2/app_instances/1/app"
}
},
"owner": {
"links": {
"self": "https://api-hub.maestrano.com/api/mnoe/v2/app_instances/1/relationships/owner",
"related": "https://api-hub.maestrano.com/api/mnoe/v2/app_instances/1/owner"
}
}
}
}
}
Update an Organization App InstancePATCH/app_instances/{id}
Update a single App Instance.
- id
integer
(required) Example: 42The app instance ID
Arrears Situations ¶
Money that is owed and should have been paid earlier by an organization
Attribute
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:21Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:21Z |
status | Filterable | string | Status of the arrear. One of: pending | performing | performed | resolved | cancelled |
|
category | Filterable Mandatory | string | Category of the arrear. One of: credit_expired | payment_failed | free_trial_expired |
credit_expired |
payment | Filterable | money | Payment done for the arrear | 0.73 |
name | Filterable | string | Name of the owner of the arrear | organization_2 |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
owner.id | Owner relation |
owner.type | Owner relation |
Arrears Situation List ¶
Body
{
"data": [
{
"id": "42",
"type": "arrears_situations",
"links": {
"self": "/api/mnoe/v2/arrears_situations/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.667Z",
"updated_at": "2018-09-21T05:30:21.667Z",
"status": null,
"category": "credit_expired",
"payment": {
"cents": 73,
"currency": "USD"
},
"name": "organization_2"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/arrears_situations/42/relationships/tenant",
"related": "/api/mnoe/v2/arrears_situations/42/tenant"
}
},
"owner": {
"links": {
"self": "/api/mnoe/v2/arrears_situations/42/relationships/owner",
"related": "/api/mnoe/v2/arrears_situations/42/owner"
}
}
}
}
]
}
Get Arrears SituationGET/arrears_situation
Get the list of arrears.
Audit Events ¶
Every action of the platform may be logged in an audit event.
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:21Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:21Z |
key | Filterable | string | Key identifying the audit event | update_user |
description | Filterable | text | Description of the event | Update of user |
metadata | Filterable | text | Metadata associated to metadata | Name Surname |
subject_type | Filterable | string | type of the subject | User |
subject_id | Filterable | string | id of the subject | Organization |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
user.id | User relation |
organization.id | Organization relation |
Relationships
Name | Type | To |
---|---|---|
tenant | One to One | Tenant |
user | One to One | User |
organization | One to One | Organization |
Audit Events ¶
Body
{
"data": [
{
"id": "42",
"type": "audit_events",
"links": {
"self": "/api/mnoe/v2/audit_events/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.717Z",
"updated_at": "2018-09-21T05:30:21.717Z",
"key": "update_user",
"user_id": 1026,
"organization_id": null,
"description": "Update of user",
"metadata": "Name Surname",
"subject_type": "User",
"subject_id": "Organization"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/audit_events/42/relationships/tenant",
"related": "/api/mnoe/v2/audit_events/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/audit_events/42/relationships/user",
"related": "/api/mnoe/v2/audit_events/42/user"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/audit_events/42/relationships/organization",
"related": "/api/mnoe/v2/audit_events/42/organization"
}
}
}
}
]
}
Get Audit EventsGET/audit_events
Get the list of audit events.
Body
{
"data": {
"type": "audit_events",
"attributes": {
"user_id": 35,
"organization_id": 3,
"role": "Super Admin"
}
}
}
Body
{
"data": [
{
"id": "42",
"type": "audit_events",
"links": {
"self": "/api/mnoe/v2/audit_events/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.717Z",
"updated_at": "2018-09-21T05:30:21.717Z",
"key": "update_user",
"user_id": 1026,
"organization_id": null,
"description": "Update of user",
"metadata": "Name Surname",
"subject_type": "User",
"subject_id": "Organization"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/audit_events/42/relationships/tenant",
"related": "/api/mnoe/v2/audit_events/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/audit_events/42/relationships/user",
"related": "/api/mnoe/v2/audit_events/42/user"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/audit_events/42/relationships/organization",
"related": "/api/mnoe/v2/audit_events/42/organization"
}
}
}
}
]
}
Create a new Audit EventPOST/audit_events
Audit Event ¶
Body
{
"data": {
"id": "42",
"type": "audit_events",
"links": {
"self": "/api/mnoe/v2/audit_events/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.717Z",
"updated_at": "2018-09-21T05:30:21.717Z",
"key": "update_user",
"user_id": 1026,
"organization_id": null,
"description": "Update of user",
"metadata": "Name Surname",
"subject_type": "User",
"subject_id": "Organization"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/audit_events/42/relationships/tenant",
"related": "/api/mnoe/v2/audit_events/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/audit_events/42/relationships/user",
"related": "/api/mnoe/v2/audit_events/42/user"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/audit_events/42/relationships/organization",
"related": "/api/mnoe/v2/audit_events/42/organization"
}
}
}
}
}
Get an Audit EventGET/audit_events/{id}
Get a single audit event.
- id
integer
(required) Example: 42The audit event ID
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"data":{
"type":"organizations",
"id": 42
"attributes":{
"role": "Super Admin"
}
}
}
Body
{
"data": {
"id": "42",
"type": "audit_events",
"links": {
"self": "/api/mnoe/v2/audit_events/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.717Z",
"updated_at": "2018-09-21T05:30:21.717Z",
"key": "update_user",
"user_id": 1026,
"organization_id": null,
"description": "Update of user",
"metadata": "Name Surname",
"subject_type": "User",
"subject_id": "Organization"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/audit_events/42/relationships/tenant",
"related": "/api/mnoe/v2/audit_events/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/audit_events/42/relationships/user",
"related": "/api/mnoe/v2/audit_events/42/user"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/audit_events/42/relationships/organization",
"related": "/api/mnoe/v2/audit_events/42/organization"
}
}
}
}
}
Update an Audit EventPATCH/audit_events/{id}
- id
integer
(required) Example: 42The audit event ID
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Delete an Audit EventDELETE/audit_events/{id}
- id
integer
(required) Example: 42The audit event ID
Bills ¶
A bill represents a charge related to the use of an app or product to be invoiced to a customer. A bill can be created through the API or be generated from a recurring bill.
When creating a bill through the API a billable must be attached to it. A billable is an AppInstance or a Subscription.
The supplier_price_cents and platform_price_cents are automatically populated based on the revenue sharing agreement between the platform owner and the service provider creating the bill. These fields are read-only but some service providers may be allowed to configure these fields (e.g. for apps owned by the platform owner itself)
From a reconciliation point of view the following rules apply: supplier_price = [Provider revenue share] platform_price = supplier_price + [Platform revenue share] price = platform_price + [Tenant revenue share] = [Price set via API] end_user_price = price + [Tenant markup/discount]
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:21Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:21Z |
currency | Filterable Create only Mandatory | string | The currency of the amount charged. Must be in ISO 4217 format. | AUD |
description | Filterable Mandatory | string | A description to appear on the invoice | some bill description |
end_user_price_cents | Filterable Create only | integer | The amount eventually paid by customers - inclusive of tenant-specific markups/discounts | |
period_started_at | Filterable Create only | datetime | The start date of the billing period this charge is for | |
period_ended_at | Filterable Create only | datetime | The end date of the billing period this charge is for | |
platform_price_cents | Filterable Create only | integer | The platform + service provider revenue share. Represents the bill cost from a tenant point of view. | |
price_cents | Filterable Create only Mandatory | integer | The amount to be charged in cents | 2400 |
status | Filterable Read only | string | The current status of the bill. One of: submitted | cancelled | invoiced |
submitted |
supplier_price_cents | Filterable Create only | integer | The service provider revenue share. Represents the bill cost from a platform point of view. | |
third_party | Filterable Create only | boolean | Set to true if this bill is related to a service provider expense with a third party which is not subject to commission. | false |
closed_end_user_price | Filterable Create only | string | The end_user_price in the invoice currency. | |
closure_exchange_rate | Filterable Create only | string | Default exchange rate at the invoice ended_at date. | |
adjustment | Filterable Read only | string | Set to true if this bill represents a manual adjustment | false |
billing_group | Read only | string | Name of the invoice section under which this bill will appear | TestApp5 |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
billable.type | Billable relation |
billable.id | Billable relation |
invoice.id | Invoice relation |
recurring_bill.id | Recurring Bill relation |
Relationships
Name | Type | To |
---|---|---|
tenant | One to One | Tenant |
billable | One to One | Billable |
invoice | One to One | Invoice |
recurring_bill | One to One | Recurring Bill |
Bills List ¶
Body
{
"data": [
{
"id": "42",
"type": "bills",
"links": {
"self": "/api/mnoe/v2/bills/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.749Z",
"updated_at": "2018-09-21T05:30:21.749Z",
"currency": "AUD",
"description": "some bill description",
"end_user_price_cents": null,
"period_started_at": null,
"period_ended_at": null,
"platform_price_cents": null,
"price_cents": 2400,
"status": "submitted",
"supplier_price_cents": null,
"third_party": false,
"closed_end_user_price": null,
"closure_exchange_rate": null,
"adjustment": false,
"billing_group": "TestApp5"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/bills/42/relationships/tenant",
"related": "/api/mnoe/v2/bills/42/tenant"
}
},
"billable": {
"links": {
"self": "/api/mnoe/v2/bills/42/relationships/billable",
"related": "/api/mnoe/v2/bills/42/billable"
}
},
"invoice": {
"links": {
"self": "/api/mnoe/v2/bills/42/relationships/invoice",
"related": "/api/mnoe/v2/bills/42/invoice"
}
},
"recurring_bill": {
"links": {
"self": "/api/mnoe/v2/bills/42/relationships/recurring_bill",
"related": "/api/mnoe/v2/bills/42/recurring_bill"
}
}
}
}
]
}
Get BillsGET/bills
Get all recurring bills
Body
{
"data": {
"type": "bills",
"attributes": {
"currency": "USD",
"description": "Company subscription: Pro",
"price_cents": 2990
},
"relationships": {
"billable": {
"data": {
"type": "app_instances",
"id": "442"
}
}
}
}
}
Body
{
"data": {
"type": "bills",
"attributes": {
"currency": "USD",
"description": "User subscription: Basic",
"price_cents": 2990
},
"relationships": {
"billable": {
"data": {
"type": "subscriptions",
"id": "50f3d438-fab0-44cb-815c-1003f0f6d1ea"
}
}
}
}
}
Create New billsPOST/bills
Create a new bill.
Bill ¶
Body
{
"data": {
"id": "42",
"type": "bills",
"links": {
"self": "/api/mnoe/v2/bills/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.749Z",
"updated_at": "2018-09-21T05:30:21.749Z",
"currency": "AUD",
"description": "some bill description",
"end_user_price_cents": null,
"period_started_at": null,
"period_ended_at": null,
"platform_price_cents": null,
"price_cents": 2400,
"status": "submitted",
"supplier_price_cents": null,
"third_party": false,
"closed_end_user_price": null,
"closure_exchange_rate": null,
"adjustment": false,
"billing_group": "TestApp5"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/bills/42/relationships/tenant",
"related": "/api/mnoe/v2/bills/42/tenant"
}
},
"billable": {
"links": {
"self": "/api/mnoe/v2/bills/42/relationships/billable",
"related": "/api/mnoe/v2/bills/42/billable"
}
},
"invoice": {
"links": {
"self": "/api/mnoe/v2/bills/42/relationships/invoice",
"related": "/api/mnoe/v2/bills/42/invoice"
}
},
"recurring_bill": {
"links": {
"self": "/api/mnoe/v2/bills/42/relationships/recurring_bill",
"related": "/api/mnoe/v2/bills/42/recurring_bill"
}
}
}
}
}
Get a BillGET/bills/{id}
Get a single bill.
- id
integer
(required) Example: 42The bill ID
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Delete a BillDELETE/bills/{id}
The bill will not actually be deleted and will be flagged as cancelled instead. Only bills that are in a ‘submitted’ status can be cancelled.
- id
integer
(required) Example: 42The bill ID
Credit Cards ¶
Store an Organization credit card
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:21Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:21Z |
title | Filterable Mandatory | string | Title of the customer | Mr. |
first_name | Filterable | string | First name on the card | John |
last_name | Filterable | string | Last name on the card | Doe |
country | Filterable Mandatory | string | Country of delivery | AU |
masked_number | Filterable | string | Credit Card number masked except last 4 numbers | |
number | Filterable | string | Credit Card number | 4242424242424242 |
month | Filterable | integer | Month of expiration | 9 |
year | Filterable | integer | Year of expiration | 2019 |
billing_address | Filterable Mandatory | text | Customer billing address | 123 Black Street |
billing_city | Filterable Mandatory | string | Customer billing city | Blackville |
billing_postcode | Filterable | string | Customer billing post code | |
billing_country | Filterable Mandatory | string | Customer billing country | AU |
verification_value | Filterable | string | Verification code | 123 |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
owner.id | Owner relation |
owner.type | Owner relation |
Credit Cards ¶
Body
{
"data": [
{
"id": "42",
"type": "credit_cards",
"links": {
"self": "/api/mnoe/v2/credit_cards/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.758Z",
"updated_at": "2018-09-21T05:30:21.757Z",
"title": "Mr.",
"first_name": "John",
"last_name": "Doe",
"country": "AU",
"masked_number": null,
"number": "4242424242424242",
"month": 9,
"year": 2019,
"billing_address": "123 Black Street",
"billing_city": "Blackville",
"billing_postcode": null,
"billing_country": "AU",
"verification_value": "123",
"owner_type": "Organization",
"owner_id": 1038
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/credit_cards/42/relationships/tenant",
"related": "/api/mnoe/v2/credit_cards/42/tenant"
}
},
"owner": {
"links": {
"self": "/api/mnoe/v2/credit_cards/42/relationships/owner",
"related": "/api/mnoe/v2/credit_cards/42/owner"
}
}
}
}
]
}
Get Credit CardsGET/credit_cards
Get the credit cards
Body
{
"data": {
"type": "credit_cards",
"attributes": {
"title": "Mr.",
"first_name": "Jean",
"last_name": "Doe",
"country": "US",
"number": "4242424242424242",
"month": 1,
"year": 2020,
"billing_address": "test",
"billing_city": "City",
"billing_postcode": null,
"billing_country": "US",
"verification_value": 589,
"owner_type": "Organization",
"owner_id": 3
}
}
}
Add New Credit CardPOST/credit_cards
Create a credit card. Only one can be linked to an organization.
Credit Card ¶
Body
{
"data": {
"id": "42",
"type": "credit_cards",
"links": {
"self": "/api/mnoe/v2/credit_cards/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.758Z",
"updated_at": "2018-09-21T05:30:21.757Z",
"title": "Mr.",
"first_name": "John",
"last_name": "Doe",
"country": "AU",
"masked_number": null,
"number": "4242424242424242",
"month": 9,
"year": 2019,
"billing_address": "123 Black Street",
"billing_city": "Blackville",
"billing_postcode": null,
"billing_country": "AU",
"verification_value": "123",
"owner_type": "Organization",
"owner_id": 1038
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/credit_cards/42/relationships/tenant",
"related": "/api/mnoe/v2/credit_cards/42/tenant"
}
},
"owner": {
"links": {
"self": "/api/mnoe/v2/credit_cards/42/relationships/owner",
"related": "/api/mnoe/v2/credit_cards/42/owner"
}
}
}
}
}
Get a single Credit CardGET/credit_cards/{id}
Get a single credit card.
- id
integer
(required) Example: 42The Credit Card ID
Body
{
"data": {
"type": "credit_cards",
"id": 1,
"attributes": {
"title": "Mr.",
"first_name": "Jean",
"last_name": "Doe",
"country": "US",
"number": "4242424242424242",
"month": 1,
"year": 2020,
"billing_address": "test",
"billing_city": "City",
"billing_postcode": null,
"billing_country": "US",
"verification_value": 589,
"owner_type": "Organization",
"owner_id": 3
}
}
}
Update the Credit CardPATCH/credit_cards/{id}
Updates the credit card.
- id
integer
(required) Example: 42The Credit Card ID
DeleteDELETE/credit_cards/{id}
Delete the credit card.
- id
integer
(required) Example: 42The Credit Card ID
Dashboards ¶
A dashboard is a multi-organization user interface which contains widgets, KPIS & user metadata
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:21Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:21Z |
name | Filterable Mandatory | string | Name of the Dashboard | analytics dashboard example |
settings | Filterable | string | Metadata field that holds the settings applied to the dashboard (eg: currency, widgets_order) | {} |
widgets_order | Filterable | string | Display order of the widgets | [] |
organization_ids | Filterable | string | Ids of the organizations with access | [] |
currency | Filterable | string | Currency displayed on the widgets | |
hist_parameters | Filterable | string | Time period applied to a dashboard. When used, the time period will be propagated to all the KPIs attached to the dashboard | |
source_id | Filterable | integer | The dashboard source id. Applies when dashboard was created from a template. | |
dashboard_type | Filterable | string | The dashboard type. It can be template or null | dashboard |
published | Filterable | boolean | Is the dashboard template published ? | true |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
kpis.id | Kpis relation |
widgets.id | Widgets relation |
owner.id | Owner relation |
owner.type | Owner relation |
Relationships
Name | Type | To |
---|---|---|
tenant | One to One | Tenant |
kpis | One to Many | Kpi |
widgets | One to Many | Widget |
owner | One to One | Owner |
Dashboards ¶
Body
{
"data": [
{
"id": "42",
"type": "dashboards",
"links": {
"self": "/api/mnoe/v2/dashboards/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.766Z",
"updated_at": "2018-09-21T05:30:21.765Z",
"owner_type": "User",
"owner_id": 1041,
"name": "analytics dashboard example",
"settings": {},
"widgets_order": [],
"organization_ids": [],
"currency": null,
"hist_parameters": null,
"source_id": null,
"dashboard_type": "dashboard",
"published": true
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/dashboards/42/relationships/tenant",
"related": "/api/mnoe/v2/dashboards/42/tenant"
}
},
"kpis": {
"links": {
"self": "/api/mnoe/v2/dashboards/42/relationships/kpis",
"related": "/api/mnoe/v2/dashboards/42/kpis"
}
},
"widgets": {
"links": {
"self": "/api/mnoe/v2/dashboards/42/relationships/widgets",
"related": "/api/mnoe/v2/dashboards/42/widgets"
}
},
"owner": {
"links": {
"self": "/api/mnoe/v2/dashboards/42/relationships/owner",
"related": "/api/mnoe/v2/dashboards/42/owner"
}
}
}
}
]
}
Get DashboardsGET/dashboards
Get the list of dashboards.
Body
{
"data":{
"type":"dashboards",
"attributes":{
"name": "analytics dashboard example"
}
}
}
[Dashboard][]
Create new DasboardPOST/dashboards
Create a new dashboard.
Dashboard ¶
Body
{
"data": {
"id": "42",
"type": "dashboards",
"links": {
"self": "/api/mnoe/v2/dashboards/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.766Z",
"updated_at": "2018-09-21T05:30:21.765Z",
"owner_type": "User",
"owner_id": 1041,
"name": "analytics dashboard example",
"settings": {},
"widgets_order": [],
"organization_ids": [],
"currency": null,
"hist_parameters": null,
"source_id": null,
"dashboard_type": "dashboard",
"published": true
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/dashboards/42/relationships/tenant",
"related": "/api/mnoe/v2/dashboards/42/tenant"
}
},
"kpis": {
"links": {
"self": "/api/mnoe/v2/dashboards/42/relationships/kpis",
"related": "/api/mnoe/v2/dashboards/42/kpis"
}
},
"widgets": {
"links": {
"self": "/api/mnoe/v2/dashboards/42/relationships/widgets",
"related": "/api/mnoe/v2/dashboards/42/widgets"
}
},
"owner": {
"links": {
"self": "/api/mnoe/v2/dashboards/42/relationships/owner",
"related": "/api/mnoe/v2/dashboards/42/owner"
}
}
}
}
}
Get DashboardGET/dashboards/{id}
Get a single dashboard.
- id
integer
(required) Example: 42The dashboard ID
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"data": {
"type": "dashboards",
"attributes": {
"name": "New name"
}
}
}
Body
{
"data": {
"id": "42",
"type": "dashboards",
"links": {
"self": "/api/mnoe/v2/dashboards/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.766Z",
"updated_at": "2018-09-21T05:30:21.765Z",
"owner_type": "User",
"owner_id": 1041,
"name": "analytics dashboard example",
"settings": {},
"widgets_order": [],
"organization_ids": [],
"currency": null,
"hist_parameters": null,
"source_id": null,
"dashboard_type": "dashboard",
"published": true
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/dashboards/42/relationships/tenant",
"related": "/api/mnoe/v2/dashboards/42/tenant"
}
},
"kpis": {
"links": {
"self": "/api/mnoe/v2/dashboards/42/relationships/kpis",
"related": "/api/mnoe/v2/dashboards/42/kpis"
}
},
"widgets": {
"links": {
"self": "/api/mnoe/v2/dashboards/42/relationships/widgets",
"related": "/api/mnoe/v2/dashboards/42/widgets"
}
},
"owner": {
"links": {
"self": "/api/mnoe/v2/dashboards/42/relationships/owner",
"related": "/api/mnoe/v2/dashboards/42/owner"
}
}
}
}
}
Update an DashboardPATCH/dashboards/{id}
Update a single dashboard.
- id
integer
(required) Example: 42The dashboard ID
Headers
Content-Type: application/json; charset=utf-8
Delete a DashboardDELETE/dashboards/{id}
Delete a single dashboard.
- id
integer
(required) Example: 42The dashboard ID
Deletion Requests ¶
A deletion request is used to store the request to delete a user or an organization
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:21Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:21Z |
token | Filterable Read only | string | Token of the Deletion Request | |
status | Filterable | string | Current status of the deletion request |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
deletable.id | Deletable relation |
deletable.type | Deletable relation |
Deletion Requests ¶
Body
{
"data": [
{
"id": "42",
"type": "deletion_requests",
"links": {
"self": "/api/mnoe/v2/deletion_requests/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.779Z",
"updated_at": "2018-09-21T05:30:21.779Z",
"token": null,
"status": null,
"deletable_id": 1044,
"deletable_type": "User"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/deletion_requests/42/relationships/tenant",
"related": "/api/mnoe/v2/deletion_requests/42/tenant"
}
},
"deletable": {
"links": {
"self": "/api/mnoe/v2/deletion_requests/42/relationships/deletable",
"related": "/api/mnoe/v2/deletion_requests/42/deletable"
}
}
}
}
]
}
Get Deletion RequestsGET/deletion_requests
Get the list of deletion_requests.
Body
{
"data":{
"type":"deletion_requests",
"attributes":{
"name":"name",
"surname":"surname",
"email":"email@test.com",
"password":"password"
}
}
}
[Deletion Request][]
Create New deletion_requestsPOST/deletion_requests
Create a new deletion request.
Deletion Request ¶
Body
{
"data": {
"id": "42",
"type": "deletion_requests",
"links": {
"self": "/api/mnoe/v2/deletion_requests/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.779Z",
"updated_at": "2018-09-21T05:30:21.779Z",
"token": null,
"status": null,
"deletable_id": 1044,
"deletable_type": "User"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/deletion_requests/42/relationships/tenant",
"related": "/api/mnoe/v2/deletion_requests/42/tenant"
}
},
"deletable": {
"links": {
"self": "/api/mnoe/v2/deletion_requests/42/relationships/deletable",
"related": "/api/mnoe/v2/deletion_requests/42/deletable"
}
}
}
}
}
Get Deletion RequestGET/deletion_requests/{id}
Get a single deletion request.
- id
integer
(required) Example: 42The deletion request ID
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"data": {
"type": "deletion_requests",
"id": 9,
"attributes": {
"name": "New Name"
}
}
}
Body
{
"data": {
"id": "42",
"type": "deletion_requests",
"links": {
"self": "/api/mnoe/v2/deletion_requests/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.779Z",
"updated_at": "2018-09-21T05:30:21.779Z",
"token": null,
"status": null,
"deletable_id": 1044,
"deletable_type": "User"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/deletion_requests/42/relationships/tenant",
"related": "/api/mnoe/v2/deletion_requests/42/tenant"
}
},
"deletable": {
"links": {
"self": "/api/mnoe/v2/deletion_requests/42/relationships/deletable",
"related": "/api/mnoe/v2/deletion_requests/42/deletable"
}
}
}
}
}
Update an Deletion RequestPATCH/deletion_requests/{id}
Update a single deletion request.
- id
integer
(required) Example: 42The deletion request ID
Headers
Content-Type: application/json; charset=utf-8
Delete a Deletion RequestDELETE/deletion_requests/{id}
Delete a single deletion request.
- id
integer
(required) Example: 42The deletion request ID
Identities ¶
Used to link multiple OAuth identities to a single user
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:21Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:21Z |
provider | Filterable Mandatory | string | Provider | someprovider |
uid | Filterable Mandatory | string | Id of the identify for the given provider | uid_1 |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
user.id | User relation |
Relationships
Name | Type | To |
---|---|---|
tenant | One to One | Tenant |
user | One to One | User |
Identities ¶
Body
{
"data": [
{
"id": "42",
"type": "identities",
"links": {
"self": "/api/mnoe/v2/identities/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.791Z",
"updated_at": "2018-09-21T05:30:21.790Z",
"user_id": 1047,
"provider": "someprovider",
"uid": "uid_1"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/identities/42/relationships/tenant",
"related": "/api/mnoe/v2/identities/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/identities/42/relationships/user",
"related": "/api/mnoe/v2/identities/42/user"
}
}
}
}
]
}
Get IdentitiesGET/identities
Get the list of identities
Body
{
"data": {
"type": "identities",
"attributes": {
"user_id": 9,
"provider": "someprovider",
"uid": "uid_1"
}
}
}
Body
{
"data": [
{
"id": "42",
"type": "identities",
"links": {
"self": "/api/mnoe/v2/identities/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.791Z",
"updated_at": "2018-09-21T05:30:21.790Z",
"user_id": 1047,
"provider": "someprovider",
"uid": "uid_1"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/identities/42/relationships/tenant",
"related": "/api/mnoe/v2/identities/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/identities/42/relationships/user",
"related": "/api/mnoe/v2/identities/42/user"
}
}
}
}
]
}
Create a new IdentitiePOST/identities
Identity ¶
Body
{
"data": [
{
"id": "42",
"type": "identities",
"links": {
"self": "/api/mnoe/v2/identities/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.791Z",
"updated_at": "2018-09-21T05:30:21.790Z",
"user_id": 1047,
"provider": "someprovider",
"uid": "uid_1"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/identities/42/relationships/tenant",
"related": "/api/mnoe/v2/identities/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/identities/42/relationships/user",
"related": "/api/mnoe/v2/identities/42/user"
}
}
}
}
]
}
Get an IdentityGET/Identities/{id}
Get a single Identity.
- id
integer
(required) Example: 42The Identity ID
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"data":{
"type":"identities",
"id": 42
"attributes":{
"provider": "facebook"
}
}
}
Body
{
"data": {
"id": "42",
"type": "identities",
"links": {
"self": "/api/mnoe/v2/identities/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.791Z",
"updated_at": "2018-09-21T05:30:21.790Z",
"user_id": 1047,
"provider": "someprovider",
"uid": "uid_1"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/identities/42/relationships/tenant",
"related": "/api/mnoe/v2/identities/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/identities/42/relationships/user",
"related": "/api/mnoe/v2/identities/42/user"
}
}
}
}
}
Update an IdentityPATCH/Identities/{id}
- id
integer
(required) Example: 42The Identity ID
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Delete an IdentityDELETE/Identities/{id}
- id
integer
(required) Example: 42The Identity ID
Invoices ¶
Store an Organization Invoice
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:21Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:21Z |
billing_address | Filterable Read only | text | Invoice billing address | |
ended_at | Filterable Read only Mandatory | datetime | Date of invoice end | 2011-02-01T00:00:00Z |
currency | Filterable Read only Mandatory | string | Invoice currency in ISO 4217 format (three letters) | AUD |
paid_at | Filterable | datetime | Date paid | |
price_cents | Filterable Read only Mandatory | integer | Total price of the invoice in cents | 2000 |
started_at | Filterable Read only Mandatory | datetime | Date of invoice start | 2011-01-01T00:00:00Z |
slug | Filterable Read only | string | Invoice reference | |
tax_pips_applied | Filterable | integer | Tax calculation method for display purpose (Tax Inclusive / Exclusive) | |
credit_paid | Read only | string | The amount paid via CreditAccount | 0.00 |
billing_summary | Read only | array | The complete summary of the invoice as an array of consolidated (per app instance) item | [] |
price | Read only | string | Total price of the invoice | 20.00 |
previous_total_due | Read only | string | The previous total due for this invoice as it will be displayed on the customer’s PDF. Use previous_due_invoices for thec alculations | 0.00 |
previous_total_paid | Read only | string | The previous total paid for this invoice as it will be displayedon the customer’s PDF | 0.00 |
tax_due_remaining | Read only | string | How much tax should be paid based on total_due_remaining tax_due_remaining = tax_payable - self.payment_paid*rate | 0.00 |
tax_payable | Read only | string | Use the tax_pips_applied value for the tax rate Rounding follows the GST guidelines (normal math rounding) http://www.ato.gov.au/Media-centre/Media-releases/Certainty-for-business-in-GST-calculations-and-rounding/ | 0.00 |
total_due_remaining | Read only | string | How much is remaining to pay for this invoice. Basically: total_due - paid | 20.00 |
total_due | Read only | string | total_due is a snapshot of the invoice before any payment has been done. | 20.00 |
total_payable | Read only | string | How much should be paid via credit card the taxes payable for this invoice | 20.00 |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
organization.id | Organization relation |
bills.id | Bills relation |
Invoices List ¶
Body
{
"data": [
{
"id": 208,
"started_at": "2013-02-28T21:43:20Z",
"ended_at": "2013-07-25T00:00:00Z",
"created_at": "2013-07-25T01:01:08Z",
"updated_at": "2013-08-25T01:01:06Z",
"paid_at": "2013-08-25T01:01:06Z",
"slug": "201307-N43",
"tax_pips_applied": null,
"billing_address": null,
"price": {
"cents": 105,
"currency": "AUD"
},
"total_due": {
"cents": 0,
"currency": "AUD"
},
"total_payable": {
"cents": 0,
"currency": "AUD"
},
"tax_payable": {
"cents": 0,
"currency": "AUD"
},
"total_due_remaining": {
"cents": 0,
"currency": "AUD"
},
"tax_due_remaining": {
"cents": 0,
"currency": "AUD"
},
"credit_paid": {
"cents": 0,
"currency": "AUD"
},
"previous_total_due": {
"cents": 0,
"currency": "AUD"
},
"previous_total_paid": {
"cents": 0,
"currency": "AUD"
},
"billing_summary": [
{
"app_uid": "rsq.mcube.co",
"name": "Feng Office",
"usage": "-",
"label": "CRM investors",
"price_tag": "$0.15",
"price": {
"cents": 15,
"currency": "AUD"
},
"lines": [
{
"label": "Application plan",
"price_tag": "$0.15",
"price": {
"cents": 15,
"currency": "AUD"
},
"converted_price": {
"cents": 15,
"currency": "AUD"
}
}
]
},
{
"app_uid": "www.mcube.co",
"name": "Lovely application",
"usage": "-",
"label": "ERO dam",
"price_tag": "$0.15",
"price": {
"cents": 15,
"currency": "AUD"
},
"lines": [
{
"label": "Application plan",
"price_tag": "$0.15",
"price": {
"cents": 15,
"currency": "AUD"
},
"converted_price": {
"cents": 15,
"currency": "AUD"
}
}
]
},
{
"app_uid": "sac.mcube.co",
"name": "Another Application",
"usage": "-",
"label": "Configuration Management",
"price_tag": "$0.15",
"price": {
"cents": 15,
"currency": "AUD"
},
"lines": [
{
"label": "Application plan",
"price_tag": "$0.15",
"price": {
"cents": 15,
"currency": "AUD"
},
"converted_price": {
"cents": 15,
"currency": "AUD"
}
}
]
},
{
"app_uid": "aaa.mcube.co",
"name": "An Application",
"usage": "-",
"label": "Survey",
"price_tag": "$0.123",
"price": {
"cents": 15,
"currency": "AUD"
},
"lines": [
{
"label": "Application plan",
"price_tag": "$0.123",
"price": {
"cents": 15,
"currency": "AUD"
},
"converted_price": {
"cents": 15,
"currency": "AUD"
}
}
]
}
],
"organization_id": 1
}
],
"metadata": {
"pagination": {
"count": 138266,
"skip": 0,
"limit": "1"
}
}
}
Get InvoicesGET/organizations/{organization_id}/invoices
Get the list of invoices.
- organization_id
string
(required) Example: 1The organization ID
Invoice ¶
Headers
Content-Type: application/json; charset=utf-8
Body
{
"data": {
"id": 208,
"started_at": "2013-02-28T21:43:20Z",
"ended_at": "2013-07-25T00:00:00Z",
"created_at": "2013-07-25T01:01:08Z",
"updated_at": "2013-08-25T01:01:06Z",
"paid_at": "2013-08-25T01:01:06Z",
"slug": "201307-N43",
"tax_pips_applied": null,
"billing_address": null,
"price": {
"cents": 105,
"currency": "AUD"
},
"total_due": {
"cents": 0,
"currency": "AUD"
},
"total_payable": {
"cents": 0,
"currency": "AUD"
},
"tax_payable": {
"cents": 0,
"currency": "AUD"
},
"total_due_remaining": {
"cents": 0,
"currency": "AUD"
},
"tax_due_remaining": {
"cents": 0,
"currency": "AUD"
},
"credit_paid": {
"cents": 0,
"currency": "AUD"
},
"previous_total_due": {
"cents": 0,
"currency": "AUD"
},
"previous_total_paid": {
"cents": 0,
"currency": "AUD"
},
"billing_summary": [
{
"app_uid": "abc.mcube.co",
"name": "Another Office",
"usage": "-",
"label": "The label",
"price_tag": "$0.15",
"price": {
"cents": 15,
"currency": "AUD"
},
"lines": [
{
"label": "Application plan",
"price_tag": "$0.15",
"price": {
"cents": 15,
"currency": "AUD"
},
"converted_price": {
"cents": 15,
"currency": "AUD"
}
}
]
},
{
"app_uid": "www.mcube.co",
"name": "Lovely application",
"usage": "-",
"label": "ERO grinch",
"price_tag": "$0.15",
"price": {
"cents": 15,
"currency": "AUD"
},
"lines": [
{
"label": "Application plan",
"price_tag": "$0.15",
"price": {
"cents": 15,
"currency": "AUD"
},
"converted_price": {
"cents": 15,
"currency": "AUD"
}
}
]
},
{
"app_uid": "xad.mcube.co",
"name": "Another Application",
"usage": "-",
"label": "Configuration Management",
"price_tag": "$0.15",
"price": {
"cents": 15,
"currency": "AUD"
},
"lines": [
{
"label": "Application plan",
"price_tag": "$0.15",
"price": {
"cents": 15,
"currency": "AUD"
},
"converted_price": {
"cents": 15,
"currency": "AUD"
}
}
]
},
{
"app_uid": "xyz.mcube.co",
"name": "An Application",
"usage": "-",
"label": "Survey",
"price_tag": "$0.123",
"price": {
"cents": 15,
"currency": "AUD"
},
"lines": [
{
"label": "Application plan",
"price_tag": "$0.123",
"price": {
"cents": 15,
"currency": "AUD"
},
"converted_price": {
"cents": 15,
"currency": "AUD"
}
}
]
}
],
"organization_id": 1
}
}
Headers
Content-Type: application/json; charset=utf-8
Body
{
"errors": [
{
"id": "d57558c1-e6e9-0134-9e45-4d78b8e2d232",
"href": "http://maestrano.github.io/maestrano-hub/#invoices-invoice-get",
"status": "404",
"code": "resource-not-found",
"title": "Resource not found",
"detail": "Resource not found"
}
]
}
Get InvoiceGET/invoices/{id}
Get a single invoice.
- id
string
(required) Example: 208The invoice ID
Kpis ¶
A KPI (Key Performance Indicator) is a component which can be attached to your dashboard, so you can then view & set targets on values from provided calculations on accounting values, reports & statistics.
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:21Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:21Z |
settings | Filterable | string | Metadata field that holds the settings applied to the widget (eg: hist_parameters, organization_ids,) | {} |
targets | Filterable | text | Threshold that will switch a KPI in a “triggered” state when reached (eg: {“ratio” => {“min” => 0.5}} means the KPI will be triggered if the value of the “ratio” watchable goes below 0.5) | |
extra_params | Filterable | text | Additional parameters that can be attached to a KPI to allows its calculation | |
endpoint | Filterable Mandatory | string | Endpoint on Impac! API to hit in order to calculate the KPI | finance/revenue |
source | Filterable | string | Determines if the kpi endpoint is available on Impac! API or locally on the frontend | |
element_watched | Filterable Mandatory | string | Combined with the endpoint, it will determine which metric is to be calculated (eg: “ratio”, “balance”, “total”) | evolution |
extra_watchables | Filterable | text | Allows to configure a KPI so that it will watch several watchables and be triggered if any of these watchables meets one of its targets | [] |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
alerts.id | Alerts relation |
dashboard.id | Dashboard relation |
widget.id | Widget relation |
Relationships
Name | Type | To |
---|---|---|
tenant | One to One | Tenant |
alerts | One to Many | Alert |
dashboard | One to One | Dashboard |
widget | One to One | Widget |
Kpis ¶
Body
{
"data": [
{
"id": "42",
"type": "kpis",
"links": {
"self": "/api/mnoe/v2/kpis/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.844Z",
"updated_at": "2018-09-21T05:30:21.843Z",
"dashboard_id": 1055,
"widget_id": null,
"settings": {},
"targets": null,
"extra_params": null,
"endpoint": "finance/revenue",
"source": null,
"element_watched": "evolution",
"extra_watchables": []
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/kpis/42/relationships/tenant",
"related": "/api/mnoe/v2/kpis/42/tenant"
}
},
"alerts": {
"links": {
"self": "/api/mnoe/v2/kpis/42/relationships/alerts",
"related": "/api/mnoe/v2/kpis/42/alerts"
}
},
"dashboard": {
"links": {
"self": "/api/mnoe/v2/kpis/42/relationships/dashboard",
"related": "/api/mnoe/v2/kpis/42/dashboard"
}
},
"widget": {
"links": {
"self": "/api/mnoe/v2/kpis/42/relationships/widget",
"related": "/api/mnoe/v2/kpis/42/widget"
}
}
}
}
]
}
Get KpisGET/kpis
Get the list of kpis.
Body
{
"data":{
"type": "widgets",
"attributes":{
"name": "Accounts classes comparison",
"width": 3,
"widget_category": "accounts/classifications_summary",
"endpoint": "accounts/classifications_summary",
"dashboard_id": 42
}
}
}
[Kpi][]
Create New KpiPOST/kpis
Create a new kpi.
Kpi ¶
Body
{
"data": {
"id": "42",
"type": "kpis",
"links": {
"self": "/api/mnoe/v2/kpis/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.844Z",
"updated_at": "2018-09-21T05:30:21.843Z",
"dashboard_id": 1055,
"widget_id": null,
"settings": {},
"targets": null,
"extra_params": null,
"endpoint": "finance/revenue",
"source": null,
"element_watched": "evolution",
"extra_watchables": []
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/kpis/42/relationships/tenant",
"related": "/api/mnoe/v2/kpis/42/tenant"
}
},
"alerts": {
"links": {
"self": "/api/mnoe/v2/kpis/42/relationships/alerts",
"related": "/api/mnoe/v2/kpis/42/alerts"
}
},
"dashboard": {
"links": {
"self": "/api/mnoe/v2/kpis/42/relationships/dashboard",
"related": "/api/mnoe/v2/kpis/42/dashboard"
}
},
"widget": {
"links": {
"self": "/api/mnoe/v2/kpis/42/relationships/widget",
"related": "/api/mnoe/v2/kpis/42/widget"
}
}
}
}
}
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"data": {
"id": 42,
"type": "widgets",
"attributes": {
"name": "New Name"
}
}
}
Body
{
"data": {
"id": "42",
"type": "kpis",
"links": {
"self": "/api/mnoe/v2/kpis/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.844Z",
"updated_at": "2018-09-21T05:30:21.843Z",
"dashboard_id": 1055,
"widget_id": null,
"settings": {},
"targets": null,
"extra_params": null,
"endpoint": "finance/revenue",
"source": null,
"element_watched": "evolution",
"extra_watchables": []
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/kpis/42/relationships/tenant",
"related": "/api/mnoe/v2/kpis/42/tenant"
}
},
"alerts": {
"links": {
"self": "/api/mnoe/v2/kpis/42/relationships/alerts",
"related": "/api/mnoe/v2/kpis/42/alerts"
}
},
"dashboard": {
"links": {
"self": "/api/mnoe/v2/kpis/42/relationships/dashboard",
"related": "/api/mnoe/v2/kpis/42/dashboard"
}
},
"widget": {
"links": {
"self": "/api/mnoe/v2/kpis/42/relationships/widget",
"related": "/api/mnoe/v2/kpis/42/widget"
}
}
}
}
}
Update an KpiPATCH/kpis/{id}
Update a single kpi.
- id
integer
(required) Example: 42The kpi ID
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Delete an KpiDELETE/kpis/{id}
Delete a single kpi.
- id
integer
(required) Example: 42The kpi ID
Orga Invites ¶
The invitation to an organization
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:21Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:21Z |
user_email | Filterable Mandatory | string | Email of the invited user | bla_1@gmail.com |
token | Filterable | string | Secret token | |
status | Filterable | string | Status of the Invite. One of: accepted | pending | declined |
|
user_role | Filterable Mandatory | string | Role of the invited user | |
notification_sent_at | Filterable | datetime | First notification sent to user |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
user.id | User relation |
organization.id | Organization relation |
referrer.id | Referrer relation |
team.id | Team relation |
Relationships
Name | Type | To |
---|---|---|
tenant | One to One | Tenant |
user | One to One | User |
organization | One to One | Organization |
referrer | One to One | User |
team | One to One | Team |
Orga Invites ¶
Body
{
"data": [
{
"id": "42",
"type": "orga_invites",
"links": {
"self": "/api/mnoe/v2/orga_invites/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.861Z",
"updated_at": "2018-09-21T05:30:21.861Z",
"user_id": null,
"user_email": "bla_1@gmail.com",
"organization_id": 1059,
"referrer_id": 1060,
"token": null,
"status": null,
"user_role": null,
"team_id": null,
"notification_sent_at": null
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/orga_invites/42/relationships/tenant",
"related": "/api/mnoe/v2/orga_invites/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/orga_invites/42/relationships/user",
"related": "/api/mnoe/v2/orga_invites/42/user"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/orga_invites/42/relationships/organization",
"related": "/api/mnoe/v2/orga_invites/42/organization"
}
},
"referrer": {
"links": {
"self": "/api/mnoe/v2/orga_invites/42/relationships/referrer",
"related": "/api/mnoe/v2/orga_invites/42/referrer"
}
},
"team": {
"links": {
"self": "/api/mnoe/v2/orga_invites/42/relationships/team",
"related": "/api/mnoe/v2/orga_invites/42/team"
}
}
}
}
]
}
Get Orga InvitesGET/orga_invites
Get the list of orga invites.
Body
{
"data": {
"type": "orga_invites",
"attributes": {
"user_id": 3,
"user_email": "xavier.delamotte+telstradev@maestrano.com",
"organization_id": 9,
"user_role": "Admin",
"status": "pending",
"referrer_id": 12
}
}
}
Body
{
"data": [
{
"id": "42",
"type": "orga_invites",
"links": {
"self": "/api/mnoe/v2/orga_invites/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.861Z",
"updated_at": "2018-09-21T05:30:21.861Z",
"user_id": null,
"user_email": "bla_1@gmail.com",
"organization_id": 1059,
"referrer_id": 1060,
"token": null,
"status": null,
"user_role": null,
"team_id": null,
"notification_sent_at": null
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/orga_invites/42/relationships/tenant",
"related": "/api/mnoe/v2/orga_invites/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/orga_invites/42/relationships/user",
"related": "/api/mnoe/v2/orga_invites/42/user"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/orga_invites/42/relationships/organization",
"related": "/api/mnoe/v2/orga_invites/42/organization"
}
},
"referrer": {
"links": {
"self": "/api/mnoe/v2/orga_invites/42/relationships/referrer",
"related": "/api/mnoe/v2/orga_invites/42/referrer"
}
},
"team": {
"links": {
"self": "/api/mnoe/v2/orga_invites/42/relationships/team",
"related": "/api/mnoe/v2/orga_invites/42/team"
}
}
}
}
]
}
Create a new Orga InvitePOST/orga_invites
Orga Invite ¶
Body
{
"data": {
"id": "42",
"type": "orga_invites",
"links": {
"self": "/api/mnoe/v2/orga_invites/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.861Z",
"updated_at": "2018-09-21T05:30:21.861Z",
"user_id": null,
"user_email": "bla_1@gmail.com",
"organization_id": 1059,
"referrer_id": 1060,
"token": null,
"status": null,
"user_role": null,
"team_id": null,
"notification_sent_at": null
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/orga_invites/42/relationships/tenant",
"related": "/api/mnoe/v2/orga_invites/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/orga_invites/42/relationships/user",
"related": "/api/mnoe/v2/orga_invites/42/user"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/orga_invites/42/relationships/organization",
"related": "/api/mnoe/v2/orga_invites/42/organization"
}
},
"referrer": {
"links": {
"self": "/api/mnoe/v2/orga_invites/42/relationships/referrer",
"related": "/api/mnoe/v2/orga_invites/42/referrer"
}
},
"team": {
"links": {
"self": "/api/mnoe/v2/orga_invites/42/relationships/team",
"related": "/api/mnoe/v2/orga_invites/42/team"
}
}
}
}
}
Get an Orga InviteGET/orga_invites/{id}
Get a single orga invite.
- id
integer
(required) Example: 42The orga invite ID
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"data": {
"type": "orga_invites",
"id": 2,
"attributes": {
"status": "approved"
}
}
}
Body
{
"data": {
"id": "42",
"type": "orga_invites",
"links": {
"self": "/api/mnoe/v2/orga_invites/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.861Z",
"updated_at": "2018-09-21T05:30:21.861Z",
"user_id": null,
"user_email": "bla_1@gmail.com",
"organization_id": 1059,
"referrer_id": 1060,
"token": null,
"status": null,
"user_role": null,
"team_id": null,
"notification_sent_at": null
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/orga_invites/42/relationships/tenant",
"related": "/api/mnoe/v2/orga_invites/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/orga_invites/42/relationships/user",
"related": "/api/mnoe/v2/orga_invites/42/user"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/orga_invites/42/relationships/organization",
"related": "/api/mnoe/v2/orga_invites/42/organization"
}
},
"referrer": {
"links": {
"self": "/api/mnoe/v2/orga_invites/42/relationships/referrer",
"related": "/api/mnoe/v2/orga_invites/42/referrer"
}
},
"team": {
"links": {
"self": "/api/mnoe/v2/orga_invites/42/relationships/team",
"related": "/api/mnoe/v2/orga_invites/42/team"
}
}
}
}
}
Update an Orga InvitePATCH/orga_invites/{id}
- id
integer
(required) Example: 42The orga invite ID
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Delete an Orga InviteDELETE/orga_invites/{id}
- id
integer
(required) Example: 42The orga invite ID
Organizations ¶
An organization represents a group of people working together in the same entity. It may be a company or a team. An Organization contains several Users via the OrgaRelations join table.
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:21Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:21Z |
uid | Filterable Unique Read only | string | public facing ID used by apps | org-fbco |
name | Filterable Mandatory | string | Name of the organization | organization_8 |
account_frozen | Filterable | boolean | Frozen status | false |
soa_enabled | Filterable | boolean | Service-oriented architecture state | true |
mails | Filterable | text | Organization Mails | |
logo | Filterable | string | Company’s logo url | |
latitude | Filterable | float | Geographic latitude | 0.0 |
longitude | Filterable | float | Geographic longitude | 0.0 |
geo_country_code | Filterable | string | Country code of the company | AU |
geo_state_code | Filterable | string | State of the company | |
geo_city | Filterable | string | City of the company | |
geo_tz | Filterable | string | Time zone of the company | |
geo_currency | Filterable | string | Currency of the company | |
metadata | Filterable | hash | Organization Metadata | |
industry | Filterable | string | Industry of the company | |
size | Filterable | string | Number of employees in the company | |
billing_currency | Filterable | string | Currency prefered for billing by the company | AUD |
financial_year_end_month | Filterable | integer | Month that defined the company financial end of the year | |
connectors | Filterable | string | Connectors Sync Status. This is only filled when synchronize_connectors or trigger_app_instances_sync are called. | |
current_billing | Filterable | string | Current Billing | 0.00 |
current_credit | Filterable | string | Current Credit | 0.00 |
external_id | Filterable | string | External Id. May be used to link the organization with an external system. Limited to 255 characters. | |
has_myob_essentials_only | Filterable Read only | string | Organization only has MYOB Essential | false |
transaction_management | Filterable | boolean | false | |
financial_metrics | Filterable | string | Revenue and margin from org | |
belong_to_sub_tenant | Filterable | boolean | Belong to the Sub Tenant, sub_tenant_id parameter needs to be provided to retrieve that field | |
belong_to_account_manager | Filterable | boolean | Belong to the Account Manager, account_manager_id parameter needs to be provided to retrieve that field | |
demo_account | Filterable | string | Demo company description | |
main_address_attributes | Filterable Write only | string | Attributes for main address | |
credit_account_id | Filterable | integer | Used to link an organization to a Credit Account | 1062 |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
users.id | Users relation |
orga_relations.id | Orga Relations relation |
app_instances.id | App Instances relation |
invoices.id | Invoices relation |
teams.id | Teams relation |
orga_invites.id | Orga Invites relation |
addresses.id | Addresses relation |
main_address.id | Main Address relation |
credit_account.id | Credit Account relation |
credit_card.id | Credit Card relation |
sub_tenants.id | Sub Tenants relation |
account_managers.id | Account Managers relation |
subscriptions.id | Subscriptions relation |
Relationships
Name | Type | To |
---|---|---|
tenant | One to One | Tenant |
users | One to Many | User |
orga_relations | One to Many | Orga Relation |
app_instances | One to Many | App Instance |
invoices | One to Many | Invoice |
teams | One to Many | Team |
orga_invites | One to Many | Orga Invite |
addresses | One to Many | Address |
main_address | One to One | Address |
credit_account | One to One | Credit Account |
credit_card | One to One | Credit Card |
sub_tenants | One to Many | Sub Tenant |
account_managers | One to Many | User |
subscriptions | One to Many | Subscription |
Organizations ¶
Body
{
"data": [
{
"id": "42",
"type": "organizations",
"links": {
"self": "/api/mnoe/v2/organizations/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.869Z",
"updated_at": "2018-09-21T05:30:21.868Z",
"uid": "org-fbco",
"name": "organization_8",
"account_frozen": false,
"soa_enabled": true,
"mails": null,
"logo": null,
"latitude": 0,
"longitude": 0,
"geo_country_code": "AU",
"geo_state_code": null,
"geo_city": null,
"geo_tz": null,
"geo_currency": null,
"metadata": null,
"industry": null,
"size": null,
"billing_currency": "AUD",
"financial_year_end_month": null,
"connectors": null,
"current_billing": {
"cents": 0,
"currency": "AUD"
},
"current_credit": {
"cents": 0,
"currency": "AUD"
},
"external_id": null,
"has_myob_essentials_only": false,
"transaction_management": false,
"financial_metrics": null,
"belong_to_sub_tenant": null,
"belong_to_account_manager": null,
"demo_account": null,
"credit_account_id": 1062
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/tenant",
"related": "/api/mnoe/v2/organizations/42/tenant"
}
},
"users": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/users",
"related": "/api/mnoe/v2/organizations/42/users"
}
},
"orga_relations": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/orga_relations",
"related": "/api/mnoe/v2/organizations/42/orga_relations"
}
},
"app_instances": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/app_instances",
"related": "/api/mnoe/v2/organizations/42/app_instances"
}
},
"invoices": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/invoices",
"related": "/api/mnoe/v2/organizations/42/invoices"
}
},
"teams": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/teams",
"related": "/api/mnoe/v2/organizations/42/teams"
}
},
"orga_invites": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/orga_invites",
"related": "/api/mnoe/v2/organizations/42/orga_invites"
}
},
"addresses": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/addresses",
"related": "/api/mnoe/v2/organizations/42/addresses"
}
},
"main_address": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/main_address",
"related": "/api/mnoe/v2/organizations/42/main_address"
}
},
"credit_account": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/credit_account",
"related": "/api/mnoe/v2/organizations/42/credit_account"
}
},
"credit_card": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/credit_card",
"related": "/api/mnoe/v2/organizations/42/credit_card"
}
},
"sub_tenants": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/sub_tenants",
"related": "/api/mnoe/v2/organizations/42/sub_tenants"
}
},
"account_managers": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/account_managers",
"related": "/api/mnoe/v2/organizations/42/account_managers"
}
},
"subscriptions": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/subscriptions",
"related": "/api/mnoe/v2/organizations/42/subscriptions"
}
}
}
}
]
}
Get OrganizationsGET/organizations
Get the list of organizations.
Body
{
"data": {
"type": "organizations",
"attributes": {
"name": "The Organization"
}
}
}
Body
{
"data": {
"id": "42",
"type": "organizations",
"links": {
"self": "/api/mnoe/v2/organizations/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.869Z",
"updated_at": "2018-09-21T05:30:21.868Z",
"uid": "org-fbco",
"name": "organization_8",
"account_frozen": false,
"soa_enabled": true,
"mails": null,
"logo": null,
"latitude": 0,
"longitude": 0,
"geo_country_code": "AU",
"geo_state_code": null,
"geo_city": null,
"geo_tz": null,
"geo_currency": null,
"metadata": null,
"industry": null,
"size": null,
"billing_currency": "AUD",
"financial_year_end_month": null,
"connectors": null,
"current_billing": {
"cents": 0,
"currency": "AUD"
},
"current_credit": {
"cents": 0,
"currency": "AUD"
},
"external_id": null,
"has_myob_essentials_only": false,
"transaction_management": false,
"financial_metrics": null,
"belong_to_sub_tenant": null,
"belong_to_account_manager": null,
"demo_account": null,
"credit_account_id": 1062
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/tenant",
"related": "/api/mnoe/v2/organizations/42/tenant"
}
},
"users": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/users",
"related": "/api/mnoe/v2/organizations/42/users"
}
},
"orga_relations": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/orga_relations",
"related": "/api/mnoe/v2/organizations/42/orga_relations"
}
},
"app_instances": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/app_instances",
"related": "/api/mnoe/v2/organizations/42/app_instances"
}
},
"invoices": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/invoices",
"related": "/api/mnoe/v2/organizations/42/invoices"
}
},
"teams": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/teams",
"related": "/api/mnoe/v2/organizations/42/teams"
}
},
"orga_invites": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/orga_invites",
"related": "/api/mnoe/v2/organizations/42/orga_invites"
}
},
"addresses": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/addresses",
"related": "/api/mnoe/v2/organizations/42/addresses"
}
},
"main_address": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/main_address",
"related": "/api/mnoe/v2/organizations/42/main_address"
}
},
"credit_account": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/credit_account",
"related": "/api/mnoe/v2/organizations/42/credit_account"
}
},
"credit_card": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/credit_card",
"related": "/api/mnoe/v2/organizations/42/credit_card"
}
},
"sub_tenants": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/sub_tenants",
"related": "/api/mnoe/v2/organizations/42/sub_tenants"
}
},
"account_managers": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/account_managers",
"related": "/api/mnoe/v2/organizations/42/account_managers"
}
},
"subscriptions": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/subscriptions",
"related": "/api/mnoe/v2/organizations/42/subscriptions"
}
}
}
}
}
Create New organizationsPOST/organizations
Create a new organizations.
Organization ¶
Body
{
"data": {
"id": "42",
"type": "organizations",
"links": {
"self": "/api/mnoe/v2/organizations/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.869Z",
"updated_at": "2018-09-21T05:30:21.868Z",
"uid": "org-fbco",
"name": "organization_8",
"account_frozen": false,
"soa_enabled": true,
"mails": null,
"logo": null,
"latitude": 0,
"longitude": 0,
"geo_country_code": "AU",
"geo_state_code": null,
"geo_city": null,
"geo_tz": null,
"geo_currency": null,
"metadata": null,
"industry": null,
"size": null,
"billing_currency": "AUD",
"financial_year_end_month": null,
"connectors": null,
"current_billing": {
"cents": 0,
"currency": "AUD"
},
"current_credit": {
"cents": 0,
"currency": "AUD"
},
"external_id": null,
"has_myob_essentials_only": false,
"transaction_management": false,
"financial_metrics": null,
"belong_to_sub_tenant": null,
"belong_to_account_manager": null,
"demo_account": null,
"credit_account_id": 1062
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/tenant",
"related": "/api/mnoe/v2/organizations/42/tenant"
}
},
"users": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/users",
"related": "/api/mnoe/v2/organizations/42/users"
}
},
"orga_relations": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/orga_relations",
"related": "/api/mnoe/v2/organizations/42/orga_relations"
}
},
"app_instances": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/app_instances",
"related": "/api/mnoe/v2/organizations/42/app_instances"
}
},
"invoices": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/invoices",
"related": "/api/mnoe/v2/organizations/42/invoices"
}
},
"teams": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/teams",
"related": "/api/mnoe/v2/organizations/42/teams"
}
},
"orga_invites": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/orga_invites",
"related": "/api/mnoe/v2/organizations/42/orga_invites"
}
},
"addresses": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/addresses",
"related": "/api/mnoe/v2/organizations/42/addresses"
}
},
"main_address": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/main_address",
"related": "/api/mnoe/v2/organizations/42/main_address"
}
},
"credit_account": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/credit_account",
"related": "/api/mnoe/v2/organizations/42/credit_account"
}
},
"credit_card": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/credit_card",
"related": "/api/mnoe/v2/organizations/42/credit_card"
}
},
"sub_tenants": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/sub_tenants",
"related": "/api/mnoe/v2/organizations/42/sub_tenants"
}
},
"account_managers": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/account_managers",
"related": "/api/mnoe/v2/organizations/42/account_managers"
}
},
"subscriptions": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/subscriptions",
"related": "/api/mnoe/v2/organizations/42/subscriptions"
}
}
}
}
}
Get an OrganizationGET/organizations/{id}
Get a single organization.
- id
integer
(required) Example: 42The organization ID
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"data": {
"type": "organizations",
"id": 42,
"attributes": {
"name": "New Name"
}
}
}
Body
{
"data": {
"id": "42",
"type": "organizations",
"links": {
"self": "/api/mnoe/v2/organizations/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.869Z",
"updated_at": "2018-09-21T05:30:21.868Z",
"uid": "org-fbco",
"name": "organization_8",
"account_frozen": false,
"soa_enabled": true,
"mails": null,
"logo": null,
"latitude": 0,
"longitude": 0,
"geo_country_code": "AU",
"geo_state_code": null,
"geo_city": null,
"geo_tz": null,
"geo_currency": null,
"metadata": null,
"industry": null,
"size": null,
"billing_currency": "AUD",
"financial_year_end_month": null,
"connectors": null,
"current_billing": {
"cents": 0,
"currency": "AUD"
},
"current_credit": {
"cents": 0,
"currency": "AUD"
},
"external_id": null,
"has_myob_essentials_only": false,
"transaction_management": false,
"financial_metrics": null,
"belong_to_sub_tenant": null,
"belong_to_account_manager": null,
"demo_account": null,
"credit_account_id": 1062
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/tenant",
"related": "/api/mnoe/v2/organizations/42/tenant"
}
},
"users": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/users",
"related": "/api/mnoe/v2/organizations/42/users"
}
},
"orga_relations": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/orga_relations",
"related": "/api/mnoe/v2/organizations/42/orga_relations"
}
},
"app_instances": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/app_instances",
"related": "/api/mnoe/v2/organizations/42/app_instances"
}
},
"invoices": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/invoices",
"related": "/api/mnoe/v2/organizations/42/invoices"
}
},
"teams": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/teams",
"related": "/api/mnoe/v2/organizations/42/teams"
}
},
"orga_invites": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/orga_invites",
"related": "/api/mnoe/v2/organizations/42/orga_invites"
}
},
"addresses": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/addresses",
"related": "/api/mnoe/v2/organizations/42/addresses"
}
},
"main_address": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/main_address",
"related": "/api/mnoe/v2/organizations/42/main_address"
}
},
"credit_account": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/credit_account",
"related": "/api/mnoe/v2/organizations/42/credit_account"
}
},
"credit_card": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/credit_card",
"related": "/api/mnoe/v2/organizations/42/credit_card"
}
},
"sub_tenants": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/sub_tenants",
"related": "/api/mnoe/v2/organizations/42/sub_tenants"
}
},
"account_managers": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/account_managers",
"related": "/api/mnoe/v2/organizations/42/account_managers"
}
},
"subscriptions": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/subscriptions",
"related": "/api/mnoe/v2/organizations/42/subscriptions"
}
}
}
}
}
Update an OrganizationPATCH/organizations/{id}
Update a single organization.
- id
integer
(required) Example: 42The organization ID
Organization ¶
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"data": {
"id": "42",
"type": "organizations",
"links": {
"self": "/api/mnoe/v2/organizations/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.869Z",
"updated_at": "2018-09-21T05:30:21.868Z",
"uid": "org-fbco",
"name": "organization_8",
"account_frozen": false,
"soa_enabled": true,
"mails": null,
"logo": null,
"latitude": 0,
"longitude": 0,
"geo_country_code": "AU",
"geo_state_code": null,
"geo_city": null,
"geo_tz": null,
"geo_currency": null,
"metadata": null,
"industry": null,
"size": null,
"billing_currency": "AUD",
"financial_year_end_month": null,
"connectors": null,
"current_billing": {
"cents": 0,
"currency": "AUD"
},
"current_credit": {
"cents": 0,
"currency": "AUD"
},
"external_id": null,
"has_myob_essentials_only": false,
"transaction_management": false,
"financial_metrics": null,
"belong_to_sub_tenant": null,
"belong_to_account_manager": null,
"demo_account": null,
"credit_account_id": 1062
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/tenant",
"related": "/api/mnoe/v2/organizations/42/tenant"
}
},
"users": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/users",
"related": "/api/mnoe/v2/organizations/42/users"
}
},
"orga_relations": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/orga_relations",
"related": "/api/mnoe/v2/organizations/42/orga_relations"
}
},
"app_instances": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/app_instances",
"related": "/api/mnoe/v2/organizations/42/app_instances"
}
},
"invoices": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/invoices",
"related": "/api/mnoe/v2/organizations/42/invoices"
}
},
"teams": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/teams",
"related": "/api/mnoe/v2/organizations/42/teams"
}
},
"orga_invites": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/orga_invites",
"related": "/api/mnoe/v2/organizations/42/orga_invites"
}
},
"addresses": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/addresses",
"related": "/api/mnoe/v2/organizations/42/addresses"
}
},
"main_address": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/main_address",
"related": "/api/mnoe/v2/organizations/42/main_address"
}
},
"credit_account": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/credit_account",
"related": "/api/mnoe/v2/organizations/42/credit_account"
}
},
"credit_card": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/credit_card",
"related": "/api/mnoe/v2/organizations/42/credit_card"
}
},
"sub_tenants": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/sub_tenants",
"related": "/api/mnoe/v2/organizations/42/sub_tenants"
}
},
"account_managers": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/account_managers",
"related": "/api/mnoe/v2/organizations/42/account_managers"
}
},
"subscriptions": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/subscriptions",
"related": "/api/mnoe/v2/organizations/42/subscriptions"
}
}
}
}
}
Freeze an OrganizationPATCH/organizations/{id}/freeze
Freeze an organization, stopping all its applications and making it inaccessible to users.
- id
integer
(required) Example: 42The organization ID
Organization ¶
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"data": {
"id": "42",
"type": "organizations",
"links": {
"self": "/api/mnoe/v2/organizations/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.869Z",
"updated_at": "2018-09-21T05:30:21.868Z",
"uid": "org-fbco",
"name": "organization_8",
"account_frozen": false,
"soa_enabled": true,
"mails": null,
"logo": null,
"latitude": 0,
"longitude": 0,
"geo_country_code": "AU",
"geo_state_code": null,
"geo_city": null,
"geo_tz": null,
"geo_currency": null,
"metadata": null,
"industry": null,
"size": null,
"billing_currency": "AUD",
"financial_year_end_month": null,
"connectors": null,
"current_billing": {
"cents": 0,
"currency": "AUD"
},
"current_credit": {
"cents": 0,
"currency": "AUD"
},
"external_id": null,
"has_myob_essentials_only": false,
"transaction_management": false,
"financial_metrics": null,
"belong_to_sub_tenant": null,
"belong_to_account_manager": null,
"demo_account": null,
"credit_account_id": 1062
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/tenant",
"related": "/api/mnoe/v2/organizations/42/tenant"
}
},
"users": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/users",
"related": "/api/mnoe/v2/organizations/42/users"
}
},
"orga_relations": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/orga_relations",
"related": "/api/mnoe/v2/organizations/42/orga_relations"
}
},
"app_instances": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/app_instances",
"related": "/api/mnoe/v2/organizations/42/app_instances"
}
},
"invoices": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/invoices",
"related": "/api/mnoe/v2/organizations/42/invoices"
}
},
"teams": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/teams",
"related": "/api/mnoe/v2/organizations/42/teams"
}
},
"orga_invites": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/orga_invites",
"related": "/api/mnoe/v2/organizations/42/orga_invites"
}
},
"addresses": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/addresses",
"related": "/api/mnoe/v2/organizations/42/addresses"
}
},
"main_address": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/main_address",
"related": "/api/mnoe/v2/organizations/42/main_address"
}
},
"credit_account": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/credit_account",
"related": "/api/mnoe/v2/organizations/42/credit_account"
}
},
"credit_card": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/credit_card",
"related": "/api/mnoe/v2/organizations/42/credit_card"
}
},
"sub_tenants": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/sub_tenants",
"related": "/api/mnoe/v2/organizations/42/sub_tenants"
}
},
"account_managers": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/account_managers",
"related": "/api/mnoe/v2/organizations/42/account_managers"
}
},
"subscriptions": {
"links": {
"self": "/api/mnoe/v2/organizations/42/relationships/subscriptions",
"related": "/api/mnoe/v2/organizations/42/subscriptions"
}
}
}
}
}
Unfreeze an OrganizationPATCH/organizations/{id}/unfreeze
Unfreeze an organization making it accessible to users.
- id
integer
(required) Example: 42The organization ID
Organization ¶
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"data": {
"attributes": {
"role": "Super Admin"
}
}
}
Body
{
"data": {
"id": "424242",
"type": "orga_relations",
"links": {
"self": "/api/mnoe/v2/orga_relations/42"
},
"attributes": {
"created_at": "2017-12-08T19:40:02.977Z",
"updated_at": "2017-12-08T19:40:02.977Z",
"organization_id": 42,
"user_id": 4242,
"role": "Super Admin"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/orga_relations/13380/relationships/tenant",
"related": "/api/mnoe/v2/orga_relations/13380/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/orga_relations/13380/relationships/user",
"related": "/api/mnoe/v2/orga_relations/13380/user"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/orga_relations/13380/relationships/organization",
"related": "/api/mnoe/v2/orga_relations/13380/organization"
}
}
}
}
}
Add User to OrganizationPOST/organizations/{id}/users/{user_id}
Add a user to the organization with a given role.
- id
integer
(required) Example: 42The organization ID
- user_id
integer
(required) Example: 4242The user ID
Organization ¶
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"data": {
"attributes": {
"role": "Super Admin"
}
}
}
Body
{
"data": {
"id": "424242",
"type": "orga_relations",
"links": {
"self": "/api/mnoe/v2/orga_relations/42"
},
"attributes": {
"created_at": "2017-12-08T19:40:02.977Z",
"updated_at": "2017-12-08T19:40:02.977Z",
"organization_id": 42,
"user_id": 4242,
"role": "Super Admin"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/orga_relations/13380/relationships/tenant",
"related": "/api/mnoe/v2/orga_relations/13380/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/orga_relations/13380/relationships/user",
"related": "/api/mnoe/v2/orga_relations/13380/user"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/orga_relations/13380/relationships/organization",
"related": "/api/mnoe/v2/orga_relations/13380/organization"
}
}
}
}
}
Update User role in OrganizationPATCH/organizations/{id}/users/{user_id}
Update the User role inside the Organization
- id
integer
(required) Example: 42The organization ID
- user_id
integer
(required) Example: 4242The user ID
Organization ¶
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Remove User from OrganizationDELETE/organizations/{id}/users/{user_id}
Remove the User role from the Organization
- id
integer
(required) Example: 42The organization ID
- user_id
integer
(required) Example: 4242The user ID
Orga Relations ¶
Join Table between Users and Organizations. Used to associate a user to an organization. This join table also defines the roles of a user inside the organization.
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:21Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:21Z |
role | Filterable Mandatory | string | Role of the user inside the organization. In the MNOE framework, the value accepted are “Super Admin”, “Admin”, “Power User” and “Member” | Super Admin |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
user.id | User relation |
organization.id | Organization relation |
Relationships
Name | Type | To |
---|---|---|
tenant | One to One | Tenant |
user | One to One | User |
organization | One to One | Organization |
Orga Relations ¶
Body
{
"data": [
{
"id": "42",
"type": "orga_relations",
"links": {
"self": "/api/mnoe/v2/orga_relations/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.953Z",
"updated_at": "2018-09-21T05:30:21.953Z",
"organization_id": 1069,
"user_id": 1066,
"role": "Super Admin"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/orga_relations/42/relationships/tenant",
"related": "/api/mnoe/v2/orga_relations/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/orga_relations/42/relationships/user",
"related": "/api/mnoe/v2/orga_relations/42/user"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/orga_relations/42/relationships/organization",
"related": "/api/mnoe/v2/orga_relations/42/organization"
}
}
}
}
]
}
Get Orga RelationsGET/orga_relations
Get the list of orga relations.
Body
{
"data": {
"type": "orga_relations",
"attributes": {
"user_id": 35,
"organization_id": 3,
"role": "Super Admin"
}
}
}
Body
{
"data": [
{
"id": "42",
"type": "orga_relations",
"links": {
"self": "/api/mnoe/v2/orga_relations/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.953Z",
"updated_at": "2018-09-21T05:30:21.953Z",
"organization_id": 1069,
"user_id": 1066,
"role": "Super Admin"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/orga_relations/42/relationships/tenant",
"related": "/api/mnoe/v2/orga_relations/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/orga_relations/42/relationships/user",
"related": "/api/mnoe/v2/orga_relations/42/user"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/orga_relations/42/relationships/organization",
"related": "/api/mnoe/v2/orga_relations/42/organization"
}
}
}
}
]
}
Add a user to an organizationPOST/orga_relations
Orga Relation ¶
Body
{
"data": {
"id": "42",
"type": "orga_relations",
"links": {
"self": "/api/mnoe/v2/orga_relations/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.953Z",
"updated_at": "2018-09-21T05:30:21.953Z",
"organization_id": 1069,
"user_id": 1066,
"role": "Super Admin"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/orga_relations/42/relationships/tenant",
"related": "/api/mnoe/v2/orga_relations/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/orga_relations/42/relationships/user",
"related": "/api/mnoe/v2/orga_relations/42/user"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/orga_relations/42/relationships/organization",
"related": "/api/mnoe/v2/orga_relations/42/organization"
}
}
}
}
}
Get an Orga RelationGET/orga_relations/{id}
Get a single orga relation.
- id
integer
(required) Example: 42The orga relation ID
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"data":{
"type":"organizations",
"id": 42
"attributes":{
"role": "Super Admin"
}
}
}
Body
{
"data": {
"id": "42",
"type": "orga_relations",
"links": {
"self": "/api/mnoe/v2/orga_relations/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.953Z",
"updated_at": "2018-09-21T05:30:21.953Z",
"organization_id": 1069,
"user_id": 1066,
"role": "Super Admin"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/orga_relations/42/relationships/tenant",
"related": "/api/mnoe/v2/orga_relations/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/orga_relations/42/relationships/user",
"related": "/api/mnoe/v2/orga_relations/42/user"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/orga_relations/42/relationships/organization",
"related": "/api/mnoe/v2/orga_relations/42/organization"
}
}
}
}
}
Update the role of a user inside an organizationPATCH/orga_relations/{id}
- id
integer
(required) Example: 42The orga relation ID
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Remove a user from an organizationDELETE/orga_relations/{id}
- id
integer
(required) Example: 42The orga relation ID
Recurring Bills ¶
A recurring bill is a recurring task generating bills at a certain frequency. For services charging a fixed amount per unit of time - e.g. $10 per month - it may be simpler to set a recurring bill through the API when customers subscribe to the service rather than manually creating bills through the API.
When creating a recurring bill through the API a billable must be attached to it. A billable is an AppInstance or a Subscription.
Recurring bills generate bills at the end of each cycle. Generated bills can be queried through the API like any other bill and will have a Recurring Bill attached to them.
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:21Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:21Z |
currency | Create only Mandatory | string | The currency of the amount charged. Must be in ISO 4217 format. | USD |
cycles | Create only | integer | The number of cycles to run for. E.g. 12 cycles of 1 month. Runs forever otherwise. | |
description | Mandatory | string | Generated bills will have this description which will appear on the invoice | Recurring subscription |
frequency | Create only | integer | A charge will occur at the end of each frequency x period cycle. E.g. every 2 months. | 1 |
initial_cents | Create only | integer | The initial amount to charge when creating this recurring bill. Useful to pro-rate the first month of subscrition. | |
last_execution_at | Read only | datetime | When the last bill was generated | 2018-09-21T05:30:21Z |
next_execution_at | Read only | datetime | When the next bill is going to be generated | 2018-10-21T05:30:21Z |
period | Create only Mandatory | string | The unit of time for each charging cycle. One of: month | day | week | semimonth | year |
month |
price_cents | Create only Mandatory | integer | The amount to be charged in cents | 2400 |
remaining_cycles | Read only | integer | Number of cycles remaining before the recurring bill expires. Null if run forever. | |
status | Read only | string | The current status of the recurring bill. One of: submitted | active | cancelled | expired |
active |
start_date | Create only | datetime | When to generate the first bill. First bill will be generated at the end of the cycle otherwise. | 2018-09-21T05:30:21Z |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
billable.id | Billable relation |
billable.type | Billable relation |
bills.id | Bills relation |
Relationships
Name | Type | To |
---|---|---|
tenant | One to One | Tenant |
billable | One to One | Billable |
bills | One to Many | Bill |
Recurring Bills List ¶
Body
{
"data": [
{
"id": "42",
"type": "recurring_bills",
"links": {
"self": "/api/mnoe/v2/recurring_bills/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.978Z",
"updated_at": "2018-09-21T05:30:21.978Z",
"currency": "USD",
"cycles": null,
"description": "Recurring subscription",
"frequency": 1,
"initial_cents": null,
"last_execution_at": "2018-09-21T05:30:21.977Z",
"next_execution_at": "2018-10-21T05:30:21.977Z",
"period": "month",
"price_cents": 2400,
"remaining_cycles": null,
"status": "active",
"start_date": "2018-09-21T05:30:21.977Z"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/recurring_bills/42/relationships/tenant",
"related": "/api/mnoe/v2/recurring_bills/42/tenant"
}
},
"billable": {
"links": {
"self": "/api/mnoe/v2/recurring_bills/42/relationships/billable",
"related": "/api/mnoe/v2/recurring_bills/42/billable"
}
},
"bills": {
"links": {
"self": "/api/mnoe/v2/recurring_bills/42/relationships/bills",
"related": "/api/mnoe/v2/recurring_bills/42/bills"
}
}
}
}
]
}
Get Recurring BillsGET/recurring_bills
Get all recurring bills
Body
{
"data": {
"type": "bills",
"attributes": {
"currency": "USD",
"description": "Company subscription: Pro",
"price_cents": 2990,
"frequency": 1,
"period": "month"
},
"relationships": {
"billable": {
"data": {
"type": "app_instances",
"id": "442"
}
}
}
}
}
Body
{
"data": {
"type": "bills",
"attributes": {
"currency": "USD",
"description": "User gold subscription",
"price_cents": 9990,
"frequency": 3,
"period": "month",
"initial_cents": 29999
},
"relationships": {
"billable": {
"data": {
"type": "subscriptions",
"id": "50f3d438-fab0-44cb-815c-1003f0f6d1ea"
}
}
}
}
}
Create New recurring billsPOST/recurring_bills
Create a new recurring bill.
Recurring Bill ¶
Body
{
"data": {
"id": "42",
"type": "bills",
"links": {
"self": "/api/mnoe/v2/bills/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:21.749Z",
"updated_at": "2018-09-21T05:30:21.749Z",
"currency": "AUD",
"description": "some bill description",
"end_user_price_cents": null,
"period_started_at": null,
"period_ended_at": null,
"platform_price_cents": null,
"price_cents": 2400,
"status": "submitted",
"supplier_price_cents": null,
"third_party": false,
"closed_end_user_price": null,
"closure_exchange_rate": null,
"adjustment": false,
"billing_group": "TestApp5"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/bills/42/relationships/tenant",
"related": "/api/mnoe/v2/bills/42/tenant"
}
},
"billable": {
"links": {
"self": "/api/mnoe/v2/bills/42/relationships/billable",
"related": "/api/mnoe/v2/bills/42/billable"
}
},
"invoice": {
"links": {
"self": "/api/mnoe/v2/bills/42/relationships/invoice",
"related": "/api/mnoe/v2/bills/42/invoice"
}
},
"recurring_bill": {
"links": {
"self": "/api/mnoe/v2/bills/42/relationships/recurring_bill",
"related": "/api/mnoe/v2/bills/42/recurring_bill"
}
}
}
}
}
Get a Recurring BillGET/recurring_bills/{id}
Get a single recurring bill.
- id
integer
(required) Example: 42The recurring bill ID
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Delete a Recurring BillDELETE/recurring_bills/{id}
The recurring bill will not actually be deleted and will be flagged as cancelled instead. Only recurring bills that are in a ‘submitted’ or ‘active’ status can be cancelled.
- id
integer
(required) Example: 42The recurring bill ID
SyncStatuses ¶
The Synchronization Status of an App Instance with its third-party API.
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:22Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:22Z |
status | Filterable | string | Synchronization status. One of: success | error | running | enqueued | disconnected |
success |
messages | string | Messages to be displayed to the user | ||
progress | integer | Synchronization progression percentage when running | ||
started_at | datetime | Synchronization start time | ||
finished_at | datetime | Synchronization finish time |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
app_instance.id | App Instance relation |
product_instance.id | Product Instance relation |
Relationships
Name | Type | To |
---|---|---|
tenant | One to One | Tenant |
app_instance | One to One | App Instance |
product_instance | One to One | Product Instance |
SyncStatuses ¶
Body
{
"data": [
{
"id": "42",
"type": "sync_statuses",
"links": {
"self": "/api/mnoe/v2/sync_statuses/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.028Z",
"updated_at": "2018-09-21T05:30:22.027Z",
"status": "success",
"messages": null,
"progress": null,
"started_at": null,
"finished_at": null
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/sync_statuses/42/relationships/tenant",
"related": "/api/mnoe/v2/sync_statuses/42/tenant"
}
},
"app_instance": {
"links": {
"self": "/api/mnoe/v2/sync_statuses/42/relationships/app_instance",
"related": "/api/mnoe/v2/sync_statuses/42/app_instance"
}
},
"product_instance": {
"links": {
"self": "/api/mnoe/v2/sync_statuses/42/relationships/product_instance",
"related": "/api/mnoe/v2/sync_statuses/42/product_instance"
}
}
}
}
]
}
Get SyncStatusesGET/sync_statuses
Get the list of sync_statuses.
Teams ¶
A team inside an organization defines a list of user and their access to the app instances
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:22Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:22Z |
name | Filterable Mandatory | string | Name of the Team | Team 1 |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
organization.id | Organization relation |
users.id | Users relation |
app_instances.id | App Instances relation |
Relationships
Name | Type | To |
---|---|---|
tenant | One to One | Tenant |
organization | One to One | Organization |
users | One to Many | User |
app_instances | One to Many | App Instance |
Teams ¶
Body
{
"data": [
{
"id": "42",
"type": "teams",
"links": {
"self": "/api/mnoe/v2/teams/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.038Z",
"updated_at": "2018-09-21T05:30:22.038Z",
"organization_id": 1094,
"name": "Team 1",
"app_instance_ids": [],
"user_ids": []
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/teams/42/relationships/tenant",
"related": "/api/mnoe/v2/teams/42/tenant"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/teams/42/relationships/organization",
"related": "/api/mnoe/v2/teams/42/organization"
}
},
"users": {
"links": {
"self": "/api/mnoe/v2/teams/42/relationships/users",
"related": "/api/mnoe/v2/teams/42/users"
}
},
"app_instances": {
"links": {
"self": "/api/mnoe/v2/teams/42/relationships/app_instances",
"related": "/api/mnoe/v2/teams/42/app_instances"
}
}
}
}
]
}
Get TeamsGET/teams
Get the list of teams.
Body
{
"data": {
"attributes": {
"app_instance_ids": [
66
],
"name": "The A Team",
"organization_id": 31,
},
"type": "teams"
}
}
Body
{
"data": [
{
"id": "42",
"type": "teams",
"links": {
"self": "/api/mnoe/v2/teams/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.038Z",
"updated_at": "2018-09-21T05:30:22.038Z",
"organization_id": 1094,
"name": "Team 1",
"app_instance_ids": [],
"user_ids": []
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/teams/42/relationships/tenant",
"related": "/api/mnoe/v2/teams/42/tenant"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/teams/42/relationships/organization",
"related": "/api/mnoe/v2/teams/42/organization"
}
},
"users": {
"links": {
"self": "/api/mnoe/v2/teams/42/relationships/users",
"related": "/api/mnoe/v2/teams/42/users"
}
},
"app_instances": {
"links": {
"self": "/api/mnoe/v2/teams/42/relationships/app_instances",
"related": "/api/mnoe/v2/teams/42/app_instances"
}
}
}
}
]
}
Create a new TeamPOST/teams
Team ¶
Body
{
"data": {
"id": "42",
"type": "teams",
"links": {
"self": "/api/mnoe/v2/teams/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.038Z",
"updated_at": "2018-09-21T05:30:22.038Z",
"organization_id": 1094,
"name": "Team 1",
"app_instance_ids": [],
"user_ids": []
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/teams/42/relationships/tenant",
"related": "/api/mnoe/v2/teams/42/tenant"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/teams/42/relationships/organization",
"related": "/api/mnoe/v2/teams/42/organization"
}
},
"users": {
"links": {
"self": "/api/mnoe/v2/teams/42/relationships/users",
"related": "/api/mnoe/v2/teams/42/users"
}
},
"app_instances": {
"links": {
"self": "/api/mnoe/v2/teams/42/relationships/app_instances",
"related": "/api/mnoe/v2/teams/42/app_instances"
}
}
}
}
}
Get an TeamGET/teams/{id}
Get a single team.
- id
integer
(required) Example: 42The team ID
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"data": {
"attributes": {
"app_instance_ids": [
66
],
"name": "The A Team"
},
"type": "teams",
"id": 42
}
}
Body
{
"data": {
"id": "42",
"type": "teams",
"links": {
"self": "/api/mnoe/v2/teams/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.038Z",
"updated_at": "2018-09-21T05:30:22.038Z",
"organization_id": 1094,
"name": "Team 1",
"app_instance_ids": [],
"user_ids": []
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/teams/42/relationships/tenant",
"related": "/api/mnoe/v2/teams/42/tenant"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/teams/42/relationships/organization",
"related": "/api/mnoe/v2/teams/42/organization"
}
},
"users": {
"links": {
"self": "/api/mnoe/v2/teams/42/relationships/users",
"related": "/api/mnoe/v2/teams/42/users"
}
},
"app_instances": {
"links": {
"self": "/api/mnoe/v2/teams/42/relationships/app_instances",
"related": "/api/mnoe/v2/teams/42/app_instances"
}
}
}
}
}
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Tenant App Restrictions ¶
This endpoint is only accessible in read-only mode to Tenants. This endpoint is fully accessible to Master Tenants.
A Tenant App Restriction represents a whitelist entry filtering the list of applications that a Tenant can see and select for their platform.
If no Tenant App Restrictions exist for a given Tenant then it will have access to all applications available on Maestrano Hub.
As soon as a Tenant App Restriction is created for a particular Tenant the list of available applications becomes scoped to the list of Tenant App Restrictions.
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:22Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:22Z |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
app.id | App relation |
Relationships
Name | Type | To |
---|---|---|
tenant | One to One | Tenant |
app | One to One | App |
Tenant App Restrictions List ¶
Body
{
"data": [
{
"id": "42",
"type": "tenant_app_restrictions",
"links": {
"self": "/api/mnoe/v2/tenant_app_restrictions/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.058Z",
"updated_at": "2018-09-21T05:30:22.058Z"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/tenant_app_restrictions/42/relationships/tenant",
"related": "/api/mnoe/v2/tenant_app_restrictions/42/tenant"
}
},
"app": {
"links": {
"self": "/api/mnoe/v2/tenant_app_restrictions/42/relationships/app",
"related": "/api/mnoe/v2/tenant_app_restrictions/42/app"
}
}
}
}
]
}
Get Tenant App RestrictionsGET/tenant_app_restrictions
Get a tenant app restriction
Body
{
"data": {
"type": "tenants",
"relationships": {
"app": {
"data": {
"type": "apps",
"id": "123"
}
},
"tenant": {
"data": {
"type": "tenants",
"id": "321"
}
}
}
}
}
Body
{
"data": {
"id": "42",
"type": "tenant_app_restrictions",
"links": {
"self": "/api/mnoe/v2/tenant_app_restrictions/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.058Z",
"updated_at": "2018-09-21T05:30:22.058Z"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/tenant_app_restrictions/42/relationships/tenant",
"related": "/api/mnoe/v2/tenant_app_restrictions/42/tenant"
}
},
"app": {
"links": {
"self": "/api/mnoe/v2/tenant_app_restrictions/42/relationships/app",
"related": "/api/mnoe/v2/tenant_app_restrictions/42/app"
}
}
}
}
}
Create New Tenant App RestrictionsPOST/tenant_app_restrictions
Create a new tenant app restriction.
Tenant App Restriction ¶
Body
{
"data": {
"id": "42",
"type": "tenant_app_restrictions",
"links": {
"self": "/api/mnoe/v2/tenant_app_restrictions/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.058Z",
"updated_at": "2018-09-21T05:30:22.058Z"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/tenant_app_restrictions/42/relationships/tenant",
"related": "/api/mnoe/v2/tenant_app_restrictions/42/tenant"
}
},
"app": {
"links": {
"self": "/api/mnoe/v2/tenant_app_restrictions/42/relationships/app",
"related": "/api/mnoe/v2/tenant_app_restrictions/42/app"
}
}
}
}
}
Get a Tenant App RestrictionGET/tenant_app_restrictions/{id}
Get a single tenant.
- id
integer
(required) Example: 42The tenant ID
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Delete a Tenant App RestrictionDELETE/tenant_app_restrictions/{id}
- id
integer
(required) Example: 42The tenant ID
Tenant Invoices ¶
Invoice issued to the tenant
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:22Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:22Z |
started_at | Filterable Mandatory | datetime | Date when the invoice started | 2015-01-01T00:00:00Z |
ended_at | Filterable Mandatory | datetime | Date when the invoice ended | 2015-02-01T00:00:00Z |
paid_at | Filterable | datetime | Date the invoice was paid | |
slug | Filterable | string | slug of the invoice | |
total_portfolio_amount | Filterable | money | Total portfolio | 0.00 |
total_commission_amount | Filterable | money | Total commission | 0.00 |
mno_commission_amount | Filterable | money | Maestrano Commission | 0.00 |
non_commissionable_amount | Filterable | money | Non Comission amount | 0.00 |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
Tenant Invoices List ¶
Body
{
"data": [
{
"id": "42",
"type": "tenant_invoices",
"links": {
"self": "/api/mnoe/v2/tenant_invoices/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.105Z",
"updated_at": "2018-09-21T05:30:22.105Z",
"started_at": "2015-01-01T00:00:00.000Z",
"ended_at": "2015-02-01T00:00:00.000Z",
"paid_at": null,
"slug": null,
"total_portfolio_amount": {
"cents": 0,
"currency": "AUD"
},
"total_commission_amount": {
"cents": 0,
"currency": "AUD"
},
"mno_commission_amount": {
"cents": 0,
"currency": "AUD"
},
"non_commissionable_amount": {
"cents": 0,
"currency": "AUD"
}
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/tenant_invoices/42/relationships/tenant",
"related": "/api/mnoe/v2/tenant_invoices/42/tenant"
}
}
}
}
]
}
Get Tenant InvoicesGET/apps
Get the invoices
Tenants ¶
This endpoint is only accessible to Master Tenants.
Manage tenants. A tenant represents a portal provider (e.g. based on mno-enterprise). A tenant has full authority on its organizations, apps, etc. Tenants are virtually isolated from each other.
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:22Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:22Z |
name | Filterable Mandatory | string | Name | Tenant 23 |
uuid | Filterable | string | UUID | |
api_key | Filterable Read only | string | API Key | |
api_secret | Filterable Read only | string | API Secret | |
domain | Filterable Mandatory | string | Tenant portal host (e.g. portal.mydomain.com). Not required if webstore option specified. | sometenant23.com |
Filterable | string | Billing email | john.doe@maestrano.com | |
bank_account | Filterable | text | Bank account | {:name=>“Johnny Cash”, :bsb=>“123456”, :account=>“101010”, :type=>“AU”} |
commission | Filterable | text | Commission configuration | {:name=>“Percentage”, :options=>{:percentage=>0.15}} |
transaction_management | Filterable | boolean | false | |
metadata | Filterable | text | Tenant configuration | {} |
frontend_config | Filterable | text | Frontend Configuration | |
webstore_attributes | Filterable Write only Create only | string | Attributes to create a webstore. Only on Tenant creation. | |
main_address | Filterable Read only | string | Main business address | |
addresses_attributes | Filterable Write only | string | Array of attributes to create addresses | |
external_id | Filterable Unique | string | An external ID that you can supply to easily search on. Must be unique if specified. | |
members_attributes | Filterable Write only | string | Array of attributes to create users with admin privileges. The least minimum is an email address. Set auto_confirm to true to skip email confirmation. | |
keystore | Filterable | string | Keystore configuration |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
webstore.id | Webstore relation |
addresses.id | Addresses relation |
members.id | Members relation |
Relationships
Name | Type | To |
---|---|---|
tenant | One to One | Tenant |
webstore | One to One | Webstore |
addresses | One to Many | Address |
members | One to Many | User |
Tenants List ¶
Body
{
"data": [
{
"id": "42",
"type": "tenants",
"links": {
"self": "/api/mnoe/v2/tenants/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.113Z",
"updated_at": "2018-09-21T05:30:22.113Z",
"name": "Tenant 23",
"uuid": null,
"api_key": null,
"api_secret": null,
"domain": "sometenant23.com",
"address": null,
"country": null,
"email": "john.doe@maestrano.com",
"bank_account": {
"name": "Johnny Cash",
"bsb": "123456",
"account": "101010",
"type": "AU"
},
"commission": {
"name": "Percentage",
"options": {
"percentage": 0.15
}
},
"transaction_management": false,
"metadata": {},
"frontend_config": null,
"main_address": null,
"external_id": null,
"keystore": null
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/tenants/42/relationships/tenant",
"related": "/api/mnoe/v2/tenants/42/tenant"
}
},
"webstore": {
"links": {
"self": "/api/mnoe/v2/tenants/42/relationships/webstore",
"related": "/api/mnoe/v2/tenants/42/webstore"
}
},
"addresses": {
"links": {
"self": "/api/mnoe/v2/tenants/42/relationships/addresses",
"related": "/api/mnoe/v2/tenants/42/addresses"
}
},
"members": {
"links": {
"self": "/api/mnoe/v2/tenants/42/relationships/members",
"related": "/api/mnoe/v2/tenants/42/members"
}
}
}
}
]
}
Get TenantsGET/tenants
Get the tenant
Body
{
"data": {
"type": "tenants",
"attributes": {
"name": "Doe Corp",
"domain": "doecorp.com"
}
}
}
Body
{
"data": {
"id": "42",
"type": "tenants",
"links": {
"self": "/api/mnoe/v2/tenants/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.113Z",
"updated_at": "2018-09-21T05:30:22.113Z",
"name": "Tenant 23",
"uuid": null,
"api_key": null,
"api_secret": null,
"domain": "sometenant23.com",
"address": null,
"country": null,
"email": "john.doe@maestrano.com",
"bank_account": {
"name": "Johnny Cash",
"bsb": "123456",
"account": "101010",
"type": "AU"
},
"commission": {
"name": "Percentage",
"options": {
"percentage": 0.15
}
},
"transaction_management": false,
"metadata": {},
"frontend_config": null,
"main_address": null,
"external_id": null,
"keystore": null
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/tenants/42/relationships/tenant",
"related": "/api/mnoe/v2/tenants/42/tenant"
}
},
"webstore": {
"links": {
"self": "/api/mnoe/v2/tenants/42/relationships/webstore",
"related": "/api/mnoe/v2/tenants/42/webstore"
}
},
"addresses": {
"links": {
"self": "/api/mnoe/v2/tenants/42/relationships/addresses",
"related": "/api/mnoe/v2/tenants/42/addresses"
}
},
"members": {
"links": {
"self": "/api/mnoe/v2/tenants/42/relationships/members",
"related": "/api/mnoe/v2/tenants/42/members"
}
}
}
}
}
Body
{
"data": {
"type": "tenants",
"attributes": {
"name": "Doe Corp",
"domain": "doecorp.com",
"members_attributes": [
{
"name": "John",
"surname": "Doe",
"email": "john@doe.com",
"password": "initial_password",
"auto_confirm": true
}
],
"addresses_attributes": [
{
"street": "30 York Street",
"postal_code": "2000",
"country_code": "AU"
}
]
}
}
}
Body
{
"data": {
"id": "42",
"type": "tenants",
"links": {
"self": "/api/mnoe/v2/tenants/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.113Z",
"updated_at": "2018-09-21T05:30:22.113Z",
"name": "Tenant 23",
"uuid": null,
"api_key": null,
"api_secret": null,
"domain": "sometenant23.com",
"address": null,
"country": null,
"email": "john.doe@maestrano.com",
"bank_account": {
"name": "Johnny Cash",
"bsb": "123456",
"account": "101010",
"type": "AU"
},
"commission": {
"name": "Percentage",
"options": {
"percentage": 0.15
}
},
"transaction_management": false,
"metadata": {},
"frontend_config": null,
"main_address": null,
"external_id": null,
"keystore": null
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/tenants/42/relationships/tenant",
"related": "/api/mnoe/v2/tenants/42/tenant"
}
},
"webstore": {
"links": {
"self": "/api/mnoe/v2/tenants/42/relationships/webstore",
"related": "/api/mnoe/v2/tenants/42/webstore"
}
},
"addresses": {
"links": {
"self": "/api/mnoe/v2/tenants/42/relationships/addresses",
"related": "/api/mnoe/v2/tenants/42/addresses"
}
},
"members": {
"links": {
"self": "/api/mnoe/v2/tenants/42/relationships/members",
"related": "/api/mnoe/v2/tenants/42/members"
}
}
}
}
}
Body
{
"data": {
"type": "tenants",
"attributes": {
"name": "Doe Corp",
"domain": "doecorp.com",
"webstore_attributes": {}
}
}
}
Body
{
"data": {
"id": "42",
"type": "tenants",
"links": {
"self": "/api/mnoe/v2/tenants/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.113Z",
"updated_at": "2018-09-21T05:30:22.113Z",
"name": "Tenant 23",
"uuid": null,
"api_key": null,
"api_secret": null,
"domain": "sometenant23.com",
"address": null,
"country": null,
"email": "john.doe@maestrano.com",
"bank_account": {
"name": "Johnny Cash",
"bsb": "123456",
"account": "101010",
"type": "AU"
},
"commission": {
"name": "Percentage",
"options": {
"percentage": 0.15
}
},
"transaction_management": false,
"metadata": {},
"frontend_config": null,
"main_address": null,
"external_id": null,
"keystore": null
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/tenants/42/relationships/tenant",
"related": "/api/mnoe/v2/tenants/42/tenant"
}
},
"webstore": {
"links": {
"self": "/api/mnoe/v2/tenants/42/relationships/webstore",
"related": "/api/mnoe/v2/tenants/42/webstore"
}
},
"addresses": {
"links": {
"self": "/api/mnoe/v2/tenants/42/relationships/addresses",
"related": "/api/mnoe/v2/tenants/42/addresses"
}
},
"members": {
"links": {
"self": "/api/mnoe/v2/tenants/42/relationships/members",
"related": "/api/mnoe/v2/tenants/42/members"
}
}
}
}
}
Create New tenantsPOST/tenants
Create a new tenant.
Tenant ¶
Body
{
"data": {
"id": "42",
"type": "tenants",
"links": {
"self": "/api/mnoe/v2/tenants/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.113Z",
"updated_at": "2018-09-21T05:30:22.113Z",
"name": "Tenant 23",
"uuid": null,
"api_key": null,
"api_secret": null,
"domain": "sometenant23.com",
"address": null,
"country": null,
"email": "john.doe@maestrano.com",
"bank_account": {
"name": "Johnny Cash",
"bsb": "123456",
"account": "101010",
"type": "AU"
},
"commission": {
"name": "Percentage",
"options": {
"percentage": 0.15
}
},
"transaction_management": false,
"metadata": {},
"frontend_config": null,
"main_address": null,
"external_id": null,
"keystore": null
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/tenants/42/relationships/tenant",
"related": "/api/mnoe/v2/tenants/42/tenant"
}
},
"webstore": {
"links": {
"self": "/api/mnoe/v2/tenants/42/relationships/webstore",
"related": "/api/mnoe/v2/tenants/42/webstore"
}
},
"addresses": {
"links": {
"self": "/api/mnoe/v2/tenants/42/relationships/addresses",
"related": "/api/mnoe/v2/tenants/42/addresses"
}
},
"members": {
"links": {
"self": "/api/mnoe/v2/tenants/42/relationships/members",
"related": "/api/mnoe/v2/tenants/42/members"
}
}
}
}
}
Get a TenantGET/tenants/{id}
Get a single tenant.
- id
integer
(required) Example: 42The tenant ID
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Users ¶
User are end user using the platform. A User may may be part of several Organizations via the OrgaRelations join table.
How to add a user to an organization
Regarding roles
There is two fields that define a user role. You may either set the value coming from your system directly, or use the values needed by the MNOE Framework.
-
admin_role: defined at user level. A non-blank value indicates this user has administration privileges at Tenant level. Common values recognised by the MNOE Framework are “admin”, “staff” and nil (regular user).
-
role: defines at orga_relation level. The field specifies the role of a user inside an organization. This value is set up when you add a user to an organization. See Add User to an organization. Accepted values are “Super Admin”, “Admin”, “Power User” and “Member” see Organizations Users
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:22Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:22Z |
uid | Filterable Unique Read only | string | public facing ID used by apps | usr-4l0p |
name | Filterable | string | Name of the user | BoB |
surname | Filterable | string | Surname of the user | Troll |
Filterable Mandatory | string | Email of the user | user_9@maestrano.com | |
company | Filterable | string | Company associated with the user | MySuperCompany |
registration_address | Filterable | string | Address submitted at user sign-up | |
orga_on_create | Filterable Write only | boolean | Create an organization linked to the User when the user is created | |
demo_account | Filterable | string | If orga_on_create is true, set it as demo account | |
website | Filterable | string | Main website of the user | |
sso_session | Filterable | string | SSO Session Id | |
account_frozen | Filterable | boolean | True if the account is frozen | false |
metadata | Filterable | text | Hash of Metadata | {} |
settings | Filterable | text | Serialized hash for the user settings (eg: locale) | {} |
admin_role | Filterable | string | This value defines a role on the platform level. The value can be any arbitrary string. In the MNOE framework, the value accepted are “admin”, or “nil” depending if the user is an admin or not. | |
title | Filterable | string | Title of the user | |
geo_country_code | Filterable | string | Country code of the localization of the user | |
geo_state_code | Filterable | string | State of the localization of the user | |
geo_city | Filterable | string | City of the localization of the user | |
geo_currency | Filterable | string | Currency of the localization of the user | |
geo_tz | Filterable | string | Timezone of the localization of the user | |
phone | Filterable | string | Phone number of the user | |
phone_country_code | Filterable | string | Country code of the user phone number | |
authenticatable_salt | Filterable Read only | string | Reliable way to expose the salt regardless of the implementation. | $2a$04$u6RjerMORmedelbBYyiMge |
reset_password_token | Filterable | string | Token to use when recovering the password for an account | |
reset_password_sent_at | Filterable | datetime | Last the time the reset password | |
remember_created_at | Filterable | datetime | Returns Time at which the user last selected “remember me” | |
sign_in_count | Filterable | integer | Increased every time a sign in is made (by form, openid, oauth) | 0 |
current_sign_in_at | Filterable | datetime | A timestamp updated when the user signs in | |
last_sign_in_at | Filterable | datetime | Holds the timestamp of the previous sign in | |
last_active_at | Filterable | datetime | Last activity on the API | |
current_sign_in_ip | Filterable | string | The remote ip updated when the user sign in | |
last_sign_in_ip | Filterable | string | Holds the remote ip of the previous sign in | |
confirmation_token | Filterable | string | A unique random token | |
confirmed_at | Filterable | datetime | A timestamp when the user clicked the confirmation link | |
confirmation_sent_at | Filterable | datetime | A timestamp when the confirmation_token was generated (not sent) | |
unconfirmed_email | Filterable | string | An email address copied from the email attr. After confirmation this value is copied to the email attr then cleared | |
failed_attempts | Filterable | integer | Increased every time the user failed to give his password | 0 |
unlock_token | Filterable | string | Token used to unlock a user | |
locked_at | Filterable | datetime | Timestamp when the user was locked | |
password | Filterable Write only Mandatory | string | User Password | MyPassword |
current_password | Filterable Write only | string | Current user password. User password will be updated if current_password matches with the current password. | |
password_confirmation | Filterable Write only | string | Used only when password is changed. Must match with password. | |
password_changed_at | Filterable Read only | datetime | Timestamp when the password was changed | |
api_key | Filterable Read only | string | Developer API Key | |
api_secret | Filterable Read only | string | Developer API Secret | |
kpi_enabled | Filterable | boolean | Are KPIs enabled? | false |
external_id | Filterable | string | External Id. May be used to link the user with an external system. Limited to 255 characters. | |
encrypted_token | Filterable Read only | string | Encrypted Token | eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjo0MiwiZXhwIjoxNTM3NTk0MjIyfQ.wrOYdqBhUMe7adAS7chx6UFRKqEu0ExSlClmp9ihLqXTh84xV1m3Q2vtqgtEUYlZP6EdS6XktQoNtoxnqLSwCw |
sub_tenant_id | Filterable | string | [DEPRECATED], Use SubTenant Relation | |
client_ids | Filterable | string | [DEPRECATED] Use clients relation | [] |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
sub_tenant.id | Sub Tenant relation |
organizations.id | Organizations relation |
orga_relations.id | Orga Relations relation |
teams.id | Teams relation |
alerts.id | Alerts relation |
identities.id | Identities relation |
deletion_requests.id | Deletion Requests relation |
dashboards.id | Dashboards relation |
license_assignments.id | License Assignments relation |
user_access_requests.id | User Access Requests relation |
requested_user_accesses.id | Requested User Accesses relation |
clients.id | Clients relation |
Relationships
Name | Type | To |
---|---|---|
tenant | One to One | Tenant |
sub_tenant | One to One | Sub Tenant |
organizations | One to Many | Organization |
orga_relations | One to Many | Orga Relation |
teams | One to Many | Team |
alerts | One to Many | Alert |
identities | One to Many | Identity |
deletion_requests | One to Many | Deletion Request |
dashboards | One to Many | Dashboard |
license_assignments | One to Many | License Assignment |
user_access_requests | One to Many | User Access Request |
requested_user_accesses | One to Many | User Access Request |
clients | One to Many | Organization |
Regarding external_id
external_id can be any string value up to 255 characters. It gives a way to identify the user by an external id. This id is not unique, therefore the unicity checks needs to be done externally.
Find a User by external_id: “XDE 48”
GET /users?filter[external_id]=XDE%2048
Users ¶
Body
{
"data": [
{
"id": "42",
"type": "users",
"links": {
"self": "/api/mnoe/v2/users/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.126Z",
"updated_at": "2018-09-21T05:30:22.125Z",
"uid": "usr-4l0p",
"name": "BoB",
"surname": "Troll",
"email": "user_9@maestrano.com",
"company": "MySuperCompany",
"registration_address": null,
"demo_account": null,
"website": null,
"sso_session": null,
"account_frozen": false,
"metadata": {},
"settings": {},
"admin_role": null,
"title": null,
"geo_country_code": null,
"geo_state_code": null,
"geo_city": null,
"geo_currency": null,
"geo_tz": null,
"phone": null,
"phone_country_code": null,
"authenticatable_salt": "$2a$04$u6RjerMORmedelbBYyiMge",
"reset_password_token": null,
"reset_password_sent_at": null,
"remember_created_at": null,
"sign_in_count": 0,
"current_sign_in_at": null,
"last_sign_in_at": null,
"last_active_at": null,
"current_sign_in_ip": null,
"last_sign_in_ip": null,
"confirmation_token": null,
"confirmed_at": null,
"confirmation_sent_at": null,
"unconfirmed_email": null,
"failed_attempts": 0,
"unlock_token": null,
"locked_at": null,
"password_changed_at": null,
"api_key": null,
"api_secret": null,
"kpi_enabled": false,
"external_id": null,
"encrypted_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjo0MiwiZXhwIjoxNTM3NTk0MjIyfQ.wrOYdqBhUMe7adAS7chx6UFRKqEu0ExSlClmp9ihLqXTh84xV1m3Q2vtqgtEUYlZP6EdS6XktQoNtoxnqLSwCw",
"sub_tenant_id": null,
"client_ids": []
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/tenant",
"related": "/api/mnoe/v2/users/42/tenant"
}
},
"sub_tenant": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/sub_tenant",
"related": "/api/mnoe/v2/users/42/sub_tenant"
}
},
"organizations": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/organizations",
"related": "/api/mnoe/v2/users/42/organizations"
}
},
"orga_relations": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/orga_relations",
"related": "/api/mnoe/v2/users/42/orga_relations"
}
},
"teams": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/teams",
"related": "/api/mnoe/v2/users/42/teams"
}
},
"alerts": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/alerts",
"related": "/api/mnoe/v2/users/42/alerts"
}
},
"identities": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/identities",
"related": "/api/mnoe/v2/users/42/identities"
}
},
"deletion_requests": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/deletion_requests",
"related": "/api/mnoe/v2/users/42/deletion_requests"
}
},
"dashboards": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/dashboards",
"related": "/api/mnoe/v2/users/42/dashboards"
}
},
"license_assignments": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/license_assignments",
"related": "/api/mnoe/v2/users/42/license_assignments"
}
},
"user_access_requests": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/user_access_requests",
"related": "/api/mnoe/v2/users/42/user_access_requests"
}
},
"requested_user_accesses": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/requested_user_accesses",
"related": "/api/mnoe/v2/users/42/requested_user_accesses"
}
},
"clients": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/clients",
"related": "/api/mnoe/v2/users/42/clients"
}
}
}
}
]
}
Get UsersGET/users
Get the list of users.
Body
{
"data":{
"type":"users",
"attributes":{
"name":"name",
"surname":"surname",
"email":"email@test.com",
"password":"password"
}
}
}
[User][]
Create New usersPOST/users
Create a new user.
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"data": {
"id": 42,
"type": "users",
"attributes": {
"email": "john.doe@test.com",
"password": "JohnPassword"
}
}
}
Body
{
"data": {
"id": "42",
"type": "users",
"links": {
"self": "/api/mnoe/v2/users/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.126Z",
"updated_at": "2018-09-21T05:30:22.125Z",
"uid": "usr-4l0p",
"name": "BoB",
"surname": "Troll",
"email": "user_9@maestrano.com",
"company": "MySuperCompany",
"registration_address": null,
"demo_account": null,
"website": null,
"sso_session": null,
"account_frozen": false,
"metadata": {},
"settings": {},
"admin_role": null,
"title": null,
"geo_country_code": null,
"geo_state_code": null,
"geo_city": null,
"geo_currency": null,
"geo_tz": null,
"phone": null,
"phone_country_code": null,
"authenticatable_salt": "$2a$04$u6RjerMORmedelbBYyiMge",
"reset_password_token": null,
"reset_password_sent_at": null,
"remember_created_at": null,
"sign_in_count": 0,
"current_sign_in_at": null,
"last_sign_in_at": null,
"last_active_at": null,
"current_sign_in_ip": null,
"last_sign_in_ip": null,
"confirmation_token": null,
"confirmed_at": null,
"confirmation_sent_at": null,
"unconfirmed_email": null,
"failed_attempts": 0,
"unlock_token": null,
"locked_at": null,
"password_changed_at": null,
"api_key": null,
"api_secret": null,
"kpi_enabled": false,
"external_id": null,
"encrypted_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjo0MiwiZXhwIjoxNTM3NTk0MjIyfQ.wrOYdqBhUMe7adAS7chx6UFRKqEu0ExSlClmp9ihLqXTh84xV1m3Q2vtqgtEUYlZP6EdS6XktQoNtoxnqLSwCw",
"sub_tenant_id": null,
"client_ids": []
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/tenant",
"related": "/api/mnoe/v2/users/42/tenant"
}
},
"sub_tenant": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/sub_tenant",
"related": "/api/mnoe/v2/users/42/sub_tenant"
}
},
"organizations": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/organizations",
"related": "/api/mnoe/v2/users/42/organizations"
}
},
"orga_relations": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/orga_relations",
"related": "/api/mnoe/v2/users/42/orga_relations"
}
},
"teams": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/teams",
"related": "/api/mnoe/v2/users/42/teams"
}
},
"alerts": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/alerts",
"related": "/api/mnoe/v2/users/42/alerts"
}
},
"identities": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/identities",
"related": "/api/mnoe/v2/users/42/identities"
}
},
"deletion_requests": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/deletion_requests",
"related": "/api/mnoe/v2/users/42/deletion_requests"
}
},
"dashboards": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/dashboards",
"related": "/api/mnoe/v2/users/42/dashboards"
}
},
"license_assignments": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/license_assignments",
"related": "/api/mnoe/v2/users/42/license_assignments"
}
},
"user_access_requests": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/user_access_requests",
"related": "/api/mnoe/v2/users/42/user_access_requests"
}
},
"requested_user_accesses": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/requested_user_accesses",
"related": "/api/mnoe/v2/users/42/requested_user_accesses"
}
},
"clients": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/clients",
"related": "/api/mnoe/v2/users/42/clients"
}
}
}
}
}
Body
{
"errors": [
{
"title": "Record not found",
"detail": "The record identified by john.doe@test.com could not be found.",
"code": "404",
"status": "404"
}
]
}
AuthenticatePOST/users/authenticate
Check if the user exist for the given email and password. Returns [404] not found if the mail/password does not match. If the user is valid, it will refresh the SSO Session.
- id
integer
(required) Example: 42The user ID
User ¶
Body
{
"data": {
"id": "42",
"type": "users",
"links": {
"self": "/api/mnoe/v2/users/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.126Z",
"updated_at": "2018-09-21T05:30:22.125Z",
"uid": "usr-4l0p",
"name": "BoB",
"surname": "Troll",
"email": "user_9@maestrano.com",
"company": "MySuperCompany",
"registration_address": null,
"demo_account": null,
"website": null,
"sso_session": null,
"account_frozen": false,
"metadata": {},
"settings": {},
"admin_role": null,
"title": null,
"geo_country_code": null,
"geo_state_code": null,
"geo_city": null,
"geo_currency": null,
"geo_tz": null,
"phone": null,
"phone_country_code": null,
"authenticatable_salt": "$2a$04$u6RjerMORmedelbBYyiMge",
"reset_password_token": null,
"reset_password_sent_at": null,
"remember_created_at": null,
"sign_in_count": 0,
"current_sign_in_at": null,
"last_sign_in_at": null,
"last_active_at": null,
"current_sign_in_ip": null,
"last_sign_in_ip": null,
"confirmation_token": null,
"confirmed_at": null,
"confirmation_sent_at": null,
"unconfirmed_email": null,
"failed_attempts": 0,
"unlock_token": null,
"locked_at": null,
"password_changed_at": null,
"api_key": null,
"api_secret": null,
"kpi_enabled": false,
"external_id": null,
"encrypted_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjo0MiwiZXhwIjoxNTM3NTk0MjIyfQ.wrOYdqBhUMe7adAS7chx6UFRKqEu0ExSlClmp9ihLqXTh84xV1m3Q2vtqgtEUYlZP6EdS6XktQoNtoxnqLSwCw",
"sub_tenant_id": null,
"client_ids": []
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/tenant",
"related": "/api/mnoe/v2/users/42/tenant"
}
},
"sub_tenant": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/sub_tenant",
"related": "/api/mnoe/v2/users/42/sub_tenant"
}
},
"organizations": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/organizations",
"related": "/api/mnoe/v2/users/42/organizations"
}
},
"orga_relations": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/orga_relations",
"related": "/api/mnoe/v2/users/42/orga_relations"
}
},
"teams": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/teams",
"related": "/api/mnoe/v2/users/42/teams"
}
},
"alerts": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/alerts",
"related": "/api/mnoe/v2/users/42/alerts"
}
},
"identities": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/identities",
"related": "/api/mnoe/v2/users/42/identities"
}
},
"deletion_requests": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/deletion_requests",
"related": "/api/mnoe/v2/users/42/deletion_requests"
}
},
"dashboards": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/dashboards",
"related": "/api/mnoe/v2/users/42/dashboards"
}
},
"license_assignments": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/license_assignments",
"related": "/api/mnoe/v2/users/42/license_assignments"
}
},
"user_access_requests": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/user_access_requests",
"related": "/api/mnoe/v2/users/42/user_access_requests"
}
},
"requested_user_accesses": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/requested_user_accesses",
"related": "/api/mnoe/v2/users/42/requested_user_accesses"
}
},
"clients": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/clients",
"related": "/api/mnoe/v2/users/42/clients"
}
}
}
}
}
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"data": {
"type": "users",
"id": 9,
"attributes": {
"name": "New Name"
}
}
}
Body
{
"data": {
"id": "42",
"type": "users",
"links": {
"self": "/api/mnoe/v2/users/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.126Z",
"updated_at": "2018-09-21T05:30:22.125Z",
"uid": "usr-4l0p",
"name": "BoB",
"surname": "Troll",
"email": "user_9@maestrano.com",
"company": "MySuperCompany",
"registration_address": null,
"demo_account": null,
"website": null,
"sso_session": null,
"account_frozen": false,
"metadata": {},
"settings": {},
"admin_role": null,
"title": null,
"geo_country_code": null,
"geo_state_code": null,
"geo_city": null,
"geo_currency": null,
"geo_tz": null,
"phone": null,
"phone_country_code": null,
"authenticatable_salt": "$2a$04$u6RjerMORmedelbBYyiMge",
"reset_password_token": null,
"reset_password_sent_at": null,
"remember_created_at": null,
"sign_in_count": 0,
"current_sign_in_at": null,
"last_sign_in_at": null,
"last_active_at": null,
"current_sign_in_ip": null,
"last_sign_in_ip": null,
"confirmation_token": null,
"confirmed_at": null,
"confirmation_sent_at": null,
"unconfirmed_email": null,
"failed_attempts": 0,
"unlock_token": null,
"locked_at": null,
"password_changed_at": null,
"api_key": null,
"api_secret": null,
"kpi_enabled": false,
"external_id": null,
"encrypted_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjo0MiwiZXhwIjoxNTM3NTk0MjIyfQ.wrOYdqBhUMe7adAS7chx6UFRKqEu0ExSlClmp9ihLqXTh84xV1m3Q2vtqgtEUYlZP6EdS6XktQoNtoxnqLSwCw",
"sub_tenant_id": null,
"client_ids": []
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/tenant",
"related": "/api/mnoe/v2/users/42/tenant"
}
},
"sub_tenant": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/sub_tenant",
"related": "/api/mnoe/v2/users/42/sub_tenant"
}
},
"organizations": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/organizations",
"related": "/api/mnoe/v2/users/42/organizations"
}
},
"orga_relations": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/orga_relations",
"related": "/api/mnoe/v2/users/42/orga_relations"
}
},
"teams": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/teams",
"related": "/api/mnoe/v2/users/42/teams"
}
},
"alerts": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/alerts",
"related": "/api/mnoe/v2/users/42/alerts"
}
},
"identities": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/identities",
"related": "/api/mnoe/v2/users/42/identities"
}
},
"deletion_requests": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/deletion_requests",
"related": "/api/mnoe/v2/users/42/deletion_requests"
}
},
"dashboards": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/dashboards",
"related": "/api/mnoe/v2/users/42/dashboards"
}
},
"license_assignments": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/license_assignments",
"related": "/api/mnoe/v2/users/42/license_assignments"
}
},
"user_access_requests": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/user_access_requests",
"related": "/api/mnoe/v2/users/42/user_access_requests"
}
},
"requested_user_accesses": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/requested_user_accesses",
"related": "/api/mnoe/v2/users/42/requested_user_accesses"
}
},
"clients": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/clients",
"related": "/api/mnoe/v2/users/42/clients"
}
}
}
}
}
Update an UserPATCH/users/{id}
Update a single user.
- id
integer
(required) Example: 42The user ID
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"data": {
"id": 42,
"type": "users",
"attributes": {
"current_password": "PreviousPassword",
"password": "NewPassword"
}
}
}
Body
{
"data": {
"id": "42",
"type": "users",
"links": {
"self": "/api/mnoe/v2/users/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.126Z",
"updated_at": "2018-09-21T05:30:22.125Z",
"uid": "usr-4l0p",
"name": "BoB",
"surname": "Troll",
"email": "user_9@maestrano.com",
"company": "MySuperCompany",
"registration_address": null,
"demo_account": null,
"website": null,
"sso_session": null,
"account_frozen": false,
"metadata": {},
"settings": {},
"admin_role": null,
"title": null,
"geo_country_code": null,
"geo_state_code": null,
"geo_city": null,
"geo_currency": null,
"geo_tz": null,
"phone": null,
"phone_country_code": null,
"authenticatable_salt": "$2a$04$u6RjerMORmedelbBYyiMge",
"reset_password_token": null,
"reset_password_sent_at": null,
"remember_created_at": null,
"sign_in_count": 0,
"current_sign_in_at": null,
"last_sign_in_at": null,
"last_active_at": null,
"current_sign_in_ip": null,
"last_sign_in_ip": null,
"confirmation_token": null,
"confirmed_at": null,
"confirmation_sent_at": null,
"unconfirmed_email": null,
"failed_attempts": 0,
"unlock_token": null,
"locked_at": null,
"password_changed_at": null,
"api_key": null,
"api_secret": null,
"kpi_enabled": false,
"external_id": null,
"encrypted_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjo0MiwiZXhwIjoxNTM3NTk0MjIyfQ.wrOYdqBhUMe7adAS7chx6UFRKqEu0ExSlClmp9ihLqXTh84xV1m3Q2vtqgtEUYlZP6EdS6XktQoNtoxnqLSwCw",
"sub_tenant_id": null,
"client_ids": []
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/tenant",
"related": "/api/mnoe/v2/users/42/tenant"
}
},
"sub_tenant": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/sub_tenant",
"related": "/api/mnoe/v2/users/42/sub_tenant"
}
},
"organizations": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/organizations",
"related": "/api/mnoe/v2/users/42/organizations"
}
},
"orga_relations": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/orga_relations",
"related": "/api/mnoe/v2/users/42/orga_relations"
}
},
"teams": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/teams",
"related": "/api/mnoe/v2/users/42/teams"
}
},
"alerts": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/alerts",
"related": "/api/mnoe/v2/users/42/alerts"
}
},
"identities": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/identities",
"related": "/api/mnoe/v2/users/42/identities"
}
},
"deletion_requests": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/deletion_requests",
"related": "/api/mnoe/v2/users/42/deletion_requests"
}
},
"dashboards": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/dashboards",
"related": "/api/mnoe/v2/users/42/dashboards"
}
},
"license_assignments": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/license_assignments",
"related": "/api/mnoe/v2/users/42/license_assignments"
}
},
"user_access_requests": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/user_access_requests",
"related": "/api/mnoe/v2/users/42/user_access_requests"
}
},
"requested_user_accesses": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/requested_user_accesses",
"related": "/api/mnoe/v2/users/42/requested_user_accesses"
}
},
"clients": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/clients",
"related": "/api/mnoe/v2/users/42/clients"
}
}
}
}
}
Body
{
"errors": [
{
"title": "is invalid",
"detail": "current_password - is invalid",
"code": "100",
"source": {
"pointer": "/data/attributes/current_password"
},
"status": "422"
}
]
}
Update PasswordPATCH/users/{id}/update_password
Update a user password, it will returns an error if current_password is not equal to the user current_password. If you need to update a user password without checking the current_password, use PATCH /users/:id.
- id
integer
(required) Example: 42The user ID
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"data": {
"id": "42",
"type": "users",
"links": {
"self": "/api/mnoe/v2/users/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.126Z",
"updated_at": "2018-09-21T05:30:22.125Z",
"uid": "usr-4l0p",
"name": "BoB",
"surname": "Troll",
"email": "user_9@maestrano.com",
"company": "MySuperCompany",
"registration_address": null,
"demo_account": null,
"website": null,
"sso_session": null,
"account_frozen": false,
"metadata": {},
"settings": {},
"admin_role": null,
"title": null,
"geo_country_code": null,
"geo_state_code": null,
"geo_city": null,
"geo_currency": null,
"geo_tz": null,
"phone": null,
"phone_country_code": null,
"authenticatable_salt": "$2a$04$u6RjerMORmedelbBYyiMge",
"reset_password_token": null,
"reset_password_sent_at": null,
"remember_created_at": null,
"sign_in_count": 0,
"current_sign_in_at": null,
"last_sign_in_at": null,
"last_active_at": null,
"current_sign_in_ip": null,
"last_sign_in_ip": null,
"confirmation_token": null,
"confirmed_at": null,
"confirmation_sent_at": null,
"unconfirmed_email": null,
"failed_attempts": 0,
"unlock_token": null,
"locked_at": null,
"password_changed_at": null,
"api_key": null,
"api_secret": null,
"kpi_enabled": false,
"external_id": null,
"encrypted_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjo0MiwiZXhwIjoxNTM3NTk0MjIyfQ.wrOYdqBhUMe7adAS7chx6UFRKqEu0ExSlClmp9ihLqXTh84xV1m3Q2vtqgtEUYlZP6EdS6XktQoNtoxnqLSwCw",
"sub_tenant_id": null,
"client_ids": []
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/tenant",
"related": "/api/mnoe/v2/users/42/tenant"
}
},
"sub_tenant": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/sub_tenant",
"related": "/api/mnoe/v2/users/42/sub_tenant"
}
},
"organizations": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/organizations",
"related": "/api/mnoe/v2/users/42/organizations"
}
},
"orga_relations": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/orga_relations",
"related": "/api/mnoe/v2/users/42/orga_relations"
}
},
"teams": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/teams",
"related": "/api/mnoe/v2/users/42/teams"
}
},
"alerts": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/alerts",
"related": "/api/mnoe/v2/users/42/alerts"
}
},
"identities": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/identities",
"related": "/api/mnoe/v2/users/42/identities"
}
},
"deletion_requests": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/deletion_requests",
"related": "/api/mnoe/v2/users/42/deletion_requests"
}
},
"dashboards": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/dashboards",
"related": "/api/mnoe/v2/users/42/dashboards"
}
},
"license_assignments": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/license_assignments",
"related": "/api/mnoe/v2/users/42/license_assignments"
}
},
"user_access_requests": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/user_access_requests",
"related": "/api/mnoe/v2/users/42/user_access_requests"
}
},
"requested_user_accesses": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/requested_user_accesses",
"related": "/api/mnoe/v2/users/42/requested_user_accesses"
}
},
"clients": {
"links": {
"self": "/api/mnoe/v2/users/42/relationships/clients",
"related": "/api/mnoe/v2/users/42/clients"
}
}
}
}
}
Create Api CredentialsPATCH/users/{id}/create_api_credentials
Create API Credentials for User, it will generate API KEY and API SECRET, that may be used to retrieve data directly from Connec!.
- id
integer
(required) Example: 42The user ID
Headers
Content-Type: application/json; charset=utf-8
Delete a UserDELETE/users/{id}
Delete a single user.
- id
integer
(required) Example: 42The user ID
User Invites ¶
The invitation to a user to join the platform
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:22Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:22Z |
invitee_email | Filterable Mandatory | string | User email | bla_1@gmail.com |
token | Filterable | string | Secret token | |
status | Filterable | string | status of the invite. One of: accepted | pending | declined |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
referrer.id | Referrer relation |
Relationships
Name | Type | To |
---|---|---|
tenant | One to One | Tenant |
referrer | One to One | User |
User Invites ¶
Body
{
"data": [
{
"id": "42",
"type": "user_invites",
"links": {
"self": "/api/mnoe/v2/user_invites/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.151Z",
"updated_at": "2018-09-21T05:30:22.150Z",
"invitee_email": "bla_1@gmail.com",
"referrer_id": 1105,
"token": null,
"status": null
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/user_invites/42/relationships/tenant",
"related": "/api/mnoe/v2/user_invites/42/tenant"
}
},
"referrer": {
"links": {
"self": "/api/mnoe/v2/user_invites/42/relationships/referrer",
"related": "/api/mnoe/v2/user_invites/42/referrer"
}
}
}
}
]
}
Get User InvitesGET/user_invites
Get the list of user invites.
Body
{
"data": {
"type": "user_invites",
"attributes": {
"invitee_email": "john@me.com",
"referrer_id": 42,
"token": "SECRET-TOKEN",
"status": "pending"
}
}
}
Body
{
"data": [
{
"id": "42",
"type": "user_invites",
"links": {
"self": "/api/mnoe/v2/user_invites/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.151Z",
"updated_at": "2018-09-21T05:30:22.150Z",
"invitee_email": "bla_1@gmail.com",
"referrer_id": 1105,
"token": null,
"status": null
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/user_invites/42/relationships/tenant",
"related": "/api/mnoe/v2/user_invites/42/tenant"
}
},
"referrer": {
"links": {
"self": "/api/mnoe/v2/user_invites/42/relationships/referrer",
"related": "/api/mnoe/v2/user_invites/42/referrer"
}
}
}
}
]
}
Create a new User InvitePOST/user_invites
User Invite ¶
Body
{
"data": {
"id": "42",
"type": "user_invites",
"links": {
"self": "/api/mnoe/v2/user_invites/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.151Z",
"updated_at": "2018-09-21T05:30:22.150Z",
"invitee_email": "bla_1@gmail.com",
"referrer_id": 1105,
"token": null,
"status": null
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/user_invites/42/relationships/tenant",
"related": "/api/mnoe/v2/user_invites/42/tenant"
}
},
"referrer": {
"links": {
"self": "/api/mnoe/v2/user_invites/42/relationships/referrer",
"related": "/api/mnoe/v2/user_invites/42/referrer"
}
}
}
}
}
Get an User InviteGET/user_invites/{id}
Get a single user invite.
- id
integer
(required) Example: 42The user invite ID
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"data": {
"type": "user_invites",
"id": 2,
"attributes": {
"status": "approved"
}
}
}
Body
{
"data": {
"id": "42",
"type": "user_invites",
"links": {
"self": "/api/mnoe/v2/user_invites/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.151Z",
"updated_at": "2018-09-21T05:30:22.150Z",
"invitee_email": "bla_1@gmail.com",
"referrer_id": 1105,
"token": null,
"status": null
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/user_invites/42/relationships/tenant",
"related": "/api/mnoe/v2/user_invites/42/tenant"
}
},
"referrer": {
"links": {
"self": "/api/mnoe/v2/user_invites/42/relationships/referrer",
"related": "/api/mnoe/v2/user_invites/42/referrer"
}
}
}
}
}
Update an User InvitePATCH/user_invites/{id}
- id
integer
(required) Example: 42The user invite ID
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Delete an User InviteDELETE/user_invites/{id}
- id
integer
(required) Example: 42The user invite ID
Webstores ¶
A webstore represents an eCommerce portal provisioned for a specific tenant. Each tenant may have up to one webstore for now. Webstores are optional - some tenants may not have a webstore.
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:22Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:22Z |
addons | Filterable Create only | array | Array of addons required by the webstore. One of: redis | mysql | minio |
[“redis”] |
default_url | Filterable Unique Read only | string | System-generated URL for the webstore. | holistic-rabbit-1.some.domain |
image | Filterable Create only | string | Name of docker image to use for the webstore | someimage |
name | Filterable Unique Create only | string | Name of the webstore. Will be parameterized to be url compliant. Auto-generated if left blank. | holistic-rabbit-1 |
nex_app_id | Filterable Read only | string | External reference to the Nex! docker app | baa90f4a-e01c-4c9d-b1f9-3b151cdb70be |
started_at | Filterable Read only | datetime | When the webstore was last started | 2018-09-21T05:30:22Z |
status | Filterable Read only | string | Availability status. One of: staged | provisioning | running | stopping | stopped | starting | terminating | terminated |
running |
stopped_at | Filterable Read only | datetime | When the webstore was last stopped | |
terminated_at | Filterable Read only | datetime | When the webstore was terminated | |
url | Filterable Read only | string | Webstore URL. This URL may have been customised by the tenant. Return the default_url otherwise. | holistic-rabbit-1.some.domain |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
Relationships
Name | Type | To |
---|---|---|
tenant | One to One | Tenant |
Webstores ¶
Body
{
"data": [
{
"id": "42",
"type": "webstores",
"links": {
"self": "/api/mnoe/v2/webstores/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.166Z",
"updated_at": "2018-09-21T05:30:22.165Z",
"addons": [
"redis"
],
"default_url": "holistic-rabbit-1.some.domain",
"image": "someimage",
"name": "holistic-rabbit-1",
"nex_app_id": "baa90f4a-e01c-4c9d-b1f9-3b151cdb70be",
"started_at": "2018-09-21T05:30:22.165Z",
"status": "running",
"stopped_at": null,
"terminated_at": null,
"url": "holistic-rabbit-1.some.domain"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/webstores/42/relationships/tenant",
"related": "/api/mnoe/v2/webstores/42/tenant"
}
}
}
}
]
}
Get WebstoresGET/webstores
Get the list of webstores.
Body
{
"data": {
"type": "webstores",
"attributes": {
"name": "some-webstore-name"
}
}
}
Body
{
"data": {
"id": "42",
"type": "webstores",
"links": {
"self": "/api/mnoe/v2/webstores/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.166Z",
"updated_at": "2018-09-21T05:30:22.165Z",
"addons": [
"redis"
],
"default_url": "holistic-rabbit-1.some.domain",
"image": "someimage",
"name": "holistic-rabbit-1",
"nex_app_id": "baa90f4a-e01c-4c9d-b1f9-3b151cdb70be",
"started_at": "2018-09-21T05:30:22.165Z",
"status": "running",
"stopped_at": null,
"terminated_at": null,
"url": "holistic-rabbit-1.some.domain"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/webstores/42/relationships/tenant",
"related": "/api/mnoe/v2/webstores/42/tenant"
}
}
}
}
}
Create New webstoresPOST/webstores
Create a new webstore.
Webstore ¶
Body
{
"data": {
"id": "42",
"type": "webstores",
"links": {
"self": "/api/mnoe/v2/webstores/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.166Z",
"updated_at": "2018-09-21T05:30:22.165Z",
"addons": [
"redis"
],
"default_url": "holistic-rabbit-1.some.domain",
"image": "someimage",
"name": "holistic-rabbit-1",
"nex_app_id": "baa90f4a-e01c-4c9d-b1f9-3b151cdb70be",
"started_at": "2018-09-21T05:30:22.165Z",
"status": "running",
"stopped_at": null,
"terminated_at": null,
"url": "holistic-rabbit-1.some.domain"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/webstores/42/relationships/tenant",
"related": "/api/mnoe/v2/webstores/42/tenant"
}
}
}
}
}
Get a WebstoreGET/webstores/{id}
Get a single webstore.
- id
integer
(required) Example: 42The webstore ID
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Widgets ¶
A widget is a small component that provides calculations formatted for data visualisation on accounting values, reports, statistics
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:22Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:22Z |
name | Filterable | string | Widget name | widget example |
width | Filterable | integer | Widget width | |
widget_category | Filterable Mandatory | string | Widget Category | accounts/balance |
settings | Filterable | string | Widget metadata hash for storing settings | {} |
endpoint | Filterable | string | Endpoint | accounts/balance |
metadata | hash | Widget Metadata | {} | |
layouts | array | Widget Layouts | [] |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
organization.id | Filter the widgets belonging to the organization or the organization’s users AND that use the organization as a data source |
kpis.id | Kpis relation |
dashboard.id | Dashboard relation |
Relationships
Name | Type | To |
---|---|---|
tenant | One to One | Tenant |
kpis | One to Many | Kpi |
dashboard | One to One | Dashboard |
Widgets ¶
Body
{
"data": [
{
"id": "42",
"type": "widgets",
"links": {
"self": "/api/mnoe/v2/widgets/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.182Z",
"updated_at": "2018-09-21T05:30:22.182Z",
"name": "widget example",
"width": null,
"widget_category": "accounts/balance",
"settings": {},
"endpoint": "accounts/balance",
"dashboard_id": 1111,
"metadata": {},
"layouts": []
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/widgets/42/relationships/tenant",
"related": "/api/mnoe/v2/widgets/42/tenant"
}
},
"kpis": {
"links": {
"self": "/api/mnoe/v2/widgets/42/relationships/kpis",
"related": "/api/mnoe/v2/widgets/42/kpis"
}
},
"dashboard": {
"links": {
"self": "/api/mnoe/v2/widgets/42/relationships/dashboard",
"related": "/api/mnoe/v2/widgets/42/dashboard"
}
}
}
}
]
}
Get WidgetsGET/widgets
Get the list of widgets.
Body
{
"data":{
"type":"widgets",
"attributes":{
"name": "analytics widget example"
}
}
}
[Widget][]
Create new WidgetPOST/widgets
Create a new widget.
Widget ¶
Body
{
"data": {
"id": "42",
"type": "widgets",
"links": {
"self": "/api/mnoe/v2/widgets/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.182Z",
"updated_at": "2018-09-21T05:30:22.182Z",
"name": "widget example",
"width": null,
"widget_category": "accounts/balance",
"settings": {},
"endpoint": "accounts/balance",
"dashboard_id": 1111,
"metadata": {},
"layouts": []
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/widgets/42/relationships/tenant",
"related": "/api/mnoe/v2/widgets/42/tenant"
}
},
"kpis": {
"links": {
"self": "/api/mnoe/v2/widgets/42/relationships/kpis",
"related": "/api/mnoe/v2/widgets/42/kpis"
}
},
"dashboard": {
"links": {
"self": "/api/mnoe/v2/widgets/42/relationships/dashboard",
"related": "/api/mnoe/v2/widgets/42/dashboard"
}
}
}
}
}
Get WidgetGET/widgets/{id}
Get a single widget.
- id
integer
(required) Example: 42The widget ID
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"data": {
"type": "widgets",
"attributes": {
"name": "New name"
}
}
}
Body
{
"data": {
"id": "42",
"type": "widgets",
"links": {
"self": "/api/mnoe/v2/widgets/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.182Z",
"updated_at": "2018-09-21T05:30:22.182Z",
"name": "widget example",
"width": null,
"widget_category": "accounts/balance",
"settings": {},
"endpoint": "accounts/balance",
"dashboard_id": 1111,
"metadata": {},
"layouts": []
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/widgets/42/relationships/tenant",
"related": "/api/mnoe/v2/widgets/42/tenant"
}
},
"kpis": {
"links": {
"self": "/api/mnoe/v2/widgets/42/relationships/kpis",
"related": "/api/mnoe/v2/widgets/42/kpis"
}
},
"dashboard": {
"links": {
"self": "/api/mnoe/v2/widgets/42/relationships/dashboard",
"related": "/api/mnoe/v2/widgets/42/dashboard"
}
}
}
}
}
Update an WidgetPATCH/widgets/{id}
Update a single widget.
- id
integer
(required) Example: 42The widget ID
Headers
Content-Type: application/json; charset=utf-8
Delete a WidgetDELETE/widgets/{id}
Delete a single widget.
- id
integer
(required) Example: 42The widget ID
Provisioning API ¶
This API section is to be used by Products Providers to list their Products on a Maestrano powered marketplace.
Provisioning | ProductProviders ¶
API endpoint /product_providers
is only available to Maestrano administrators
Other endpoints can be accessed using your Maestrano Partner credentials
A ProductProvider proposes Products on a Maestrano’s powered marketplace and provision them on customer’s request.
SubscriptionEvent notifications are sent to the url
defined with the configured security applied (see section SubscriptionEvent for more information).
-
authentication_type =
none
: Use only for testing, no authentication is applied -
authentication_type =
basic_auth
: theapi_key
andapi_secret
are passed as Basic Authetication HTTP headers (username and password)
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:22Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:22Z |
uid | Filterable Unique | string | public facing ID used by apps | |
name | Filterable | string | Name of the ProductProvider | My Platform |
provisioning_url | Filterable | string | Provisioning Webhook URL used to notify of Subscription events. Default to Product Provider configuration if not set. | https://my.platform.com/provisioning |
authentication_type | Filterable | string | Authentication type supported by the endpoint: basic_auth, none | basic_auth |
api_key | Filterable | string | API username (basic auth) | username |
api_secret | Filterable | string | API password (basic auth) | password |
active | Filterable | boolean | ProductProvider active (true/false) | true |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
products.id | Products relation |
Relationships
Name | Type | To |
---|---|---|
tenant | One to One | Tenant |
products | One to Many | Product |
ProductProviders ¶
Body
{
"data": [
{
"id": "42",
"type": "product_providers",
"links": {
"self": "/api/mnoe/v2/product_providers/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.188Z",
"updated_at": "2018-09-21T05:30:22.187Z",
"uid": null,
"name": "My Platform",
"provisioning_url": "https://my.platform.com/provisioning",
"authentication_type": "basic_auth",
"api_key": "username",
"api_secret": "password",
"active": true
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/product_providers/42/relationships/tenant",
"related": "/api/mnoe/v2/product_providers/42/tenant"
}
},
"products": {
"links": {
"self": "/api/mnoe/v2/product_providers/42/relationships/products",
"related": "/api/mnoe/v2/product_providers/42/products"
}
}
}
}
]
}
Get ProductProvidersGET/product_providers
Get the list of product_providers.
Headers
Content-Type: application/json; charset=utf-8
Body
{
"data": {
"attributes": {
"name": "My Platform",
"url": "https://my.platform.com/provisioning",
"authentication_type": "basic_auth"
}
}
}
Body
{
"data": {
"id": "42",
"type": "product_providers",
"links": {
"self": "/api/mnoe/v2/product_providers/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.188Z",
"updated_at": "2018-09-21T05:30:22.187Z",
"uid": null,
"name": "My Platform",
"provisioning_url": "https://my.platform.com/provisioning",
"authentication_type": "basic_auth",
"api_key": "username",
"api_secret": "password",
"active": true
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/product_providers/42/relationships/tenant",
"related": "/api/mnoe/v2/product_providers/42/tenant"
}
},
"products": {
"links": {
"self": "/api/mnoe/v2/product_providers/42/relationships/products",
"related": "/api/mnoe/v2/product_providers/42/products"
}
}
}
}
}
Create a ProductProviderPOST/product_providers
Create a new ProductProvider.
ProductProvider ¶
Body
{
"data": {
"id": "42",
"type": "product_providers",
"links": {
"self": "/api/mnoe/v2/product_providers/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.188Z",
"updated_at": "2018-09-21T05:30:22.187Z",
"uid": null,
"name": "My Platform",
"provisioning_url": "https://my.platform.com/provisioning",
"authentication_type": "basic_auth",
"api_key": "username",
"api_secret": "password",
"active": true
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/product_providers/42/relationships/tenant",
"related": "/api/mnoe/v2/product_providers/42/tenant"
}
},
"products": {
"links": {
"self": "/api/mnoe/v2/product_providers/42/relationships/products",
"related": "/api/mnoe/v2/product_providers/42/products"
}
}
}
}
}
Get ProductProviderGET/product_providers/{id}
Get a single ProductProvider.
- id
integer
(required) Example: 42The ProductProvider ID
Headers
Content-Type: application/json; charset=utf-8
Body
{
"data": {
"type": "product_providers",
"id": 1,
"attributes": {
"name": "New Name"
}
}
}
Body
{
"data": {
"id": "42",
"type": "product_providers",
"links": {
"self": "/api/mnoe/v2/product_providers/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.188Z",
"updated_at": "2018-09-21T05:30:22.187Z",
"uid": null,
"name": "My Platform",
"provisioning_url": "https://my.platform.com/provisioning",
"authentication_type": "basic_auth",
"api_key": "username",
"api_secret": "password",
"active": true
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/product_providers/42/relationships/tenant",
"related": "/api/mnoe/v2/product_providers/42/tenant"
}
},
"products": {
"links": {
"self": "/api/mnoe/v2/product_providers/42/relationships/products",
"related": "/api/mnoe/v2/product_providers/42/products"
}
}
}
}
}
Update a ProductProviderPATCH/product_providers/{id}
Update a ProductProvider.
- id
integer
(required) Example: 42The ProductProvider ID
Provisioning | Categories ¶
Represents a Product Category
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:22Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:22Z |
name | Filterable | string | Category name | eCommerce |
parent_id | Filterable | string | Parent category reference |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
Relationships
Name | Type | To |
---|---|---|
tenant | One to One | Tenant |
Categories ¶
Body
{
"data": [
{
"id": "42",
"type": "categories",
"links": {
"self": "/api/mnoe/v2/categories/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.195Z",
"updated_at": "2018-09-21T05:30:22.195Z",
"name": "eCommerce",
"parent_id": null
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/categories/42/relationships/tenant",
"related": "/api/mnoe/v2/categories/42/tenant"
}
}
}
}
]
}
Get CategoriesGET/categories
Get the list of categories.
Provisioning | Products ¶
A Product available on the platform can be listed on a Marketplace for purchase.
Product type can be one of:
-
application
: an application provisioned by a third-party system -
product
: a piece of hardware physically delivered to the customer -
service
: a service given to a customer Products can be provided by third-party information system and be listed on Maestrano powered marketplaces.
Product provisioning workflow is defined under the ProductInstance section.
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:22Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:22Z |
uid | Filterable Unique | string | public facing ID used by apps | pro-15i6 |
nid | Filterable | string | nid of the Product | |
name | Filterable Mandatory | string | Name of the Product | My E-commerce Application |
active | Filterable | boolean | Product is enabled (true / false) | true |
product_type | Filterable | string | Product type: application, product, service |
application |
logo | Filterable | string | URL to the logo of the product | //hub.dev.maestrano.io/fallback/default_app_logo.jpg |
sso_enabled | Filterable | boolean | Is single sign-on enabled | |
data_sharing_enabled | Filterable | boolean | Is data-sharing enabled | |
single_billing_enabled | Filterable | boolean | Is single billing enabled | true |
billed_locally | Filterable | boolean | Is single billing managed by MnoHub | |
is_connector_framework | Filterable | boolean | Is the integration done with the Maestrano Connector Framework | |
external_id | Filterable | string | External reference when coming from a ProductProvider | PRODUCT-8239401 |
externally_provisioned | Filterable | boolean | SubscriptionEvent notifications must be sent to the configured ProductProvider | true |
custom_schema_url | Filterable | string | URL of the JSON Schema used to generate a form to capture customer input before provisioning | |
custom_schema | Filterable Write only | string | The actual product form schema. Pass the _locale parameter to get the schema in a different language. E.g. locale=es-es |
|
provisioning_url | Filterable | string | Provisioning Webhook URL used to notify of Subscription events. Default to Product Provider configuration if not set. | https://my.platform.com/provisioning |
pricing_plans | Filterable | array | pricing plans | [] |
multi_instantiable | Filterable | boolean | Can the application be multi instantiated for one owner | false |
product_provider | Filterable | string | Reference to the ProductProvider owning the Product | #<ProductProvider:0x000000000de52cb8> |
parent | Filterable | string | Reference to a parent Product. This is applicable to addons. | |
children | Filterable | string | Reference to children Products, the list of addons of the Product | #<Product::ActiveRecord_Associations_CollectionProxy:0x000000000dd51d28> |
values_attributes | Filterable Write only | string | Array of attributes to create values | |
assets_attributes | Filterable Write only | string | Array of attributes to create assets | |
local | Filterable | boolean | Is it a product managed by the Tenant | false |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
scope | By default, the products may be filtered to the products allocated for the tenant. You may set the filter “scope” to “all” to retrieve all the products. |
product_provider.id | Product Provider relation |
parent.id | Parent relation |
children.id | Children relation |
product_pricings.id | Product Pricings relation |
product_contracts.id | Product Contracts relation |
values.id | Values relation |
assets.id | Assets relation |
categories.id | Categories relation |
Relationships
Name | Type | To |
---|---|---|
tenant | One to One | Tenant |
product_provider | One to One | Product Provider |
parent | One to One | Product |
children | One to Many | Product |
product_pricings | One to Many | Product Pricing |
product_contracts | One to Many | Product Contract |
values | One to Many | Value |
assets | One to Many | Asset |
categories | One to Many | Category |
Products ¶
Body
{
"data": [
{
"id": "42",
"type": "products",
"links": {
"self": "/api/mnoe/v2/products/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.201Z",
"updated_at": "2018-09-21T05:30:22.200Z",
"uid": "pro-15i6",
"nid": null,
"name": "My E-commerce Application",
"active": true,
"product_type": "application",
"logo": "//hub.dev.maestrano.io/fallback/default_app_logo.jpg",
"sso_enabled": null,
"data_sharing_enabled": null,
"single_billing_enabled": true,
"billed_locally": null,
"is_connector_framework": null,
"external_id": "PRODUCT-8239401",
"externally_provisioned": true,
"custom_schema_url": null,
"provisioning_url": "https://my.platform.com/provisioning",
"pricing_plans": [],
"multi_instantiable": false,
"free_trial_enabled": false,
"free_trial_duration": null,
"free_trial_unit": null,
"product_provider": "#<ProductProvider:0x000000000de52cb8>",
"parent": null,
"children": "#<Product::ActiveRecord_Associations_CollectionProxy:0x000000000dd51d28>",
"local": false
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/tenant",
"related": "/api/mnoe/v2/products/42/tenant"
}
},
"product_provider": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/product_provider",
"related": "/api/mnoe/v2/products/42/product_provider"
}
},
"parent": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/parent",
"related": "/api/mnoe/v2/products/42/parent"
}
},
"children": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/children",
"related": "/api/mnoe/v2/products/42/children"
}
},
"product_pricings": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/product_pricings",
"related": "/api/mnoe/v2/products/42/product_pricings"
}
},
"product_contracts": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/product_contracts",
"related": "/api/mnoe/v2/products/42/product_contracts"
}
},
"values": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/values",
"related": "/api/mnoe/v2/products/42/values"
}
},
"assets": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/assets",
"related": "/api/mnoe/v2/products/42/assets"
}
},
"categories": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/categories",
"related": "/api/mnoe/v2/products/42/categories"
}
}
}
}
]
}
Get ProductsGET/products
Get the list of products.
Headers
Content-Type: application/json; charset=utf-8
Body
{
"data": {
"attributes": {
"name": "My Accounting Application",
"product_type": "application"
}
}
}
Body
{
"data": {
"id": "42",
"type": "products",
"links": {
"self": "/api/mnoe/v2/products/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.201Z",
"updated_at": "2018-09-21T05:30:22.200Z",
"uid": "pro-15i6",
"nid": null,
"name": "My E-commerce Application",
"active": true,
"product_type": "application",
"logo": "//hub.dev.maestrano.io/fallback/default_app_logo.jpg",
"sso_enabled": null,
"data_sharing_enabled": null,
"single_billing_enabled": true,
"billed_locally": null,
"is_connector_framework": null,
"external_id": "PRODUCT-8239401",
"externally_provisioned": true,
"custom_schema_url": null,
"provisioning_url": "https://my.platform.com/provisioning",
"pricing_plans": [],
"multi_instantiable": false,
"free_trial_enabled": false,
"free_trial_duration": null,
"free_trial_unit": null,
"product_provider": "#<ProductProvider:0x000000000de52cb8>",
"parent": null,
"children": "#<Product::ActiveRecord_Associations_CollectionProxy:0x000000000dd51d28>",
"local": false
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/tenant",
"related": "/api/mnoe/v2/products/42/tenant"
}
},
"product_provider": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/product_provider",
"related": "/api/mnoe/v2/products/42/product_provider"
}
},
"parent": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/parent",
"related": "/api/mnoe/v2/products/42/parent"
}
},
"children": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/children",
"related": "/api/mnoe/v2/products/42/children"
}
},
"product_pricings": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/product_pricings",
"related": "/api/mnoe/v2/products/42/product_pricings"
}
},
"product_contracts": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/product_contracts",
"related": "/api/mnoe/v2/products/42/product_contracts"
}
},
"values": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/values",
"related": "/api/mnoe/v2/products/42/values"
}
},
"assets": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/assets",
"related": "/api/mnoe/v2/products/42/assets"
}
},
"categories": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/categories",
"related": "/api/mnoe/v2/products/42/categories"
}
}
}
}
}
Headers
Content-Type: application/json; charset=utf-8
Body
{
"data": {
"attributes": {
"name": "Payroll Module",
"product_type": "application"
},
"relationships": {
"parent": {
"data": {
"type": "produts",
"id": 62
}
}
}
}
}
Body
{
"data": {
"id": "42",
"type": "products",
"links": {
"self": "/api/mnoe/v2/products/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.201Z",
"updated_at": "2018-09-21T05:30:22.200Z",
"uid": "pro-15i6",
"nid": null,
"name": "My E-commerce Application",
"active": true,
"product_type": "application",
"logo": "//hub.dev.maestrano.io/fallback/default_app_logo.jpg",
"sso_enabled": null,
"data_sharing_enabled": null,
"single_billing_enabled": true,
"billed_locally": null,
"is_connector_framework": null,
"external_id": "PRODUCT-8239401",
"externally_provisioned": true,
"custom_schema_url": null,
"provisioning_url": "https://my.platform.com/provisioning",
"pricing_plans": [],
"multi_instantiable": false,
"free_trial_enabled": false,
"free_trial_duration": null,
"free_trial_unit": null,
"product_provider": "#<ProductProvider:0x000000000de52cb8>",
"parent": null,
"children": "#<Product::ActiveRecord_Associations_CollectionProxy:0x000000000dd51d28>",
"local": false
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/tenant",
"related": "/api/mnoe/v2/products/42/tenant"
}
},
"product_provider": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/product_provider",
"related": "/api/mnoe/v2/products/42/product_provider"
}
},
"parent": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/parent",
"related": "/api/mnoe/v2/products/42/parent"
}
},
"children": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/children",
"related": "/api/mnoe/v2/products/42/children"
}
},
"product_pricings": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/product_pricings",
"related": "/api/mnoe/v2/products/42/product_pricings"
}
},
"product_contracts": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/product_contracts",
"related": "/api/mnoe/v2/products/42/product_contracts"
}
},
"values": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/values",
"related": "/api/mnoe/v2/products/42/values"
}
},
"assets": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/assets",
"related": "/api/mnoe/v2/products/42/assets"
}
},
"categories": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/categories",
"related": "/api/mnoe/v2/products/42/categories"
}
}
}
}
}
Headers
Content-Type: application/json; charset=utf-8
Body
{
"data": {
"attributes": {
"name": "Wireless router WRTX-250",
"product_type": "product",
"provider": "Logitech Industries",
"external_id": "WRTX-250-1"
}
}
}
Body
{
"data": {
"id": "42",
"type": "products",
"links": {
"self": "/api/mnoe/v2/products/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.201Z",
"updated_at": "2018-09-21T05:30:22.200Z",
"uid": "pro-15i6",
"nid": null,
"name": "My E-commerce Application",
"active": true,
"product_type": "application",
"logo": "//hub.dev.maestrano.io/fallback/default_app_logo.jpg",
"sso_enabled": null,
"data_sharing_enabled": null,
"single_billing_enabled": true,
"billed_locally": null,
"is_connector_framework": null,
"external_id": "PRODUCT-8239401",
"externally_provisioned": true,
"custom_schema_url": null,
"provisioning_url": "https://my.platform.com/provisioning",
"pricing_plans": [],
"multi_instantiable": false,
"free_trial_enabled": false,
"free_trial_duration": null,
"free_trial_unit": null,
"product_provider": "#<ProductProvider:0x000000000de52cb8>",
"parent": null,
"children": "#<Product::ActiveRecord_Associations_CollectionProxy:0x000000000dd51d28>",
"local": false
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/tenant",
"related": "/api/mnoe/v2/products/42/tenant"
}
},
"product_provider": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/product_provider",
"related": "/api/mnoe/v2/products/42/product_provider"
}
},
"parent": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/parent",
"related": "/api/mnoe/v2/products/42/parent"
}
},
"children": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/children",
"related": "/api/mnoe/v2/products/42/children"
}
},
"product_pricings": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/product_pricings",
"related": "/api/mnoe/v2/products/42/product_pricings"
}
},
"product_contracts": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/product_contracts",
"related": "/api/mnoe/v2/products/42/product_contracts"
}
},
"values": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/values",
"related": "/api/mnoe/v2/products/42/values"
}
},
"assets": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/assets",
"related": "/api/mnoe/v2/products/42/assets"
}
},
"categories": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/categories",
"related": "/api/mnoe/v2/products/42/categories"
}
}
}
}
}
Create a ProductPOST/products
Create a new Product.
Product ¶
Body
{
"data": {
"id": "42",
"type": "products",
"links": {
"self": "/api/mnoe/v2/products/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.201Z",
"updated_at": "2018-09-21T05:30:22.200Z",
"uid": "pro-15i6",
"nid": null,
"name": "My E-commerce Application",
"active": true,
"product_type": "application",
"logo": "//hub.dev.maestrano.io/fallback/default_app_logo.jpg",
"sso_enabled": null,
"data_sharing_enabled": null,
"single_billing_enabled": true,
"billed_locally": null,
"is_connector_framework": null,
"external_id": "PRODUCT-8239401",
"externally_provisioned": true,
"custom_schema_url": null,
"provisioning_url": "https://my.platform.com/provisioning",
"pricing_plans": [],
"multi_instantiable": false,
"free_trial_enabled": false,
"free_trial_duration": null,
"free_trial_unit": null,
"product_provider": "#<ProductProvider:0x000000000de52cb8>",
"parent": null,
"children": "#<Product::ActiveRecord_Associations_CollectionProxy:0x000000000dd51d28>",
"local": false
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/tenant",
"related": "/api/mnoe/v2/products/42/tenant"
}
},
"product_provider": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/product_provider",
"related": "/api/mnoe/v2/products/42/product_provider"
}
},
"parent": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/parent",
"related": "/api/mnoe/v2/products/42/parent"
}
},
"children": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/children",
"related": "/api/mnoe/v2/products/42/children"
}
},
"product_pricings": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/product_pricings",
"related": "/api/mnoe/v2/products/42/product_pricings"
}
},
"product_contracts": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/product_contracts",
"related": "/api/mnoe/v2/products/42/product_contracts"
}
},
"values": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/values",
"related": "/api/mnoe/v2/products/42/values"
}
},
"assets": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/assets",
"related": "/api/mnoe/v2/products/42/assets"
}
},
"categories": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/categories",
"related": "/api/mnoe/v2/products/42/categories"
}
}
}
}
}
Get ProductGET/products/{id}
Get a single Product.
- id
integer
(required) Example: 42The Product ID
Headers
Content-Type: application/json; charset=utf-8
Body
{
"data": {
"type": "products",
"id": 1,
"attributes": {
"name": "New Name"
}
}
}
Body
{
"data": {
"id": "42",
"type": "products",
"links": {
"self": "/api/mnoe/v2/products/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.201Z",
"updated_at": "2018-09-21T05:30:22.200Z",
"uid": "pro-15i6",
"nid": null,
"name": "My E-commerce Application",
"active": true,
"product_type": "application",
"logo": "//hub.dev.maestrano.io/fallback/default_app_logo.jpg",
"sso_enabled": null,
"data_sharing_enabled": null,
"single_billing_enabled": true,
"billed_locally": null,
"is_connector_framework": null,
"external_id": "PRODUCT-8239401",
"externally_provisioned": true,
"custom_schema_url": null,
"provisioning_url": "https://my.platform.com/provisioning",
"pricing_plans": [],
"multi_instantiable": false,
"free_trial_enabled": false,
"free_trial_duration": null,
"free_trial_unit": null,
"product_provider": "#<ProductProvider:0x000000000de52cb8>",
"parent": null,
"children": "#<Product::ActiveRecord_Associations_CollectionProxy:0x000000000dd51d28>",
"local": false
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/tenant",
"related": "/api/mnoe/v2/products/42/tenant"
}
},
"product_provider": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/product_provider",
"related": "/api/mnoe/v2/products/42/product_provider"
}
},
"parent": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/parent",
"related": "/api/mnoe/v2/products/42/parent"
}
},
"children": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/children",
"related": "/api/mnoe/v2/products/42/children"
}
},
"product_pricings": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/product_pricings",
"related": "/api/mnoe/v2/products/42/product_pricings"
}
},
"product_contracts": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/product_contracts",
"related": "/api/mnoe/v2/products/42/product_contracts"
}
},
"values": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/values",
"related": "/api/mnoe/v2/products/42/values"
}
},
"assets": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/assets",
"related": "/api/mnoe/v2/products/42/assets"
}
},
"categories": {
"links": {
"self": "/api/mnoe/v2/products/42/relationships/categories",
"related": "/api/mnoe/v2/products/42/categories"
}
}
}
}
}
Update a ProductPATCH/products/{id}
Update a Product.
- id
integer
(required) Example: 42The Product ID
Pricings ¶
A Pricing defines the available subscription models applicable to a Product and their pricing.
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:22Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:22Z |
uid | Filterable Unique | string | public facing ID used by apps | |
name | Filterable Mandatory | string | Name of the Pricing | Basic plan |
description | Filterable | text | Pricing description | Basic pricing plan |
position | Filterable | integer | Pricing ordering | |
free | Filterable | boolean | This product is free | false |
free_trial_enabled | Filterable | boolean | Free trial is available for this pricing | true |
free_trial_duration | Filterable | integer | Free trial duration | 1 |
free_trial_unit | Filterable | string | Free trial unit of duration (days, weeks, months) | month |
pricing_type | Filterable | string | Pricing type. One of: main | extra | addon |
recurring |
license_based | Filterable | boolean | Is pricing based on a number of licenses | false |
quote_based | Filterable | boolean | Is pricing based on product quote | false |
per_duration | Filterable | string | The unit of time this price applies to | month |
per_unit | Filterable | string | The unit this price applies to | user |
prices | Filterable | text | Array of prices | [{“currency”=>“USD”, “price_cents”=>995}, {“currency”=>“AUD”, “price_cents”=>1295}, {“currency”=>“EUR”, “price_cents”=>795}] |
external_id | Filterable | string | External reference of the product ot provision | |
product_id | Filterable | string | Product Id | 1118 |
language | Filterable | string | BCP 47 language tag for this pricing |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
product.id | Product relation |
Relationships
Name | Type | To |
---|---|---|
tenant | One to One | Tenant |
product | One to One | Product |
Body
{
"data": [
{
"id": "42",
"type": "product_pricings",
"links": {
"self": "/api/mnoe/v2/product_pricings/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.227Z",
"updated_at": "2018-09-21T05:30:22.226Z",
"uid": null,
"name": "Basic plan",
"description": "Basic pricing plan",
"position": null,
"free": false,
"free_trial_enabled": true,
"free_trial_duration": 1,
"free_trial_unit": "month",
"pricing_type": "recurring",
"license_based": false,
"quote_based": false,
"per_duration": "month",
"per_unit": "user",
"prices": [
{
"currency": "USD",
"price_cents": 995
},
{
"currency": "AUD",
"price_cents": 1295
},
{
"currency": "EUR",
"price_cents": 795
}
],
"external_id": null,
"product_id": "1118",
"language": null
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/product_pricings/42/relationships/tenant",
"related": "/api/mnoe/v2/product_pricings/42/tenant"
}
},
"product": {
"links": {
"self": "/api/mnoe/v2/product_pricings/42/relationships/product",
"related": "/api/mnoe/v2/product_pricings/42/product"
}
}
}
}
]
}
Get PricingsGET/products/1/pricings
Get the list of Pricings.
Headers
Content-Type: application/json; charset=utf-8
Body
{
"data": {
"attributes": {
"name": "Monthly Subscription",
"description": "User charged on a monthly basis",
"free": false,
"per_duration": 1,
"per_unit": "month",
"prices": "{‘USD’ => 9.95, ‘AUD’ => 12.95, ‘EUR’ => 7.95}"
}
}
}
Body
{
"data": [
{
"id": "42",
"type": "product_pricings",
"links": {
"self": "/api/mnoe/v2/product_pricings/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.227Z",
"updated_at": "2018-09-21T05:30:22.226Z",
"uid": null,
"name": "Basic plan",
"description": "Basic pricing plan",
"position": null,
"free": false,
"free_trial_enabled": true,
"free_trial_duration": 1,
"free_trial_unit": "month",
"pricing_type": "recurring",
"license_based": false,
"quote_based": false,
"per_duration": "month",
"per_unit": "user",
"prices": [
{
"currency": "USD",
"price_cents": 995
},
{
"currency": "AUD",
"price_cents": 1295
},
{
"currency": "EUR",
"price_cents": 795
}
],
"external_id": null,
"product_id": "1118",
"language": null
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/product_pricings/42/relationships/tenant",
"related": "/api/mnoe/v2/product_pricings/42/tenant"
}
},
"product": {
"links": {
"self": "/api/mnoe/v2/product_pricings/42/relationships/product",
"related": "/api/mnoe/v2/product_pricings/42/product"
}
}
}
}
]
}
Headers
Content-Type: application/json; charset=utf-8
Body
{
"data": {
"attributes": {
"name": "Quarterly Subscription",
"description": "User charged every quarter",
"free": false,
"free_trial_enabled": true,
"free_trial_duration": 1,
"free_trial_unit": "month",
"per_duration": 1,
"per_unit": "quarter",
"prices": "{‘USD’ => 9.95, ‘AUD’ => 12.95, ‘EUR’ => 7.95}"
}
}
}
Body
{
"data": [
{
"id": "42",
"type": "product_pricings",
"links": {
"self": "/api/mnoe/v2/product_pricings/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.227Z",
"updated_at": "2018-09-21T05:30:22.226Z",
"uid": null,
"name": "Basic plan",
"description": "Basic pricing plan",
"position": null,
"free": false,
"free_trial_enabled": true,
"free_trial_duration": 1,
"free_trial_unit": "month",
"pricing_type": "recurring",
"license_based": false,
"quote_based": false,
"per_duration": "month",
"per_unit": "user",
"prices": [
{
"currency": "USD",
"price_cents": 995
},
{
"currency": "AUD",
"price_cents": 1295
},
{
"currency": "EUR",
"price_cents": 795
}
],
"external_id": null,
"product_id": "1118",
"language": null
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/product_pricings/42/relationships/tenant",
"related": "/api/mnoe/v2/product_pricings/42/tenant"
}
},
"product": {
"links": {
"self": "/api/mnoe/v2/product_pricings/42/relationships/product",
"related": "/api/mnoe/v2/product_pricings/42/product"
}
}
}
}
]
}
Create a PricingPOST/products/1/pricings
Create a new Pricing.
Pricing ¶
Body
{
"data": {
"id": "42",
"type": "product_pricings",
"links": {
"self": "/api/mnoe/v2/product_pricings/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.227Z",
"updated_at": "2018-09-21T05:30:22.226Z",
"uid": null,
"name": "Basic plan",
"description": "Basic pricing plan",
"position": null,
"free": false,
"free_trial_enabled": true,
"free_trial_duration": 1,
"free_trial_unit": "month",
"pricing_type": "recurring",
"license_based": false,
"quote_based": false,
"per_duration": "month",
"per_unit": "user",
"prices": [
{
"currency": "USD",
"price_cents": 995
},
{
"currency": "AUD",
"price_cents": 1295
},
{
"currency": "EUR",
"price_cents": 795
}
],
"external_id": null,
"product_id": "1118",
"language": null
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/product_pricings/42/relationships/tenant",
"related": "/api/mnoe/v2/product_pricings/42/tenant"
}
},
"product": {
"links": {
"self": "/api/mnoe/v2/product_pricings/42/relationships/product",
"related": "/api/mnoe/v2/product_pricings/42/product"
}
}
}
}
}
Get PricingGET/products/1/pricings/{id}
Get a single Pricing.
- id
integer
(required) Example: 42The Pricing ID
Headers
Content-Type: application/json; charset=utf-8
Body
{
"data": {
"type": "pricings",
"id": 62,
"attributes": {
"name": "New Name"
}
}
}
Body
{
"data": {
"id": "42",
"type": "product_pricings",
"links": {
"self": "/api/mnoe/v2/product_pricings/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.227Z",
"updated_at": "2018-09-21T05:30:22.226Z",
"uid": null,
"name": "Basic plan",
"description": "Basic pricing plan",
"position": null,
"free": false,
"free_trial_enabled": true,
"free_trial_duration": 1,
"free_trial_unit": "month",
"pricing_type": "recurring",
"license_based": false,
"quote_based": false,
"per_duration": "month",
"per_unit": "user",
"prices": [
{
"currency": "USD",
"price_cents": 995
},
{
"currency": "AUD",
"price_cents": 1295
},
{
"currency": "EUR",
"price_cents": 795
}
],
"external_id": null,
"product_id": "1118",
"language": null
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/product_pricings/42/relationships/tenant",
"related": "/api/mnoe/v2/product_pricings/42/tenant"
}
},
"product": {
"links": {
"self": "/api/mnoe/v2/product_pricings/42/relationships/product",
"related": "/api/mnoe/v2/product_pricings/42/product"
}
}
}
}
}
Update a PricingPATCH/products/1/pricings/{id}
Update a Pricing.
- id
integer
(required) Example: 42The Pricing ID
Provisioning | ProductInstances ¶
A ProductInstance represents a Product that a Customer has Subscribed to.
A ProductInstance is active if it has a valid Subscription attached to it.
The status
of a ProductInstance follows the wokflow:
-
pending
: The main Subscription is pending approval before provisioning -
provisioning
: The Product is being provisioned by a third-party provider -
active
: The main Subscription is currently valid and Product has been provisioned -
suspended
: The main Subscription is currently suspended -
cancelled
: All Subscriptions attached to the ProductInstance have been cancelled
Provisioning a new ProductInstance is performed by creating a new Subscription.
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:22Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:22Z |
uid | Filterable Unique | string | public facing ID used by apps | |
status | Filterable | string | ProductInstance status: pending, provisioning, active, suspended, cancelled | active |
api_key | Filterable | string | ProductInstance API Key | |
api_secret | Filterable | string | ProductInstance API Secret | |
external_id | Filterable | string | External reference when provisioned by a third-party system | |
organization_id | Filterable | string | RELATED organization of the product Instance | 1124 |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
product.id | Product relation |
organization.id | Organization relation |
app_instance.id | App Instance relation |
subscriptions.id | Subscriptions relation |
sync_status.id | Sync Status relation |
Relationships
Name | Type | To |
---|---|---|
tenant | One to One | Tenant |
product | One to One | Product |
organization | One to One | Organization |
app_instance | One to One | App Instance |
subscriptions | One to Many | Subscription |
sync_status | One to One | Sync Status |
ProductInstances ¶
Body
{
"data": [
{
"id": "42",
"type": "product_instances",
"links": {
"self": "/api/mnoe/v2/product_instances/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.236Z",
"updated_at": "2018-09-21T05:30:22.235Z",
"uid": null,
"status": "active",
"api_key": null,
"api_secret": null,
"external_id": null,
"organization_id": "1124"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/product_instances/42/relationships/tenant",
"related": "/api/mnoe/v2/product_instances/42/tenant"
}
},
"product": {
"links": {
"self": "/api/mnoe/v2/product_instances/42/relationships/product",
"related": "/api/mnoe/v2/product_instances/42/product"
},
"data": {
"type": "products",
"id": "1121"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/product_instances/42/relationships/organization",
"related": "/api/mnoe/v2/product_instances/42/organization"
},
"data": {
"type": "organizations",
"id": "1124"
}
},
"app_instance": {
"links": {
"self": "/api/mnoe/v2/product_instances/42/relationships/app_instance",
"related": "/api/mnoe/v2/product_instances/42/app_instance"
},
"data": null
},
"subscriptions": {
"links": {
"self": "/api/mnoe/v2/product_instances/42/relationships/subscriptions",
"related": "/api/mnoe/v2/product_instances/42/subscriptions"
}
},
"sync_status": {
"links": {
"self": "/api/mnoe/v2/product_instances/42/relationships/sync_status",
"related": "/api/mnoe/v2/product_instances/42/sync_status"
}
}
}
}
]
}
Get ProductInstancesGET/product_instances
Get the list of product instances.
ProductInstance ¶
Body
{
"data": {
"id": "42",
"type": "product_instances",
"links": {
"self": "/api/mnoe/v2/product_instances/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.236Z",
"updated_at": "2018-09-21T05:30:22.235Z",
"uid": null,
"status": "active",
"api_key": null,
"api_secret": null,
"external_id": null,
"organization_id": "1124"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/product_instances/42/relationships/tenant",
"related": "/api/mnoe/v2/product_instances/42/tenant"
}
},
"product": {
"links": {
"self": "/api/mnoe/v2/product_instances/42/relationships/product",
"related": "/api/mnoe/v2/product_instances/42/product"
},
"data": {
"type": "products",
"id": "1121"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/product_instances/42/relationships/organization",
"related": "/api/mnoe/v2/product_instances/42/organization"
},
"data": {
"type": "organizations",
"id": "1124"
}
},
"app_instance": {
"links": {
"self": "/api/mnoe/v2/product_instances/42/relationships/app_instance",
"related": "/api/mnoe/v2/product_instances/42/app_instance"
},
"data": null
},
"subscriptions": {
"links": {
"self": "/api/mnoe/v2/product_instances/42/relationships/subscriptions",
"related": "/api/mnoe/v2/product_instances/42/subscriptions"
}
},
"sync_status": {
"links": {
"self": "/api/mnoe/v2/product_instances/42/relationships/sync_status",
"related": "/api/mnoe/v2/product_instances/42/sync_status"
}
}
}
}
}
Get ProductInstanceGET/product_instances/{id}
Get a single ProductInstance.
- id
integer
(required) Example: 42The ProductInstance ID
Headers
Content-Type: application/json; charset=utf-8
Body
{
"data": {
"type": "product_instances",
"id": 62,
"attributes": {
"name": "New Name"
}
}
}
Body
{
"data": {
"id": "42",
"type": "product_instances",
"links": {
"self": "/api/mnoe/v2/product_instances/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.236Z",
"updated_at": "2018-09-21T05:30:22.235Z",
"uid": null,
"status": "active",
"api_key": null,
"api_secret": null,
"external_id": null,
"organization_id": "1124"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/product_instances/42/relationships/tenant",
"related": "/api/mnoe/v2/product_instances/42/tenant"
}
},
"product": {
"links": {
"self": "/api/mnoe/v2/product_instances/42/relationships/product",
"related": "/api/mnoe/v2/product_instances/42/product"
},
"data": {
"type": "products",
"id": "1121"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/product_instances/42/relationships/organization",
"related": "/api/mnoe/v2/product_instances/42/organization"
},
"data": {
"type": "organizations",
"id": "1124"
}
},
"app_instance": {
"links": {
"self": "/api/mnoe/v2/product_instances/42/relationships/app_instance",
"related": "/api/mnoe/v2/product_instances/42/app_instance"
},
"data": null
},
"subscriptions": {
"links": {
"self": "/api/mnoe/v2/product_instances/42/relationships/subscriptions",
"related": "/api/mnoe/v2/product_instances/42/subscriptions"
}
},
"sync_status": {
"links": {
"self": "/api/mnoe/v2/product_instances/42/relationships/sync_status",
"related": "/api/mnoe/v2/product_instances/42/sync_status"
}
}
}
}
}
Update a ProductInstancePATCH/product_instances/{id}
Update a single ProductInstance.
- id
integer
(required) Example: 42The ProductInstance ID
Headers
Content-Type: application/json; charset=utf-8
Body
{
"data": {
"type": "product_instances",
"id": 62,
"attributes": {
"name": "New Name"
}
}
}
Body
{
"data": {
"id": "42",
"type": "product_instances",
"links": {
"self": "/api/mnoe/v2/product_instances/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.236Z",
"updated_at": "2018-09-21T05:30:22.235Z",
"uid": null,
"status": "active",
"api_key": null,
"api_secret": null,
"external_id": null,
"organization_id": "1124"
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/product_instances/42/relationships/tenant",
"related": "/api/mnoe/v2/product_instances/42/tenant"
}
},
"product": {
"links": {
"self": "/api/mnoe/v2/product_instances/42/relationships/product",
"related": "/api/mnoe/v2/product_instances/42/product"
},
"data": {
"type": "products",
"id": "1121"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/product_instances/42/relationships/organization",
"related": "/api/mnoe/v2/product_instances/42/organization"
},
"data": {
"type": "organizations",
"id": "1124"
}
},
"app_instance": {
"links": {
"self": "/api/mnoe/v2/product_instances/42/relationships/app_instance",
"related": "/api/mnoe/v2/product_instances/42/app_instance"
},
"data": null
},
"subscriptions": {
"links": {
"self": "/api/mnoe/v2/product_instances/42/relationships/subscriptions",
"related": "/api/mnoe/v2/product_instances/42/subscriptions"
}
},
"sync_status": {
"links": {
"self": "/api/mnoe/v2/product_instances/42/relationships/sync_status",
"related": "/api/mnoe/v2/product_instances/42/sync_status"
}
}
}
}
}
Terminate a ProductInstanceDELETE/product_instances/{id}
Cancels all Subscriptions attached to the ProductInstance and terminates it.
- id
integer
(required) Example: 42The ProductInstance ID
Provisioning | Subscriptions ¶
A Product Subscription
Subscriptions are created when customers place an order for a Product.
When a Subscription is requested, its status
follows the life-cycle:
-
provisioning
: Subscription has been requested and is pending provisioning -
fulfilled
: Subscription has been provisioned and is currently valid -
cancelled
: Subscription has been cancelled and is no longer valid -
suspended
: Subscription is currently suspended and may be re-activated

The following actions can be executed on a Subscription, a SubscriptionEvent is then generated with the action to execute
-
provision
: Request the provisioning of the Subscription -
modify
: Request a modification of the Subscription content preserving the selected pricing plan -
change
: Request a change of pricing plan (upgrade or downgrade) -
suspend
: Request a suspension of a fulfilled Subscription -
renew
: Request the renewal of a suspended Subscription -
cancel
: Request the cancellation of a Subscription
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:22Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:22Z |
uid | Filterable Unique | string | public facing ID used by apps | |
status | Filterable Create only | string | Subscription status. One of: pending | staged | provisioning | fulfilled | cancelled | suspended | abandoned |
pending |
subscription_type | Filterable | string | Subscription type (optional). One of: main | extra | addon |
main |
start_date | Filterable | datetime | Subscription Start Date | 2018-09-21T05:30:17Z |
end_date | Filterable | datetime | Subscription End Date | 2018-10-21T05:30:17Z |
currency | Filterable | string | Subscription currency | USD |
max_licenses | Filterable | integer | Maximum number of licenses | |
available_licenses | Filterable | integer | Available number of licenses | 10 |
external_id | Filterable | string | External reference when invoiced by a third-party system | |
custom_data | Filterable | text | Extra information required to provision the product. Data is based on the Product custom_schema. | |
provisioning_data | Filterable | text | Custom information associated with the subscription to be returned to the customer. | |
available_actions | Filterable | string | Lists available actions for subscription | [“provision”] |
subscription_events_attributes | Filterable Write only | string | Attributes for subscriptions subscription events | |
user_id | Filterable | string | User Id | |
billed_locally | Read only | boolean | true if billing is managed by the platform itself | false |
externally_provisioned | Read only | boolean | true if provisioning is handled by a third-party | true |
local_product | Read only | boolean | true if related product was created by a tenant | false |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
product.id | Product relation |
subscription_status_in | Retrieve subscriptions based on listing filter |
user.id | User relation |
organization.id | Organization relation |
product_pricing.id | Product Pricing relation |
product_contract.id | Product Contract relation |
product_instance.id | Product Instance relation |
license_assignments.id | License Assignments relation |
subscription_events.id | Subscription Events relation |
Relationships
Name | Type | To |
---|---|---|
tenant | One to One | Tenant |
user | One to One | User |
organization | One to One | Organization |
product | One to One | Product |
product_pricing | One to One | Product Pricing |
product_contract | One to One | Product Contract |
product_instance | One to One | Product Instance |
license_assignments | One to Many | License Assignment |
subscription_events | One to Many | Subscription Event |
Subscriptions ¶
Body
{
"data": [
{
"id": "42",
"type": "subscriptions",
"links": {
"self": "/api/mnoe/v2/subscriptions/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.270Z",
"updated_at": "2018-09-21T05:30:22.269Z",
"uid": null,
"status": "pending",
"subscription_type": "main",
"start_date": "2018-09-21T05:30:17.865Z",
"end_date": "2018-10-21T05:30:17.865Z",
"currency": "USD",
"max_licenses": null,
"available_licenses": 10,
"external_id": null,
"custom_data": null,
"provisioning_data": null,
"available_actions": [
"provision"
],
"organization_id": "1132",
"user_id": null,
"product_id": "1128",
"product_pricing_id": "1129",
"product_contract_id": "1130",
"product_instance_id": null,
"billed_locally": false,
"externally_provisioned": true,
"local_product": false
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/tenant",
"related": "/api/mnoe/v2/subscriptions/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/user",
"related": "/api/mnoe/v2/subscriptions/42/user"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/organization",
"related": "/api/mnoe/v2/subscriptions/42/organization"
}
},
"product": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product",
"related": "/api/mnoe/v2/subscriptions/42/product"
}
},
"product_pricing": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_pricing",
"related": "/api/mnoe/v2/subscriptions/42/product_pricing"
}
},
"product_contract": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_contract",
"related": "/api/mnoe/v2/subscriptions/42/product_contract"
}
},
"product_instance": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_instance",
"related": "/api/mnoe/v2/subscriptions/42/product_instance"
}
},
"license_assignments": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/license_assignments",
"related": "/api/mnoe/v2/subscriptions/42/license_assignments"
}
},
"subscription_events": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/subscription_events",
"related": "/api/mnoe/v2/subscriptions/42/subscription_events"
}
}
}
}
]
}
Get SubscriptionsGET/subscriptions
Get the list of subscriptions.
Body
{
"data": {
"relationships": {
"pricing": {
"data": {
"type": "pricings",
"id": "27"
}
},
"organization": {
"data": {
"type": "organizations",
"id": "11920"
}
}
}
}
}
Body
{
"data": {
"id": "42",
"type": "subscriptions",
"links": {
"self": "/api/mnoe/v2/subscriptions/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.270Z",
"updated_at": "2018-09-21T05:30:22.269Z",
"uid": null,
"status": "pending",
"subscription_type": "main",
"start_date": "2018-09-21T05:30:17.865Z",
"end_date": "2018-10-21T05:30:17.865Z",
"currency": "USD",
"max_licenses": null,
"available_licenses": 10,
"external_id": null,
"custom_data": null,
"provisioning_data": null,
"available_actions": [
"provision"
],
"organization_id": "1132",
"user_id": null,
"product_id": "1128",
"product_pricing_id": "1129",
"product_contract_id": "1130",
"product_instance_id": null,
"billed_locally": false,
"externally_provisioned": true,
"local_product": false
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/tenant",
"related": "/api/mnoe/v2/subscriptions/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/user",
"related": "/api/mnoe/v2/subscriptions/42/user"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/organization",
"related": "/api/mnoe/v2/subscriptions/42/organization"
}
},
"product": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product",
"related": "/api/mnoe/v2/subscriptions/42/product"
}
},
"product_pricing": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_pricing",
"related": "/api/mnoe/v2/subscriptions/42/product_pricing"
}
},
"product_contract": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_contract",
"related": "/api/mnoe/v2/subscriptions/42/product_contract"
}
},
"product_instance": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_instance",
"related": "/api/mnoe/v2/subscriptions/42/product_instance"
}
},
"license_assignments": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/license_assignments",
"related": "/api/mnoe/v2/subscriptions/42/license_assignments"
}
},
"subscription_events": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/subscription_events",
"related": "/api/mnoe/v2/subscriptions/42/subscription_events"
}
}
}
}
}
Provision a new ProductInstancePOST/subscriptions
Provisioning of a new Product occurs when a new Subscription is requested.
After validating the input parameters, a ProductInstance is created with the Subscription attached to it.
Subscription ¶
Body
{
"data": {
"id": "42",
"type": "subscriptions",
"links": {
"self": "/api/mnoe/v2/subscriptions/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.270Z",
"updated_at": "2018-09-21T05:30:22.269Z",
"uid": null,
"status": "pending",
"subscription_type": "main",
"start_date": "2018-09-21T05:30:17.865Z",
"end_date": "2018-10-21T05:30:17.865Z",
"currency": "USD",
"max_licenses": null,
"available_licenses": 10,
"external_id": null,
"custom_data": null,
"provisioning_data": null,
"available_actions": [
"provision"
],
"organization_id": "1132",
"user_id": null,
"product_id": "1128",
"product_pricing_id": "1129",
"product_contract_id": "1130",
"product_instance_id": null,
"billed_locally": false,
"externally_provisioned": true,
"local_product": false
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/tenant",
"related": "/api/mnoe/v2/subscriptions/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/user",
"related": "/api/mnoe/v2/subscriptions/42/user"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/organization",
"related": "/api/mnoe/v2/subscriptions/42/organization"
}
},
"product": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product",
"related": "/api/mnoe/v2/subscriptions/42/product"
}
},
"product_pricing": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_pricing",
"related": "/api/mnoe/v2/subscriptions/42/product_pricing"
}
},
"product_contract": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_contract",
"related": "/api/mnoe/v2/subscriptions/42/product_contract"
}
},
"product_instance": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_instance",
"related": "/api/mnoe/v2/subscriptions/42/product_instance"
}
},
"license_assignments": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/license_assignments",
"related": "/api/mnoe/v2/subscriptions/42/license_assignments"
}
},
"subscription_events": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/subscription_events",
"related": "/api/mnoe/v2/subscriptions/42/subscription_events"
}
}
}
}
}
Get SubscriptionGET/subscriptions/{id}
Get a single Subscription.
- id
integer
(required) Example: 42The Subscription ID
Headers
Content-Type: application/json; charset=utf-8
Body
{
"data": {
"type": "subscriptions",
"id": 62,
"attributes": {
"external_id": "CT82501"
}
}
}
Body
{
"data": {
"id": "42",
"type": "subscriptions",
"links": {
"self": "/api/mnoe/v2/subscriptions/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.270Z",
"updated_at": "2018-09-21T05:30:22.269Z",
"uid": null,
"status": "pending",
"subscription_type": "main",
"start_date": "2018-09-21T05:30:17.865Z",
"end_date": "2018-10-21T05:30:17.865Z",
"currency": "USD",
"max_licenses": null,
"available_licenses": 10,
"external_id": null,
"custom_data": null,
"provisioning_data": null,
"available_actions": [
"provision"
],
"organization_id": "1132",
"user_id": null,
"product_id": "1128",
"product_pricing_id": "1129",
"product_contract_id": "1130",
"product_instance_id": null,
"billed_locally": false,
"externally_provisioned": true,
"local_product": false
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/tenant",
"related": "/api/mnoe/v2/subscriptions/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/user",
"related": "/api/mnoe/v2/subscriptions/42/user"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/organization",
"related": "/api/mnoe/v2/subscriptions/42/organization"
}
},
"product": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product",
"related": "/api/mnoe/v2/subscriptions/42/product"
}
},
"product_pricing": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_pricing",
"related": "/api/mnoe/v2/subscriptions/42/product_pricing"
}
},
"product_contract": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_contract",
"related": "/api/mnoe/v2/subscriptions/42/product_contract"
}
},
"product_instance": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_instance",
"related": "/api/mnoe/v2/subscriptions/42/product_instance"
}
},
"license_assignments": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/license_assignments",
"related": "/api/mnoe/v2/subscriptions/42/license_assignments"
}
},
"subscription_events": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/subscription_events",
"related": "/api/mnoe/v2/subscriptions/42/subscription_events"
}
}
}
}
}
Update a SubscriptionPATCH/subscriptions/{id}
Update a Subscription.
- id
integer
(required) Example: 42The Subscription ID
ProductInstance Subscriptions ¶
Body
{
"data": [
{
"id": "42",
"type": "subscriptions",
"links": {
"self": "/api/mnoe/v2/subscriptions/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.270Z",
"updated_at": "2018-09-21T05:30:22.269Z",
"uid": null,
"status": "pending",
"subscription_type": "main",
"start_date": "2018-09-21T05:30:17.865Z",
"end_date": "2018-10-21T05:30:17.865Z",
"currency": "USD",
"max_licenses": null,
"available_licenses": 10,
"external_id": null,
"custom_data": null,
"provisioning_data": null,
"available_actions": [
"provision"
],
"organization_id": "1132",
"user_id": null,
"product_id": "1128",
"product_pricing_id": "1129",
"product_contract_id": "1130",
"product_instance_id": null,
"billed_locally": false,
"externally_provisioned": true,
"local_product": false
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/tenant",
"related": "/api/mnoe/v2/subscriptions/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/user",
"related": "/api/mnoe/v2/subscriptions/42/user"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/organization",
"related": "/api/mnoe/v2/subscriptions/42/organization"
}
},
"product": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product",
"related": "/api/mnoe/v2/subscriptions/42/product"
}
},
"product_pricing": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_pricing",
"related": "/api/mnoe/v2/subscriptions/42/product_pricing"
}
},
"product_contract": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_contract",
"related": "/api/mnoe/v2/subscriptions/42/product_contract"
}
},
"product_instance": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_instance",
"related": "/api/mnoe/v2/subscriptions/42/product_instance"
}
},
"license_assignments": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/license_assignments",
"related": "/api/mnoe/v2/subscriptions/42/license_assignments"
}
},
"subscription_events": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/subscription_events",
"related": "/api/mnoe/v2/subscriptions/42/subscription_events"
}
}
}
}
]
}
Get SubscriptionsGET/product_instances/1/subscriptions
Get the list of Subscriptions assigned to a ProductInstance.
Body
{
"data": {
"relationships": {
"pricing": {
"data": {
"type": "pricings",
"id": "28"
}
},
"organization": {
"data": {
"type": "organizations",
"id": "11920"
}
},
"product_instance": {
"data": {
"type": "product_instances",
"id": "24588"
}
}
}
}
}
Body
{
"data": {
"id": "42",
"type": "subscriptions",
"links": {
"self": "/api/mnoe/v2/subscriptions/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.270Z",
"updated_at": "2018-09-21T05:30:22.269Z",
"uid": null,
"status": "pending",
"subscription_type": "main",
"start_date": "2018-09-21T05:30:17.865Z",
"end_date": "2018-10-21T05:30:17.865Z",
"currency": "USD",
"max_licenses": null,
"available_licenses": 10,
"external_id": null,
"custom_data": null,
"provisioning_data": null,
"available_actions": [
"provision"
],
"organization_id": "1132",
"user_id": null,
"product_id": "1128",
"product_pricing_id": "1129",
"product_contract_id": "1130",
"product_instance_id": null,
"billed_locally": false,
"externally_provisioned": true,
"local_product": false
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/tenant",
"related": "/api/mnoe/v2/subscriptions/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/user",
"related": "/api/mnoe/v2/subscriptions/42/user"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/organization",
"related": "/api/mnoe/v2/subscriptions/42/organization"
}
},
"product": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product",
"related": "/api/mnoe/v2/subscriptions/42/product"
}
},
"product_pricing": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_pricing",
"related": "/api/mnoe/v2/subscriptions/42/product_pricing"
}
},
"product_contract": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_contract",
"related": "/api/mnoe/v2/subscriptions/42/product_contract"
}
},
"product_instance": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_instance",
"related": "/api/mnoe/v2/subscriptions/42/product_instance"
}
},
"license_assignments": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/license_assignments",
"related": "/api/mnoe/v2/subscriptions/42/license_assignments"
}
},
"subscription_events": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/subscription_events",
"related": "/api/mnoe/v2/subscriptions/42/subscription_events"
}
}
}
}
}
Assign a new SubscriptionPOST/product_instances/1/subscriptions
Additional Subscriptions can be attached to an existing ProductInstance when purchasing addons or extra licenses. A valid Subscription is required when purchasing extra Subscriptions.
Subscription ¶
Headers
Content-Type: application/json; charset=utf-8
Body
{}
Body
{
"data": {
"id": "42",
"type": "subscriptions",
"links": {
"self": "/api/mnoe/v2/subscriptions/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.270Z",
"updated_at": "2018-09-21T05:30:22.269Z",
"uid": null,
"status": "pending",
"subscription_type": "main",
"start_date": "2018-09-21T05:30:17.865Z",
"end_date": "2018-10-21T05:30:17.865Z",
"currency": "USD",
"max_licenses": null,
"available_licenses": 10,
"external_id": null,
"custom_data": null,
"provisioning_data": null,
"available_actions": [
"provision"
],
"organization_id": "1132",
"user_id": null,
"product_id": "1128",
"product_pricing_id": "1129",
"product_contract_id": "1130",
"product_instance_id": null,
"billed_locally": false,
"externally_provisioned": true,
"local_product": false
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/tenant",
"related": "/api/mnoe/v2/subscriptions/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/user",
"related": "/api/mnoe/v2/subscriptions/42/user"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/organization",
"related": "/api/mnoe/v2/subscriptions/42/organization"
}
},
"product": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product",
"related": "/api/mnoe/v2/subscriptions/42/product"
}
},
"product_pricing": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_pricing",
"related": "/api/mnoe/v2/subscriptions/42/product_pricing"
}
},
"product_contract": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_contract",
"related": "/api/mnoe/v2/subscriptions/42/product_contract"
}
},
"product_instance": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_instance",
"related": "/api/mnoe/v2/subscriptions/42/product_instance"
}
},
"license_assignments": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/license_assignments",
"related": "/api/mnoe/v2/subscriptions/42/license_assignments"
}
},
"subscription_events": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/subscription_events",
"related": "/api/mnoe/v2/subscriptions/42/subscription_events"
}
}
}
}
}
Approve a SubscriptionPOST/subscriptions/{id}/approve
Approve a Subscription, transition from status requested
to approved
.
- id
integer
(required) Example: 42The Subscription ID
Subscription ¶
Headers
Content-Type: application/json; charset=utf-8
Body
{}
Body
{
"data": {
"id": "42",
"type": "subscriptions",
"links": {
"self": "/api/mnoe/v2/subscriptions/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.270Z",
"updated_at": "2018-09-21T05:30:22.269Z",
"uid": null,
"status": "pending",
"subscription_type": "main",
"start_date": "2018-09-21T05:30:17.865Z",
"end_date": "2018-10-21T05:30:17.865Z",
"currency": "USD",
"max_licenses": null,
"available_licenses": 10,
"external_id": null,
"custom_data": null,
"provisioning_data": null,
"available_actions": [
"provision"
],
"organization_id": "1132",
"user_id": null,
"product_id": "1128",
"product_pricing_id": "1129",
"product_contract_id": "1130",
"product_instance_id": null,
"billed_locally": false,
"externally_provisioned": true,
"local_product": false
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/tenant",
"related": "/api/mnoe/v2/subscriptions/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/user",
"related": "/api/mnoe/v2/subscriptions/42/user"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/organization",
"related": "/api/mnoe/v2/subscriptions/42/organization"
}
},
"product": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product",
"related": "/api/mnoe/v2/subscriptions/42/product"
}
},
"product_pricing": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_pricing",
"related": "/api/mnoe/v2/subscriptions/42/product_pricing"
}
},
"product_contract": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_contract",
"related": "/api/mnoe/v2/subscriptions/42/product_contract"
}
},
"product_instance": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_instance",
"related": "/api/mnoe/v2/subscriptions/42/product_instance"
}
},
"license_assignments": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/license_assignments",
"related": "/api/mnoe/v2/subscriptions/42/license_assignments"
}
},
"subscription_events": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/subscription_events",
"related": "/api/mnoe/v2/subscriptions/42/subscription_events"
}
}
}
}
}
Fulfill a SubscriptionPOST/subscriptions/{id}/fulfill
Fulfill a Subscription, transition from status approved
to fulfilled
.
- id
integer
(required) Example: 42The Subscription ID
Subscription ¶
Headers
Content-Type: application/json; charset=utf-8
Body
{}
Body
{
"data": {
"id": "42",
"type": "subscriptions",
"links": {
"self": "/api/mnoe/v2/subscriptions/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.270Z",
"updated_at": "2018-09-21T05:30:22.269Z",
"uid": null,
"status": "pending",
"subscription_type": "main",
"start_date": "2018-09-21T05:30:17.865Z",
"end_date": "2018-10-21T05:30:17.865Z",
"currency": "USD",
"max_licenses": null,
"available_licenses": 10,
"external_id": null,
"custom_data": null,
"provisioning_data": null,
"available_actions": [
"provision"
],
"organization_id": "1132",
"user_id": null,
"product_id": "1128",
"product_pricing_id": "1129",
"product_contract_id": "1130",
"product_instance_id": null,
"billed_locally": false,
"externally_provisioned": true,
"local_product": false
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/tenant",
"related": "/api/mnoe/v2/subscriptions/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/user",
"related": "/api/mnoe/v2/subscriptions/42/user"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/organization",
"related": "/api/mnoe/v2/subscriptions/42/organization"
}
},
"product": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product",
"related": "/api/mnoe/v2/subscriptions/42/product"
}
},
"product_pricing": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_pricing",
"related": "/api/mnoe/v2/subscriptions/42/product_pricing"
}
},
"product_contract": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_contract",
"related": "/api/mnoe/v2/subscriptions/42/product_contract"
}
},
"product_instance": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_instance",
"related": "/api/mnoe/v2/subscriptions/42/product_instance"
}
},
"license_assignments": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/license_assignments",
"related": "/api/mnoe/v2/subscriptions/42/license_assignments"
}
},
"subscription_events": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/subscription_events",
"related": "/api/mnoe/v2/subscriptions/42/subscription_events"
}
}
}
}
}
Suspend a SubscriptionPOST/subscriptions/{id}/suspend
Suspend a Subscription, transition from status requested
, approved
, fulfilled
, expired
to suspended
.
- id
integer
(required) Example: 42The Subscription ID
Subscription ¶
Headers
Content-Type: application/json; charset=utf-8
Body
{}
Body
{
"data": {
"id": "42",
"type": "subscriptions",
"links": {
"self": "/api/mnoe/v2/subscriptions/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.270Z",
"updated_at": "2018-09-21T05:30:22.269Z",
"uid": null,
"status": "pending",
"subscription_type": "main",
"start_date": "2018-09-21T05:30:17.865Z",
"end_date": "2018-10-21T05:30:17.865Z",
"currency": "USD",
"max_licenses": null,
"available_licenses": 10,
"external_id": null,
"custom_data": null,
"provisioning_data": null,
"available_actions": [
"provision"
],
"organization_id": "1132",
"user_id": null,
"product_id": "1128",
"product_pricing_id": "1129",
"product_contract_id": "1130",
"product_instance_id": null,
"billed_locally": false,
"externally_provisioned": true,
"local_product": false
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/tenant",
"related": "/api/mnoe/v2/subscriptions/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/user",
"related": "/api/mnoe/v2/subscriptions/42/user"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/organization",
"related": "/api/mnoe/v2/subscriptions/42/organization"
}
},
"product": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product",
"related": "/api/mnoe/v2/subscriptions/42/product"
}
},
"product_pricing": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_pricing",
"related": "/api/mnoe/v2/subscriptions/42/product_pricing"
}
},
"product_contract": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_contract",
"related": "/api/mnoe/v2/subscriptions/42/product_contract"
}
},
"product_instance": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_instance",
"related": "/api/mnoe/v2/subscriptions/42/product_instance"
}
},
"license_assignments": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/license_assignments",
"related": "/api/mnoe/v2/subscriptions/42/license_assignments"
}
},
"subscription_events": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/subscription_events",
"related": "/api/mnoe/v2/subscriptions/42/subscription_events"
}
}
}
}
}
Enable a SubscriptionPOST/subscriptions/{id}/enable
Enable a Subscription, transition from status expired
, suspended
to approved
.
- id
integer
(required) Example: 42The Subscription ID
Subscription ¶
Headers
Content-Type: application/json; charset=utf-8
Body
{}
Body
{
"data": {
"id": "42",
"type": "subscriptions",
"links": {
"self": "/api/mnoe/v2/subscriptions/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.270Z",
"updated_at": "2018-09-21T05:30:22.269Z",
"uid": null,
"status": "pending",
"subscription_type": "main",
"start_date": "2018-09-21T05:30:17.865Z",
"end_date": "2018-10-21T05:30:17.865Z",
"currency": "USD",
"max_licenses": null,
"available_licenses": 10,
"external_id": null,
"custom_data": null,
"provisioning_data": null,
"available_actions": [
"provision"
],
"organization_id": "1132",
"user_id": null,
"product_id": "1128",
"product_pricing_id": "1129",
"product_contract_id": "1130",
"product_instance_id": null,
"billed_locally": false,
"externally_provisioned": true,
"local_product": false
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/tenant",
"related": "/api/mnoe/v2/subscriptions/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/user",
"related": "/api/mnoe/v2/subscriptions/42/user"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/organization",
"related": "/api/mnoe/v2/subscriptions/42/organization"
}
},
"product": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product",
"related": "/api/mnoe/v2/subscriptions/42/product"
}
},
"product_pricing": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_pricing",
"related": "/api/mnoe/v2/subscriptions/42/product_pricing"
}
},
"product_contract": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_contract",
"related": "/api/mnoe/v2/subscriptions/42/product_contract"
}
},
"product_instance": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/product_instance",
"related": "/api/mnoe/v2/subscriptions/42/product_instance"
}
},
"license_assignments": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/license_assignments",
"related": "/api/mnoe/v2/subscriptions/42/license_assignments"
}
},
"subscription_events": {
"links": {
"self": "/api/mnoe/v2/subscriptions/42/relationships/subscription_events",
"related": "/api/mnoe/v2/subscriptions/42/subscription_events"
}
}
}
}
}
Cancel a SubscriptionPOST/subscriptions/{id}/cancel
Cancel a Subscription, transition from status requested
, approved
, fulfilled
, expired
, suspended
to cancelled
.
- id
integer
(required) Example: 42The Subscription ID
Provisioning | LicenseAssignment ¶
Management of Licenses assigned to Users. This is applicable to license based product pricings.
LicenseAssignments defines individual licenses assigned to users. This applies only in the case of subscription with per user pricing.
LicensesAssignments can have the following status:
-
requested
: A license needs to be assigned to the User (default) -
active
: A license is currently active for the User -
revoked
: The license must be revoked from the User
Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | 2018-09-21T05:30:22Z |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:22Z |
status | Filterable | string | Status of the license assignment. One of: requested | active | revoked |
requested |
external_id | Filterable | string | External reference of the license assignment |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
user.id | User relation |
subscription.id | Subscription relation |
Relationships
Name | Type | To |
---|---|---|
tenant | One to One | Tenant |
user | One to One | User |
subscription | One to One | Subscription |
LicenseAssignments ¶
Body
{
"data": [
{
"id": "42",
"type": "license_assignments",
"links": {
"self": "/api/mnoe/v2/license_assignments/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.294Z",
"updated_at": "2018-09-21T05:30:22.293Z",
"user_id": "1135",
"subscription_id": "1142",
"status": "requested",
"external_id": null
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/license_assignments/42/relationships/tenant",
"related": "/api/mnoe/v2/license_assignments/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/license_assignments/42/relationships/user",
"related": "/api/mnoe/v2/license_assignments/42/user"
}
},
"subscription": {
"links": {
"self": "/api/mnoe/v2/license_assignments/42/relationships/subscription",
"related": "/api/mnoe/v2/license_assignments/42/subscription"
}
}
}
}
]
}
Get LicenseAssignmentsGET/license_assignments
Get the list of license assignments.
Headers
Content-Type: application/json; charset=utf-8
Body
{
"data": {
"attributes": {
"status": "requested"
},
"relationships": {
"user": {
"data": {
"type": "users",
"id": 62
}
},
"subscription": {
"data": {
"type": "subscriptions",
"id": 17
}
}
}
}
}
Body
{
"data": {
"id": "42",
"type": "license_assignments",
"links": {
"self": "/api/mnoe/v2/license_assignments/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.294Z",
"updated_at": "2018-09-21T05:30:22.293Z",
"user_id": "1135",
"subscription_id": "1142",
"status": "requested",
"external_id": null
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/license_assignments/42/relationships/tenant",
"related": "/api/mnoe/v2/license_assignments/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/license_assignments/42/relationships/user",
"related": "/api/mnoe/v2/license_assignments/42/user"
}
},
"subscription": {
"links": {
"self": "/api/mnoe/v2/license_assignments/42/relationships/subscription",
"related": "/api/mnoe/v2/license_assignments/42/subscription"
}
}
}
}
}
Create a LicenseAssignmentPOST/license_assignments
Create a new LicenseAssignment.
LicenseAssignment ¶
Body
{
"data": {
"id": "42",
"type": "license_assignments",
"links": {
"self": "/api/mnoe/v2/license_assignments/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.294Z",
"updated_at": "2018-09-21T05:30:22.293Z",
"user_id": "1135",
"subscription_id": "1142",
"status": "requested",
"external_id": null
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/license_assignments/42/relationships/tenant",
"related": "/api/mnoe/v2/license_assignments/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/license_assignments/42/relationships/user",
"related": "/api/mnoe/v2/license_assignments/42/user"
}
},
"subscription": {
"links": {
"self": "/api/mnoe/v2/license_assignments/42/relationships/subscription",
"related": "/api/mnoe/v2/license_assignments/42/subscription"
}
}
}
}
}
Get LicenseAssignmentGET/license_assignments/{id}
Get a single LicenseAssignment.
- id
integer
(required) Example: 42The LicenseAssignment ID
Headers
Content-Type: application/json; charset=utf-8
Body
{
"data": {
"type": "license_assignments",
"id": 114,
"attributes": {
"status": "active",
"external_id": "L928501"
}
}
}
Body
{
"data": {
"id": "42",
"type": "license_assignments",
"links": {
"self": "/api/mnoe/v2/license_assignments/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.294Z",
"updated_at": "2018-09-21T05:30:22.293Z",
"user_id": "1135",
"subscription_id": "1142",
"status": "requested",
"external_id": null
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/license_assignments/42/relationships/tenant",
"related": "/api/mnoe/v2/license_assignments/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/license_assignments/42/relationships/user",
"related": "/api/mnoe/v2/license_assignments/42/user"
}
},
"subscription": {
"links": {
"self": "/api/mnoe/v2/license_assignments/42/relationships/subscription",
"related": "/api/mnoe/v2/license_assignments/42/subscription"
}
}
}
}
}
Headers
Content-Type: application/json; charset=utf-8
Body
{
"data": {
"type": "license_assignments",
"id": 114,
"attributes": {
"status": "revoked"
}
}
}
Body
{
"data": {
"id": "42",
"type": "license_assignments",
"links": {
"self": "/api/mnoe/v2/license_assignments/42"
},
"attributes": {
"created_at": "2018-09-21T05:30:22.294Z",
"updated_at": "2018-09-21T05:30:22.293Z",
"user_id": "1135",
"subscription_id": "1142",
"status": "requested",
"external_id": null
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/license_assignments/42/relationships/tenant",
"related": "/api/mnoe/v2/license_assignments/42/tenant"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/license_assignments/42/relationships/user",
"related": "/api/mnoe/v2/license_assignments/42/user"
}
},
"subscription": {
"links": {
"self": "/api/mnoe/v2/license_assignments/42/relationships/subscription",
"related": "/api/mnoe/v2/license_assignments/42/subscription"
}
}
}
}
}
Update a LicenseAssignmentPATCH/license_assignments/{id}
Update a single LicenseAssignment.
- id
integer
(required) Example: 42The LicenseAssignment ID
Provisioning | SubscriptionEvents ¶
A Subscription Event
These events are generated on Subscription change, either when a user creates, updates or deletes a Subscription. A SubscriptionEvent represents a notification to be sent to a third-party system. It follows its own life-cycle:
-
requested
: Event is waiting for approval before being submitted to a third-party system -
pending
: The request has been transmitted to the third-party system and is waiting to be provisioned -
success
: The request has been sucessfully processed, the source Subscription is automatically updated -
error
: The request has failed and should be retried. An error message will be presented to the user -
rejected
: The request has been rejected by a reseller or administrator

Attributes
Field | Type | Description | Example | |
---|---|---|---|---|
id | Filterable Unique Read only | integer | ID | 42 |
created_at | Filterable Read only | datetime | Date of creation | |
updated_at | Filterable Read only | datetime | Date of last update | 2018-09-21T05:30:22Z |
uid | Filterable Unique | string | public facing ID used by apps | |
event_type | Filterable Read only Create only | string | Subscription Event Type. One of: provision | modify | change | suspend | renew | cancel |
provision |
status | Filterable | string | Subscription Event Status. One of: requested | pending | success | error | rejected |
requested |
obsolete | Filterable | boolean | When flagged as obsolete, SubscriptionEvent should not be processed | false |
message | Filterable | string | Error message when subscription event cannot be processed | hello |
provisioning_data | Filterable | text | Custom information to be returned to the customer after provisioning the account, for example credentials to sign into the provisioned account. | |
user_name | Filterable | string | returns the user_name for the subscription event. | |
subscription_details | Filterable | text | the details for the subscription that is requested. |
Additional Filters
Filter | Description |
---|---|
tenant.id | Tenant relation |
subscription.id | Subscription relation |
organization.id | Organization relation |
user.id | User relation |
product_pricing.id | Product Pricing relation |
Relationships
Name | Type | To |
---|---|---|
tenant | One to One | Tenant |
subscription | One to One | Subscription |
organization | One to One | Organization |
user | One to One | User |
product_pricing | One to One | Product Pricing |
SubscriptionEvents ¶
Body
{
"data": [
{
"id": "42",
"type": "subscription_events",
"links": {
"self": "/api/mnoe/v2/subscription_events/42"
},
"attributes": {
"created_at": null,
"updated_at": "2018-09-21T05:30:22.318Z",
"uid": null,
"event_type": "provision",
"status": "requested",
"obsolete": false,
"message": "hello",
"provisioning_data": null,
"user_name": null,
"subscription_details": null
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/subscription_events/42/relationships/tenant",
"related": "/api/mnoe/v2/subscription_events/42/tenant"
}
},
"subscription": {
"links": {
"self": "/api/mnoe/v2/subscription_events/42/relationships/subscription",
"related": "/api/mnoe/v2/subscription_events/42/subscription"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/subscription_events/42/relationships/organization",
"related": "/api/mnoe/v2/subscription_events/42/organization"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/subscription_events/42/relationships/user",
"related": "/api/mnoe/v2/subscription_events/42/user"
}
},
"product_pricing": {
"links": {
"self": "/api/mnoe/v2/subscription_events/42/relationships/product_pricing",
"related": "/api/mnoe/v2/subscription_events/42/product_pricing"
}
}
}
}
]
}
Get SubscriptionEventsGET/subscription_events
Get the list of subscription_events.
SubscriptionEvent ¶
Body
{
"data": {
"id": "42",
"type": "subscription_events",
"links": {
"self": "/api/mnoe/v2/subscription_events/42"
},
"attributes": {
"created_at": null,
"updated_at": "2018-09-21T05:30:22.318Z",
"uid": null,
"event_type": "provision",
"status": "requested",
"obsolete": false,
"message": "hello",
"provisioning_data": null,
"user_name": null,
"subscription_details": null
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/subscription_events/42/relationships/tenant",
"related": "/api/mnoe/v2/subscription_events/42/tenant"
}
},
"subscription": {
"links": {
"self": "/api/mnoe/v2/subscription_events/42/relationships/subscription",
"related": "/api/mnoe/v2/subscription_events/42/subscription"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/subscription_events/42/relationships/organization",
"related": "/api/mnoe/v2/subscription_events/42/organization"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/subscription_events/42/relationships/user",
"related": "/api/mnoe/v2/subscription_events/42/user"
}
},
"product_pricing": {
"links": {
"self": "/api/mnoe/v2/subscription_events/42/relationships/product_pricing",
"related": "/api/mnoe/v2/subscription_events/42/product_pricing"
}
}
}
}
}
Get SubscriptionEventGET/subscription_events/{id}
Get a single SubscriptionEvent.
- id
integer
(required) Example: 42The SubscriptionEvent ID
SubscriptionEvent ¶
Headers
Content-Type: application/json; charset=utf-8
Body
{}
Body
{
"data": {
"id": "42",
"type": "subscription_events",
"links": {
"self": "/api/mnoe/v2/subscription_events/42"
},
"attributes": {
"created_at": null,
"updated_at": "2018-09-21T05:30:22.318Z",
"uid": null,
"event_type": "provision",
"status": "requested",
"obsolete": false,
"message": "hello",
"provisioning_data": null,
"user_name": null,
"subscription_details": null
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/subscription_events/42/relationships/tenant",
"related": "/api/mnoe/v2/subscription_events/42/tenant"
}
},
"subscription": {
"links": {
"self": "/api/mnoe/v2/subscription_events/42/relationships/subscription",
"related": "/api/mnoe/v2/subscription_events/42/subscription"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/subscription_events/42/relationships/organization",
"related": "/api/mnoe/v2/subscription_events/42/organization"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/subscription_events/42/relationships/user",
"related": "/api/mnoe/v2/subscription_events/42/user"
}
},
"product_pricing": {
"links": {
"self": "/api/mnoe/v2/subscription_events/42/relationships/product_pricing",
"related": "/api/mnoe/v2/subscription_events/42/product_pricing"
}
}
}
}
}
Mark SubscriptionEvent as SuccessPOST/subscription_events/{id}/success
- id
integer
(required) Example: 42The SubscriptionEvent ID
SubscriptionEvent ¶
Headers
Content-Type: application/json; charset=utf-8
Body
{}
Body
{
"data": {
"id": "42",
"type": "subscription_events",
"links": {
"self": "/api/mnoe/v2/subscription_events/42"
},
"attributes": {
"created_at": null,
"updated_at": "2018-09-21T05:30:22.318Z",
"uid": null,
"event_type": "provision",
"status": "requested",
"obsolete": false,
"message": "hello",
"provisioning_data": null,
"user_name": null,
"subscription_details": null
},
"relationships": {
"tenant": {
"links": {
"self": "/api/mnoe/v2/subscription_events/42/relationships/tenant",
"related": "/api/mnoe/v2/subscription_events/42/tenant"
}
},
"subscription": {
"links": {
"self": "/api/mnoe/v2/subscription_events/42/relationships/subscription",
"related": "/api/mnoe/v2/subscription_events/42/subscription"
}
},
"organization": {
"links": {
"self": "/api/mnoe/v2/subscription_events/42/relationships/organization",
"related": "/api/mnoe/v2/subscription_events/42/organization"
}
},
"user": {
"links": {
"self": "/api/mnoe/v2/subscription_events/42/relationships/user",
"related": "/api/mnoe/v2/subscription_events/42/user"
}
},
"product_pricing": {
"links": {
"self": "/api/mnoe/v2/subscription_events/42/relationships/product_pricing",
"related": "/api/mnoe/v2/subscription_events/42/product_pricing"
}
}
}
}
}
Mark SubscriptionEvent as ErrorPOST/subscription_events/{id}/error
- id
integer
(required) Example: 42The SubscriptionEvent ID
Provisioning | Workflows ¶
Manage Products
The first thing you need to do as a Product Provider is to list the Products available to the customers.
References
Create a Product
Update a Product
Add a provisionable Application
Create an application that can be provisioned automatically on customer request.
{
"data":{
"type":"products",
"attributes":{
"name": "Awesome CRM",
"product_type": "application",
"externally_provisioned": true,
"external_id": "CRM029341"
}
}
}
Add an Addon to an existing Application
Add an Addon with a reference to the parent Application. Addons can be provisioned only if the parent Application has already been provisioned.
{
"data":{
"type":"products",
"attributes":{
"name": "Invoicing Module",
"product_type": "application",
"externally_provisioned": true,
"external_id": "CRM0293981"
},
"relationships": {
"parent": {
"data": {
"type": "products",
"id": "92834"
}
}
}
}
}
Manage Product Pricings
After creating a Product, a Pricing must be attached to it before it can be available to the users.
References
Create a Product
Update a Product
Add a Product Pricing
Add a Product Pricing with a monthly recurring charge.
{
"data": {
"attributes": {
"name": "Monthly Subscription",
"description": "User charged on a monthly basis",
"free": false,
"per_duration": 1,
"per_unit": "month",
"prices": "{‘USD’ => 9.95, ‘AUD’ => 12.95, ‘EUR’ => 7.95}"
}
}
}
Provisioning | Product Provider Webhook ¶
SubscriptionEvents ¶
When a Subscriptions is added to a Product flagged as externally_provisioned
, a notification is sent to the provisioning_url
configured under your Product or falls back on your ProductProvider provisioning_url
A POST request containing the content of the SubscriptionEvent is sent to your endpoint. Note that this endpoint must be configured on your application.
You will need to fetch the content of the SubscriptionEvent and the Subscription detail.
Get SubscriptionEvent
Depending on the HTTP status code returned by your webhook, the following will occur:
-
200
or201
: The SubscriptionEvent is flagged assuccess
and the Subscription marked asfulfilled
-
202
: If you process the subscription fulfillment asynchronously, you can return a202
response. The SubscriptionEvent is then flagged aspending
. You will then need to call theSubscriptionEvent
/success
endpoint to flag the request as successful or/error
to flag the request as unsuccessful. You should also specify the message attribute to inform the user of the error cause. -
400..500
(any error): The SubscriptionEvent is flagged aserror
. You will need to update the SubscriptionEvent by setting themessage
attribute with relevant failure information.
Headers
Content-Type: application/json; charset=utf-8
Body
{
"data": {
"id": "5ae20819-23f4-49dd-91f0-2173ba67a7da",
"type": "subscription_events",
"links": {
"self": "http://localhost:3000/api/mnoe/v2/subscription_events/5ae20819-23f4-49dd-91f0-2173ba67a7da"
},
"attributes": {
"created_at": "2017-06-15T05:11:51.000Z",
"updated_at": "2017-06-15T05:11:51.000Z",
"uid": null,
"event_type": "create"
},
"relationships": {
"organization": {
"links": {
"self": "http://localhost:3000/api/mnoe/v2/subscription_events/5ae20819-23f4-49dd-91f0-2173ba67a7da/relationships/organization",
"related": "http://localhost:3000/api/mnoe/v2/subscription_events/5ae20819-23f4-49dd-91f0-2173ba67a7da/organization"
},
"data": {
"type": "organizations",
"id": "1"
}
},
"user": {
"links": {
"self": "http://localhost:3000/api/mnoe/v2/subscription_events/5ae20819-23f4-49dd-91f0-2173ba67a7da/relationships/user",
"related": "http://localhost:3000/api/mnoe/v2/subscription_events/5ae20819-23f4-49dd-91f0-2173ba67a7da/user"
}
},
"subscription": {
"links": {
"self": "http://localhost:3000/api/mnoe/v2/subscription_events/5ae20819-23f4-49dd-91f0-2173ba67a7da/relationships/subscription",
"related": "http://localhost:3000/api/mnoe/v2/subscription_events/5ae20819-23f4-49dd-91f0-2173ba67a7da/subscription"
},
"data": {
"type": "subscriptions",
"id": "f500cc17-1a61-47be-a263-17cc0fbd383a"
}
}
}
}
}
}
Headers
Content-Type: application/json; charset=utf-8
Headers
Content-Type: application/json; charset=utf-8
Body
{
"data": {
"id": "a998cd62-94d8-4b36-9c46-dd381a2b1913",
"type": "subscription_events",
"links": {
"self": "http://localhost:3000/api/mnoe/v2/subscription_events/a998cd62-94d8-4b36-9c46-dd381a2b1913"
},
"attributes": {
"created_at": "2017-06-15T07:22:40.000Z",
"updated_at": "2017-06-15T07:22:40.000Z",
"uid": null,
"event_type": "update"
},
"relationships": {
"organization": {
"links": {
"self": "http://localhost:3000/api/mnoe/v2/subscription_events/a998cd62-94d8-4b36-9c46-dd381a2b1913/relationships/organization",
"related": "http://localhost:3000/api/mnoe/v2/subscription_events/a998cd62-94d8-4b36-9c46-dd381a2b1913/organization"
},
"data": {
"type": "organizations",
"id": "1"
}
},
"user": {
"links": {
"self": "http://localhost:3000/api/mnoe/v2/subscription_events/a998cd62-94d8-4b36-9c46-dd381a2b1913/relationships/user",
"related": "http://localhost:3000/api/mnoe/v2/subscription_events/a998cd62-94d8-4b36-9c46-dd381a2b1913/user"
}
},
"subscription": {
"links": {
"self": "http://localhost:3000/api/mnoe/v2/subscription_events/a998cd62-94d8-4b36-9c46-dd381a2b1913/relationships/subscription",
"related": "http://localhost:3000/api/mnoe/v2/subscription_events/a998cd62-94d8-4b36-9c46-dd381a2b1913/subscription"
},
"data": {
"type": "subscriptions",
"id": "f500cc17-1a61-47be-a263-17cc0fbd383a"
}
}
}
}
}
Headers
Content-Type: application/json; charset=utf-8
Receive SubscriptionEventPOST/subscription_event_webhook
Generated by aglio on 21 Sep 2018