CampusAPI Billing Services API documentation version 0.1.5
Based on OSID version 3.0.0
https://base.url/billing
Overview
The Billing service package manages billing for customers.
This package includes the following entities:
Customers
A Customer is a person known to the billing system. A Customer relates a Resource used to any business speciific data defined in the Customer.
Customers are temporal, with effective dates indicating their association with the business.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this customer, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this customer, provided by system. | string(uri) |
displayName | The name of this customer for display. | string |
description | The description of this customer. | string |
genusTypeId (read‑only) | Id of the immutable type of this customer. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this customer. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
startDate | The starting date of this customer. | string(date‑time) |
endDate | The ending date of this customer. | string(date‑time) |
resourceId (read‑only) | The resource associated with this customer. References a resource.Resource object. | string(osid‑id) |
customerNumber | The customer account number. | string |
activityId | The activity. References a financials.Activity object | string(osid‑id) |
Items
An Item is something that can be billed. Items represent a one-time or recurring charge for some product or service.
Items may relate to a Product in the Ordering service package which manages the costs. Items may also relate to a general ledger Account in the Financials service package.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this item, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this item, provided by system. | string(uri) |
displayName | The name of this item for display. | string |
description | The description of this item. | string |
genusTypeId (read‑only) | Id of the immutable type of this item. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this item. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
categoryId | The item category. References a billing.Category object | string(osid‑id) |
accountId | The item account. References a financials.Account object | string(osid‑id) |
productId | The product. References an ordering.Product object | string(osid‑id) |
amount | The amount of this item. | boolean |
debit | -- could someone please write a description for this -- | SYNTAX_TYPE_NOT_FOUND: NONE |
recurringInterval | The recurring interval. | string(duration) |
Categories
Items can be categorized using a Category. Categories are used to group items on a billing statement.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this category, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this category, provided by system. | string(uri) |
displayName | The name of this category for display. | string |
description | The description of this category. | string |
genusTypeId (read‑only) | Id of the immutable type of this category. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this category. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
Entries
An Entry is an relationship relating a Customer to an Item in a billing Period. An Entry captures the cost which may have been informed by the related Item.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this entry, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this entry, provided by system. | string(uri) |
displayName | The name of this entry for display. | string |
description | The description of this entry. | string |
genusTypeId (read‑only) | Id of the immutable type of this entry. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this entry. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
startDate | The starting date of this entry. | string(date‑time) |
endDate | The ending date of this entry. | string(date‑time) |
endReasonId | The reason this entry ended. References a process.State object. | string(osid‑id) |
customerId (read‑only) | The customer associated with this entry. References a billing.Customer object. | string(osid‑id) |
itemId (read‑only) | The item associated with this entry. References a billing.Item object. | string(osid‑id) |
periodId (read‑only) | The period associated with this entry. References a billing.Period object. | string(osid‑id) |
quantity | The quantity of the item. | integer |
amount | The amount of this entry. | string(currency) |
debit | Tests if the amount is a debit or a credit. | boolean |
Periods
A Period is a billing period in which billing entries applies. Periods have a set of milestone dates including start and end of the billing period.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this period, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this period, provided by system. | string(uri) |
displayName | The name of this period for display. | string |
description | The description of this period. | string |
genusTypeId (read‑only) | Id of the immutable type of this period. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this period. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
displayLabel | A display label for this period which may be less formal than the display name. | string |
openDate | The open date. | string(date‑time) |
closeDate | The close date. | string(date‑time) |
billingDate | The billing date. | string(date‑time) |
dueDate | The due date. | string(date‑time) |
Businesses
Customers, Items, Categories, Entries, and Periods can be organized into federateble Businesses.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this business, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this business, provided by system. | string(uri) |
displayName | The name of this business for display. | string |
description | The description of this business. | string |
genusTypeId (read‑only) | Id of the immutable type of this business. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this business. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
providerId | The provider of this business. References a resource.Resource object. | string(osid‑id) |
brandingIds | The branding of this business. References repository.Asset objects. | string(osid‑id)[] |
license | The licensing that applies to this business. | string |
License
CampusAPI REST Documentation Copyright 2023 DXtera Institute. Based on the Open Service Interface Definitions: http://osid.org
/customers
Collection of Customers in a system, federation of systems, or in a default Business.
Get all Customers in the system or default Business.
Create a new Customer in the default Business.
get /customers
Get all Customers in the system or default Business.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "activity", "resource", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleCustomerType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleCustomerType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleCustomerType%40campusapi.org
- fromDate: (string)
Get all customers from this date inclusive. Use with toDate to define date range query.
Example:
2020-10-03
- toDate: (string)
Get all customers up to this date inclusive. Use with fromDate to define date range query.
Example:
2020-12-18
- resourceId: (string)
the id string to match a resource.
Example:
resource.Resource%3A512%40base.url
- activityId: (string)
Id string to match activity.
Example:
financials.Activity%3A8475%40base.url
- businessId: (string)
The id string to match a business
Example:
billing.Business%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "billing.Customer:8346@base.url",
"uri": "http://base.url/open/campusapi/billing/customer/billing.Customer%3A8346%40base.url",
"displayName": "Display Name of this Customer",
"description": "The description of this Customer",
"genusTypeId": "type.Type:defaultCustomerType@base.url",
"recordTypeIds": [ "type.Type:exampleCustomerRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"resourceId": "resource.Resource:6780@base.url",
"customerNumber": "101",
"activityId": "financials.Activity:2439@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /customers
Create a new Customer in the default Business.
Query Parameters
- resourceId: required(string)
the resource of this customer.
Example:
resource.Resource%3A512%40base.url
- genusType: (string)
specify a particular customer type to create
Example:
type.Type%3AexampleCustomerType%40dxtera.org
- recordType: (array of )
specify support for one or more customer record types
Example:
[ "type.Type%3AexampleCustomerRecordType%40campusapi.org", "..." ]
- businessId: (string)
specify in which business to create this customer
Example:
billing.Business%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Customer",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this customer, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this customer, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this customer for display.",
"type": "string"
},
"description": {
"description": "The description of this customer.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this customer. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this customer. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this customer.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this customer.",
"type": "string",
"format": "date-time"
},
"resourceId": {
"description": "The resource associated with this customer.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"customerNumber": {
"description": "The customer account number.",
"type": "string"
},
"activityId": {
"description": "The activity.",
"type": "string",
"format": "osid-id"
}
}
}
Example:
{
"displayName": "Display Name of this Customer",
"description": "The description of this Customer",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"customerNumber": "101",
"activityId": "financials.Activity:4376@base.url"
}
Query the collection of Customers in a system, federation of systems, or in a default business by posting a Query object.
Submit a query using a CustomerQuery object.
post /customers/customer-query
Submit a query using a CustomerQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "activity", "resource", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "CustomerQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchEffective": {
"description": "Match effective objects where the current date falls within the start and end dates inclusive. true to match any effective, false to match ineffective",
"type": "boolean"
},
"matchStartDate": {
"description": "Matches temporals whose start date falls in between the given dates inclusive.",
"type": "object",
"properties": {
"start": {
"description": "start of date range",
"type": "string",
"format": "date-time"
},
"end": {
"description": "end of date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true if a positive match, false for negative match",
"type": "boolean"
}
}
},
"matchEndDate": {
"description": "Matches temporals whose end date falls in between the given dates inclusive.",
"type": "object",
"properties": {
"start": {
"description": "start of date range",
"type": "string",
"format": "date-time"
},
"end": {
"description": "end of date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true if a positive match, false for negative match",
"type": "boolean"
}
}
},
"matchResourceIds": {
"description": "List of resource Ids for this query to match customer that have a related resource.",
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"resourceQueries": {
"description": "ResourceQueries to match the resource. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchCustomerNumber": {
"description": "List of CustomerNumber strings to match. Boolean OR performed among multiple customerNumbers.",
"type": "array",
"items": {
"type": "object",
"properties": {
"customerNumbers": {
"description": "customerNumbers to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyCustomerNumber": {
"description": "Match customerNumbers with any value. true to match Customers with any customer number, false to match ProgramOfferings with no customer number",
"type": "boolean"
},
"matchActivityIds": {
"description": "List of Activity Ids for this query to match activity.",
"type": "array",
"items": {
"type": "object",
"properties": {
"activityId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"activityQueries": {
"description": "financials.ActivityQueries to match the Activity. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyActivity": {
"description": "Match activity with any value. true to match Customers with any activity, false to match Customers with no activity",
"type": "boolean"
},
"matchBusinessIds": {
"description": "List of Business Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"businessId": {
"description": "Business id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"businessQueries": {
"description": "BusinessQueries to match Business. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "billing.Customer:8346@base.url",
"uri": "http://base.url/open/campusapi/billing/customer/billing.Customer%3A8346%40base.url",
"displayName": "Display Name of this Customer",
"description": "The description of this Customer",
"genusTypeId": "type.Type:defaultCustomerType@base.url",
"recordTypeIds": [ "type.Type:exampleCustomerRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"resourceId": "resource.Resource:6780@base.url",
"customerNumber": "101",
"activityId": "financials.Activity:2439@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Customer form metadata.
Get form metadata for creating a new Customer.
get /customers/metadata
Get form metadata for creating a new Customer.
Query Parameters
- resourceId: required(string)
the resource of this metadatum.
Example:
resource.Resource%3A512%40base.url
- genusType: (string)
specify a particular customer type to create
Example:
type.Type%3AexampleCustomerType%40dxtera.org
- recordType: (array of )
specify support for one or more customer record types
Example:
[ "type.Type%3AexampleCustomerRecordType%40campusapi.org", "..." ]
- businessId: (string)
specify in which business to create this customer
Example:
billing.Business%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Customer",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this customer, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this customer, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this customer for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Customer.Customer:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this customer",
"linked": false
},
"description": {
"description": "The description of this customer.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Customer.Customer:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this customer",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this customer. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this customer. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this customer.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Customer.Customer:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this customer",
"linked": false
},
"endDate": {
"description": "The ending date of this customer.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Customer.Customer:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this customer",
"linked": false
},
"customerNumber": {
"description": "The customer account number.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "billing.Customer:customerNumber@dxtera.org",
"existingValue": "The existing customer number",
"elementLabel": "Customer Number",
"instructions": "Enter a customer number for this customer.",
"linked": false
},
"activityId": {
"description": "The activity.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "billing.Customer:activity@dxtera.org",
"existingValue": null,
"elementLabel": "Activity",
"instructions": "Enter the Id of the activity for this customer.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Customer
Get a particular Customer given its id.
Update a particular Customer given its id.
Delete a particular Customer given its id.
get /customers/{customerId}
Get a particular Customer given its id.
URI Parameters
- customerId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "activity", "resource", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "billing.Customer:8346@base.url",
"uri": "http://base.url/open/campusapi/billing/customer/billing.Customer%3A8346%40base.url",
"displayName": "Display Name of this Customer",
"description": "The description of this Customer",
"genusTypeId": "type.Type:defaultCustomerType@base.url",
"recordTypeIds": [ "type.Type:exampleCustomerRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"resourceId": "resource.Resource:6780@base.url",
"customerNumber": "101",
"activityId": "financials.Activity:2439@base.url"
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Customer not found" }
put /customers/{customerId}
Update a particular Customer given its id.
URI Parameters
- customerId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Customer",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this customer, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this customer, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this customer for display.",
"type": "string"
},
"description": {
"description": "The description of this customer.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this customer. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this customer. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this customer.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this customer.",
"type": "string",
"format": "date-time"
},
"resourceId": {
"description": "The resource associated with this customer.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"customerNumber": {
"description": "The customer account number.",
"type": "string"
},
"activityId": {
"description": "The activity.",
"type": "string",
"format": "osid-id"
}
}
}
Example:
{
"displayName": "Display Name of this Customer",
"description": "The description of this Customer",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"customerNumber": "101",
"activityId": "financials.Activity:4376@base.url"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Customer has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Customer not found" }
delete /customers/{customerId}
Delete a particular Customer given its id.
URI Parameters
- customerId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Customer has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Customer not found" }
Entity representing a Customer form metadata for update
Get form metadata for updating an existing Customer.
get /customers/{customerId}/metadata
Get form metadata for updating an existing Customer.
URI Parameters
- customerId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Customer",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this customer, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this customer, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this customer for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Customer.Customer:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this customer",
"linked": false
},
"description": {
"description": "The description of this customer.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Customer.Customer:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this customer",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this customer. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this customer. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this customer.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Customer.Customer:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this customer",
"linked": false
},
"endDate": {
"description": "The ending date of this customer.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Customer.Customer:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this customer",
"linked": false
},
"customerNumber": {
"description": "The customer account number.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "billing.Customer:customerNumber@dxtera.org",
"existingValue": "The existing customer number",
"elementLabel": "Customer Number",
"instructions": "Enter a customer number for this customer.",
"linked": false
},
"activityId": {
"description": "The activity.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "billing.Customer:activity@dxtera.org",
"existingValue": null,
"elementLabel": "Activity",
"instructions": "Enter the Id of the activity for this customer.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "customer not found" }
/items
Collection of Items in a system, federation of systems, or in a default Business.
Get all Items in the system or default Business.
Create a new Item in the default Business.
get /items
Get all Items in the system or default Business.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "category", "account", "product", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleItemType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleItemType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleItemType%40campusapi.org
- categoryId: (string)
Id string to match category.
Example:
billing.Category%3A22%40base.url
- accountId: (string)
Id string to match account.
Example:
financials.Account%3A4454%40base.url
- productId: (string)
Id string to match product.
Example:
ordering.Product%3A7216%40base.url
- businessId: (string)
The id string to match a business
Example:
billing.Business%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "billing.Item:9815@base.url",
"uri": "http://base.url/open/campusapi/billing/item/billing.Item%3A9815%40base.url",
"displayName": "Display Name of this Item",
"description": "The description of this Item",
"genusTypeId": "type.Type:defaultItemType@base.url",
"recordTypeIds": [ "type.Type:exampleItemRecordType@campusapi.org", "..."],
"categoryId": "billing.Category:7710@base.url",
"accountId": "financials.Account:3960@base.url",
"productId": "ordering.Product:5545@base.url",
"amount": true,
"recurringInterval": "P3DT3H"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /items
Create a new Item in the default Business.
Query Parameters
- genusType: (string)
specify a particular item type to create
Example:
type.Type%3AexampleItemType%40dxtera.org
- recordType: (array of )
specify support for one or more item record types
Example:
[ "type.Type%3AexampleItemRecordType%40campusapi.org", "..." ]
- businessId: (string)
specify in which business to create this item
Example:
billing.Business%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Item",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this item, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this item, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this item for display.",
"type": "string"
},
"description": {
"description": "The description of this item.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this item. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this item. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"categoryId": {
"description": "The item category.",
"type": "string",
"format": "osid-id"
},
"accountId": {
"description": "The item account.",
"type": "string",
"format": "osid-id"
},
"productId": {
"description": "The product.",
"type": "string",
"format": "osid-id"
},
"amount": {
"description": "The amount of this item.",
"type": "boolean"
},
"debit": {
"description": "-- could someone please write a description for this --",
"type": "SYNTAX_TYPE_NOT_FOUND"
},
"recurringInterval": {
"description": "The recurring interval.",
"type": "string",
"format": "duration"
}
}
}
Example:
{
"displayName": "Display Name of this Item",
"description": "The description of this Item",
"categoryId": "billing.Category:8762@base.url",
"accountId": "financials.Account:2449@base.url",
"productId": "ordering.Product:953@base.url",
"amount": true,
"recurringInterval": "P3DT3H"
}
Query the collection of Items in a system, federation of systems, or in a default business by posting a Query object.
Submit a query using a ItemQuery object.
post /items/item-query
Submit a query using a ItemQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "category", "account", "product", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ItemQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchCategoryIds": {
"description": "List of Category Ids for this query to match category.",
"type": "array",
"items": {
"type": "object",
"properties": {
"categoryId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"categoryQueries": {
"description": "billing.CategoryQueries to match the Category. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyCategory": {
"description": "Match category with any value. true to match Items with any category, false to match Items with no category",
"type": "boolean"
},
"matchAccountIds": {
"description": "List of Account Ids for this query to match account.",
"type": "array",
"items": {
"type": "object",
"properties": {
"accountId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"accountQueries": {
"description": "financials.AccountQueries to match the Account. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyAccount": {
"description": "Match account with any value. true to match Items with any account, false to match Items with no account",
"type": "boolean"
},
"matchProductIds": {
"description": "List of Product Ids for this query to match product.",
"type": "array",
"items": {
"type": "object",
"properties": {
"productId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"productQueries": {
"description": "ordering.ProductQueries to match the Product. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyProduct": {
"description": "Match product with any value. true to match Items with any product, false to match Items with no product",
"type": "boolean"
},
"matchAmount": {
"description": "Match boolean value for amount.",
"type": "object",
"properties": {
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
},
"matchDebit": {
"description": "not yet supported",
"type": "NONE"
},
"matchRecurringInterval": {
"description": "Matches recurringIntervals in the given range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"description": "start range",
"type": "string",
"format": "duration"
},
"to": {
"description": "end range",
"type": "string",
"format": "duration"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyRecurringInterval": {
"description": "Match recurringIntervals with any value. true to match Items with any recurring interval, false to match ProgramOfferings with no recurring interval",
"type": "boolean"
},
"matchBusinessIds": {
"description": "List of Business Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"businessId": {
"description": "Business id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"businessQueries": {
"description": "BusinessQueries to match Business. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "billing.Item:9815@base.url",
"uri": "http://base.url/open/campusapi/billing/item/billing.Item%3A9815%40base.url",
"displayName": "Display Name of this Item",
"description": "The description of this Item",
"genusTypeId": "type.Type:defaultItemType@base.url",
"recordTypeIds": [ "type.Type:exampleItemRecordType@campusapi.org", "..."],
"categoryId": "billing.Category:7710@base.url",
"accountId": "financials.Account:3960@base.url",
"productId": "ordering.Product:5545@base.url",
"amount": true,
"recurringInterval": "P3DT3H"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Item form metadata.
Get form metadata for creating a new Item.
get /items/metadata
Get form metadata for creating a new Item.
Query Parameters
- genusType: (string)
specify a particular item type to create
Example:
type.Type%3AexampleItemType%40dxtera.org
- recordType: (array of )
specify support for one or more item record types
Example:
[ "type.Type%3AexampleItemRecordType%40campusapi.org", "..." ]
- businessId: (string)
specify in which business to create this item
Example:
billing.Business%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Item",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this item, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this item, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this item for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Item.Item:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this item",
"linked": false
},
"description": {
"description": "The description of this item.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Item.Item:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this item",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this item. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this item. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"categoryId": {
"description": "The item category.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "billing.Item:category@dxtera.org",
"existingValue": null,
"elementLabel": "Category",
"instructions": "Enter the Id of the category for this item.",
"linked": false
},
"accountId": {
"description": "The item account.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "billing.Item:account@dxtera.org",
"existingValue": null,
"elementLabel": "Account",
"instructions": "Enter the Id of the account for this item.",
"linked": false
},
"productId": {
"description": "The product.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "billing.Item:product@dxtera.org",
"existingValue": null,
"elementLabel": "Product",
"instructions": "Enter the Id of the product for this item.",
"linked": false
},
"amount": {
"description": "The amount of this item.",
"type": "boolean",
"elementId": "billing.Item:amount@dxtera.org",
"existingValue": false,
"elementLabel": "Amount",
"instructions": "Enter true or false.",
"linked": false
},
"debit": {
"description": "-- could someone please write a description for this --",
"type": "SYNTAX_TYPE_NOT_FOUND",
"elementId": "billing.Item:debit@dxtera.org",
"existingValue": null,
"elementLabel": "Debit",
"instructions": "NEED TO GENERATE AN INSTRUCTION FOR NONE.",
"linked": false
},
"recurringInterval": {
"description": "The recurring interval.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "billing.Item:recurringInterval@dxtera.org",
"existingValue": "",
"elementLabel": "Recurring Interval",
"instructions": "Enter the recurring interval of this item.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Item
Get a particular Item given its id.
Update a particular Item given its id.
Delete a particular Item given its id.
get /items/{itemId}
Get a particular Item given its id.
URI Parameters
- itemId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "category", "account", "product", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "billing.Item:9815@base.url",
"uri": "http://base.url/open/campusapi/billing/item/billing.Item%3A9815%40base.url",
"displayName": "Display Name of this Item",
"description": "The description of this Item",
"genusTypeId": "type.Type:defaultItemType@base.url",
"recordTypeIds": [ "type.Type:exampleItemRecordType@campusapi.org", "..."],
"categoryId": "billing.Category:7710@base.url",
"accountId": "financials.Account:3960@base.url",
"productId": "ordering.Product:5545@base.url",
"amount": true,
"recurringInterval": "P3DT3H"
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Item not found" }
put /items/{itemId}
Update a particular Item given its id.
URI Parameters
- itemId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Item",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this item, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this item, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this item for display.",
"type": "string"
},
"description": {
"description": "The description of this item.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this item. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this item. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"categoryId": {
"description": "The item category.",
"type": "string",
"format": "osid-id"
},
"accountId": {
"description": "The item account.",
"type": "string",
"format": "osid-id"
},
"productId": {
"description": "The product.",
"type": "string",
"format": "osid-id"
},
"amount": {
"description": "The amount of this item.",
"type": "boolean"
},
"debit": {
"description": "-- could someone please write a description for this --",
"type": "SYNTAX_TYPE_NOT_FOUND"
},
"recurringInterval": {
"description": "The recurring interval.",
"type": "string",
"format": "duration"
}
}
}
Example:
{
"displayName": "Display Name of this Item",
"description": "The description of this Item",
"categoryId": "billing.Category:8762@base.url",
"accountId": "financials.Account:2449@base.url",
"productId": "ordering.Product:953@base.url",
"amount": true,
"recurringInterval": "P3DT3H"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Item has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Item not found" }
delete /items/{itemId}
Delete a particular Item given its id.
URI Parameters
- itemId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Item has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Item not found" }
Entity representing a Item form metadata for update
Get form metadata for updating an existing Item.
get /items/{itemId}/metadata
Get form metadata for updating an existing Item.
URI Parameters
- itemId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Item",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this item, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this item, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this item for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Item.Item:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this item",
"linked": false
},
"description": {
"description": "The description of this item.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Item.Item:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this item",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this item. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this item. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"categoryId": {
"description": "The item category.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "billing.Item:category@dxtera.org",
"existingValue": null,
"elementLabel": "Category",
"instructions": "Enter the Id of the category for this item.",
"linked": false
},
"accountId": {
"description": "The item account.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "billing.Item:account@dxtera.org",
"existingValue": null,
"elementLabel": "Account",
"instructions": "Enter the Id of the account for this item.",
"linked": false
},
"productId": {
"description": "The product.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "billing.Item:product@dxtera.org",
"existingValue": null,
"elementLabel": "Product",
"instructions": "Enter the Id of the product for this item.",
"linked": false
},
"amount": {
"description": "The amount of this item.",
"type": "boolean",
"elementId": "billing.Item:amount@dxtera.org",
"existingValue": false,
"elementLabel": "Amount",
"instructions": "Enter true or false.",
"linked": false
},
"debit": {
"description": "-- could someone please write a description for this --",
"type": "SYNTAX_TYPE_NOT_FOUND",
"elementId": "billing.Item:debit@dxtera.org",
"existingValue": null,
"elementLabel": "Debit",
"instructions": "NEED TO GENERATE AN INSTRUCTION FOR NONE.",
"linked": false
},
"recurringInterval": {
"description": "The recurring interval.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "billing.Item:recurringInterval@dxtera.org",
"existingValue": "",
"elementLabel": "Recurring Interval",
"instructions": "Enter the recurring interval of this item.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "item not found" }
/categories
Collection of Categories in a system, federation of systems, or in a default Business.
Get all Categories in the system or default Business.
Create a new Category in the default Business.
get /categories
Get all Categories in the system or default Business.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleCategoryType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleCategoryType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleCategoryType%40campusapi.org
- businessId: (string)
The id string to match a business
Example:
billing.Business%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "billing.Category:3493@base.url",
"uri": "http://base.url/open/campusapi/billing/category/billing.Category%3A3493%40base.url",
"displayName": "Display Name of this Category",
"description": "The description of this Category",
"genusTypeId": "type.Type:defaultCategoryType@base.url",
"recordTypeIds": [ "type.Type:exampleCategoryRecordType@campusapi.org", "..."]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /categories
Create a new Category in the default Business.
Query Parameters
- genusType: (string)
specify a particular category type to create
Example:
type.Type%3AexampleCategoryType%40dxtera.org
- recordType: (array of )
specify support for one or more category record types
Example:
[ "type.Type%3AexampleCategoryRecordType%40campusapi.org", "..." ]
- businessId: (string)
specify in which business to create this category
Example:
billing.Business%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Category",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this category, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this category, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this category for display.",
"type": "string"
},
"description": {
"description": "The description of this category.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this category. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this category. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
}
}
}
Example:
{
"displayName": "Display Name of this Category",
"description": "The description of this Category"
}
Query the collection of Categories in a system, federation of systems, or in a default business by posting a Query object.
Submit a query using a CategoryQuery object.
post /categories/category-query
Submit a query using a CategoryQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "CategoryQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchBusinessIds": {
"description": "List of Business Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"businessId": {
"description": "Business id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"businessQueries": {
"description": "BusinessQueries to match Business. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "billing.Category:3493@base.url",
"uri": "http://base.url/open/campusapi/billing/category/billing.Category%3A3493%40base.url",
"displayName": "Display Name of this Category",
"description": "The description of this Category",
"genusTypeId": "type.Type:defaultCategoryType@base.url",
"recordTypeIds": [ "type.Type:exampleCategoryRecordType@campusapi.org", "..."]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Category form metadata.
Get form metadata for creating a new Category.
get /categories/metadata
Get form metadata for creating a new Category.
Query Parameters
- genusType: (string)
specify a particular category type to create
Example:
type.Type%3AexampleCategoryType%40dxtera.org
- recordType: (array of )
specify support for one or more category record types
Example:
[ "type.Type%3AexampleCategoryRecordType%40campusapi.org", "..." ]
- businessId: (string)
specify in which business to create this category
Example:
billing.Business%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Category",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this category, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this category, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this category for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Category.Category:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this category",
"linked": false
},
"description": {
"description": "The description of this category.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Category.Category:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this category",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this category. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this category. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Category
Get a particular Category given its id.
Update a particular Category given its id.
Delete a particular Category given its id.
get /categories/{categoryId}
Get a particular Category given its id.
URI Parameters
- categoryId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "billing.Category:3493@base.url",
"uri": "http://base.url/open/campusapi/billing/category/billing.Category%3A3493%40base.url",
"displayName": "Display Name of this Category",
"description": "The description of this Category",
"genusTypeId": "type.Type:defaultCategoryType@base.url",
"recordTypeIds": [ "type.Type:exampleCategoryRecordType@campusapi.org", "..."]
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Category not found" }
put /categories/{categoryId}
Update a particular Category given its id.
URI Parameters
- categoryId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Category",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this category, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this category, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this category for display.",
"type": "string"
},
"description": {
"description": "The description of this category.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this category. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this category. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
}
}
}
Example:
{
"displayName": "Display Name of this Category",
"description": "The description of this Category"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Category has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Category not found" }
delete /categories/{categoryId}
Delete a particular Category given its id.
URI Parameters
- categoryId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Category has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Category not found" }
Entity representing a Category form metadata for update
Get form metadata for updating an existing Category.
get /categories/{categoryId}/metadata
Get form metadata for updating an existing Category.
URI Parameters
- categoryId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Category",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this category, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this category, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this category for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Category.Category:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this category",
"linked": false
},
"description": {
"description": "The description of this category.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Category.Category:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this category",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this category. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this category. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "category not found" }
/entries
Collection of Entries in a system, federation of systems, or in a default Business.
Get all Entries in the system or default Business.
Create a new Entry in the default Business.
get /entries
Get all Entries in the system or default Business.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "customer", "item", "period", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleEntryType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleEntryType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleEntryType%40campusapi.org
- fromDate: (string)
Get all entries from this date inclusive. Use with toDate to define date range query.
Example:
2020-10-03
- toDate: (string)
Get all entries up to this date inclusive. Use with fromDate to define date range query.
Example:
2020-12-18
- customerId: (string)
the id string to match a customer.
Example:
billing.Customer%3A280%40base.url
- itemId: (string)
the id string to match a item.
Example:
billing.Item%3A140%40base.url
- periodId: (string)
the id string to match a period.
Example:
billing.Period%3A210%40base.url
- businessId: (string)
The id string to match a business
Example:
billing.Business%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "billing.Entry:5408@base.url",
"uri": "http://base.url/open/campusapi/billing/entry/billing.Entry%3A5408%40base.url",
"displayName": "Display Name of this Entry",
"description": "The description of this Entry",
"genusTypeId": "type.Type:defaultEntryType@base.url",
"recordTypeIds": [ "type.Type:exampleEntryRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:5408@base.url",
"customerId": "billing.Customer:1940@base.url",
"itemId": "billing.Item:2096@base.url",
"periodId": "billing.Period:2296@base.url",
"quantity": 19,
"amount": "USD+42.00",
"debit": true
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /entries
Create a new Entry in the default Business.
Query Parameters
- customerId: required(string)
the customer of this entry.
Example:
billing.Customer%3A280%40base.url
- itemId: required(string)
the item of this entry.
Example:
billing.Item%3A140%40base.url
- periodId: required(string)
the period of this entry.
Example:
billing.Period%3A210%40base.url
- genusType: (string)
specify a particular entry type to create
Example:
type.Type%3AexampleEntryType%40dxtera.org
- recordType: (array of )
specify support for one or more entry record types
Example:
[ "type.Type%3AexampleEntryRecordType%40campusapi.org", "..." ]
- businessId: (string)
specify in which business to create this entry
Example:
billing.Business%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Entry",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this entry, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this entry, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this entry for display.",
"type": "string"
},
"description": {
"description": "The description of this entry.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this entry. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this entry. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this entry.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this entry.",
"type": "string",
"format": "date-time"
},
"endReasonId": {
"description": "The reason this entry ended.",
"type": "string",
"format": "osid-id"
},
"customerId": {
"description": "The customer associated with this entry.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"itemId": {
"description": "The item associated with this entry.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"periodId": {
"description": "The period associated with this entry.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"quantity": {
"description": "The quantity of the item.",
"type": "integer",
"minimum": 1
},
"amount": {
"description": "The amount of this entry.",
"type": "string",
"format": "currency"
},
"debit": {
"description": "Tests if the amount is a debit or a credit.",
"type": "boolean"
}
}
}
Example:
{
"displayName": "Display Name of this Entry",
"description": "The description of this Entry",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:820@base.url",
"quantity": 19,
"amount": "USD+42.00",
"debit": true
}
Query the collection of Entries in a system, federation of systems, or in a default business by posting a Query object.
Submit a query using a EntryQuery object.
post /entries/entry-query
Submit a query using a EntryQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "customer", "item", "period", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "EntryQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchEffective": {
"description": "Match effective objects where the current date falls within the start and end dates inclusive. true to match any effective, false to match ineffective",
"type": "boolean"
},
"matchStartDate": {
"description": "Matches temporals whose start date falls in between the given dates inclusive.",
"type": "object",
"properties": {
"start": {
"description": "start of date range",
"type": "string",
"format": "date-time"
},
"end": {
"description": "end of date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true if a positive match, false for negative match",
"type": "boolean"
}
}
},
"matchEndDate": {
"description": "Matches temporals whose end date falls in between the given dates inclusive.",
"type": "object",
"properties": {
"start": {
"description": "start of date range",
"type": "string",
"format": "date-time"
},
"end": {
"description": "end of date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true if a positive match, false for negative match",
"type": "boolean"
}
}
},
"matchEndReasonIds": {
"description": "List of end reason Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"endReasonQueries": {
"description": "process.StateQueries to match end reason state. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyEndReason": {
"description": "Match end reasons with any value. true to match Entries with any end reason, false to match Entries with no end reason",
"type": "boolean"
},
"matchCustomerIds": {
"description": "List of customer Ids for this query to match entry that have a related customer.",
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"customerQueries": {
"description": "CustomerQueries to match the customer. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchItemIds": {
"description": "List of item Ids for this query to match entry that have a related item.",
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"itemQueries": {
"description": "ItemQueries to match the item. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchPeriodIds": {
"description": "List of period Ids for this query to match entry that have a related period.",
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"periodQueries": {
"description": "PeriodQueries to match the period. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchQuantity": {
"description": "Match Entries with quantitys between the given integers inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"min": {
"description": "low number",
"type": "integer"
},
"max": {
"description": "high number",
"type": "integer"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyQuantity": {
"description": "Match quantitys with any value. true to match Entries with any quantity, false to match ProgramOfferings with no quantity",
"type": "boolean"
},
"matchAmount": {
"description": "Matches amounts in the given range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"description": "a starting range",
"type": "string",
"format": "currency"
},
"to": {
"description": "an ending range",
"type": "string",
"format": "currency"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyAmount": {
"description": "Match amounts with any value. true to match Entries with any amount, false to match ProgramOfferings with no amount",
"type": "boolean"
},
"matchDebit": {
"description": "Match boolean value for debit.",
"type": "object",
"properties": {
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
},
"matchBusinessIds": {
"description": "List of Business Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"businessId": {
"description": "Business id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"businessQueries": {
"description": "BusinessQueries to match Business. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "billing.Entry:5408@base.url",
"uri": "http://base.url/open/campusapi/billing/entry/billing.Entry%3A5408%40base.url",
"displayName": "Display Name of this Entry",
"description": "The description of this Entry",
"genusTypeId": "type.Type:defaultEntryType@base.url",
"recordTypeIds": [ "type.Type:exampleEntryRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:5408@base.url",
"customerId": "billing.Customer:1940@base.url",
"itemId": "billing.Item:2096@base.url",
"periodId": "billing.Period:2296@base.url",
"quantity": 19,
"amount": "USD+42.00",
"debit": true
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Entry form metadata.
Get form metadata for creating a new Entry.
get /entries/metadata
Get form metadata for creating a new Entry.
Query Parameters
- customerId: required(string)
the customer of this metadatum.
Example:
billing.Customer%3A280%40base.url
- itemId: required(string)
the item of this metadatum.
Example:
billing.Item%3A140%40base.url
- periodId: required(string)
the period of this metadatum.
Example:
billing.Period%3A210%40base.url
- genusType: (string)
specify a particular entry type to create
Example:
type.Type%3AexampleEntryType%40dxtera.org
- recordType: (array of )
specify support for one or more entry record types
Example:
[ "type.Type%3AexampleEntryRecordType%40campusapi.org", "..." ]
- businessId: (string)
specify in which business to create this entry
Example:
billing.Business%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Entry",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this entry, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this entry, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this entry for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Entry.Entry:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this entry",
"linked": false
},
"description": {
"description": "The description of this entry.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Entry.Entry:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this entry",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this entry. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this entry. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this entry.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Entry.Entry:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this entry",
"linked": false
},
"endDate": {
"description": "The ending date of this entry.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Entry.Entry:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this entry",
"linked": false
},
"endReasonId": {
"description": "The reason this entry ended. A process/State object.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Entry.Entry:endReason@base.url",
"existingValue": "process.State:1860@base.url",
"elementLabel": "End Reason",
"instructions": "Select the reason this entry ended",
"linked": false
},
"quantity": {
"description": "The quantity of the item.",
"type": "integer",
"minimum": 1,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "billing.Entry:quantity@dxtera.org",
"existingValue": 42,
"elementLabel": "Quantity",
"instructions": "Enter the quantity of this entry.",
"linked": false
},
"amount": {
"description": "The amount of this entry.",
"type": "string",
"format": "currency",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "billing.Entry:amount@dxtera.org",
"existingValue": "USD+120.56",
"elementLabel": "Amount",
"instructions": "Enter the amount of this entry.",
"linked": false
},
"debit": {
"description": "Tests if the amount is a debit or a credit.",
"type": "boolean",
"elementId": "billing.Entry:debit@dxtera.org",
"existingValue": false,
"elementLabel": "Debit",
"instructions": "Enter true or false.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Entry
Get a particular Entry given its id.
Update a particular Entry given its id.
Delete a particular Entry given its id.
get /entries/{entryId}
Get a particular Entry given its id.
URI Parameters
- entryId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "customer", "item", "period", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "billing.Entry:5408@base.url",
"uri": "http://base.url/open/campusapi/billing/entry/billing.Entry%3A5408%40base.url",
"displayName": "Display Name of this Entry",
"description": "The description of this Entry",
"genusTypeId": "type.Type:defaultEntryType@base.url",
"recordTypeIds": [ "type.Type:exampleEntryRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:5408@base.url",
"customerId": "billing.Customer:1940@base.url",
"itemId": "billing.Item:2096@base.url",
"periodId": "billing.Period:2296@base.url",
"quantity": 19,
"amount": "USD+42.00",
"debit": true
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Entry not found" }
put /entries/{entryId}
Update a particular Entry given its id.
URI Parameters
- entryId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Entry",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this entry, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this entry, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this entry for display.",
"type": "string"
},
"description": {
"description": "The description of this entry.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this entry. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this entry. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this entry.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this entry.",
"type": "string",
"format": "date-time"
},
"endReasonId": {
"description": "The reason this entry ended.",
"type": "string",
"format": "osid-id"
},
"customerId": {
"description": "The customer associated with this entry.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"itemId": {
"description": "The item associated with this entry.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"periodId": {
"description": "The period associated with this entry.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"quantity": {
"description": "The quantity of the item.",
"type": "integer",
"minimum": 1
},
"amount": {
"description": "The amount of this entry.",
"type": "string",
"format": "currency"
},
"debit": {
"description": "Tests if the amount is a debit or a credit.",
"type": "boolean"
}
}
}
Example:
{
"displayName": "Display Name of this Entry",
"description": "The description of this Entry",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:820@base.url",
"quantity": 19,
"amount": "USD+42.00",
"debit": true
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Entry has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Entry not found" }
delete /entries/{entryId}
Delete a particular Entry given its id.
URI Parameters
- entryId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Entry has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Entry not found" }
Entity representing a Entry form metadata for update
Get form metadata for updating an existing Entry.
get /entries/{entryId}/metadata
Get form metadata for updating an existing Entry.
URI Parameters
- entryId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Entry",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this entry, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this entry, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this entry for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Entry.Entry:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this entry",
"linked": false
},
"description": {
"description": "The description of this entry.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Entry.Entry:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this entry",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this entry. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this entry. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this entry.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Entry.Entry:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this entry",
"linked": false
},
"endDate": {
"description": "The ending date of this entry.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Entry.Entry:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this entry",
"linked": false
},
"endReasonId": {
"description": "The reason this entry ended. A process/State object.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Entry.Entry:endReason@base.url",
"existingValue": "process.State:1860@base.url",
"elementLabel": "End Reason",
"instructions": "Select the reason this entry ended",
"linked": false
},
"quantity": {
"description": "The quantity of the item.",
"type": "integer",
"minimum": 1,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "billing.Entry:quantity@dxtera.org",
"existingValue": 42,
"elementLabel": "Quantity",
"instructions": "Enter the quantity of this entry.",
"linked": false
},
"amount": {
"description": "The amount of this entry.",
"type": "string",
"format": "currency",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "billing.Entry:amount@dxtera.org",
"existingValue": "USD+120.56",
"elementLabel": "Amount",
"instructions": "Enter the amount of this entry.",
"linked": false
},
"debit": {
"description": "Tests if the amount is a debit or a credit.",
"type": "boolean",
"elementId": "billing.Entry:debit@dxtera.org",
"existingValue": false,
"elementLabel": "Debit",
"instructions": "Enter true or false.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "entry not found" }
/periods
Collection of Periods in a system, federation of systems, or in a default Business.
Get all Periods in the system or default Business.
Create a new Period in the default Business.
get /periods
Get all Periods in the system or default Business.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexamplePeriodType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExamplePeriodType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexamplePeriodType%40campusapi.org
- businessId: (string)
The id string to match a business
Example:
billing.Business%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "billing.Period:9300@base.url",
"uri": "http://base.url/open/campusapi/billing/period/billing.Period%3A9300%40base.url",
"displayName": "Display Name of this Period",
"description": "The description of this Period",
"genusTypeId": "type.Type:defaultPeriodType@base.url",
"recordTypeIds": [ "type.Type:examplePeriodRecordType@campusapi.org", "..."],
"displayLabel": "This is the DisplayLabel",
"openDate": "2020-10-03T08:00:00.000Z",
"closeDate": "2020-12-18T17:00:00.000Z",
"billingDate": "2021-07-21T23:15:30.000Z",
"dueDate": "2021-07-21T23:15:30.000Z"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /periods
Create a new Period in the default Business.
Query Parameters
- genusType: (string)
specify a particular period type to create
Example:
type.Type%3AexamplePeriodType%40dxtera.org
- recordType: (array of )
specify support for one or more period record types
Example:
[ "type.Type%3AexamplePeriodRecordType%40campusapi.org", "..." ]
- businessId: (string)
specify in which business to create this period
Example:
billing.Business%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Period",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this period, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this period, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this period for display.",
"type": "string"
},
"description": {
"description": "The description of this period.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this period. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this period. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"displayLabel": {
"description": "A display label for this period which may be less formal than the display name.",
"type": "string"
},
"openDate": {
"description": "The open date.",
"type": "string",
"format": "date-time"
},
"closeDate": {
"description": "The close date.",
"type": "string",
"format": "date-time"
},
"billingDate": {
"description": "The billing date.",
"type": "string",
"format": "date-time"
},
"dueDate": {
"description": "The due date.",
"type": "string",
"format": "date-time"
}
}
}
Example:
{
"displayName": "Display Name of this Period",
"description": "The description of this Period",
"displayLabel": "This is the DisplayLabel",
"openDate": "2020-10-03T08:00:00.000Z",
"closeDate": "2020-12-18T17:00:00.000Z",
"billingDate": "2021-07-21T23:15:30.000Z",
"dueDate": "2021-07-21T23:15:30.000Z"
}
Query the collection of Periods in a system, federation of systems, or in a default business by posting a Query object.
Submit a query using a PeriodQuery object.
post /periods/period-query
Submit a query using a PeriodQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "PeriodQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayLabel": {
"description": "List of DisplayLabel strings to match. Boolean OR performed among multiple displayLabels.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayLabels": {
"description": "displayLabels to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyDisplayLabel": {
"description": "Match displayLabels with any value. true to match Periods with any display label, false to match ProgramOfferings with no display label",
"type": "boolean"
},
"matchOpenDate": {
"description": "Matches openDates between the given date range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"low": {
"description": "low date range",
"type": "string",
"format": "date-time"
},
"high": {
"description": "high date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyOpenDate": {
"description": "Match openDates with any value. true to match Periods with any open date, false to match ProgramOfferings with no open date",
"type": "boolean"
},
"matchCloseDate": {
"description": "Matches closeDates between the given date range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"low": {
"description": "low date range",
"type": "string",
"format": "date-time"
},
"high": {
"description": "high date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyCloseDate": {
"description": "Match closeDates with any value. true to match Periods with any close date, false to match ProgramOfferings with no close date",
"type": "boolean"
},
"matchBillingDate": {
"description": "Matches billingDates between the given date range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"low": {
"description": "low date range",
"type": "string",
"format": "date-time"
},
"high": {
"description": "high date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyBillingDate": {
"description": "Match billingDates with any value. true to match Periods with any billing date, false to match ProgramOfferings with no billing date",
"type": "boolean"
},
"matchDueDate": {
"description": "Matches dueDates between the given date range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"low": {
"description": "low date range",
"type": "string",
"format": "date-time"
},
"high": {
"description": "high date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyDueDate": {
"description": "Match dueDates with any value. true to match Periods with any due date, false to match ProgramOfferings with no due date",
"type": "boolean"
},
"matchBusinessIds": {
"description": "List of Business Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"businessId": {
"description": "Business id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"businessQueries": {
"description": "BusinessQueries to match Business. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "billing.Period:9300@base.url",
"uri": "http://base.url/open/campusapi/billing/period/billing.Period%3A9300%40base.url",
"displayName": "Display Name of this Period",
"description": "The description of this Period",
"genusTypeId": "type.Type:defaultPeriodType@base.url",
"recordTypeIds": [ "type.Type:examplePeriodRecordType@campusapi.org", "..."],
"displayLabel": "This is the DisplayLabel",
"openDate": "2020-10-03T08:00:00.000Z",
"closeDate": "2020-12-18T17:00:00.000Z",
"billingDate": "2021-07-21T23:15:30.000Z",
"dueDate": "2021-07-21T23:15:30.000Z"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Period form metadata.
Get form metadata for creating a new Period.
get /periods/metadata
Get form metadata for creating a new Period.
Query Parameters
- genusType: (string)
specify a particular period type to create
Example:
type.Type%3AexamplePeriodType%40dxtera.org
- recordType: (array of )
specify support for one or more period record types
Example:
[ "type.Type%3AexamplePeriodRecordType%40campusapi.org", "..." ]
- businessId: (string)
specify in which business to create this period
Example:
billing.Business%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Period",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this period, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this period, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this period for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Period.Period:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this period",
"linked": false
},
"description": {
"description": "The description of this period.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Period.Period:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this period",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this period. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this period. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"displayLabel": {
"description": "A display label for this period which may be less formal than the display name.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "billing.Period:displayLabel@dxtera.org",
"existingValue": "The existing display label",
"elementLabel": "Display Label",
"instructions": "Enter a display label for this period.",
"linked": false
},
"openDate": {
"description": "The open date.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "billing.Period:openDate@dxtera.org",
"existingValue": "",
"elementLabel": "Open Date",
"instructions": "Enter the open date of this period.",
"linked": false
},
"closeDate": {
"description": "The close date.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "billing.Period:closeDate@dxtera.org",
"existingValue": "",
"elementLabel": "Close Date",
"instructions": "Enter the close date of this period.",
"linked": false
},
"billingDate": {
"description": "The billing date.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "billing.Period:billingDate@dxtera.org",
"existingValue": "",
"elementLabel": "Billing Date",
"instructions": "Enter the billing date of this period.",
"linked": false
},
"dueDate": {
"description": "The due date.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "billing.Period:dueDate@dxtera.org",
"existingValue": "",
"elementLabel": "Due Date",
"instructions": "Enter the due date of this period.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Period
Get a particular Period given its id.
Update a particular Period given its id.
Delete a particular Period given its id.
get /periods/{periodId}
Get a particular Period given its id.
URI Parameters
- periodId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "billing.Period:9300@base.url",
"uri": "http://base.url/open/campusapi/billing/period/billing.Period%3A9300%40base.url",
"displayName": "Display Name of this Period",
"description": "The description of this Period",
"genusTypeId": "type.Type:defaultPeriodType@base.url",
"recordTypeIds": [ "type.Type:examplePeriodRecordType@campusapi.org", "..."],
"displayLabel": "This is the DisplayLabel",
"openDate": "2020-10-03T08:00:00.000Z",
"closeDate": "2020-12-18T17:00:00.000Z",
"billingDate": "2021-07-21T23:15:30.000Z",
"dueDate": "2021-07-21T23:15:30.000Z"
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Period not found" }
put /periods/{periodId}
Update a particular Period given its id.
URI Parameters
- periodId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Period",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this period, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this period, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this period for display.",
"type": "string"
},
"description": {
"description": "The description of this period.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this period. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this period. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"displayLabel": {
"description": "A display label for this period which may be less formal than the display name.",
"type": "string"
},
"openDate": {
"description": "The open date.",
"type": "string",
"format": "date-time"
},
"closeDate": {
"description": "The close date.",
"type": "string",
"format": "date-time"
},
"billingDate": {
"description": "The billing date.",
"type": "string",
"format": "date-time"
},
"dueDate": {
"description": "The due date.",
"type": "string",
"format": "date-time"
}
}
}
Example:
{
"displayName": "Display Name of this Period",
"description": "The description of this Period",
"displayLabel": "This is the DisplayLabel",
"openDate": "2020-10-03T08:00:00.000Z",
"closeDate": "2020-12-18T17:00:00.000Z",
"billingDate": "2021-07-21T23:15:30.000Z",
"dueDate": "2021-07-21T23:15:30.000Z"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Period has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Period not found" }
delete /periods/{periodId}
Delete a particular Period given its id.
URI Parameters
- periodId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Period has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Period not found" }
Entity representing a Period form metadata for update
Get form metadata for updating an existing Period.
get /periods/{periodId}/metadata
Get form metadata for updating an existing Period.
URI Parameters
- periodId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Period",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this period, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this period, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this period for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Period.Period:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this period",
"linked": false
},
"description": {
"description": "The description of this period.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Period.Period:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this period",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this period. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this period. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"displayLabel": {
"description": "A display label for this period which may be less formal than the display name.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "billing.Period:displayLabel@dxtera.org",
"existingValue": "The existing display label",
"elementLabel": "Display Label",
"instructions": "Enter a display label for this period.",
"linked": false
},
"openDate": {
"description": "The open date.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "billing.Period:openDate@dxtera.org",
"existingValue": "",
"elementLabel": "Open Date",
"instructions": "Enter the open date of this period.",
"linked": false
},
"closeDate": {
"description": "The close date.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "billing.Period:closeDate@dxtera.org",
"existingValue": "",
"elementLabel": "Close Date",
"instructions": "Enter the close date of this period.",
"linked": false
},
"billingDate": {
"description": "The billing date.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "billing.Period:billingDate@dxtera.org",
"existingValue": "",
"elementLabel": "Billing Date",
"instructions": "Enter the billing date of this period.",
"linked": false
},
"dueDate": {
"description": "The due date.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "billing.Period:dueDate@dxtera.org",
"existingValue": "",
"elementLabel": "Due Date",
"instructions": "Enter the due date of this period.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "period not found" }
/businesses
Collection of Businesses in a system or federation of systems.
Get all Businesses.
Create a new Business.
get /businesses
Get all Businesses.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "provider", "branding", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleBusinessType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleBusinessType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleBusinessType%40campusapi.org
- providerId: (string)
Id string to match provider.
Example:
resource.Resource%3A3007%40demo.dxtera.org
- customerId: (string)
Get businesses mapped to this customer.
Example:
billing.Customer%3A448%40demo.dxtera.org
- itemId: (string)
Get businesses mapped to this item.
Example:
billing.Item%3A224%40demo.dxtera.org
- categoryId: (string)
Get businesses mapped to this category.
Example:
billing.Category%3A448%40demo.dxtera.org
- entryId: (string)
Get businesses mapped to this entry.
Example:
billing.Entry%3A280%40demo.dxtera.org
- periodId: (string)
Get businesses mapped to this period.
Example:
billing.Period%3A336%40demo.dxtera.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "billing.Business:70@base.url",
"uri": "http://base.url/open/campusapi/billing/business/billing.Business%3A70%40base.url",
"displayName": "Display Name of this Business",
"description": "The description of this Business",
"genusTypeId": "type.Type:defaultBusinessType@base.url",
"recordTypeIds": [ "type.Type:exampleBusinessRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Business@base.url",
"license": "The license that applies to this Business"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /businesses
Create a new Business.
Query Parameters
- genusType: (string)
specify a particular business type to create
Example:
type.Type%3AexampleBusinessType%40dxtera.org
- recordType: (array of )
specify support for one or more business record types
Example:
[ "type.Type%3AexampleBusinessRecordType%40campusapi.org", "..." ]
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Business",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this business, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this business, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this business for display.",
"type": "string"
},
"description": {
"description": "The description of this business.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this business. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this business. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this business.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this business. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this business.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this Business",
"description": "The description of this Business",
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Business@base.url",
"license": "The license that applies to this Business"
}
Query the collection of Businesses in a system, federation of systems, or in a default business by posting a Query object.
Submit a query using a BusinessQuery object.
post /businesses/business-query
Submit a query using a BusinessQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "BusinessQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchProviderIds": {
"description": "List of provider Ids to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"providerQueries": {
"description": "resource.ResourceQuery for provider. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
},
"matchAnyProvider": {
"description": "Match providers with any value. true to match Business with any provider, false to match Business with no provider",
"type": "boolean"
}
},
"matchBrandingIds": {
"description": "List of branding asset Ids to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"brandingQueries": {
"description": "repository.AssetQuery for branding. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyBranding": {
"description": "Match brandingss with any value. true to match Business with any branding, false to match Business with no branding",
"type": "boolean"
},
"matchlicenses": {
"description": "List of license strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"license": {
"description": "license to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchBusinessIds": {
"description": "List of Business Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"businessId": {
"description": "Business id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"businessQueries": {
"description": "BusinessQueries to match Business. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "billing.Business:70@base.url",
"uri": "http://base.url/open/campusapi/billing/business/billing.Business%3A70%40base.url",
"displayName": "Display Name of this Business",
"description": "The description of this Business",
"genusTypeId": "type.Type:defaultBusinessType@base.url",
"recordTypeIds": [ "type.Type:exampleBusinessRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Business@base.url",
"license": "The license that applies to this Business"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Business form metadata.
Get form metadata for creating a new Business.
get /businesses/metadata
Get form metadata for creating a new Business.
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Business",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this business, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this business, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this business for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Business.Business:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this business",
"linked": false
},
"description": {
"description": "The description of this business.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Business.Business:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this business",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this business. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this business. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this business.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Business.Business:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this business",
"linked": false
},
"brandingIds": {
"description": "The branding of this business. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "Business.Business:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this business",
"linked": false
},
"license": {
"description": "The licensing that applies to this business.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Business.Business:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this business",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
The root Businesses in the Business hierarchy. A node with no parents is an orphan. While all Business Ids are known to the hierarchy, an orphan does not appear in the hierarchy unless explicitly added as a root node or child of another node.
Get all root root-business
get /businesses/root-business
Get all root root-business
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "billing.Business:70@base.url",
"uri": "http://base.url/open/campusapi/billing/business/billing.Business%3A70%40base.url",
"displayName": "Display Name of this Business",
"description": "The description of this Business",
"genusTypeId": "type.Type:defaultBusinessType@base.url",
"recordTypeIds": [ "type.Type:exampleBusinessRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Business@base.url",
"license": "The license that applies to this Business"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Business
Get a particular Business given its id.
Update a particular Business given its id.
Delete a particular Business given its id.
get /businesses/{businessId}
Get a particular Business given its id.
URI Parameters
- businessId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "billing.Business:70@base.url",
"uri": "http://base.url/open/campusapi/billing/business/billing.Business%3A70%40base.url",
"displayName": "Display Name of this Business",
"description": "The description of this Business",
"genusTypeId": "type.Type:defaultBusinessType@base.url",
"recordTypeIds": [ "type.Type:exampleBusinessRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Business@base.url",
"license": "The license that applies to this Business"
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Business not found" }
put /businesses/{businessId}
Update a particular Business given its id.
URI Parameters
- businessId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Business",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this business, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this business, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this business for display.",
"type": "string"
},
"description": {
"description": "The description of this business.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this business. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this business. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this business.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this business. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this business.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this Business",
"description": "The description of this Business",
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Business@base.url",
"license": "The license that applies to this Business"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Business has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Business not found" }
delete /businesses/{businessId}
Delete a particular Business given its id.
URI Parameters
- businessId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Business has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Business not found" }
Entity representing a Business form metadata for update
Get form metadata for updating an existing Business.
get /businesses/{businessId}/metadata
Get form metadata for updating an existing Business.
URI Parameters
- businessId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Business",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this business, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this business, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this business for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Business.Business:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this business",
"linked": false
},
"description": {
"description": "The description of this business.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Business.Business:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this business",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this business. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this business. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this business.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Business.Business:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this business",
"linked": false
},
"brandingIds": {
"description": "The branding of this business. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "Business.Business:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this business",
"linked": false
},
"license": {
"description": "The licensing that applies to this business.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Business.Business:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this business",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "business not found" }
Get child Businesses for the given Business in the hierarchy.
get /businesses/{businessId}/children
Get child Businesses for the given Business in the hierarchy.
URI Parameters
- businessId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "billing.Business:70@base.url",
"uri": "http://base.url/open/campusapi/billing/business/billing.Business%3A70%40base.url",
"displayName": "Display Name of this Business",
"description": "The description of this Business",
"genusTypeId": "type.Type:defaultBusinessType@base.url",
"recordTypeIds": [ "type.Type:exampleBusinessRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Business@base.url",
"license": "The license that applies to this Business"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add Business as child of the given Business in the hierarchy.
Remove the given Business as a child of the given Business in the hierarchy.
put /businesses/{businessId}/children/{childId}
Add Business as child of the given Business in the hierarchy.
URI Parameters
- businessId: required(string)
- childId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The child Business has been added to the hierarchy" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "business not found" }
delete /businesses/{businessId}/children/{childId}
Remove the given Business as a child of the given Business in the hierarchy.
URI Parameters
- businessId: required(string)
- childId: required(string)
Get parent Businesses for the given Business in the hierarchy.
get /businesses/{businessId}/parents
Get parent Businesses for the given Business in the hierarchy.
URI Parameters
- businessId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "billing.Business:70@base.url",
"uri": "http://base.url/open/campusapi/billing/business/billing.Business%3A70%40base.url",
"displayName": "Display Name of this Business",
"description": "The description of this Business",
"genusTypeId": "type.Type:defaultBusinessType@base.url",
"recordTypeIds": [ "type.Type:exampleBusinessRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Business@base.url",
"license": "The license that applies to this Business"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Get all Customers in this Business
get /businesses/{businessId}/customers
Get all Customers in this Business
URI Parameters
- businessId: required(string)
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "activity", "resource", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleCustomerType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleCustomerType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleCustomerType%40campusapi.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "billing.Customer:8346@base.url",
"uri": "http://base.url/open/campusapi/billing/customer/billing.Customer%3A8346%40base.url",
"displayName": "Display Name of this Customer",
"description": "The description of this Customer",
"genusTypeId": "type.Type:defaultCustomerType@base.url",
"recordTypeIds": [ "type.Type:exampleCustomerRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"resourceId": "resource.Resource:6780@base.url",
"customerNumber": "101",
"activityId": "financials.Activity:2439@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given Customer to this Business
Remove the given Customer from the Business.
put /businesses/{businessId}/customers/{customerId}
Add the given Customer to this Business
URI Parameters
- businessId: required(string)
- customerId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Customer has been added to Business" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "Customer not found" }
delete /businesses/{businessId}/customers/{customerId}
Remove the given Customer from the Business.
URI Parameters
- businessId: required(string)
- customerId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Customer has been removed" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "Customer not found" }
Get all Items in this Business
get /businesses/{businessId}/items
Get all Items in this Business
URI Parameters
- businessId: required(string)
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "category", "account", "product", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleItemType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleItemType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleItemType%40campusapi.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "billing.Item:9815@base.url",
"uri": "http://base.url/open/campusapi/billing/item/billing.Item%3A9815%40base.url",
"displayName": "Display Name of this Item",
"description": "The description of this Item",
"genusTypeId": "type.Type:defaultItemType@base.url",
"recordTypeIds": [ "type.Type:exampleItemRecordType@campusapi.org", "..."],
"categoryId": "billing.Category:7710@base.url",
"accountId": "financials.Account:3960@base.url",
"productId": "ordering.Product:5545@base.url",
"amount": true,
"recurringInterval": "P3DT3H"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given Item to this Business
Remove the given Item from the Business.
put /businesses/{businessId}/items/{itemId}
Add the given Item to this Business
URI Parameters
- businessId: required(string)
- itemId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Item has been added to Business" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "Item not found" }
delete /businesses/{businessId}/items/{itemId}
Remove the given Item from the Business.
URI Parameters
- businessId: required(string)
- itemId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Item has been removed" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "Item not found" }
Get all Categories in this Business
get /businesses/{businessId}/categories
Get all Categories in this Business
URI Parameters
- businessId: required(string)
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleCategoryType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleCategoryType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleCategoryType%40campusapi.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "billing.Category:3493@base.url",
"uri": "http://base.url/open/campusapi/billing/category/billing.Category%3A3493%40base.url",
"displayName": "Display Name of this Category",
"description": "The description of this Category",
"genusTypeId": "type.Type:defaultCategoryType@base.url",
"recordTypeIds": [ "type.Type:exampleCategoryRecordType@campusapi.org", "..."]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given Category to this Business
Remove the given Category from the Business.
put /businesses/{businessId}/categories/{categoryId}
Add the given Category to this Business
URI Parameters
- businessId: required(string)
- categoryId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Category has been added to Business" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "Category not found" }
delete /businesses/{businessId}/categories/{categoryId}
Remove the given Category from the Business.
URI Parameters
- businessId: required(string)
- categoryId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Category has been removed" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "Category not found" }
Get all Entries in this Business
get /businesses/{businessId}/entries
Get all Entries in this Business
URI Parameters
- businessId: required(string)
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "customer", "item", "period", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleEntryType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleEntryType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleEntryType%40campusapi.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "billing.Entry:5408@base.url",
"uri": "http://base.url/open/campusapi/billing/entry/billing.Entry%3A5408%40base.url",
"displayName": "Display Name of this Entry",
"description": "The description of this Entry",
"genusTypeId": "type.Type:defaultEntryType@base.url",
"recordTypeIds": [ "type.Type:exampleEntryRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:5408@base.url",
"customerId": "billing.Customer:1940@base.url",
"itemId": "billing.Item:2096@base.url",
"periodId": "billing.Period:2296@base.url",
"quantity": 19,
"amount": "USD+42.00",
"debit": true
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given Entry to this Business
Remove the given Entry from the Business.
put /businesses/{businessId}/entries/{entryId}
Add the given Entry to this Business
URI Parameters
- businessId: required(string)
- entryId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Entry has been added to Business" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "Entry not found" }
delete /businesses/{businessId}/entries/{entryId}
Remove the given Entry from the Business.
URI Parameters
- businessId: required(string)
- entryId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Entry has been removed" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "Entry not found" }
Get all Periods in this Business
get /businesses/{businessId}/periods
Get all Periods in this Business
URI Parameters
- businessId: required(string)
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexamplePeriodType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExamplePeriodType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexamplePeriodType%40campusapi.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "billing.Period:9300@base.url",
"uri": "http://base.url/open/campusapi/billing/period/billing.Period%3A9300%40base.url",
"displayName": "Display Name of this Period",
"description": "The description of this Period",
"genusTypeId": "type.Type:defaultPeriodType@base.url",
"recordTypeIds": [ "type.Type:examplePeriodRecordType@campusapi.org", "..."],
"displayLabel": "This is the DisplayLabel",
"openDate": "2020-10-03T08:00:00.000Z",
"closeDate": "2020-12-18T17:00:00.000Z",
"billingDate": "2021-07-21T23:15:30.000Z",
"dueDate": "2021-07-21T23:15:30.000Z"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given Period to this Business
Remove the given Period from the Business.
put /businesses/{businessId}/periods/{periodId}
Add the given Period to this Business
URI Parameters
- businessId: required(string)
- periodId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Period has been added to Business" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "Period not found" }
delete /businesses/{businessId}/periods/{periodId}
Remove the given Period from the Business.
URI Parameters
- businessId: required(string)
- periodId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Period has been removed" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "Period not found" }