---
swagger: "2.0"
info:
  version: "5.19.1-b19-SNAPSHOT"
  title: "GK application - OmniPOS SelfScanning Service API"
host: "localhost:8080"
basePath: "/pos-service/tenants/<tenant-id>/services/v1/**"
tags:
- name: "CommonService"
- name: "LineItemService"
- name: "SessionService"
- name: "StoredValueServerService"
- name: "TransactionService"
schemes:
- "https"
paths:
  /com.gk_software.selfscanning.api.service.CommonService/analyzeBarcode:
    post:
      tags:
      - "CommonService"
      summary: "Analyzes the barcode value and type passed in by AnalyzeBarcodeRequest."
      description: "Analyzes the barcode value and type passed in by AnalyzeBarcodeRequest."
      operationId: "CommonService.analyzeBarcode"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "The AnalyzeBarcodeRequest"
        required: true
        schema:
          $ref: "#/definitions/com.gk_software.selfscanning.api.service.AnalyzeBarcodeRequest"
      responses:
        200:
          description: "The AnalyzeBarcodeResponse with a list of barcode processing\
            \ actions."
          schema:
            $ref: "#/definitions/com.gk_software.selfscanning.api.service.AnalyzeBarcodeResponse"
        400:
          description: "Bad Request. The request could not be understood by the server\
            \ due to malformed syntax. The client SHOULD NOT repeat the request without\
            \ modifications."
        401:
          description: "Unauthorized. In case of an invalid session."
        429:
          description: "Too many requests. This response is possible if for the assigned\
            \ session there is already a service request in progress. As service calls\
            \ may modify transaction data, it is not allowed to have parallel requests\
            \ for the same session. But there is one exception to this rule. There\
            \ exists the header flag \"_pos_session_read_only_request_\". A client\
            \ can use this flag to indicate that it is sending just a read only service\
            \ request, e.g. for requesting gift certificate information. In such a\
            \ case the request will be processed without returning HTTP error code\
            \ 429."
  /com.gk_software.selfscanning.api.service.CommonService/processBarcode:
    post:
      tags:
      - "CommonService"
      summary: "Analyzes the barcode value and type passed in by ProcessBarcodeRequest.\
        \ If there is a registered barcode handler for the analyzed barcode processing\
        \ action(s) then the barcode will be processed too, e.g. as item registration."
      description: "Analyzes the barcode value and type passed in by ProcessBarcodeRequest.\
        \ If there is a registered barcode handler for the analyzed barcode processing\
        \ action(s) then the barcode will be processed too, e.g. as item registration."
      operationId: "CommonService.processBarcode"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "The ProcessBarcodeRequest"
        required: true
        schema:
          $ref: "#/definitions/com.gk_software.selfscanning.api.service.ProcessBarcodeRequest"
      responses:
        200:
          description: "The TransactionOperationResultSSC object."
          schema:
            $ref: "#/definitions/com.gk_software.selfscanning.api.service.TransactionOperationResultSSC"
        400:
          description: "Bad Request. The request could not be understood by the server\
            \ due to malformed syntax. The client SHOULD NOT repeat the request without\
            \ modifications."
        401:
          description: "Unauthorized. In case of an invalid session."
        429:
          description: "Too many requests. This response is possible if for the assigned\
            \ session there is already a service request in progress. As service calls\
            \ may modify transaction data, it is not allowed to have parallel requests\
            \ for the same session. But there is one exception to this rule. There\
            \ exists the header flag \"_pos_session_read_only_request_\". A client\
            \ can use this flag to indicate that it is sending just a read only service\
            \ request, e.g. for requesting gift certificate information. In such a\
            \ case the request will be processed without returning HTTP error code\
            \ 429."
  /com.gk_software.selfscanning.api.service.LineItemService/registerLineItem:
    post:
      tags:
      - "LineItemService"
      summary: "Adds a line item to the currently active transaction."
      description: "Adds a line item to the currently active transaction."
      operationId: "LineItemService.registerLineItem"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "The RegisterLineItemRequest"
        required: true
        schema:
          $ref: "#/definitions/com.gk_software.selfscanning.api.service.RegisterLineItemRequest"
      responses:
        200:
          description: "The TransactionOperationResultSSC object."
          schema:
            $ref: "#/definitions/com.gk_software.selfscanning.api.service.TransactionOperationResultSSC"
        401:
          description: "Unauthorized. In case of an invalid session."
        429:
          description: "Too many requests. This response is possible if for the assigned\
            \ session there is already a service request in progress. As service calls\
            \ may modify transaction data, it is not allowed to have parallel requests\
            \ for the same session. But there is one exception to this rule. There\
            \ exists the header flag \"_pos_session_read_only_request_\". A client\
            \ can use this flag to indicate that it is sending just a read only service\
            \ request, e.g. for requesting gift certificate information. In such a\
            \ case the request will be processed without returning HTTP error code\
            \ 429."
  /com.gk_software.selfscanning.api.service.LineItemService/setQuantity:
    post:
      tags:
      - "LineItemService"
      summary: "Sets/updates the quantity in the currently active transaction according\
        \ to the given SetQuantityRequest."
      description: "Sets/updates the quantity in the currently active transaction\
        \ according to the given SetQuantityRequest."
      operationId: "LineItemService.setQuantity"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "The SetQuantityRequest"
        required: true
        schema:
          $ref: "#/definitions/com.gk_software.selfscanning.api.service.SetQuantityRequest"
      responses:
        200:
          description: "The TransactionOperationResultSSC object."
          schema:
            $ref: "#/definitions/com.gk_software.selfscanning.api.service.TransactionOperationResultSSC"
        401:
          description: "Unauthorized. In case of an invalid session."
        429:
          description: "Too many requests. This response is possible if for the assigned\
            \ session there is already a service request in progress. As service calls\
            \ may modify transaction data, it is not allowed to have parallel requests\
            \ for the same session. But there is one exception to this rule. There\
            \ exists the header flag \"_pos_session_read_only_request_\". A client\
            \ can use this flag to indicate that it is sending just a read only service\
            \ request, e.g. for requesting gift certificate information. In such a\
            \ case the request will be processed without returning HTTP error code\
            \ 429."
  /com.gk_software.selfscanning.api.service.LineItemService/voidLineItem:
    post:
      tags:
      - "LineItemService"
      summary: "Voids line item in the currently active transaction according to the\
        \ given VoidLineItemRequest."
      description: "Voids line item in the currently active transaction according\
        \ to the given VoidLineItemRequest."
      operationId: "LineItemService.voidLineItem"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "The VoidLineItemRequest"
        required: true
        schema:
          $ref: "#/definitions/com.gk_software.selfscanning.api.service.VoidLineItemRequest"
      responses:
        200:
          description: "The TransactionOperationResultSSC object."
          schema:
            $ref: "#/definitions/com.gk_software.selfscanning.api.service.TransactionOperationResultSSC"
        401:
          description: "Unauthorized. In case of an invalid session."
        429:
          description: "Too many requests. This response is possible if for the assigned\
            \ session there is already a service request in progress. As service calls\
            \ may modify transaction data, it is not allowed to have parallel requests\
            \ for the same session. But there is one exception to this rule. There\
            \ exists the header flag \"_pos_session_read_only_request_\". A client\
            \ can use this flag to indicate that it is sending just a read only service\
            \ request, e.g. for requesting gift certificate information. In such a\
            \ case the request will be processed without returning HTTP error code\
            \ 429."
  /com.gk_software.selfscanning.api.service.SessionService/endSelfScanningSession:
    post:
      tags:
      - "SessionService"
      summary: "Ends a self scanning session. It can either suspend or cancel the\
        \ current active transaction."
      description: "Ends a self scanning session. It can either suspend or cancel\
        \ the current active transaction."
      operationId: "SessionService.endSelfScanningSession"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "The EndSessionRequest"
        required: true
        schema:
          $ref: "#/definitions/com.gk_software.selfscanning.api.service.EndSessionRequest"
      responses:
        200:
          description: "The EndSessionResponse object."
          schema:
            $ref: "#/definitions/com.gk_software.selfscanning.api.service.EndSessionResponse"
        401:
          description: "Unauthorized. In case of an invalid session."
        429:
          description: "Too many requests. This response is possible if for the assigned\
            \ session there is already a service request in progress. As service calls\
            \ may modify transaction data, it is not allowed to have parallel requests\
            \ for the same session. But there is one exception to this rule. There\
            \ exists the header flag \"_pos_session_read_only_request_\". A client\
            \ can use this flag to indicate that it is sending just a read only service\
            \ request, e.g. for requesting gift certificate information. In such a\
            \ case the request will be processed without returning HTTP error code\
            \ 429."
  /com.gk_software.selfscanning.api.service.SessionService/startSelfScanningSession:
    post:
      tags:
      - "SessionService"
      summary: "Starts a self scanning session."
      description: "Starts a self scanning session."
      operationId: "SessionService.startSelfScanningSession"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "The StartSessionRequest"
        required: true
        schema:
          $ref: "#/definitions/com.gk_software.selfscanning.api.service.StartSessionRequest"
      responses:
        200:
          description: "The StartSessionResponse object."
          schema:
            $ref: "#/definitions/com.gk_software.selfscanning.api.service.StartSessionResponse"
  /com.gk_software.selfscanning.api.service.StoredValueServerService/sellGiftCertificate:
    post:
      tags:
      - "StoredValueServerService"
      summary: "Sells a gift certificate."
      description: "Sells a gift certificate."
      operationId: "StoredValueServerService.sellGiftCertificate"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "The GiftCertificateRequestSSC"
        required: true
        schema:
          $ref: "#/definitions/com.gk_software.selfscanning.api.service.GiftCertificateRequestSSC"
      responses:
        200:
          description: "The TransactionOperationResultSSC object."
          schema:
            $ref: "#/definitions/com.gk_software.selfscanning.api.service.TransactionOperationResultSSC"
        401:
          description: "Unauthorized. In case of an invalid session."
        429:
          description: "Too many requests. This response is possible if for the assigned\
            \ session there is already a service request in progress. As service calls\
            \ may modify transaction data, it is not allowed to have parallel requests\
            \ for the same session. But there is one exception to this rule. There\
            \ exists the header flag \"_pos_session_read_only_request_\". A client\
            \ can use this flag to indicate that it is sending just a read only service\
            \ request, e.g. for requesting gift certificate information. In such a\
            \ case the request will be processed without returning HTTP error code\
            \ 429."
  /com.gk_software.selfscanning.api.service.TransactionService/cancelTransaction:
    post:
      tags:
      - "TransactionService"
      summary: "Cancel an uncompleted transaction which is associated with current\
        \ session."
      description: "Cancel an uncompleted transaction which is associated with current\
        \ session."
      operationId: "TransactionService.cancelTransaction"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters: []
      responses:
        200:
          description: "The CancelTransactionResult object."
          schema:
            $ref: "#/definitions/com.gk_software.selfscanning.api.service.CancelTransactionResult"
        401:
          description: "Unauthorized. In case of an invalid session."
        429:
          description: "Too many requests. This response is possible if for the assigned\
            \ session there is already a service request in progress. As service calls\
            \ may modify transaction data, it is not allowed to have parallel requests\
            \ for the same session. But there is one exception to this rule. There\
            \ exists the header flag \"_pos_session_read_only_request_\". A client\
            \ can use this flag to indicate that it is sending just a read only service\
            \ request, e.g. for requesting gift certificate information. In such a\
            \ case the request will be processed without returning HTTP error code\
            \ 429."
  /com.gk_software.selfscanning.api.service.TransactionService/createTransaction:
    post:
      tags:
      - "TransactionService"
      summary: "Creates a new transaction."
      description: "Creates a new transaction."
      operationId: "TransactionService.createTransaction"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "The CreateTransactionRequest"
        required: true
        schema:
          $ref: "#/definitions/com.gk_software.selfscanning.api.service.CreateTransactionRequest"
      responses:
        200:
          description: "The CreateTransactionResult object."
          schema:
            $ref: "#/definitions/com.gk_software.selfscanning.api.service.CreateTransactionResult"
        401:
          description: "Unauthorized. In case of an invalid session."
        429:
          description: "Too many requests. This response is possible if for the assigned\
            \ session there is already a service request in progress. As service calls\
            \ may modify transaction data, it is not allowed to have parallel requests\
            \ for the same session. But there is one exception to this rule. There\
            \ exists the header flag \"_pos_session_read_only_request_\". A client\
            \ can use this flag to indicate that it is sending just a read only service\
            \ request, e.g. for requesting gift certificate information. In such a\
            \ case the request will be processed without returning HTTP error code\
            \ 429."
  /com.gk_software.selfscanning.api.service.TransactionService/failoverTransaction:
    post:
      tags:
      - "TransactionService"
      summary: "Create a failover transaction based on a replay of a transaction log."
      description: "Create a failover transaction based on a replay of a transaction\
        \ log."
      operationId: "TransactionService.failoverTransaction"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "The FailoverTransactionRequest"
        required: true
        schema:
          $ref: "#/definitions/com.gk_software.selfscanning.api.service.FailoverTransactionRequest"
      responses:
        200:
          description: "The TransactionOperationResultSSC object."
          schema:
            $ref: "#/definitions/com.gk_software.selfscanning.api.service.TransactionOperationResultSSC"
        401:
          description: "Unauthorized. In case of an invalid session."
        429:
          description: "Too many requests. This response is possible if for the assigned\
            \ session there is already a service request in progress. As service calls\
            \ may modify transaction data, it is not allowed to have parallel requests\
            \ for the same session. But there is one exception to this rule. There\
            \ exists the header flag \"_pos_session_read_only_request_\". A client\
            \ can use this flag to indicate that it is sending just a read only service\
            \ request, e.g. for requesting gift certificate information. In such a\
            \ case the request will be processed without returning HTTP error code\
            \ 429."
  /com.gk_software.selfscanning.api.service.TransactionService/getTransaction:
    post:
      tags:
      - "TransactionService"
      summary: "Gets the existing transaction (if there exist one) out of the current\
        \ session."
      description: "Gets the existing transaction (if there exist one) out of the\
        \ current session."
      operationId: "TransactionService.getTransaction"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters: []
      responses:
        200:
          description: "The GetTransactionResult object."
          schema:
            $ref: "#/definitions/com.gk_software.selfscanning.api.service.GetTransactionResult"
        401:
          description: "Unauthorized. In case of an invalid session."
        429:
          description: "Too many requests. This response is possible if for the assigned\
            \ session there is already a service request in progress. As service calls\
            \ may modify transaction data, it is not allowed to have parallel requests\
            \ for the same session. But there is one exception to this rule. There\
            \ exists the header flag \"_pos_session_read_only_request_\". A client\
            \ can use this flag to indicate that it is sending just a read only service\
            \ request, e.g. for requesting gift certificate information. In such a\
            \ case the request will be processed without returning HTTP error code\
            \ 429."
  /com.gk_software.selfscanning.api.service.TransactionService/recoverTransaction:
    post:
      tags:
      - "TransactionService"
      summary: "Recovers the transaction. If there is a customer number assigned to\
        \ the session, then it will first check for unfinished transactions for the\
        \ customer. If there is one this transaction will be recovered. In case of\
        \ existing suspended transaction for the customer this transaction will be\
        \ loaded. If there is no unfinished nor a suspended transaction or no customer\
        \ assigned, then a fallback is used to create a new transaction."
      description: "Recovers the transaction. If there is a customer number assigned\
        \ to the session, then it will first check for unfinished transactions for\
        \ the customer. If there is one this transaction will be recovered. In case\
        \ of existing suspended transaction for the customer this transaction will\
        \ be loaded. If there is no unfinished nor a suspended transaction or no customer\
        \ assigned, then a fallback is used to create a new transaction."
      operationId: "TransactionService.recoverTransaction"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters: []
      responses:
        200:
          description: "The RecoverTransactionResult object."
          schema:
            $ref: "#/definitions/com.gk_software.selfscanning.api.service.RecoverTransactionResult"
        401:
          description: "Unauthorized. In case of an invalid session."
        429:
          description: "Too many requests. This response is possible if for the assigned\
            \ session there is already a service request in progress. As service calls\
            \ may modify transaction data, it is not allowed to have parallel requests\
            \ for the same session. But there is one exception to this rule. There\
            \ exists the header flag \"_pos_session_read_only_request_\". A client\
            \ can use this flag to indicate that it is sending just a read only service\
            \ request, e.g. for requesting gift certificate information. In such a\
            \ case the request will be processed without returning HTTP error code\
            \ 429."
