> ## Documentation Index
> Fetch the complete documentation index at: https://devzone.nayax.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Cortina StaticQR Start

Starts the transaction when a customer scans a static QR code. This endpoint notifies Nayax that a user is at the machine and ready to pay. It links the user ID to the machine ID using a secret token to begin the process.


## OpenAPI

````yaml /openapi/cortina.yaml post /Cortina/{integratorName}/start
openapi: 3.0.1
info:
  description: Credit Card, Prepaid, DynamicQR, StaticQR APIs
  title: Nayax Cortina API
  version: v2.1
  x-logo:
    url: https://www.nayax.com//wp-content/uploads/2015/10/logo_dark1.png
servers:
  - url: https://{domain}:{port}
    variables:
      domain:
        default: example.com
        description: Customer ID assigned by the service provider
      port:
        default: '443'
        enum:
          - '443'
          - '8443'
security: []
paths:
  /Cortina/{integratorName}/start:
    post:
      tags:
        - StaticQR
      summary: Cortina StaticQR Start
      parameters:
        - description: Integrator name assigned by Nayax
          in: path
          name: integratorName
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: '#/components/schemas/StaticNotifyRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/StaticNotifyRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/StaticNotifyRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StaticNotifyResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/StaticNotifyResponse'
          description: Success
      servers:
        - url: https://lynx.nayax.com/payment/v2/transactions
components:
  schemas:
    StaticNotifyRequest:
      additionalProperties: false
      example:
        AppUserId: 111111
        Balance: 0
        SecretToken: 43262a8f8136f704b3d42b3f116e4bb0c4bf69e6d3415aff6e2cb9dfe06630ff
        TerminalId: 77788
        TransactionId: 12345678
      properties:
        AppUserId:
          description: |
            - Mandatory
            - Length: 40
            - Unique identifier of the consumer in Mobile App provider system
          type: string
        Balance:
          description: |
            - Optional
            - Decimal (max 3 digits for cents)
            - The balance of user's account.
          format: double
          type: number
        Data:
          description: |
            - Data received from a third party and will be sent back in response
          type: string
        Products:
          items:
            $ref: '#/components/schemas/Product'
          type: array
        SecretToken:
          description: |
            - Mandatory
            - Length: 64
            - Unique key for the your system.
            This value will be Provided by Nayax in advance.
            You should keep this value as a secret in your system.
          type: string
        TerminalId:
          description: |
            - Conditional, must be sent if UniQR is not sent.
            - Length: 255
            - Unique Identifier for the vending machine printed on a
            sticker or encoded in the QR (HW-Serial of the device)
          type: string
        TransactionId:
          description: |
            - Mandatory
            - Length: 40
            - Unique identifier for the transaction which will be echoed
            in further requests and responses. Minimum of 8 chars.
          type: string
        UniQR:
          description: |
            - Conditional, must be sent if TerminalId is not sent.
            - Machine reference unique qr number
          type: string
      type: object
    StaticNotifyResponse:
      additionalProperties: false
      example:
        Status:
          StatusMessage: Cortina V2 Stub Tester
          Verdict: Approved
      properties:
        Status:
          $ref: '#/components/schemas/Status'
      type: object
    Product:
      type: object
      description: Details of the product selected in the transaction.
      additionalProperties: false
      properties:
        CatalogProductId:
          type: string
          description: >
            External unique identifier of the product (catalog number) as
            defined in the Nayax backoffice.
          example: string
        Code:
          type: integer
          format: int32
          description: >
            Numeric code of the product, as defined in the Nayax backoffice or
            vending machine.
          example: 101
        Group:
          type: string
          description: |
            Product group name as defined in the product map.
          example: Snacks
        Measurement:
          type: number
          format: double
          description: |
            Quantity of the product in the specified unit of measurement.
          example: 1.5
        Name:
          type: string
          description: |
            Product name as defined in the Nayax backoffice.
          example: Sparkling Water
        Price:
          type: number
          format: double
          description: >
            Product price in the machine’s currency. This is the base price
            before adjustments (e.g. surcharges or loyalty discounts).
          example: 2.99
        ProductGroupId:
          type: string
          description: |
            Code of the product group as defined in the product map.
          example: GRP001
        PulseLineNumber:
          type: integer
          format: int32
          description: >
            Line number used for remote vend via pulse. Must be a non-negative
            integer.
          example: 0
        UnitOfMeasurement:
          type: string
          description: |
            Unit of measurement for the product (e.g. "unit", "liter").
          example: unit
    Status:
      additionalProperties: false
      description: Transaction status
      properties:
        Code:
          description: >
            - Conditional - Only if verdict value is declined

            - Please refer to the Decline Reasons Code List in the relevant
            Overview section for full list of allowed decline codes
          format: int32
          type: integer
        CustomDeclineCode:
          description: >
            - Always mirrors the value of the Code field when Code is present,
            regardless of Verdict.

            - Included in all responses (Approved or Declined) whenever Code is
            present.
          format: int32
          type: integer
        StatusMessage:
          description: >
            - Optional

            - Length: 255

            - Transaction status message free text field / additional varying
            data
          type: string
        Verdict:
          description: |
            - Mandatory
            - Const string values:
            - Status of the request ('Approved'/'Declined')
          type: string
      type: object

````