NCR

NCR Category API

Catalog category-node hierarchy and group management.

OpenAPI Specification

ncr-category-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: NCR Voyix Commerce Platform APIs Catalog Category API
  description: 'REST APIs for the NCR Voyix Commerce Platform (Business Services Platform), the API-based cloud architecture that powers NCR Voyix unified-commerce solutions for retailers and restaurants. This specification covers the core commerce surfaces exercised by the publicly published NCR Voyix sample applications: Catalog (items, item-prices, item-attributes, item-details search), Category and Group management, Selling Service carts, Order creation and lookup, Site (location) provisioning, Security (authentication, authorization, passwords), and Provisioning (users and user profiles). Requests are signed with HMAC SHA-512 AccessKey authentication and scoped with the nep-organization and nep-enterprise-unit headers. Paths and schemas were reconstructed from the NCR Voyix sample applications (NCRVoyix-Corporation/ncr-retail-demo, NCRVoyix-Corporation/sample-app-burgers, NCRVoyix-Corporation/ncr-bsp-hmac); consult developer.ncrvoyix.com for the authoritative contract.'
  version: '1.0'
  contact:
    name: NCR Voyix Developer Experience
    url: https://developer.ncrvoyix.com/
  license:
    name: Proprietary
    url: https://www.ncrvoyix.com/
  x-generated-from: documentation
  x-last-validated: '2026-06-02'
servers:
- url: https://api.ncr.com
  description: Production (Business Services Platform)
- url: https://gateway-staging.ncrcloud.com
  description: Staging
security:
- hmacAccessKey: []
tags:
- name: Category
  description: Catalog category-node hierarchy and group management.
