NCR

NCR Site API

Site (location) provisioning, lookup, and geospatial search.

OpenAPI Specification

ncr-site-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: NCR Voyix Commerce Platform APIs Catalog Site 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: Site
  description: Site (location) provisioning, lookup, and geospatial search.
paths:
  /site/sites:
    post:
      tags:
      - Site
      summary: NCR Voyix Create Site
      description: Create a new site (location) on the NCR Voyix Commerce Platform.
      operationId: createSite
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SiteInput'
            examples:
              CreateSiteRequestExample:
                summary: Default createSite request
                x-microcks-default: true
                value:
                  siteName: Downtown Store
                  enterpriseUnitName: Downtown Store
                  referenceId: example
                  address:
                    address1: example
                    city: example
                    state: example
                    postalCode: example
                    country: US
                  coordinates:
                    latitude: 9.99
                    longitude: 9.99
                  currency: USD
                  timeZone: America/New_York
                  status: ACTIVE
      responses:
        '201':
          description: The created site.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Site'
              examples:
                CreateSite201Example:
                  summary: Default createSite 201 response
                  x-microcks-default: true
                  value:
                    siteName: Downtown Store
                    enterpriseUnitName: Downtown Store
                    referenceId: example
                    address:
                      address1: example
                      city: example
                      state: example
                      postalCode: example
                      country: US
                    coordinates:
                      latitude: 9.99
                      longitude: 9.99
                    currency: USD
                    timeZone: America/New_York
                    status: ACTIVE
                    id: '500123'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /site/sites/{siteId}:
    parameters:
    - name: siteId
      in: path
      required: true
      description: The alphanumeric site identifier (not the site name).
      schema:
        type: string
    get:
      tags:
      - Site
      summary: NCR Voyix Get Site by Id
      description: Retrieve a single site by its identifier.
      operationId: getSiteById
      responses:
        '200':
          description: The site.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Site'
              examples:
                GetSiteById200Example:
                  summary: Default getSiteById 200 response
                  x-microcks-default: true
                  value:
                    siteName: Downtown Store
                    enterpriseUnitName: Downtown Store
                    referenceId: example
                    address:
                      address1: example
                      city: example
                      state: example
                      postalCode: example
                      country: US
                    coordinates:
                      latitude: 9.99
                      longitude: 9.99
                    currency: USD
                    timeZone: America/New_York
                    status: ACTIVE
                    id: '500123'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      tags:
      - Site
      summary: NCR Voyix Update Site
      description: Update a site by its identifier. Set status to INACTIVE to logically delete the site.
      operationId: updateSite
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SiteInput'
            examples:
              UpdateSiteRequestExample:
                summary: Default updateSite request
                x-microcks-default: true
                value:
                  siteName: Downtown Store
                  enterpriseUnitName: Downtown Store
                  referenceId: example
                  address:
                    address1: example
                    city: example
                    state: example
                    postalCode: example
                    country: US
                  coordinates:
                    latitude: 9.99
                    longitude: 9.99
                  currency: USD
                  timeZone: America/New_York
                  status: ACTIVE
      responses:
        '200':
          description: The updated site.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Site'
              examples:
                UpdateSite200Example:
                  summary: Default updateSite 200 response
                  x-microcks-default: true
                  value:
                    siteName: Downtown Store
                    enterpriseUnitName: Downtown Store
                    referenceId: example
                    address:
                      address1: example
                      city: example
                      state: example
                      postalCode: example
                      country: US
                    coordinates:
                      latitude: 9.99
                      longitude: 9.99
                    currency: USD
                    timeZone: America/New_York
                    status: ACTIVE
                    id: '500123'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /site/sites/find-by-criteria:
    post:
      tags:
      - Site
      summary: NCR Voyix Find Sites by Criteria
      description: Search for sites matching the supplied criteria, selecting a field projection, with paging.
      operationId: findSitesByCriteria
      parameters:
      - name: pageSize
        in: query
        schema:
          type: integer
        example: 1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SiteSearch'
            examples:
              FindSitesByCriteriaRequestExample:
                summary: Default findSitesByCriteria request
                x-microcks-default: true
                value:
                  criteria:
                    status: ACTIVE
                  fields:
                  - example
      responses:
        '200':
          description: A page of matching sites.
          content:
            application/json:
              schema:
                type: object
                properties:
                  pageContent:
                    type: array
                    items:
                      $ref: '#/components/schemas/Site'
              examples:
                FindSitesByCriteria200Example:
                  summary: Default findSitesByCriteria 200 response
                  x-microcks-default: true
                  value:
                    pageContent:
                    - siteName: Downtown Store
                      enterpriseUnitName: Downtown Store
                      referenceId: example
                      address:
                        address1: {}
                        city: {}
                        state: {}
                        postalCode: {}
                        country: {}
                      coordinates:
                        latitude: {}
                        longitude: {}
                      currency: USD
                      timeZone: America/New_York
                      status: ACTIVE
                      id: '500123'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /site/sites/find-nearby/{coordinates}:
    parameters:
    - name: coordinates
      in: path
      required: true
      description: Latitude and longitude as "{latitude},{longitude}".
      schema:
        type: string
    get:
      tags:
      - Site
      summary: NCR Voyix Find Nearby Sites
      description: Find sites within a radius of a geographic coordinate.
      operationId: findNearbySites
      parameters:
      - name: radius
        in: query
        description: Search radius in meters.
        schema:
          type: integer
        example: 1
      - name: numSites
        in: query
        description: Maximum number of sites to return.
        schema:
          type: integer
        example: 1
      responses:
        '200':
          description: The nearby sites.
          content:
            application/json:
              schema:
                type: object
                properties:
                  pageContent:
                    type: array
                    items:
                      $ref: '#/components/schemas/Site'
              examples:
                FindNearbySites200Example:
                  summary: Default findNearbySites 200 response
                  x-microcks-default: true
                  value:
                    pageContent:
                    - siteName: Downtown Store
                      enterpriseUnitName: Downtown Store
                      referenceId: example
                      address:
                        address1: {}
                        city: {}
                        state: {}
                        postalCode: {}
                        country: {}
                      coordinates:
                        latitude: {}
                        longitude: {}
                      currency: USD
                      timeZone: America/New_York
                      status: ACTIVE
                      id: '500123'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /site/sites/by-reference-id/{referenceId}:
    parameters:
    - name: referenceId
      in: path
      required: true
      description: The external reference identifier for the site.
      schema:
        type: string
    get:
      tags:
      - Site
      summary: NCR Voyix Get Site by Reference Id
      description: Retrieve a site by its external reference identifier.
      operationId: getSiteByReferenceId
      responses:
        '200':
          description: The site.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Site'
              examples:
                GetSiteByReferenceId200Example:
                  summary: Default getSiteByReferenceId 200 response
                  x-microcks-default: true
                  value:
                    siteName: Downtown Store
                    enterpriseUnitName: Downtown Store
                    referenceId: example
                    address:
                      address1: example
                      city: example
                      state: example
                      postalCode: example
                      country: US
                    coordinates:
                      latitude: 9.99
                      longitude: 9.99
                    currency: USD
                    timeZone: America/New_York
                    status: ACTIVE
                    id: '500123'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    Site:
      allOf:
      - $ref: '#/components/schemas/SiteInput'
      - type: object
        properties:
          id:
            type: string
    Address:
      type: object
      properties:
        address1:
          type: string
          example: example
        city:
          type: string
          example: example
        state:
          type: string
          example: example
        postalCode:
          type: string
          example: example
        country:
          type: string
          example: US
    Status:
      type: string
      enum:
      - ACTIVE
      - INACTIVE
    SiteInput:
      type: object
      properties:
        siteName:
          type: string
          example: Downtown Store
        enterpriseUnitName:
          type: string
          example: Downtown Store
        referenceId:
          type: string
          example: example
        address:
          $ref: '#/components/schemas/Address'
        coordinates:
          $ref: '#/components/schemas/Coordinates'
        currency:
          type: string
          example: USD
        timeZone:
          type: string
          example: America/New_York
        status:
          $ref: '#/components/schemas/Status'
      required:
      - siteName
      - enterpriseUnitName
      - status
    Coordinates:
      type: object
      properties:
        latitude:
          type: number
          format: double
          example: 9.99
        longitude:
          type: number
          format: double
          example: 9.99
    SiteSearch:
      type: object
      properties:
        criteria:
          type: object
          properties:
            status:
              $ref: '#/components/schemas/Status'
        fields:
          type: array
          items:
            type: string
    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.