Pax8 Products API

The Products resource lets you fetch all the information required to complete an Order -- product descriptions, pricing, provisioning details, and the dependencies associated with each product

OpenAPI Specification

pax8-products-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Authentication Access Token Products API
  version: 1.0.0
  termsOfService: https://usc.pax8.com/resource/display/65345
  description: The Access Token that allows access to the Pax8 API
servers:
- url: https://api.pax8.com/v1
security:
- OAuth2: []
tags:
- name: Products
  description: The Products resource lets you fetch all the information required to complete an Order -- product descriptions, pricing, provisioning details, and the dependencies associated with each product
paths:
  /products:
    get:
      tags:
      - Products
      summary: List Products
      description: Returns a paginated list of Pax8 products filtered by optional query parameters
      operationId: findAllProducts
      parameters:
      - name: page
        in: query
        description: The page number to request for in the products list
        required: false
        schema:
          type: number
          default: 0
      - name: size
        in: query
        description: Return this number of products per page
        required: false
        schema:
          type: number
          default: 10
          minimum: 1
          maximum: 200
      - name: sort
        in: query
        description: Return products sorted by the field and direction specified. Formatted as fieldName, direction - ex. sort=name,desc
        required: false
        schema:
          type: string
          enum:
          - name
          - vendor
      - name: search
        in: query
        description: Search on fields like name, vendor, SKU and ID.
        required: false
        schema:
          type: string
          example: Office 365
      - name: vendorName
        in: query
        description: Return only products matching the specified vendor name
        required: false
        schema:
          type: string
          example: Microsoft
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  content:
                    type: array
                    items:
                      $ref: '#/components/schemas/Product'
                  page:
                    $ref: '#/components/schemas/Page'
  /products/{productId}:
    get:
      tags:
      - Products
      summary: Get Product By ID
      description: Returns only the product record for the productId you specify
      operationId: findProductByProductId
      parameters:
      - name: productId
        in: path
        required: true
        schema:
          type: string
          example: aaaee3f-262c-47a4-b0e6-f9ce8b54fcd7
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductDetail'
              examples:
                microsoft-office-365-e3:
                  $ref: '#/components/examples/microsoft-office-365-e3'
        '404':
          description: Product not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /products/{productId}/provision-details:
    get:
      tags:
      - Products
      summary: Get Provisioning Details
      description: Returns provisioning details for the specified productId. Provisioning details for a product are dynamic data.
      operationId: findProvisionDetailsByProductId
      parameters:
      - name: productId
        in: path
        required: true
        schema:
          type: string
          example: aaaee3f-262c-47a4-b0e6-f9ce8b54fcd7
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  content:
                    type: array
                    items:
                      $ref: '#/components/schemas/ProvisioningDetail'
              examples:
                microsoft-office-365-e3-details:
                  $ref: '#/components/examples/microsoft-office-365-e3-details'
        '404':
          description: Product not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /products/{productId}/dependencies:
    get:
      tags:
      - Products
      summary: Get Product Dependencies
      description: Returns associated dependencies for the specified ```productId```. A products dependencies are dynamic data.
      operationId: findProductDependenciesByProductId
      parameters:
      - name: productId
        in: path
        required: true
        schema:
          type: string
          example: aaaee3f-262c-47a4-b0e6-f9ce8b54fcd7
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dependencies'
              examples:
                dependencies-example:
                  $ref: '#/components/examples/dependencies-example'
        '404':
          description: Product not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /products/{productId}/pricing:
    get:
      tags:
      - Products
      summary: Get Pricing
      description: Returns recommended pricing and partner cost for the specified productId. A products pricing is dynamic data.
      operationId: findPricingByProductId
      parameters:
      - name: productId
        in: path
        description: The product id
        required: true
        schema:
          type: string
          example: aaaee3f-262c-47a4-b0e6-f9ce8b54fcd7
      - name: companyId
        in: query
        description: Use the companyId in the query to see company-specific pricing
        required: false
        schema:
          type: string
          format: uuid
          example: f7fc273a-8d86-45c9-a26f-ffd42416adda
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  content:
                    type: array
                    items:
                      $ref: '#/components/schemas/Pricing'
        '404':
          description: Product not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    ProductDetail:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          description: The name of a product
          example: Acme Corps Productivity Suite
        vendorName:
          type: string
          description: The name of the vendor
          example: Acme Corps
        shortDescription:
          example: Short description about the product to sell
          description: A short description of the product
          type: string
        description:
          type: string
          description: A long description of the Product
          example: A Long description about the product to sell
        sku:
          type: string
          example: 4225-776-3234
          description: The product sku
        vendorSku:
          type: string
          example: 12345-AA-XYZ
          description: The product vendor sku
        altVendorSku:
          type: string
          format: uuid
          deprecated: true
          description: The Microsoft legacy sku has been deprecated. Please transition to vendorSku
        requiresCommitment:
          type: boolean
          example: false
          description: Whether the product requires a commitment
    ErrorDetail:
      type: object
      properties:
        type:
          type: string
          description: optional
        message:
          type: string
          description: required
        instance:
          type: string
          description: optional
        status:
          type: integer
          description: optional
    Commitment:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the commitment record
          format: uuid
          readOnly: true
        term:
          type: string
          description: Duration of the commitment
          example: 3-Year
        autoRenew:
          type: boolean
          description: Renews without manual intervention at the end of the term
        renewalWindowDaysBeforeTermEnd:
          type: number
          description: Number of days _before_ term end-date when renewal window opens
        renewalWindowDaysAfterTermEnd:
          type: number
          description: Number of days after the term end-date that renewal window closes
        allowForQuantityIncrease:
          description: Is ```true``` if quantity can be increased during commitment term
          type: boolean
        allowForQuantityDecrease:
          type: boolean
          description: Is ```true``` if quantity can be decreased during commitment term
        allowForEarlyCancellation:
          description: Is ```true``` if commitment can be cancelled prior to end of term
          type: boolean
        cancellationFeeApplied:
          type: boolean
          description: Is ```true``` if canceling subscription entails a fee
        isTransferable:
          type: boolean
          description: Is ```true``` if commitment can be transferred to another company
    ProductDependency:
      type: object
      properties:
        name:
          type: string
          description: The name of the product constraint
        products:
          type: array
          description: A list of products that satisfy the constraint
          items:
            $ref: '#/components/schemas/Product'
    Dependencies:
      type: object
      properties:
        commitmentDependencies:
          type: array
          items:
            $ref: '#/components/schemas/Commitment'
        productDependencies:
          type: array
          items:
            $ref: '#/components/schemas/ProductDependency'
    Product:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          description: The name of a product
          example: Acme Corps Productivity Suite
        vendorName:
          type: string
          description: The name of the vendor
          example: Acme Corps
        shortDescription:
          example: Short description about the product to sell
          description: A short description of the product
          type: string
        sku:
          type: string
          example: 4225-776-3234
          description: The product sku
        vendorSku:
          type: string
          example: 12345-AA-XYZ
          description: The product vendor sku
        altVendorSku:
          type: string
          format: uuid
          deprecated: true
          description: The Microsoft legacy sku has been deprecated. Please transition to vendorSku
        requiresCommitment:
          type: boolean
          example: false
          description: Whether the product requires a commitment
    ProvisioningDetail:
      type: object
      properties:
        label:
          type: string
          readOnly: true
          description: The label to display
        key:
          type: string
          example: userEmailAddress
          description: The key
        values:
          type: array
          items:
            type: string
          description: A list of values based on the ```valuetype``` and ```possibleValues```
          writeOnly: true
        description:
          type: string
          example: Provide the user's email address
          description: Instructions and context to help enter the required provisioning information
          readOnly: true
        valueType:
          type: string
          readOnly: true
          enum:
          - Input
          - Single-Value
          - Multi-Value
          description: "Provisioning Detail Value Type:\n * `Input` - A value that is supplied by a user\n * `Single-Value` - A single value that is picked from the `possibleValues` list\n * `Multi-Value` - One or multiple values that are picked from the `possibleValues` list\n"
        possibleValues:
          type: array
          readOnly: true
          description: A list of possible values. `possibleValues` will be null when `valueType` is `Input`
          items:
            type: string
    Error:
      type: object
      properties:
        type:
          type: string
          description: Type of HTTP error
        message:
          type: string
          description: Error message
        instance:
          type: string
          description: The path called
        status:
          type: integer
          description: HTTP error code
        details:
          type: array
          description: Additional API failures
          items:
            $ref: '#/components/schemas/ErrorDetail'
    Page:
      type: object
      properties:
        size:
          type: number
          default: 10
          minimum: 1
          maximum: 200
          description: The size of the page
          example: 50
        totalElements:
          description: The total number of elements able to be paged over
          example: 237
        totalPages:
          description: The total number of pages based on the ```size``` and ```totalElements```
          example: 5
        number:
          description: The current page
          example: 1
    Pricing:
      type: object
      properties:
        productId:
          type: string
          format: uuid
          readOnly: true
        productName:
          type: string
          description: The name of a product
          example: Acme Corps Productivity Suite
        billingTerm:
          type: string
          enum:
          - Monthly
          - Annual
          - 2-Year
          - 3-Year
          - One-Time
          - Trial
          - Activation
        commitmentTerm:
          type: string
          description: Duration of the commitment
          example: 3-Year
        commitmentTermInMonths:
          type: number
          description: Commitment in months
          example: 36
        type:
          type: string
          enum:
          - Flat
          - Volume
          - Tiered
          - Mark-Up
        unitOfMeasurement:
          type: string
          description: The unit of measurement
          example: Each
        rates:
          description: A list of rates
          items:
            $ref: '#/components/schemas/Rate'
    Rate:
      type: object
      properties:
        partnerBuyRate:
          type: number
          description: The partner cost
          example: 145.8
        suggestedRetailPrice:
          type: number
          description: The suggested customer cost
          example: 151.8
        startQuantityRange:
          type: number
          example: 5
          description: The start of the quantity range. If not set 0 is the default
        endQuantityRange:
          type: number
          example: 200
          description: The end of the quantity range. If ```null``` there is no end of range
        chargeType:
          type: string
          enum:
          - Per Unit
          - Flat Rate
          description: "Rate Charge Type:\n  * `Per Unit` - The rate is multiplied directly by the quantity based on the start and end quantity range\n  * `Flat Rate` - The rate is flat for the quantity based on the start and end quantity range\n"
  examples:
    microsoft-office-365-e3:
      summary: Microsoft Office 365 E3
      description: an example response for `Microsoft Office 365 E3`
      value:
        id: e91bba5e-a9a3-483f-b036-f80165d410e3
        name: Microsoft Office 365 E3
        vendorName: Microsoft
        shortDescription: Microsoft Office 365 E3 includes fully installed Office applications across multiple devices, email hosting, HD video conferencing, and features to support compliance.
        description: 'Microsoft 365 E3 is part of a new lineup of M365 and O365 suites that don''t include Teams. Microsoft 365 E3 is designed for large organizations and integrates Office 365 Enterprise E3, Windows 10 Enterprise, and Enterprise Mobility + Security to empower employees to be creative and work together, securely. The comprehensive set of services range from Office apps like Word and Excel, to video conferencing apps, to robust security, mobile device management, and identity and access management. This solution lets you improve productivity and foster a culture of collaboration with connected experiences and transform how you manage your business and enhance customer relationships with integrated workflows. Plus, you can proactively protect your employees, data, and customer information with intelligent security. '
        sku: MST-OFC-EE3-C100
        vendorSku: 796B6B5F-613C-4E24-A17C-EBA730D49C02
    dependencies-example:
      summary: An example of product dependencies
      description: An example of product dependencies
      value:
        commitmentDependencies:
        - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08
          term: 3-Year
          autoRenew: true
          renewalWindowDaysBeforeTermEnd: 0
          renewalWindowDaysAfterTermEnd: 0
          allowForQuantityIncrease: true
          allowForQuantityDecrease: true
          allowForEarlyCancellation: true
          cancellationFeeApplied: true
          isTransferable: true
        productDependencies:
        - name: Requires
          products:
          - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08
            name: Acme Corps Productivity Suite
            vendorName: Acme Corps
            shortDescription: Short description about the product to sell
            sku: 4225-776-3234
    microsoft-office-365-e3-details:
      summary: Provision details for `Microsoft Office 365 E3`
      description: An example response of provision details for `Microsoft Office 365 E3`
      value:
        content:
        - label: Does the customer have an existing Microsoft account and can they log into https://login.microsoftonline.com?
          key: msCustExists
          valueType: Single-Value
          possibleValues:
          - No, the customer does not have a Microsoft account
          - Yes, the customer has and can log into their Microsoft account
        - label: Desired .onmicrosoft.com Customer Domain Prefix
          key: msDomain
          valueType: Input
          description: Do not include the TLD when entering your domain (e.g. mydomain.onmicrosoft.com should be entered as mydomain
        - label: Contact First Name
          key: arrowContactFirstName
          valueType: Input
        - label: Contact Last Name
          key: arrowContactLastName
          valueType: Input
        - label: Contact Email
          key: arrowContactEmail
          valueType: Input
        - label: Microsoft Customer Tenant ID
          key: msTenantId
          valueType: Input
        - label: First Name
          key: mca2020FirstName
          valueType: Input
        - label: Last Name
          key: mca2020LastName
          valueType: Input
        - label: Email Address
          key: mca2020Email
          valueType: Input
        - label: Date of Acceptance
          key: mca2020EffectiveDate
          valueType: Input
          description: (YYYY-MM-DD)
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://token-manager.pax8.com/oauth/token
          scopes: {}