paths:
  /catalog/v2/category-nodes:
    get:
      tags:
      - Category
      summary: NCR Voyix List Category Nodes
      description: List catalog category nodes, optionally filtered by parent node.
      operationId: listCategoryNodes
      parameters:
      - name: parentId
        in: query
        description: Filter to children of the supplied parent category node.
        schema:
          type: string
        example: example
      responses:
        '200':
          description: The category nodes.
          content:
            application/json:
              schema:
                type: object
                properties:
                  categoryNodes:
                    type: array
                    items:
                      $ref: '#/components/schemas/CategoryNode'
              examples:
                ListCategoryNodes200Example:
                  summary: Default listCategoryNodes 200 response
                  x-microcks-default: true
                  value:
                    categoryNodes:
                    - id: '500123'
                      version: 1
                      name:
                        values:
                        - {}
                      parentId: example
                      nodeType: CATEGORY
                      status: ACTIVE
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      tags:
      - Category
      summary: NCR Voyix Create or Update Category Node
      description: Create or update a catalog category node in the category hierarchy.
      operationId: putCategoryNode
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CategoryNode'
            examples:
              PutCategoryNodeRequestExample:
                summary: Default putCategoryNode request
                x-microcks-default: true
                value:
                  id: '500123'
                  version: 1
                  name:
                    values:
                    - locale: en-US
                      value: Cheeseburger
                  parentId: example
                  nodeType: CATEGORY
                  status: ACTIVE
      responses:
        '200':
          description: The created or updated category node.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryNode'
              examples:
                PutCategoryNode200Example:
                  summary: Default putCategoryNode 200 response
                  x-microcks-default: true
                  value:
                    id: '500123'
                    version: 1
                    name:
                      values:
                      - locale: en-US
                        value: Cheeseburger
                    parentId: example
                    nodeType: CATEGORY
                    status: ACTIVE
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /catalog/v2/category-nodes/{nodeId}:
    parameters:
    - name: nodeId
      in: path
      required: true
      description: The category node identifier.
      schema:
        type: string
    get:
      tags:
      - Category
      summary: NCR Voyix Get Category Node
      description: Retrieve a single category node by its identifier.
      operationId: getCategoryNode
      responses:
        '200':
          description: The category node.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryNode'
              examples:
                GetCategoryNode200Example:
                  summary: Default getCategoryNode 200 response
                  x-microcks-default: true
                  value:
                    id: '500123'
                    version: 1
                    name:
                      values:
                      - locale: en-US
                        value: Cheeseburger
                    parentId: example
                    nodeType: CATEGORY
                    status: ACTIVE
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /catalog/v2/category-nodes/{nodeId}/ancestors:
    parameters:
    - name: nodeId
      in: path
      required: true
      description: The category node identifier.
      schema:
        type: string
    get:
      tags:
      - Category
      summary: NCR Voyix Get Category Node Ancestors
      description: Retrieve the ancestor chain for a category node up to the root.
      operationId: getCategoryNodeAncestors
      responses:
        '200':
          description: The ancestor category nodes.
          content:
            application/json:
              schema:
                type: object
                properties:
                  ancestors:
                    type: array
                    items:
                      $ref: '#/components/schemas/CategoryNode'
              examples:
                GetCategoryNodeAncestors200Example:
                  summary: Default getCategoryNodeAncestors 200 response
                  x-microcks-default: true
                  value:
                    ancestors:
                    - id: '500123'
                      version: 1
                      name:
                        values:
                        - {}
                      parentId: example
                      nodeType: CATEGORY
                      status: ACTIVE
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /catalog/v2/groups:
    get:
      tags:
      - Category
      summary: NCR Voyix List Groups
      description: List catalog groups, optionally paged and filtered by title pattern.
      operationId: listGroups
      parameters:
      - name: pageSize
        in: query
        schema:
          type: integer
        example: 1
      - name: titlePattern
        in: query
        schema:
          type: string
        example: example
      responses:
        '200':
          description: The catalog groups.
          content:
            application/json:
              schema:
                type: object
                properties:
                  pageContent:
                    type: array
                    items:
                      $ref: '#/components/schemas/Group'
              examples:
                ListGroups200Example:
                  summary: Default listGroups 200 response
                  x-microcks-default: true
                  value:
                    pageContent:
                    - id: '500123'
                      version: 1
                      title:
                        values:
                        - {}
                      itemCodes:
                      - example
                      status: ACTIVE
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      tags:
      - Category
      summary: NCR Voyix Create or Update Group
      description: Create or update a catalog group used to merchandise items together.
      operationId: putGroup
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Group'
            examples:
              PutGroupRequestExample:
                summary: Default putGroup request
                x-microcks-default: true
                value:
                  id: '500123'
                  version: 1
                  title:
                    values:
                    - locale: en-US
                      value: Cheeseburger
                  itemCodes:
                  - example
                  status: ACTIVE
      responses:
        '200':
          description: The created or updated group.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
              examples:
                PutGroup200Example:
                  summary: Default putGroup 200 response
                  x-microcks-default: true
                  value:
                    id: '500123'
                    version: 1
                    title:
                      values:
                      - locale: en-US
                        value: Cheeseburger
                    itemCodes:
                    - example
                    status: ACTIVE
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /catalog/v2/groups/{groupId}:
    parameters:
    - name: groupId
      in: path
      required: true
      description: The group identifier.
      schema:
        type: string
    get:
      tags:
      - Category
      summary: NCR Voyix Get Group
      description: Retrieve a single catalog group by its identifier.
      operationId: getGroup
      responses:
        '200':
          description: The group.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
              examples:
                GetGroup200Example:
                  summary: Default getGroup 200 response
                  x-microcks-default: true
                  value:
                    id: '500123'
                    version: 1
                    title:
                      values:
                      - locale: en-US
                        value: Cheeseburger
                    itemCodes:
                    - example
                    status: ACTIVE
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    Group:
      type: object
      properties:
        id:
          type: string
          example: '500123'
        version:
          type: integer
          example: 1
        title:
          $ref: '#/components/schemas/LocalizedText'
        itemCodes:
          type: array
          items:
            type: string
        status:
          $ref: '#/components/schemas/Status'
    LocalizedText:
      type: object
      description: A set of locale-specific values.
      properties:
        values:
          type: array
          items:
            type: object
            properties:
              locale:
                type: string
                example: en-US
              value:
                type: string
    Status:
      type: string
      enum:
      - ACTIVE
      - INACTIVE
    CategoryNode:
      type: object
      properties:
        id:
          type: string
          example: '500123'
        version:
          type: integer
          example: 1
        name:
          $ref: '#/components/schemas/LocalizedText'
        parentId:
          type: string
          example: example
        nodeType:
          type: string
          enum:
          - CATEGORY
          - DEPARTMENT
          example: CATEGORY
        status:
          $ref: '#/components/schemas/Status'
    Error:
      type: object
      properties:
        code:
          type: string
          example: example
        message:
          type: string
          example: example
  responses:
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    hmacAccessKey:
      type: apiKey
      in: header
      name: Authorization
      description: AccessKey (HMAC) authentication. The Authorization header carries "AccessKey {sharedKey}:{signature}", where the signature is a Base64 SHA-512 HMAC computed over the HTTP method, encoded request path and query string, Content-Type, optional Content-MD5, optional nep-application-key, and optional nep-correlation-id, keyed by the secret key concatenated with the ISO-8601 request date. A Date header must accompany the request. Access keys consist of a shared key and a secret key issued by NCR Voyix. See the ncr-bsp-hmac repository for reference implementations in Python, JavaScript, Java, Kotlin, Go, Dart, .NET, and PowerShell.