Products

Retrieves a product

Changed on

Returns a single product or bundle definition, including pricing configuration used on contracts and invoices.

get/products/{product_id}

Request

Path parameters

product_idstring required

UUID of the product to retrieve.

Response

OK

idstring uuid required
type'PRODUCT' | 'BUNDLE' required

PRODUCT is a standalone product. BUNDLE is a product made up of other products.

namestring required
descriptionstring required
include_in_arr_mrrboolean required
include_in_sspboolean

Whether this product participates in SSP revenue allocation. Omitted for bundles. Usage-priced products remain excluded regardless of this flag.

revenue_pattern'DAILY' | 'EVEN_PERIOD' | 'PROGRESS'

DAILY divides revenue equally per day. EVEN_PERIOD divides revenue equally per calendar month. PROGRESS uses a progress plan; the supported measure MILESTONES recognizes allocated revenue on milestone completion and requires a one-time price. FULL contract creation supports an explicit progress plan or snapshots the referenced product's template. Existing non-progress behavior is unchanged.

status'ACTIVE' | 'INACTIVE' required
account_codestring

The account code found in the Chart of Accounts

Example response

{
  "name": "English subscription",
  "description": "Subscription to english classes",
  "price": {
    "amount": {
      "amount": "1.01",
      "currency": "USD"
    },
    "interval_months": 1
  },
  "progress_plan_template": {
    "milestones": [
      {
        "key": "design-approved",
        "name": "Design approved",
        "sequence": 1,
        "value": "30",
        "expected_offset": {
          "count": 1,
          "unit": "MONTHS"
        }
      }
    ]
  },
  "external_references": [
    {
      "type": "xyzSystemId",
      "id": "234",
      "url": "https://xyzsystempage.com/ids/234"
    }
  ],
  "account_code": "11112",
  "bundle": {
    "components": [
      {
        "quantity": "1"
      }
    ]
  }
}

Changes

    • breaking

      the response property became optional for the status

    • breaking

      the response property became optional for the status

    • breaking

      the response's property type changed from string to no type for status

    • breaking

      the response's property type changed from string to no type for status

    • info

      added subschema #1 subschema #2 to the response body allOf list for the response status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added to the response property allOf list for the response status

    • info

      added to the response property allOf list for the response status

    • info

      removed the DAILY enum value from the response property for the response status

    • info

      removed the EVEN_PERIOD enum value from the response property for the response status

    • info

      added the required property to the response with the status

    • info

      added the required property to the response with the status