Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Delete a product.
Update a product’s setting.
Get a single product by ID.
Publish a product.
Get a list of products.
Create a new product.
Update some properties of a product.
Unpublish a product.
The Product object represents a collection of items and their relevant parameters curated into a cohesive group for business purposes. Defined by vendors, products are accessible through listings, providing a structured framework for transactional activities.
This object contains the following attributes:
id
This object contains the following attributes:
This object contains the following attributes:
This object contains the following attributes:
This object contains the following attributes:
This object contains the following attributes:
This object contains the following attributes:
orderQueueChanges
boolean
Enables notifications of changes in the order queue.
sendCostToErp
boolean
Allows cost price values to pass through to final billing.
productRequests
object
(Optional) Represents the object, which defines the settings for the product requests page.
preValidation
object
Represents the object, which contains settings used during the pre‑validation phase of the purchase process.
splitBilling
object
Represents the object.
subscriptionCessation
object
Represents the object, which contains settings related to product cessation.
label
string
The label on the product listing card.
agreements
integer
(Read-only) Number of agreements signed with the product.
subscriptions
integer
(Read-only) Number of existing subscriptions to the product.
requests
integer
(Read-only) Number of requests related to the product.
changeOrderDraft
boolean
Validates change order during the creation and before the order is submitted.
terminationOrder
boolean
Validates termination orders during the creation and before the order is submitted.
productRequest
boolean
Validates the product request form while the client is filling in information and before the form is submitted.
string, core
(Read-only) The identifier for the product.
name
string, core
The name of the product.
shortDescription
string
A short description of the product.
longDescription
string
A long description of the product.
website
string
The URL for the product website.
icon
string, core
A logo of the product.
externalIds
object, core
Represents the externalIds object.
vendor
object
Represents the vendor account object.
status
string, core
Represents the product status. Allowed values are:
Draft
Pending
Published
Unpublished
settings
object
Represents the productSettings object.
Activate item selection validation:
Used in the “Purchase wizard” to validate vendor-specific compatibility of selected items, before the order is submitted.
Activate validation of change orders in a draft state
Used to validate vendor-specific rules on a change order within the Purchase wizard (via existing agreement) and the Subscription edit screen
Activate validation of product requests in a draft state
Used to perform vendor-specific validation on the product’s request form before form submission.
Activate validation of purchase orders in a draft state
Used to perform vendor-specific validation of purchase order within the “Purchase wizard”
Activate validation of purchase orders in a querying state
Used to perform vendor-specific validation when client is responding to a purchase order where vendor has requested additional information from the client.
Activate validation of termination order in a draft state
Used to perform vendor-specific validation when client initiates termination order on an agreement or subscription.
Example:
statistics
object
(Read-only) Represents the productStatistics object.
audit
object
(Read-only) Represents the audit object.
productOrdering
boolean
Displays the Buy button, enabling clients to place an order.
itemSelection
boolean
enabled
boolean
Displays a request button on the product card, enabling clients to request more information about a product.
name
string
items
integer
(Read-only) Number of items assigned to the product.
orders
integer
enabled
boolean
Displays the split‑billing button in the dropdown, allowing clients and operations teams to enable split billing for this product.
type
string
enabled
boolean
Specifies whether the product cessation functionality is enabled for this product.
mode
string
purchaseOrderDraft
boolean
Validates purchase order during the creation and before the order is submitted.
purchaseOrderQuerying
boolean
{
"id": "PRD-1234-1234",
"name": "Microsoft 365 online services for commercial",
"shortDescription": "Microsoft 365 and Office 365 are cloud-based productivity suites that offer a range of applications and services to help businesses of all sizes work more efficiently. These plans combine the familiar Microsoft Office desktop suite with cloud-based versions of Microsoft’s next-generation communications and collaboration services to help users be productive from virtually anywhere through the Internet.",
"longDescription": "<p>Microsoft 365 and Office 365 are cloud-based productivity suites that offer a range of applications and services to help businesses of all sizes work more efficiently. These plans combine the familiar Microsoft Office desktop suite with cloud-based versions of Microsoft's next-generation communications and collaboration services (including Office for the web, Microsoft Exchange Online, Microsoft Teams, and Microsoft SharePoint Online) to help users be productive from virtually anywhere through the Internet. Microsoft 365 and Office 365 are available in a variety of plans to best meet the needs of your organization. For detailed plan information on subscriptions that enable users for the Microsoft 365 and Office 365 platforms, see the full subscription comparison table.</p>",
"website": "https://www.microsoft.com",
"icon": "/static/PRD-1234-1234/logo.png"
"vendor": {
"id": "ACC-1234-1234"
},
"state": "Published",
"settings":{
"productOrdering": true,
"productRequests": {
"enabled": true,
"name": "Contact us about Microsoft 365 Online Services",
"label": "Contact us."
},
"itemSelection": false,
"orderQueueChanges": false,
"preValidation": {
"purchaseOrderDraft": false,
"purchaseOrderQuerying": false,
"changeOrderDraft": false,
"terminationOrder": false,
"productRequest": false
}
},
"statistics": {
"item": 100,
"orders": 123,
"agreement": 1,
"subscription": 20
}
}Validates the compatibility of selected product items within the purchase order.
The product name, which appears as a title within the request wizard.
(Read-only) Number of orders placed for the product.
Defines the type of split billing. Allowed values are orderBased or percentageBased.
Specifies the cessation mode. Allowed values are:
Termination
Auto-renewal
Termination or Auto-renewal
Validates purchase orders when the client is requested to provide more information to the vendor on that order.
{
"productOrdering": true,
"productRequests": {
"enabled": true,
"title": "Contact us about Microsoft 365 Online Services",
"label": "Contact us"
},
"itemSelection": false,
"orderQueueChanges": false,
"preValidation": {
"purchaseOrderDraft": false,
"purchaseOrderQuerying": false,
"changeOrderDraft": false,
"terminationOrder": false,
"productRequest": false
}
} The following diagram shows the possible states of a product and the transitions between those states in the Marketplace Platform:
Draft
The product is being created by the vendor. It is not yet available in the marketplace for ordering.
Deleted
The draft product has been deleted.
Published
The product is available for buying through the marketplace.
Unpublished
The product is no longer available in the marketplace.

