vivenu pos API

The pos API from vivenu — 21 operation(s) for pos.

OpenAPI Specification

vivenu-pos-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: vivenu access-lists pos API
  description: vivenu API Documentation
  version: 1.0.0
  contact:
    name: vivenu GmbH
    url: https://vivenu.com
servers:
- url: https://vivenu.com
  description: Production API
- url: https://vivenu.dev
  description: Staging API
tags:
- name: pos
paths:
  /api/pos:
    get:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: top
        required: false
        schema:
          type: number
          format: float
          default: 25
          metas: {}
        in: query
        style: form
        explode: true
      - name: skip
        required: false
        schema:
          type: number
          format: float
          metas: {}
        in: query
        style: form
        explode: true
      - name: sellerId
        required: false
        schema:
          type: string
          nullable: true
          description: Filter by seller ID
          metas: {}
        in: query
        style: form
        explode: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_Pos_GetAllPos_200_response'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      tags:
      - pos
      description: Get all POS
      operationId: get_all_pos
    post:
      security:
      - jwt: []
      - apikey: []
      parameters: []
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POSResource'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_Pos_CreateAPos'
      tags:
      - pos
      description: Create a POS
      operationId: create_a_pos
  /api/posinfo:
    get:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: top
        required: false
        schema:
          type: number
          format: float
          description: A limit on the number of objects to be returned. Can range between 1 and 1000.
          default: 25
          metas: {}
        in: query
        style: form
        explode: true
      - name: skip
        required: false
        schema:
          type: number
          format: float
          description: The number of objects to skip for the requested result
          metas: {}
        in: query
        style: form
        explode: true
      - name: name
        required: false
        schema:
          type: string
          metas: {}
        in: query
        style: form
        explode: true
      - name: operationMode
        required: false
        schema:
          type: string
          enum:
          - OPERATOR
          - KIOSK
          metas: {}
        in: query
        style: form
        explode: true
      - name: sellerId
        required: false
        schema:
          type: string
          nullable: true
          description: Filter by seller ID
          metas: {}
        in: query
        style: form
        explode: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_Pos_GetAllPosInfos_200_response'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      tags:
      - pos
      description: Get all POS Infos
      operationId: get_all_pos_infos
  /api/pos/{id}:
    get:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: id
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POSResource'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - pos
      description: Get POS
      operationId: get_pos
    put:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: id
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POSResource'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PUT_Pos_UpdatePos'
      tags:
      - pos
      description: Update POS
      operationId: update_pos
  /api/posinfo/{id}:
    get:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: id
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POSInfoResource'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - pos
      description: Get POS Info
      operationId: get_pos_info
  /api/pos/payments/gateways:
    get:
      security:
      - jwt: []
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_Pos_GetTheIDsAndTheTypesOfAllActivePosPaymentGateways_200_response'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      tags:
      - pos
      description: Get the IDs and the types of all active POS payment gateways
      operationId: get_the_i_ds_and_the_types_of_all_active_pos_payment_gateways
  /api/pos/{id}/scannable:
    get:
      security:
      - jwt: []
      parameters:
      - name: code
        required: true
        schema:
          type: string
          description: The scannable code
          metas: {}
        in: query
        style: form
        explode: true
      - name: id
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_Pos_GetScannableInformationForACode_200_response'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      tags:
      - pos
      description: Get scannable information for a code
      operationId: get_scannable_information_for_a_code
  /api/pos/{id}/xreport:
    get:
      security:
      - jwt: []
      parameters:
      - name: id
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      tags:
      - pos
      description: Get X report
      operationId: get_x_report
  /api/pos/{id}/status:
    get:
      security:
      - jwt: []
      parameters:
      - name: id
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POSWithStatusResource'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      tags:
      - pos
      description: Get POS Status
      operationId: get_pos_status
  /api/pos/{id}/sessions:
    get:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: id
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_Pos_GetPosSessions_200_response'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      tags:
      - pos
      description: Get POS sessions
      operationId: get_pos_sessions
  /api/pos/{id}/fiscalization-info:
    get:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: id
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  serialNumberEA:
                    type: string
                    description: The serial number of the EA
                  serialNumberTSE:
                    type: string
                    description: The serial number of the TSE
                  createdAt:
                    description: The date when the fiscalization data was created
                    type: string
                    format: date-time
                required:
                - serialNumberEA
                - serialNumberTSE
                - createdAt
                additionalProperties: false
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - pos
      description: Get POS fiscalization info
      operationId: get_pos_fiscalization_info
  /api/pos/{id}/logs:
    get:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: top
        required: false
        schema:
          type: number
          format: float
          description: A limit on the number of objects to be returned. Can range between 1 and 1000.
          default: 25
          metas: {}
        in: query
        style: form
        explode: true
      - name: skip
        required: false
        schema:
          type: number
          format: float
          description: The number of objects to skip for the requested result
          metas: {}
        in: query
        style: form
        explode: true
      - name: type
        required: false
        schema:
          type: string
          enum:
          - SALE
          - CANCELLATION
          - SESSION_CREATED
          - SESSION_CLOSED
          description: Type of logs to filter
          metas: {}
        in: query
        style: form
        explode: true
      - name: referenceId
        required: false
        schema:
          type: string
          description: ID of the referenced object
          metas: {}
        in: query
        style: form
        explode: true
      - name: id
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_Pos_GetPosJournalLogs_200_response'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - pos
      description: Get POS journal logs
      operationId: get_pos_journal_logs
  /api/pos/{id}/events:
    get:
      security:
      - jwt: []
      parameters:
      - name: top
        required: false
        schema:
          type: number
          format: float
          metas: {}
        in: query
        style: form
        explode: true
      - name: skip
        required: false
        schema:
          type: number
          format: float
          metas: {}
        in: query
        style: form
        explode: true
      - name: startMin
        required: false
        schema:
          type: string
          format: date-time
          metas: {}
        in: query
        style: form
        explode: true
      - name: startMax
        required: false
        schema:
          type: string
          format: date-time
          metas: {}
        in: query
        style: form
        explode: true
      - name: endMin
        required: false
        schema:
          type: string
          format: date-time
          metas: {}
        in: query
        style: form
        explode: true
      - name: endMax
        required: false
        schema:
          type: string
          format: date-time
          metas: {}
        in: query
        style: form
        explode: true
      - name: sellStart
        required: false
        schema:
          type: string
          format: date-time
          metas: {}
        in: query
        style: form
        explode: true
      - name: sellEnd
        required: false
        schema:
          type: string
          format: date-time
          metas: {}
        in: query
        style: form
        explode: true
      - name: rootId
        required: false
        schema:
          oneOf:
          - type: array
            items:
              type: string
              metas: {}
            minItems: 0
            metas: {}
          - type: string
            metas: {}
          metas: {}
        in: query
        style: form
        explode: true
      - name: sortBy
        required: false
        schema:
          type: string
          enum:
          - start
          default: start
          metas: {}
        in: query
        style: form
        explode: true
      - name: sortOrder
        required: false
        schema:
          type: string
          enum:
          - ASC
          - DESC
          default: ASC
          metas: {}
        in: query
        style: form
        explode: true
      - name: locale
        required: false
        schema:
          type: string
          description: Get the info for a specific language
          metas: {}
        in: query
        style: form
        explode: true
      - name: eventTypes
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - SINGLE
            - GROUP
            - RECURRENCE
            - ROOT
            metas: {}
          metas: {}
        in: query
        style: form
        explode: true
      - name: name
        required: false
        schema:
          type: string
          metas: {}
        in: query
        style: form
        explode: true
      - name: id
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_Pos_GetPosEvents_200_response'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - pos
      description: Get pos events
      operationId: get_pos_events
  /api/pos/{id}/export/orderdiscounts:
    get:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: start
        required: true
        schema:
          type: string
          format: date-time
          metas: {}
        in: query
        style: form
        explode: true
      - name: end
        required: true
        schema:
          type: string
          format: date-time
          metas: {}
        in: query
        style: form
        explode: true
      - name: id
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - pos
      description: Export POS order discounts
      operationId: export_pos_order_discounts
  /api/pos/{id}/export/orders:
    get:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: start
        required: true
        schema:
          type: string
          format: date-time
          metas: {}
        in: query
        style: form
        explode: true
      - name: end
        required: true
        schema:
          type: string
          format: date-time
          metas: {}
        in: query
        style: form
        explode: true
      - name: id
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - pos
      description: Export POS orders
      operationId: export_pos_orders
  /api/pos/{id}/export/journallogs:
    get:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: start
        required: true
        schema:
          type: string
          format: date-time
          metas: {}
        in: query
        style: form
        explode: true
      - name: end
        required: true
        schema:
          type: string
          format: date-time
          metas: {}
        in: query
        style: form
        explode: true
      - name: id
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - pos
      description: Export POS journal logs
      operationId: export_pos_journal_logs
  /api/pos/{id}/zreport/{reportId}:
    get:
      security:
      - jwt: []
      parameters:
      - name: id
        required: true
        schema:
          type: string
          metas: {}
        in: path
      - name: reportId
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - pos
      description: Get Z report
      operationId: get_z_report
  /api/pos/{id}/export/cancellations:
    get:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: start
        required: true
        schema:
          type: string
          format: date-time
          metas: {}
        in: query
        style: form
        explode: true
      - name: end
        required: true
        schema:
          type: string
          format: date-time
          metas: {}
        in: query
        style: form
        explode: true
      - name: id
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - pos
      description: Export POS cancellations
      operationId: export_pos_cancellations
  /api/pos/{id}/export/orderitems:
    get:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: start
        required: true
        schema:
          type: string
          format: date-time
          metas: {}
        in: query
        style: form
        explode: true
      - name: end
        required: true
        schema:
          type: string
          format: date-time
          metas: {}
        in: query
        style: form
        explode: true
      - name: id
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - pos
      description: Export POS order items
      operationId: export_pos_order_items
  /api/pos/{id}/disable:
    post:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: id
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POSResource'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - pos
      description: Disable POS
      operationId: disable_pos
  /api/pos/{id}/close:
    post:
      security:
      - jwt: []
      parameters:
      - name: id
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POSCloseSessionResource'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      tags:
      - pos
      description: Close a POS session
      operationId: close_a_pos_session
  /api/pos/{id}/open:
    post:
      security:
      - jwt: []
      parameters:
      - name: id
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POSOpenSessionResource'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_Pos_OpenAPosSession'
      tags:
      - pos
      description: Open a POS session
      operationId: open_a_pos_session