definitions:
  com.gk_software.selfscanning.api.service.AnalyzeBarcodeRequest:
    type: "object"
    properties:
      operationStatus:
        type: "string"
        description: "<p>The operation status 'OK' or 'NOK'.</p>"
      statusCode:
        type: "string"
        description: "<p>Contains the status code in case of unsuccessful operation.</p>"
      barcodeType:
        type: "string"
        description: "<p>The barcode type.</p>"
      value:
        type: "string"
        description: "<p>The value.</p>"
      xXCustom01:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom02:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom03:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom04:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom05:
        type: "string"
        description: "<p>Customizable information.</p>"
    description: "AnalyzeBarcodeRequest <p>Request object for the analyze barcode\
      \ operation.</p>"
  com.gk_software.selfscanning.api.service.AnalyzeBarcodeResponse:
    type: "object"
    properties:
      operationStatus:
        type: "string"
        description: "<p>The operation status 'OK' or 'NOK'.</p>"
      statusCode:
        type: "string"
        description: "<p>Contains the status code in case of unsuccessful operation.</p>"
      actions:
        type: "array"
        description: "<p>A list of barcode processing actions.</p>"
        items:
          $ref: "#/definitions/com.gk_software.selfscanning.api.service.BarcodeProcessingAction"
      xXCustom01:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom02:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom03:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom04:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom05:
        type: "string"
        description: "<p>Customizable information.</p>"
    description: "AnalyzeBarcodeResponse <p>Response object for the analyze barcode\
      \ operation.</p>"
  com.gk_software.selfscanning.api.service.BarcodeProcessingAction:
    type: "object"
    properties:
      processName:
        type: "string"
        description: "<p>The process name of the process that should handle this barcode\
          \ action.</p>"
      reactionName:
        type: "string"
        description: "<p>The reaction name in the process that should handle this\
          \ barcode action.</p>"
      configId:
        type: "string"
        description: "<p>The identifier of the configuration that should be used for\
          \ this barcode action.</p>"
      variables:
        type: "object"
        description: "<p>A map of variables and values. It is taken from the process\
          \ event that was triggered by the barcode scan and it can contain variables\
          \ of the process that are filled by the barcode input.</p>"
        additionalProperties:
          type: "string"
      configParameterOverrides:
        type: "object"
        description: "<p>A map of configuration parameters that should be overridden.</p>"
        additionalProperties:
          type: "string"
      xXCustom01:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom02:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom03:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom04:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom05:
        type: "string"
        description: "<p>Customizable information.</p>"
    description: "BarcodeProcessingAction <p>Object that wraps all necessary information\
      \ regarding barcode processing.</p>"
  com.gk_software.selfscanning.api.service.CancelTransactionResult:
    type: "object"
    properties:
      operationStatus:
        type: "string"
        description: "<p>The operation status 'OK' or 'NOK'.</p>"
      statusCode:
        type: "string"
        description: "<p>Contains the status code in case of unsuccessful operation.</p>"
      xXCustom01:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom02:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom03:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom04:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom05:
        type: "string"
        description: "<p>Customizable information.</p>"
    description: "CancelTransactionResult <p>Result object for cancel transaction\
      \ request.</p>"
  com.gk_software.selfscanning.api.service.CreateTransactionRequest:
    type: "object"
    properties:
      xXCustom01:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom02:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom03:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom04:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom05:
        type: "string"
        description: "<p>Customizable information.</p>"
    description: "CreateTransactionRequest <p>Request object for the create transaction\
      \ operation.</p>"
  com.gk_software.selfscanning.api.service.CreateTransactionResult:
    type: "object"
    properties:
      operationStatus:
        type: "string"
        description: "<p>The operation status 'OK' or 'NOK'.</p>"
      statusCode:
        type: "string"
        description: "<p>Contains the status code in case of unsuccessful operation.</p>"
      transaction:
        description: "<p>The created self scanning transaction.</p>"
        $ref: "#/definitions/com.gk_software.selfscanning.api.service.TransactionSSC"
      xXCustom01:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom02:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom03:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom04:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom05:
        type: "string"
        description: "<p>Customizable information.</p>"
    description: "CreateTransactionResult <p>Response object for create transaction\
      \ request.</p>"
  com.gk_software.selfscanning.api.service.EndSessionRequest:
    type: "object"
    required:
    - "cancelTransactionFlag"
    properties:
      cancelTransactionFlag:
        type: "boolean"
        description: "<p>A flag to indicate that the current transaction should also\
          \ be canceled when ending the self scanning session.</p>"
      endOfTripAnswer:
        type: "boolean"
        description: "<p>A flag to indicate whether the end of trip question was answered\
          \ 'YES' (true) or 'NO' (false) or not even asked (null value).</p>"
      xXCustom01:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom02:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom03:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom04:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom05:
        type: "string"
        description: "<p>Customizable information.</p>"
    description: "EndSessionRequest <p>Request object for the end self scanning operation.</p>"
  com.gk_software.selfscanning.api.service.EndSessionResponse:
    type: "object"
    required:
    - "transactionCanceledFlag"
    properties:
      operationStatus:
        type: "string"
        description: "<p>The operation status 'OK' or 'NOK'.</p>"
      statusCode:
        type: "string"
        description: "<p>Contains the status code in case of unsuccessful operation.</p>"
      transactionCanceledFlag:
        type: "boolean"
        description: "<p>A flag to indicate whether the transaction was canceled (true)\
          \ or not (false).</p>"
      suspendNumber:
        type: "string"
        description: "<p>The suspend number under which the self scanning transaction\
          \ can be retrieved again (e.g. at pay tower or a stationary POS).</p>"
      xXCustom01:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom02:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom03:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom04:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom05:
        type: "string"
        description: "<p>Customizable information.</p>"
    description: "EndSessionResponse <p>Response object for the end self scanning\
      \ operation.</p>"
  com.gk_software.selfscanning.api.service.FailoverTransactionRequest:
    type: "object"
    properties:
      transactionId:
        type: "string"
        description: "<p>The identifier of the failover transaction.</p>"
      transactionLog:
        type: "string"
        description: "<p>The log of all recorded actions and its parameters, that\
          \ were applied to the original transaction and will be redone on new created\
          \ transaction on the failover pos-service.</p>"
      xXCustom01:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom02:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom03:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom04:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom05:
        type: "string"
        description: "<p>Customizable information.</p>"
    description: "FailoverTransactionRequest <p>Request object for handling transaction\
      \ failover.</p>"
  com.gk_software.selfscanning.api.service.FrequentShopperPointsModifierSSC:
    type: "object"
    required:
    - "appliedQuantity"
    - "computationBaseAmount"
    - "externalSystemOriginatorFlag"
    - "frequentShopperPointsEarnedAmount"
    - "frequentShopperPointsEarnedCount"
    - "frequentShopperPointsModifierSequenceNumber"
    - "retailTransactionLineItemSequenceNumber"
    properties:
      retailTransactionLineItemSequenceNumber:
        type: "integer"
        format: "int32"
      frequentShopperPointsModifierSequenceNumber:
        type: "integer"
        format: "int32"
      promotionID:
        type: "string"
      priceDerivationRuleID:
        type: "string"
      priceDerivationRuleEligibilityID:
        type: "string"
      triggerSequenceNumber:
        type: "integer"
        format: "int32"
      eligibilityTypeCode:
        type: "string"
      frequentShopperPointsEarnedCount:
        type: "number"
        format: "double"
      frequentShopperPointsEarnedAmount:
        type: "number"
        format: "double"
      appliedQuantity:
        type: "number"
        format: "double"
      computationBaseAmount:
        type: "number"
        format: "double"
      externalSystemOriginatorFlag:
        type: "boolean"
      prorateFrom:
        type: "integer"
        format: "int32"
      pointsPercentage:
        type: "number"
        format: "double"
      receiptPrinterName:
        type: "string"
      xXCustom01:
        type: "string"
      xXCustom02:
        type: "string"
      xXCustom03:
        type: "string"
      xXCustom04:
        type: "string"
      xXCustom05:
        type: "string"
    description: "FrequentShopperPointsModifierSSC TODO: undocumented"
  com.gk_software.selfscanning.api.service.GetTransactionResult:
    type: "object"
    properties:
      operationStatus:
        type: "string"
        description: "<p>The operation status 'OK' or 'NOK'.</p>"
      statusCode:
        type: "string"
        description: "<p>Contains the status code in case of unsuccessful operation.</p>"
      transaction:
        description: "<p>The self scanning transaction.</p>"
        $ref: "#/definitions/com.gk_software.selfscanning.api.service.TransactionSSC"
      xXCustom01:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom02:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom03:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom04:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom05:
        type: "string"
        description: "<p>Customizable information.</p>"
    description: "GetTransactionResult <p>Result object for get transaction request.</p>"
  com.gk_software.selfscanning.api.service.GiftCertificateRequestSSC:
    type: "object"
    properties:
      configId:
        type: "string"
        description: "<p>The identifier for the gift certificate sale configuration\
          \ that should be used.</p>"
      variables:
        type: "object"
        description: "<p>@deprecated because it is not used by service.</p>"
        additionalProperties:
          type: "string"
      configParameterOverrides:
        type: "object"
        description: "<p>A map of configuration parameters that should be overridden.</p>"
        additionalProperties:
          type: "string"
      giftCertificateDescription:
        type: "string"
        description: "<p>The gift certificate description.</p>"
      giftCertificateQuantity:
        type: "integer"
        format: "int32"
        description: "<p>The quantity for the gift certificate.</p>"
      xXCustom01:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom02:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom03:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom04:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom05:
        type: "string"
        description: "<p>Customizable information.</p>"
    description: "GiftCertificateRequestSSC <p>Request object for self scanning stored\
      \ value server service to sell gift certificates.</p>"
  com.gk_software.selfscanning.api.service.ProcessBarcodeRequest:
    type: "object"
    properties:
      barcodeType:
        type: "string"
        description: "<p>The identifier of the barcode type.<br />\t(E.g. 104 == EAN13)</p>"
      value:
        type: "string"
        description: "<p>The barcode.</p>"
      xXCustom01:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom02:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom03:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom04:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom05:
        type: "string"
        description: "<p>Customizable information.</p>"
    description: "ProcessBarcodeRequest <p>Request object for the process barcode\
      \ operation.</p>"
  com.gk_software.selfscanning.api.service.QuantityInputSSC:
    type: "object"
    properties:
      pieces:
        type: "integer"
        format: "int32"
        description: "<p>The pieces.</p>"
      length:
        type: "number"
        format: "double"
        description: "<p>The length.</p>"
      width:
        type: "number"
        format: "double"
        description: "<p>The width.</p>"
      height:
        type: "number"
        format: "double"
        description: "<p>The height.</p>"
      measure:
        type: "number"
        format: "double"
        description: "<p>The measure.</p>"
      weight:
        type: "number"
        format: "double"
        description: "<p>The weight.</p>"
      manualWeightInput:
        type: "boolean"
        description: "<p>The manual weight input.</p>"
      units:
        type: "number"
        format: "double"
        description: "<p>The units.</p>"
      xXCustom01:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom02:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom03:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom04:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom05:
        type: "string"
        description: "<p>Customizable information.</p>"
    description: "QuantityInputSSC <p>Object for wrapping quantity input.</p>"
  com.gk_software.selfscanning.api.service.RecoverTransactionResult:
    type: "object"
    properties:
      operationStatus:
        type: "string"
        description: "<p>The operation status 'OK' or 'NOK'.</p>"
      statusCode:
        type: "string"
        description: "<p>Contains the status code in case of unsuccessful operation.</p>"
      transaction:
        description: "<p>The recovered self scanning transaction.</p>"
        $ref: "#/definitions/com.gk_software.selfscanning.api.service.TransactionSSC"
      lastUsedLineItemSequenceNumber:
        type: "integer"
        format: "int32"
        description: "<p>The last used line item sequence number of the transaction\
          \ on pos-service side. It helps the self scanning client to handle correct\
          \ item registration to offline transaction and later synchronize again with\
          \ pos-service self scanning transaction response, because self scanning\
          \ transaction does not include void line items and there could be visible\
          \ gaps in sequence numbering that are not resolvable for the client without\
          \ help from pos-service.</p>"
      xXCustom01:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom02:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom03:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom04:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom05:
        type: "string"
        description: "<p>Customizable information.</p>"
    description: "RecoverTransactionResult <p>Result object for recover transaction\
      \ request.</p>"
  com.gk_software.selfscanning.api.service.RegisterLineItemRequest:
    type: "object"
    properties:
      barcode:
        type: "string"
        description: "<p>The barcode for the line item registration.</p>"
      quantityInput:
        description: "<p>The quantity input for the line item registration.</p>"
        $ref: "#/definitions/com.gk_software.selfscanning.api.service.QuantityInputSSC"
      xXCustom01:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom02:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom03:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom04:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom05:
        type: "string"
        description: "<p>Customizable information.</p>"
    description: "RegisterLineItemRequest <p>Request object for the registerItem operation.</p>"
  com.gk_software.selfscanning.api.service.RegistrationDetails:
    type: "object"
    required:
    - "emptiesReturn"
    - "forceQuantityInput"
    - "hasInvalidQuantity"
    - "hasLinkedItems"
    - "prepaidItem"
    - "price"
    - "variantItemsAvailable"
    properties:
      mainPOSItemId:
        type: "string"
        description: "<p>The main POS item identifier.</p>"
      itemName:
        type: "string"
        description: "<p>The item name.</p>"
      usedBarcode:
        type: "string"
        description: "<p>The used barcode value in case of non successful item registration.\
          \ In case of successful item registration you will find the unprocessed\
          \ barcode value at the SaleReturnLineItem.registrationNumber field.</p>"
      prepaidItem:
        type: "boolean"
        description: "<p>A flag to indicate whether the registration is about a prepaid\
          \ item (true) or not (false).</p>"
      hasLinkedItems:
        type: "boolean"
        description: "<p>A flag to indicate whether the registered item has linked\
          \ items (true) or not (false).</p>"
      variantItemsAvailable:
        type: "boolean"
        description: "<p>A flag to indicate whether the registered item has item variants\
          \ available (true) or not (false).</p>"
      emptiesReturn:
        type: "boolean"
        description: "<p>A flag to indicate whether the registered item is an empties\
          \ return (true) or not (false).</p>"
      hasInvalidQuantity:
        type: "boolean"
        description: "<p>A flag to indicate whether the item registration failed due\
          \ to invalid quantity (true) or not (false).</p>"
      price:
        type: "number"
        format: "double"
        description: "<p>The item price.</p>"
      salesRestrictions:
        type: "array"
        description: "<p>List of sales restrictions.</p>"
        items:
          $ref: "#/definitions/com.gk_software.selfscanning.api.service.SalesRestrictionInfo"
      forceQuantityInput:
        type: "boolean"
        description: "<p>If set to true the quantity must be entered manually.</p>"
      quantityInputMethod:
        type: "string"
        description: "<p>Defines the quantity input method:</p><br /><ul><br />\t\
          <li>Quantity Input Method 01: QUANTITY, (PIECE as 'PIECE')</li><br />\t\
          <li>Quantity Input Method 02: QUANTITY + LENGTH, (LENGTH as 'LENGTH')</li><br\
          \ />\t<li>Quantity Input Method 03: QUANTITY + LENGTH + WIDTH, (AREA as\
          \ 'AREA')</li><br />\t<li>Quantity Input Method 04: QUANTITY + LENGTH +\
          \ WIDTH + HEIGHT, (VOLUME as 'VOLUME')</li><br />\t<li>Quantity Input Method\
          \ 05: QUANTITY + WEIGHT, (WEIGHT as 'WEIGHT')</li><br />\t<li>Quantity Input\
          \ Method 06: QUANTITY + MEASURE, (MEASUREMENT as 'MEASUREMENT')</li><br\
          \ />\t<li>Quantity Input Method 07: QUANTITY with decimal places, (PARTITION\
          \ as 'PARTITION')</li><br /></ul>"
      preregisteredQuantity:
        type: "integer"
        format: "int32"
        description: "<p>The pre-registered quantity for the item.</p>"
      uomCode:
        type: "string"
        description: "<p>The unit of measurement code.</p>"
    description: "RegistrationDetails <p>Details of item registration.</p>"
  com.gk_software.selfscanning.api.service.RetailPriceModifierSSC:
    type: "object"
    required:
    - "amount"
    - "appliedQuantity"
    - "calculationBaseAmount"
    - "extendedAmountAfterModification"
    - "extendedAmountBeforeModification"
    - "externalSystemOriginatorFlag"
    - "extraAmount"
    - "percent"
    - "retailPriceModifierSequenceNumber"
    - "retailTransactionLineItemSequenceNumber"
    - "roundingAmount"
    properties:
      retailTransactionLineItemSequenceNumber:
        type: "integer"
        format: "int32"
      retailPriceModifierSequenceNumber:
        type: "integer"
        format: "int32"
      promotionID:
        type: "string"
      priceDerivationRuleID:
        type: "string"
      priceDerivationRuleEligibilityID:
        type: "string"
      reasonCode:
        type: "string"
      previousPrice:
        type: "number"
        format: "double"
      percent:
        type: "number"
        format: "double"
      amount:
        type: "number"
        format: "double"
      calculationMethodCode:
        type: "string"
      adjustmentMethodCode:
        type: "string"
      newPrice:
        type: "number"
        format: "double"
      eligibilityTypeCode:
        type: "string"
      extendedAmountBeforeModification:
        type: "number"
        format: "double"
      extendedAmountAfterModification:
        type: "number"
        format: "double"
      appliedQuantity:
        type: "number"
        format: "double"
      triggerSequenceNumber:
        type: "integer"
        format: "int32"
      reasonDescription:
        type: "string"
      extraAmount:
        type: "number"
        format: "double"
      roundingAmount:
        type: "number"
        format: "double"
      externalSystemOriginatorFlag:
        type: "boolean"
      prorateFrom:
        type: "integer"
        format: "int32"
      calculationBaseAmount:
        type: "number"
        format: "double"
      receiptPrinterName:
        type: "string"
      xXCustom01:
        type: "string"
      xXCustom02:
        type: "string"
      xXCustom03:
        type: "string"
      xXCustom04:
        type: "string"
      xXCustom05:
        type: "string"
    description: "RetailPriceModifierSSC TODO: undocumented"
  com.gk_software.selfscanning.api.service.RetailTransactionCouponSummarySSC:
    type: "object"
    required:
    - "couponNumber"
    - "inputCount"
    properties:
      couponNumber:
        type: "string"
        description: "<p>The coupon number.</p>"
      inputCount:
        type: "number"
        format: "double"
        description: "<p>Count of registered coupons.</p>"
      appliedCount:
        type: "number"
        format: "double"
        description: "<p>Number of used coupons.</p>"
      privilegeType:
        type: "string"
        description: "<p>Determines how the new price is to be calculated in case\
          \ that rebate information is given by PrivilegeValue.</p>"
      privilegeValue:
        type: "number"
        format: "double"
        description: "<p>Reduction amount, reduction percent or new price amount –\
          \ depending on the chosen PrivilegeType.</p>"
      customerID:
        type: "string"
        description: "<p>A unique system assigned identifier for the Customer.</p>"
      customerAddressTypeCode:
        type: "string"
        description: "<p>The customer type code.</p>"
      xXCustom01:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom02:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom03:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom04:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom05:
        type: "string"
        description: "<p>Customizable information.</p>"
    description: "RetailTransactionCouponSummarySSC <p>Entity RetailTransactionCouponSummarySSC</p>"
  com.gk_software.selfscanning.api.service.RetailTransactionCustomerSSC:
    type: "object"
    properties:
      customerID:
        type: "string"
      firstName:
        type: "string"
      lastName:
        type: "string"
      addressTypeCode:
        type: "string"
      xXCustom01:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom02:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom03:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom04:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom05:
        type: "string"
        description: "<p>Customizable information.</p>"
    description: "RetailTransactionCustomerSSC TODO: undocumented"
  com.gk_software.selfscanning.api.service.RetailTransactionLineItemAssociationSSC:
    type: "object"
    required:
    - "lineItemAssociationTypeCode"
    - "lineItemSequenceNumber"
    - "toLineItemSequenceNumber"
    - "toTransactionID"
    properties:
      lineItemSequenceNumber:
        type: "integer"
        format: "int32"
        description: "<p>The sequence number of line item.</p>"
      toTransactionID:
        type: "string"
      toLineItemSequenceNumber:
        type: "integer"
        format: "int32"
        description: "<p>The sequence number of the linked line item.</p>"
      lineItemAssociationTypeCode:
        type: "string"
        description: "<p>A retailer assigned code denoting the relationship between\
          \ the two items.</p>"
      xXCustom01:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom02:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom03:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom04:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom05:
        type: "string"
        description: "<p>Customizable information.</p>"
    description: "RetailTransactionLineItemAssociationSSC <p>Entity RetailTransactionLineItemAssociationSSC</p>"
  com.gk_software.selfscanning.api.service.RetailTransactionLineItemKeySSC:
    type: "object"
    required:
    - "businessUnitGroupID"
    - "retailTransactionLineItemSequenceNumber"
    - "transactionID"
    properties:
      businessUnitGroupID:
        type: "string"
        description: "<p>A unique system assigned identifier for a group of BusinessUnits.</p>"
      transactionID:
        type: "string"
        description: "<p>A universally unique identifier (UUID) for the Transaction.\
          \ This may be assembled from alternate key members.</p>"
      retailTransactionLineItemSequenceNumber:
        type: "integer"
        format: "int32"
        description: "<p>The sequence number of line item within the context of this\
          \ RetailTransaction.</p>"
    description: "RetailTransactionLineItemKeySSC <p>Entity RetailTransactionLineItemKeySSC</p>"
  com.gk_software.selfscanning.api.service.RetailTransactionLineItemSSC:
    type: "object"
    required:
    - "key"
    properties:
      key:
        description: "<p>Key for RetailTransactionLineItemSSC</p>"
        $ref: "#/definitions/com.gk_software.selfscanning.api.service.RetailTransactionLineItemKeySSC"
      retailTransactionLineItemTypeCode:
        type: "string"
        description: "<p>A code to denote the type of retail transaction line item,\
          \ such as Sale/Return, Void, Tender ...</p>"
      voidFlag:
        type: "boolean"
        description: "<p>A boolean indicator that tells if this line item is VOIDED\
          \ or not.</p>"
      voidTypeCode:
        type: "string"
        description: "<p>Describes whether the line item was voided immediately after\
          \ registering it, voided by another line item or internally voided\_</p>"
      saleReturnLineItem:
        description: "<p>sale return line item</p>"
        $ref: "#/definitions/com.gk_software.selfscanning.api.service.SaleReturnLineItemSSC"
      retailTransactionLineItemAssociationList:
        type: "array"
        description: "<p>Defines a list of line item associations.</p>"
        items:
          $ref: "#/definitions/com.gk_software.selfscanning.api.service.RetailTransactionLineItemAssociationSSC"
      xXCustom01:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom02:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom03:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom04:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom05:
        type: "string"
        description: "<p>Customizable information.</p>"
    description: "RetailTransactionLineItemSSC <p>Entity RetailTransactionLineItemSSC</p>"
  com.gk_software.selfscanning.api.service.SaleReturnLineItemSSC:
    type: "object"
    required:
    - "retailTransactionLineItemSequenceNumber"
    properties:
      retailTransactionLineItemSequenceNumber:
        type: "integer"
        format: "int32"
        description: "<p>The sequence number of line item within the context of this\
          \ RetailTransaction.\_</p>"
      mainPOSItemID:
        type: "string"
        description: "<p>The main pos item id</p>"
      itemID:
        type: "string"
        description: "<p>A unique identifier for the item</p>"
      unitOfMeasureCode:
        type: "string"
        description: "<p>The code used to specify the unit of the item</p>"
      itemType:
        type: "string"
        description: "<p>The type code of the line item</p>"
      subItemType:
        type: "string"
        description: "<p>The sub type code of the line item</p>"
      regularUnitPrice:
        type: "number"
        format: "double"
        description: "<p>The regular per-unit price</p>"
      actualUnitPrice:
        type: "number"
        format: "double"
        description: "<p>The actual per-unit price</p>"
      actualUnitPriceQuantity:
        type: "integer"
        format: "int32"
        description: "<p>The actual unit price quantity.</p>"
      quantity:
        type: "integer"
        format: "int32"
        description: "<p>The single quantity of a line item\_Piece Item:3 * itemQuantity\
          \ = 3Units = 1Weight item:3 * 1.234kg * itemQuantity = 3Units = 1.234Item\
          \ with deposit:3 * six-pack (1 six-pack has 6 * deposit item)six-pack: Quantity\
          \ = 3, Units = 1deposit: Quantity = 3, Units = 6</p>"
      units:
        type: "number"
        format: "double"
        description: "<p>The units of the line item Piece Item:3 * itemQuantity =\
          \ 3Units = 1Weight item:3 * 1.234kg * itemQuantity = 3Units = 1.234Item\
          \ with deposit:3 * six-pack (1 six-pack has 6 * deposit item)six-pack: Quantity\
          \ = 3, Units = 1deposit: Quantity = 3, Units = 6</p>"
      extendedAmount:
        type: "number"
        format: "double"
        description: "<p>The product of multiplying Quantity, Units and ActualUnitPrice.</p>"
      extendedDiscountAmount:
        type: "number"
        format: "double"
        description: "<p>The monetary total of all line item discounts that were applied\
          \ to this Item.</p>"
      grandExtendedAmount:
        type: "number"
        format: "double"
        description: "<p>The line item total including taxes and discounts</p>"
      length:
        type: "number"
        format: "double"
        description: "<p>The registered length\_</p>"
      width:
        type: "number"
        format: "double"
        description: "<p>The registered width\_</p>"
      height:
        type: "number"
        format: "double"
        description: "<p>The registered height\_</p>"
      manualWeightInputFlag:
        type: "boolean"
        description: "<p>Describes how the weight was registered\_</p>"
      receiptText:
        type: "string"
        description: "<p>The receipt printout text\_</p>"
      registrationNumber:
        type: "string"
        description: "<p>The complete number which was registered on the POS originally\_\
          </p>"
      negativeLineItemFlag:
        type: "boolean"
        description: "<p>If this flag is set to true, automatically a negative line\
          \ item is created when registering this item. Corresponds to ItemSellingRule.NegativeLineItemFlag</p>"
      discountFlag:
        type: "boolean"
        description: "<p>A flag to indicate whether this ITEM can be discounted. Corresponds\
          \ to Item.DiscountFlag\_</p>"
      frequentShopperPointsEligibilityFlag:
        type: "boolean"
        description: "<p>A flag to denote that the Item is eligible for frequent shopper\
          \ points. Corresponds to ItemSellingRule.FrequentShopperPointsEligibilityFlag\_\
          </p>"
      prohibitReturnFlag:
        type: "boolean"
        description: "<p>A flag to denote whether or not this item may be returned.</p>"
      taxReceiptPrintCode:
        type: "string"
        description: "<p>A short code that is printed on a receipt to denote items\
          \ that are in this TaxableGroup.</p>"
      taxGroupID:
        type: "string"
        description: "<p>The id of the taxable TaxableGroup</p>"
      originalTaxGroupID:
        type: "string"
        description: "<p>The original id of the taxable group.</p>"
      retailPriceModifierList:
        type: "array"
        description: "<p>List of line item discounts.</p>"
        items:
          $ref: "#/definitions/com.gk_software.selfscanning.api.service.RetailPriceModifierSSC"
      frequentShopperPointsModifierList:
        type: "array"
        description: "<p>List of line item points discounts</p>"
        items:
          $ref: "#/definitions/com.gk_software.selfscanning.api.service.FrequentShopperPointsModifierSSC"
      quantityInputTypeCode:
        type: "string"
        description: "<p>Type code for controlling the quantity input.</p>"
      quantityInputMethod:
        type: "string"
        description: "<p>Determines how the input of quantity was done.</p>"
      pOSItemID:
        type: "string"
        description: "<p>The ID used to identify the item.</p>"
      xXCustom01:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom02:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom03:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom04:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom05:
        type: "string"
        description: "<p>Customizable information.</p>"
    description: "SaleReturnLineItemSSC <p>Entity SaleReturnLineItemSSC</p>"
  com.gk_software.selfscanning.api.service.SalesRestrictionInfo:
    type: "object"
    properties:
      salesRestrictionTypeCode:
        type: "string"
        description: "<p>Sales restriction type code, e.g. AGE, CAGE, TIME.</p>"
      salesRestrictionValue:
        type: "string"
        description: "<p>The value of the sales restriction - its content depends\
          \ on the SalesRestrictionTypeCode.</p>"
      questionTypeCode:
        type: "string"
        description: "<p>Type code of the question.</p>"
      xXCustom01:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom02:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom03:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom04:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom05:
        type: "string"
        description: "<p>Customizable information.</p>"
    description: "SalesRestrictionInfo <p>The sales restriction details.</p>"
  com.gk_software.selfscanning.api.service.SetQuantityRequest:
    type: "object"
    properties:
      lineItemKey:
        description: "<p>The line item key for the line item where the quantity should\
          \ be applied.</p>"
        $ref: "#/definitions/com.gk_software.selfscanning.api.service.RetailTransactionLineItemKeySSC"
      quantityInput:
        description: "<p>The quantity input value.</p>"
        $ref: "#/definitions/com.gk_software.selfscanning.api.service.QuantityInputSSC"
      xXCustom01:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom02:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom03:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom04:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom05:
        type: "string"
        description: "<p>Customizable information.</p>"
    description: "SetQuantityRequest <p>Request object for the setQuantity operation.</p>"
  com.gk_software.selfscanning.api.service.StartSessionRequest:
    type: "object"
    required:
    - "autorizationCodeFlag"
    - "validationCode"
    properties:
      businessUnitId:
        type: "string"
        description: "<p>The business unit identifier.</p>"
      customerNumber:
        type: "string"
        description: "<p>The customer number.</p>"
      customerLocale:
        type: "string"
        description: "<p>The customer locale (e.g. en_US).</p>"
      clientVersion:
        type: "string"
        description: "<p>The client software version.<br />\tMax. 40 characters.</p>"
      deviceId:
        type: "string"
        description: "<p>The device identifier.</p>"
      removalDate:
        type: "string"
        description: "<p>The timestamp when the device was removed from the self scanning\
          \ disposal wall.</p>"
      validationCode:
        type: "integer"
        format: "int32"
        description: "<p>The validation code.</p>"
      autorizationCodeFlag:
        type: "boolean"
        description: "<p>The authorization code flag.</p>"
      xXCustom01:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom02:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom03:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom04:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom05:
        type: "string"
        description: "<p>Customizable information.</p>"
    description: "StartSessionRequest <p>Request object for the start self scanning\
      \ operation.</p>"
  com.gk_software.selfscanning.api.service.StartSessionResponse:
    type: "object"
    required:
    - "openTransactionFlag"
    properties:
      operationStatus:
        type: "string"
        description: "<p>The operation status 'OK' or 'NOK'.</p>"
      statusCode:
        type: "string"
        description: "<p>Contains the status code in case of unsuccessful operation.</p>"
      openTransactionFlag:
        type: "boolean"
        description: "<p>A flag to indicate whether there is already an open transaction\
          \ assigned to the customer. As a next step a recovery could be done to continue\
          \ this transaction.</p>"
      xXCustom01:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom02:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom03:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom04:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom05:
        type: "string"
        description: "<p>Customizable information.</p>"
    description: "StartSessionResponse <p>Response object for the start self scanning\
      \ operation.</p>"
  com.gk_software.selfscanning.api.service.TransactionOperationResultSSC:
    type: "object"
    properties:
      operationStatus:
        type: "string"
        description: "<p>The operation status 'OK' or 'NOK'.</p>"
      statusCode:
        type: "string"
        description: "<p>Contains the status code in case of unsuccessful operation.</p>"
      transaction:
        description: "<p>The resulting transaction after a service execution. Note\
          \ that this field will be empty when filtered results are used.</p>"
        $ref: "#/definitions/com.gk_software.selfscanning.api.service.TransactionSSC"
      addedOrdModifiedLineItems:
        type: "array"
        description: "<p>The line items added or modified by a service execution.</p>"
        items:
          $ref: "#/definitions/com.gk_software.selfscanning.api.service.RetailTransactionLineItemSSC"
      actions:
        type: "array"
        description: "<p>A list of barcode processing actions that where involved\
          \ triggering the transaction change operation.</p>"
        items:
          $ref: "#/definitions/com.gk_software.selfscanning.api.service.BarcodeProcessingAction"
      closedLineItems:
        type: "array"
        description: "<p>The line items closed during a service execution.</p>"
        items:
          type: "integer"
          format: "int32"
      deletedLineItems:
        type: "array"
        description: "<p>The line items deleted by a service execution.</p>"
        items:
          type: "integer"
          format: "int32"
      filtered:
        type: "boolean"
        description: "<p>A flag to indicate whether the transaction operation result\
          \ is filtered (true) or not (false). A filtered result contains only the\
          \ differences/deltas to the previous transaction status and not the whole\
          \ transaction (field transaction will be empty). A not filtered result contains\
          \ the whole updated transaction.</p>"
      registrationDetails:
        description: "<p>The item registration details.</p>"
        $ref: "#/definitions/com.gk_software.selfscanning.api.service.RegistrationDetails"
      xXCustom01:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom02:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom03:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom04:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom05:
        type: "string"
        description: "<p>Customizable information.</p>"
    description: "TransactionOperationResultSSC <p>The entity TransactionOperationResultSSC\
      \ contains the result of a service execution and is used for providing transaction\
      \ updates fields updates for service clients.</p>"
  com.gk_software.selfscanning.api.service.TransactionSSC:
    type: "object"
    required:
    - "businessUnitGroupID"
    - "transactionID"
    properties:
      businessUnitGroupID:
        type: "string"
        description: "<p>A unique system assigned identifier for a group of BusinessUnits.</p>"
      transactionID:
        type: "string"
        description: "<p>A universally unique identifier (UUID) for the Transaction.\
          \ This may be assembled from alternate key members.\_</p>"
      sequenceNumber:
        type: "integer"
        format: "int32"
        description: "<p>The sequence number of the transaction (incremental number\
          \ for each workstation). It is formatted according to minimum and maximum\
          \ value and it could be reset every day to minimum value. So in comparison\
          \ to InternalSequenceNumber it must not be unique for business unit and\
          \ workstation.It is used for export, reporting, search and display.</p>"
      beginDateTimestamp:
        type: "string"
        description: "<p>The time and date a transaction is initiated.\_</p>"
      retailTransactionLineItems:
        type: "array"
        description: "<p>list of line items</p>"
        items:
          $ref: "#/definitions/com.gk_software.selfscanning.api.service.RetailTransactionLineItemSSC"
      retailTransactionCouponSummary:
        type: "array"
        description: "<p>Defines a list of coupons. </p>"
        items:
          $ref: "#/definitions/com.gk_software.selfscanning.api.service.RetailTransactionCouponSummarySSC"
      retailTransactionCustomer:
        type: "array"
        items:
          $ref: "#/definitions/com.gk_software.selfscanning.api.service.RetailTransactionCustomerSSC"
      subtotal:
        type: "number"
        format: "double"
        description: "<p>The monetary value of the transaction subtotal without transaction\
          \ discounts.</p>"
      subtotalDiscount:
        type: "number"
        format: "double"
        description: "<p>The monetary value of the transaction subtotal with transaction\
          \ discounts.</p>"
      total:
        type: "number"
        format: "double"
        description: "<p>The monetary value of the transaction total (includes taxes\
          \ that are not included in prices).</p>"
      discountTotal:
        type: "number"
        format: "double"
      bonusPointsTotal:
        type: "number"
        format: "double"
      customerLocale:
        type: "string"
        description: "<p>The custoemr locale.</p>"
      validationCode:
        type: "string"
        description: "<p>The validationCode.</p>"
      iSOCurrencyCode:
        type: "string"
        description: "<p>The main currency of the store.</p>"
      xXCustom01:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom02:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom03:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom04:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom05:
        type: "string"
        description: "<p>Customizable information.</p>"
    description: "TransactionSSC <p>Entity TransactionSSC</p>"
  com.gk_software.selfscanning.api.service.VoidLineItemRequest:
    type: "object"
    properties:
      lineItemKey:
        description: "<p>The line item key for the line item that should be voided.</p>"
        $ref: "#/definitions/com.gk_software.selfscanning.api.service.RetailTransactionLineItemKeySSC"
      xXCustom01:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom02:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom03:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom04:
        type: "string"
        description: "<p>Customizable information.</p>"
      xXCustom05:
        type: "string"
        description: "<p>Customizable information.</p>"
    description: "VoidLineItemRequest <p>Request object for the voidLineItem operation.</p>"