No Content
No content
Forbidden
Not Found
Internal Server Error
No content
DELETE /public/v1/catalog/products/{id} HTTP/1.1
Host: api.platform.softwareone.com
Accept: */*
No content
OK
Bad Request
Forbidden
Internal Server Error
No content
PUT /public/v1/catalog/products/{id}/settings HTTP/1.1
Host: api.platform.softwareone.com
Content-Type: application/json
Accept: */*
Content-Length: 421
{
"productOrdering": true,
"productRequests": {
"enabled": true,
"name": "text",
"label": "text"
},
"itemSelection": true,
"orderQueueChanges": true,
"preValidation": {
"purchaseOrderDraft": true,
"purchaseOrderQuerying": true,
"changeOrderDraft": true,
"configurationOrderDraft": true,
"terminationOrder": true
},
"splitBilling": {
"enabled": true,
"type": "OrderBased"
},
"sendCostToErp": true,
"subscriptionCessation": {
"enabled": true,
"mode": "Termination"
}
}{
"id": "text",
"audit": {
"created": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"updated": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"published": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"pending": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"unpublished": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
}
},
"$meta": {
"omitted": [
"text"
]
},
"name": "text",
"icon": "text",
"revision": 1,
"shortDescription": "text",
"longDescription": "text",
"externalIds": {
"operations": "text",
"defaultErpItem": "text"
},
"website": "text",
"status": "text",
"vendor": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1,
"type": "Client",
"status": "Active"
},
"settings": {
"productOrdering": true,
"productRequests": {
"enabled": true,
"name": "text",
"label": "text"
},
"itemSelection": true,
"orderQueueChanges": true,
"preValidation": {
"purchaseOrderDraft": true,
"purchaseOrderQuerying": true,
"changeOrderDraft": true,
"configurationOrderDraft": true,
"terminationOrder": true
},
"splitBilling": {
"enabled": true,
"type": "text"
},
"sendCostToErp": true,
"subscriptionCessation": {
"enabled": true,
"mode": "Termination"
}
},
"statistics": {
"itemCount": 1,
"ordersPlacedCount": 1,
"agreementCount": 1,
"subscriptionCount": 1
}
}OK
Not Found
GET /public/v1/catalog/products/{id} HTTP/1.1
Host: api.platform.softwareone.com
Accept: */*
{
"id": "text",
"audit": {
"created": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"updated": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"published": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"pending": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"unpublished": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
}
},
"$meta": {
"omitted": [
"text"
]
},
"name": "text",
"icon": "text",
"revision": 1,
"shortDescription": "text",
"longDescription": "text",
"externalIds": {
"operations": "text",
"defaultErpItem": "text"
},
"website": "text",
"status": "text",
"vendor": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1,
"type": "Client",
"status": "Active"
},
"settings": {
"productOrdering": true,
"productRequests": {
"enabled": true,
"name": "text",
"label": "text"
},
"itemSelection": true,
"orderQueueChanges": true,
"preValidation": {
"purchaseOrderDraft": true,
"purchaseOrderQuerying": true,
"changeOrderDraft": true,
"configurationOrderDraft": true,
"terminationOrder": true
},
"splitBilling": {
"enabled": true,
"type": "text"
},
"sendCostToErp": true,
"subscriptionCessation": {
"enabled": true,
"mode": "Termination"
}
},
"statistics": {
"itemCount": 1,
"ordersPlacedCount": 1,
"agreementCount": 1,
"subscriptionCount": 1
}
}OK
Bad Request
Forbidden
Not Found
Internal Server Error
No content
POST /public/v1/catalog/products/{id}/publish HTTP/1.1
Host: api.platform.softwareone.com
Accept: */*
{
"id": "text",
"audit": {
"created": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"updated": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"published": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"pending": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"unpublished": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
}
},
"$meta": {
"omitted": [
"text"
]
},
"name": "text",
"icon": "text",
"revision": 1,
"shortDescription": "text",
"longDescription": "text",
"externalIds": {
"operations": "text",
"defaultErpItem": "text"
},
"website": "text",
"status": "text",
"vendor": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1,
"type": "Client",
"status": "Active"
},
"settings": {
"productOrdering": true,
"productRequests": {
"enabled": true,
"name": "text",
"label": "text"
},
"itemSelection": true,
"orderQueueChanges": true,
"preValidation": {
"purchaseOrderDraft": true,
"purchaseOrderQuerying": true,
"changeOrderDraft": true,
"configurationOrderDraft": true,
"terminationOrder": true
},
"splitBilling": {
"enabled": true,
"type": "text"
},
"sendCostToErp": true,
"subscriptionCessation": {
"enabled": true,
"mode": "Termination"
}
},
"statistics": {
"itemCount": 1,
"ordersPlacedCount": 1,
"agreementCount": 1,
"subscriptionCount": 1
}
}OK
GET /public/v1/catalog/products HTTP/1.1
Host: api.platform.softwareone.com
Accept: */*
OK
{
"$meta": {
"pagination": {
"offset": 1,
"limit": 1,
"total": 1
},
"omitted": [
"text"
]
},
"data": [
{
"id": "text",
"audit": {
"created": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"updated": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"published": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"pending": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"unpublished": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
}
},
"$meta": {
"omitted": [
"text"
]
},
"name": "text",
"icon": "text",
"revision": 1,
"shortDescription": "text",
"longDescription": "text",
"externalIds": {
"operations": "text",
"defaultErpItem": "text"
},
"website": "text",
"status": "text",
"vendor": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1,
"type": "Client",
"status": "Active"
},
"settings": {
"productOrdering": true,
"productRequests": {
"enabled": true,
"name": "text",
"label": "text"
},
"itemSelection": true,
"orderQueueChanges": true,
"preValidation": {
"purchaseOrderDraft": true,
"purchaseOrderQuerying": true,
"changeOrderDraft": true,
"configurationOrderDraft": true,
"terminationOrder": true
},
"splitBilling": {
"enabled": true,
"type": "text"
},
"sendCostToErp": true,
"subscriptionCessation": {
"enabled": true,
"mode": "Termination"
}
},
"statistics": {
"itemCount": 1,
"ordersPlacedCount": 1,
"agreementCount": 1,
"subscriptionCount": 1
}
}
]
}Created
Bad Request
Forbidden
Internal Server Error
No content
POST /public/v1/catalog/products HTTP/1.1
Host: api.platform.softwareone.com
Content-Type: multipart/form-data
Accept: */*
Content-Length: 127
{
"product": {
"name": "text",
"shortDescription": "text",
"longDescription": "text",
"website": "text",
"icon": "binary"
},
"icon": "binary"
}{
"id": "text",
"audit": {
"created": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"updated": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"published": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"pending": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"unpublished": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
}
},
"$meta": {
"omitted": [
"text"
]
},
"name": "text",
"icon": "text",
"revision": 1,
"shortDescription": "text",
"longDescription": "text",
"externalIds": {
"operations": "text",
"defaultErpItem": "text"
},
"website": "text",
"status": "text",
"vendor": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1,
"type": "Client",
"status": "Active"
},
"settings": {
"productOrdering": true,
"productRequests": {
"enabled": true,
"name": "text",
"label": "text"
},
"itemSelection": true,
"orderQueueChanges": true,
"preValidation": {
"purchaseOrderDraft": true,
"purchaseOrderQuerying": true,
"changeOrderDraft": true,
"configurationOrderDraft": true,
"terminationOrder": true
},
"splitBilling": {
"enabled": true,
"type": "text"
},
"sendCostToErp": true,
"subscriptionCessation": {
"enabled": true,
"mode": "Termination"
}
},
"statistics": {
"itemCount": 1,
"ordersPlacedCount": 1,
"agreementCount": 1,
"subscriptionCount": 1
}
}OK
Bad Request
Forbidden
Internal Server Error
No content
PUT /public/v1/catalog/products/{id} HTTP/1.1
Host: api.platform.softwareone.com
Content-Type: multipart/form-data
Accept: */*
Content-Length: 171
{
"product": {
"name": "text",
"shortDescription": "text",
"longDescription": "text",
"externalIds": {
"operations": "text",
"defaultErpItem": "text"
},
"website": "text"
},
"icon": "binary"
}{
"id": "text",
"audit": {
"created": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"updated": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"published": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"pending": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"unpublished": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
}
},
"$meta": {
"omitted": [
"text"
]
},
"name": "text",
"icon": "text",
"revision": 1,
"shortDescription": "text",
"longDescription": "text",
"externalIds": {
"operations": "text",
"defaultErpItem": "text"
},
"website": "text",
"status": "text",
"vendor": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1,
"type": "Client",
"status": "Active"
},
"settings": {
"productOrdering": true,
"productRequests": {
"enabled": true,
"name": "text",
"label": "text"
},
"itemSelection": true,
"orderQueueChanges": true,
"preValidation": {
"purchaseOrderDraft": true,
"purchaseOrderQuerying": true,
"changeOrderDraft": true,
"configurationOrderDraft": true,
"terminationOrder": true
},
"splitBilling": {
"enabled": true,
"type": "text"
},
"sendCostToErp": true,
"subscriptionCessation": {
"enabled": true,
"mode": "Termination"
}
},
"statistics": {
"itemCount": 1,
"ordersPlacedCount": 1,
"agreementCount": 1,
"subscriptionCount": 1
}
}OK
Bad Request
Forbidden
Not Found
Internal Server Error
No content
POST /public/v1/catalog/products/{id}/unpublish HTTP/1.1
Host: api.platform.softwareone.com
Accept: */*
{
"id": "text",
"audit": {
"created": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"updated": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"published": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"pending": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"unpublished": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
}
},
"$meta": {
"omitted": [
"text"
]
},
"name": "text",
"icon": "text",
"revision": 1,
"shortDescription": "text",
"longDescription": "text",
"externalIds": {
"operations": "text",
"defaultErpItem": "text"
},
"website": "text",
"status": "text",
"vendor": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1,
"type": "Client",
"status": "Active"
},
"settings": {
"productOrdering": true,
"productRequests": {
"enabled": true,
"name": "text",
"label": "text"
},
"itemSelection": true,
"orderQueueChanges": true,
"preValidation": {
"purchaseOrderDraft": true,
"purchaseOrderQuerying": true,
"changeOrderDraft": true,
"configurationOrderDraft": true,
"terminationOrder": true
},
"splitBilling": {
"enabled": true,
"type": "text"
},
"sendCostToErp": true,
"subscriptionCessation": {
"enabled": true,
"mode": "Termination"
}
},
"statistics": {
"itemCount": 1,
"ordersPlacedCount": 1,
"agreementCount": 1,
"subscriptionCount": 1
}
}Mark a product for review by the SoftwareOne Operations team.
OK
Bad Request
Forbidden
Not Found
Internal Server Error
No content
POST /public/v1/catalog/products/{id}/review HTTP/1.1
Host: api.platform.softwareone.com
Accept: */*
{
"id": "text",
"audit": {
"created": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"updated": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"published": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"pending": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
},
"unpublished": {
"at": "2026-01-01T00:00:00.000Z",
"by": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1
}
}
},
"$meta": {
"omitted": [
"text"
]
},
"name": "text",
"icon": "text",
"revision": 1,
"shortDescription": "text",
"longDescription": "text",
"externalIds": {
"operations": "text",
"defaultErpItem": "text"
},
"website": "text",
"status": "text",
"vendor": {
"id": "text",
"name": "text",
"icon": "text",
"revision": 1,
"type": "Client",
"status": "Active"
},
"settings": {
"productOrdering": true,
"productRequests": {
"enabled": true,
"name": "text",
"label": "text"
},
"itemSelection": true,
"orderQueueChanges": true,
"preValidation": {
"purchaseOrderDraft": true,
"purchaseOrderQuerying": true,
"changeOrderDraft": true,
"configurationOrderDraft": true,
"terminationOrder": true
},
"splitBilling": {
"enabled": true,
"type": "text"
},
"sendCostToErp": true,
"subscriptionCessation": {
"enabled": true,
"mode": "Termination"
}
},
"statistics": {
"itemCount": 1,
"ordersPlacedCount": 1,
"agreementCount": 1,
"subscriptionCount": 1
}
}