components:
  schemas:
    POSInfoResource:
      type: object
      properties:
        id:
          type: string
          description: The ID of the POS
        sellerId:
          type: string
          description: The ID of the seller owning this POS
        active:
          type: boolean
          description: Whether the POS is active or not
        name:
          type: string
          description: The name of the POS
        posNo:
          type: string
          description: The number of the POS
        printingType:
          type: string
          enum:
          - EXTERNAL
          - DIRECT
          description: The printing type of the POS. DIRECT = direct printing. EXTERNAL = extenral printing.
          default: EXTERNAL
        restrictions:
          type: object
          properties:
            restrictPurchaseIntents:
              type: boolean
              description: Whether the POS user can manage purchase intents
              default: true
          description: Restrictions exposed for POS info
      required:
      - id
      - sellerId
      - active
      - name
      - posNo
      - printingType
      - restrictions
    GET_Pos_GetScannableInformationForACode_200_response:
      oneOf:
      - type: object
        properties:
          type:
            type: string
            enum:
            - product
          resource:
            type: object
            properties:
              _id:
                type: string
                description: The ID of the product
              name:
                type: string
                description: The name of the product
              active:
                type: boolean
                description: Whether the product is active and can be distributed
                default: true
              isFulfillable:
                type: boolean
                description: Whether the product can be delivered
              type:
                type: string
                enum:
                - voucher
                - product
                - donation
                - membership
                - addOn
                description: The type of the product
              image:
                type: string
                nullable: true
                description: The image of the product
              description:
                type: string
                nullable: true
                description: The description of the product
              variants:
                type: array
                items:
                  type: object
                  properties:
                    _id:
                      type: string
                      description: The ID of the product variant of the product
                    name:
                      type: string
                      nullable: true
                      description: The Name of the product variant, defaults to product name if not specified
                    description:
                      type: string
                      nullable: true
                      description: A description of the variant
                    priceType:
                      type: string
                      enum:
                      - fixed
                      - range
                      default: fixed
                    price:
                      type: number
                      format: float
                      nullable: true
                      description: The price of the product
                    priceRange:
                      type: object
                      properties:
                        min:
                          type: number
                          format: float
                          minimum: 0
                          nullable: true
                          description: The minimum price of the product
                        max:
                          type: number
                          format: float
                          minimum: 0
                          nullable: true
                          description: The maximum price of the product
                    taxable:
                      type: boolean
                      description: Whether the product is taxable or not
                    taxRate:
                      type: number
                      format: float
                      description: The tax rate of the product
                    compareAtPrice:
                      type: number
                      format: float
                      nullable: true
                      description: The recommended retail price to compare with the actual price.
                    taxServiceTypeId:
                      type: string
                      nullable: true
                      description: The ID of the tax service of the product
                    gtin:
                      type: string
                      pattern: ^\d+$
                    localization:
                      type: object
                      description: Localization of the product for multiple languages
                  required:
                  - _id
                  - taxable
                description: An array of variants of the product
              categoryIds:
                type: array
                items:
                  type: string
                description: An array of categories to which the product belongs
              voucherSettings:
                type: object
                properties:
                  limitedValidityPeriod:
                    type: boolean
                    description: Whether the voucher should expire
                  validityConfig:
                    type: object
                    properties:
                      amount:
                        type: number
                        format: float
                        minimum: 1
                      type:
                        type: number
                        format: float
                      untilEndOfPeriod:
                        type: boolean
                  pdfImage:
                    type: string
                    description: A marketing image printed onto voucher pdf
                  disclaimer:
                    type: string
                    nullable: true
                    description: A disclaimer text printed onto voucher pdf
                  documentTemplateSettings:
                    type: object
                    properties:
                      templates:
                        type: array
                        items:
                          type: object
                          properties:
                            templateId:
                              type: string
                              description: The ID of the document template
                            format:
                              type: string
                              enum:
                              - A4
                              - LETTER
                              - LEGAL
                              - BOARDING-PASS
                              - PLASTIC-CARD
                              - CARD
                              - LABEL
                              - CUSTOM
                              - APPLE
                              - GOOGLE
                              description: The format of document template for the dimensions.
                            target:
                              type: string
                              enum:
                              - thermal
                              - digital
                              - wallet
                              description: The target of document template for which targets it should be used.
                            type:
                              type: string
                              enum:
                              - ticket
                              - invoice
                              - voucher
                              - member-card
                              - header-card
                              description: The type of document template for which document it should be used. ticket = The document template will be used on tickets. invoice = The document template will be used on invoices.
                          required:
                          - templateId
                          - format
                          - target
                          - type
                nullable: true
                description: If the product is of type voucher
              addOnSettings:
                type: object
                properties:
                  optOutDescription:
                    type: string
                    nullable: true
                    description: The description that is shown to the user if he decides to not buy the addOn
                  localization:
                    type: object
                    description: Localization of the addOnSettings for multiple languages
                nullable: true
              donationSettings:
                type: object
                properties:
                  campaignId:
                    type: string
                    description: The ID of the fundraise campaign
                  fundId:
                    type: string
                    description: The ID of the donation fund
                required:
                - campaignId
                - fundId
                nullable: true
                description: Settings for donation products
              sellerId:
                type: string
                description: The ID of the seller of the product
              meta:
                ty

# --- truncated at 32 KB (84 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/vivenu/refs/heads/main/openapi/vivenu-pos-api-openapi.yml