Casey's CasGatewayApi

Gateway for POS POSJournal document management, implementing the Conexxus POS Back Office Interface standard. Accepts journal, report and journal-reconciliation postings and serves individual CPJR documents by store number, report type and document id.

Operations 6

POST /journal POST /journal #
GET /heartbeat Gets the health of the API. #
POST /report POST /report #
POST /journal/reconciliation POST /journal/reconciliation #
GET /journal/{storeNumber}/{reportType}/{documentId} GET /journal/{storeNumber}/{reportType}/{documentId} #
GET /openapi/V3.json Get OpenApi Specification #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/caseys-casgatewayapi"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

caseys-general-stores-cas-gateway-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: CasGatewayApi
  description: "API enabling storage of POS POSJournal documents following the [Conexxus POS Back Office Interface](https://dev.azure.com/caseys01/Mirrors/_git/conexxus_pos-back-office-interface)\
    \ standard.    \n                        **Notes**: \n                        * API major version mirrors the\
    \ major version of the implemented [Conexxus POS Activity Reporting API standard](https://dev.azure.com/caseys01/Mirrors/_git/conexxus_pos-activity-reporting-apis)."
  version: '1.0'
servers:
- url: https://esl.caseys.io/casgatewayapi
paths:
  /journal:
    post:
      tags:
      - push
      summary: POST /journal
      description: " Add events to a journal or add reports to a collection.  These functions\n        will allow\
        \ sending report information in the request body of the message, or may (for some \n        resources) allow\
        \ retrieving a web socket URL for cases where the report information is too \n        large for a message\
        \ request body. \n\n        ## **Notes **\n        * The individual journal events will be processed without\
        \ regard to requestBody \"header\" properties - \n          these properties are there for legacy support.\
        \  The individual journal events, plus the organizationID and storeLocationID headers, \n          provide\
        \ all the information necessary to classify and store the journal events.  \n\n        * Activity periods\
        \ assigned to POS jounal entries (using /activityPeriods) should mirror those in the movement report request\
        \ body.\n        \n        * Some implementations may accept an \"ACCEPT\" header of application/xml in\
        \ order to post older XML POSJournal files.\n          Support for this feature is implementation dependent.\
        \  The default is Accept: application/json"
      operationId: post-journal
      parameters:
      - name: x-correlation-id
        in: header
        description: correlation identifier
        required: true
        schema:
          type: string
      - name: openretailing-organization-id
        in: header
        description: organization identifier
        required: true
        schema:
          type: string
      - name: openretailing-store-location-id
        in: header
        description: location identifier
        required: true
        schema:
          type: string
      responses:
        '200':
          description: "Requests with valid payloads (parsable and containing all of the\n        mandatory fields)\
            \  must use the 200 response. Note that a request can be\n        successfully processed but still \
            \ produce a failure response. If all the\n        systems are operating correctly at a given time, \
            \ all replies will use a\n        response 200."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/statusReturn'
              example:
                timestamp: string
                result: 0
                error: 0
                message: string
        '400':
          description: "Requests with invalid payloads or invalid URLs (paths) must use the\n        response 400."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/statusReturn'
              example:
                timestamp: string
                result: 0
                error: 0
                message: string
        '413':
          description: Use response 413 when payload is too large to return
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/statusReturn'
              example:
                timestamp: string
                result: 0
                error: 0
                message: string
        '500':
          description: "Requests that cause an internal server error (outside of the service\n        itself), such\
            \  as out of memory or corrupted file, etc. must use the\n        response 500."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/statusReturn'
              example:
                timestamp: string
                result: 0
                error: 0
                message: string
  /heartbeat:
    get:
      tags:
      - heartbeat
      summary: Gets the health of the API.
      description: Interrogates the state of the API and its dependencies to return the API health.
      operationId: getHeartbeat
      responses:
        '200':
          description: The status of the APIs health. Healthy if all dependency health checks pass. Unhealthy if
            any dependency's health check fails, or if an exception occurs.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/heartbeatReport'
              example:
                status: string
  /report:
    post:
      tags:
      - push
      summary: POST /report
      description: "Add events to a journal or add reports to a collection. These functions will allow sending report\
        \ information in the request body of the message.\n        Post a movement document. The requestBody \"\
        header\" fields will contain the information necessary to identify the correct activity period.        \n\
        \        ## **Notes:** \n        * Activity periods assigned to POS jounal entries (using /activityPeriods)\
        \ should mirror those in the movement report request body.\n        * May accept an \"ACCEPT\" header of\
        \ application/xml in order to post XML files.\n        * The \"/report\" path represents resources referred\
        \ to as \"Movement\" in POS Backoffice Interface XML Specification V3.7."
      operationId: post-reports
      parameters:
      - name: x-correlation-id
        in: header
        description: correlation identifier
        required: true
        schema:
          type: string
      - name: openretailing-organization-id
        in: header
        description: organization identifier
        required: true
        schema:
          type: string
      - name: openretailing-store-location-id
        in: header
        description: location identifier
        required: true
        schema:
          type: string
      responses:
        '200':
          description: "Requests with valid payloads (parsable and containing all of the\n        mandatory fields)\
            \  must use the 200 response. Note that a request can be\n        successfully processed but still \
            \ produce a failure response. If all the\n        systems are operating correctly at a given time, \
            \ all replies will use a\n        response 200."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/statusReturn'
              example:
                timestamp: string
                result: 0
                error: 0
                message: string
        '400':
          description: "Requests with invalid payloads or invalid URLs (paths) must use the\n        response 400."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/statusReturn'
              example:
                timestamp: string
                result: 0
                error: 0
                message: string
        '403':
          description: Unauthorized requests must use response 403 (forbidden).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/statusReturn'
              example:
                timestamp: string
                result: 0
                error: 0
                message: string
  /journal/reconciliation:
    post:
      tags:
      - push
      summary: POST /journal/reconciliation
      description: Post a collection of journal events for use in journal event reconciliation.
      operationId: post-journalreconciliation
      parameters:
      - name: x-correlation-id
        in: header
        description: correlation identifier
        required: true
        schema:
          type: string
      - name: openretailing-organization-id
        in: header
        description: organization identifier
        required: true
        schema:
          type: string
      - name: openretailing-store-location-id
        in: header
        description: location identifier
        required: true
        schema:
          type: string
      responses:
        '200':
          description: "Requests with valid payloads (parsable and containing all of the\n        mandatory fields)\
            \  must use the 200 response. Note that a request can be\n        successfully processed but still \
            \ produce a failure response. If all the\n        systems are operating correctly at a given time, \
            \ all replies will use a\n        response 200."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/statusReturn'
              example:
                timestamp: string
                result: 0
                error: 0
                message: string
        '400':
          description: "Requests with invalid payloads or invalid URLs (paths) must use the\n        response 400."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/statusReturn'
              example:
                timestamp: string
                result: 0
                error: 0
                message: string
        '413':
          description: Use response 413 when payload is too large to return
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/statusReturn'
              example:
                timestamp: string
                result: 0
                error: 0
                message: string
        '500':
          description: "Requests that cause an internal server error (outside of the service\n        itself), such\
            \  as out of memory or corrupted file, etc. must use the\n        response 500."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/statusReturn'
              example:
                timestamp: string
                result: 0
                error: 0
                message: string
  /journal/{storeNumber}/{reportType}/{documentId}:
    get:
      tags:
      - pull
      summary: GET /journal/{storeNumber}/{reportType}/{documentId}
      description: "Retrieve a CPJR (raw) document. The located document is packaged into a 7-Zip (.7z)\n      \
        \  archive containing exactly one document and streamed back to the caller as a download."
      operationId: get-cpjr-document
      parameters:
      - name: storeNumber
        in: path
        description: Store number associated with the document
        required: true
        schema:
          type: string
      - name: reportType
        in: path
        description: 'Report type. Supported values: cpjr'
        required: true
        schema:
          type: string
      - name: documentId
        in: path
        description: Blob file name of the document
        required: true
        schema:
          type: string
      - name: x-correlation-id
        in: header
        description: correlation identifier
        required: true
        schema:
          type: string
      - name: openretailing-organization-id
        in: header
        description: organization identifier
        required: true
        schema:
          type: string
      - name: openretailing-store-location-id
        in: header
        description: location identifier
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The CPJR document was located and is returned as a streamed 7-Zip (.7z) archive attachment.
          content:
            application/x-7z-compressed:
              schema:
                type: string
                format: binary
              examples:
                default:
                  value: null
        '400':
          description: Requests with missing required headers or invalid/missing route parameters must use the response
            400.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/statusReturn'
              example:
                timestamp: string
                result: 0
                error: 0
                message: string
        '403':
          description: Requests lacking the required 'casgateway.journal:read' scope must use the response 403 (forbidden).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/statusReturn'
              example:
                timestamp: string
                result: 0
                error: 0
                message: string
        '404':
          description: When the specified document cannot be located the response 404 is used and no content is
            returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/statusReturn'
              example:
                timestamp: string
                result: 0
                error: 0
                message: string
  /openapi/V3.json:
    get:
      summary: Get OpenApi Specification
      description: Gets the OpenApi specification in V3.json format with the parameters .
      operationId: getOpenApiSpec
      responses:
        '200':
          description: ''
components:
  schemas:
    heartbeatReport:
      type: object
      properties:
        status:
          type: string
          description: Description of the current status of dependencies of the API.
    statusReturn:
      type: object
      properties:
        timestamp:
          type: string
          format: date-time
        result:
          enum:
          - 0
          - 1
          - 2
          type: integer
          format: int32
          default: 0
        error:
          enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          type: integer
          format: int32
          default: 0
        message:
          type: string
  securitySchemes:
    apiKeyHeader:
      type: apiKey
      name: Ocp-Apim-Subscription-Key
      in: header
    apiKeyQuery:
      type: apiKey
      name: subscription-key
      in: query
security:
- apiKeyHeader: []
- apiKeyQuery: []