openapi: 3.0.4
info:
  title: Norce Checkout - Order Management API
  description: |-
    Build 2026-01-12 08:21:29

    The Order Management API is used to create and handle orders
  version: '0.1'
servers:
  - url: https://{slug}.api-se.playground.norce.tech/checkout/order
    description: Playground
    variables:
      slug:
        default: customer-slug
        description: Replace with your slug.
  - url: https://{slug}.api-se.stage.norce.tech/checkout/order
    description: Stage
    variables:
      slug:
        default: customer-slug
        description: Replace with your slug.
  - url: https://{slug}.api-se.norce.tech/checkout/order
    description: Production
    variables:
      slug:
        default: customer-slug
        description: Replace with your slug.
paths:
  /api/v0/checkout/orders:
    post:
      tags:
        - Checkout
      summary: Create a new Order
      description: Creates an order in checkout state
      operationId: CreateCheckoutOrder
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
      requestBody:
        description: Order
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/Order'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
    get:
      tags:
        - Checkout
      summary: Get orders
      description: Get all orders
      operationId: GetCheckoutOrders
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: offset
          in: query
          schema:
            type: integer
            format: int32
        - name: limit
          in: query
          schema:
            type: integer
            format: int32
        - name: search
          in: query
          schema:
            type: string
        - name: payment_id
          in: query
          schema:
            type: string
        - name: reference
          in: query
          schema:
            type: string
        - name: cart_reference
          in: query
          schema:
            type: string
        - name: date_from
          in: query
          schema:
            type: string
            format: date-time
        - name: date_to
          in: query
          schema:
            type: string
            format: date-time
        - name: status
          in: query
          schema:
            type: array
            items:
              $ref: '#/components/schemas/OrderStatus'
        - name: order_by
          in: query
          schema:
            allOf:
              - $ref: '#/components/schemas/OrderListOrderBy'
        - name: order_by_direction
          in: query
          schema:
            allOf:
              - $ref: '#/components/schemas/OrderListOrderByDirection'
        - name: countries
          in: query
          schema:
            type: array
            items:
              type: string
        - name: billing_countries
          in: query
          schema:
            type: array
            items:
              type: string
        - name: shipping_countries
          in: query
          schema:
            type: array
            items:
              type: string
        - name: billing_emails
          in: query
          schema:
            type: array
            items:
              type: string
        - name: shipping_emails
          in: query
          schema:
            type: array
            items:
              type: string
        - name: billing_phones
          in: query
          schema:
            type: array
            items:
              type: string
        - name: shipping_phones
          in: query
          schema:
            type: array
            items:
              type: string
        - name: billing_names
          in: query
          schema:
            type: array
            items:
              type: string
        - name: shipping_names
          in: query
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderPaginationSet'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
  /api/v0/checkout/orders/{order_id}:
    delete:
      tags:
        - Checkout
      summary: Delete existing order
      description: Delete order from a orders repository
      operationId: DeleteCheckoutOrder
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
    get:
      tags:
        - Checkout
      summary: Get order by id
      description: Get order for merchant and channel
      operationId: GetCheckoutOrder
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
  /api/v0/checkout/orders/{order_id}/state:
    put:
      tags:
        - Checkout
      summary: Update Order State
      description: Update order state
      operationId: UpdateCheckoutOrderState
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/State'
        required: true
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
  /api/v0/checkout/orders/{order_id}/cart:
    put:
      tags:
        - Checkout
      summary: Update order cart
      description: Update order cart
      operationId: UpdateCheckoutOrderCart
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/Cart'
        required: true
      responses:
        '200':
          description: OK
        '202':
          description: >-
            The status code indicates that the request has been accepted for
            processing, but the processing has not yet been completed or may
            have been canceled due to a more recent request being processed
            instead.
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
  /api/v0/checkout/orders/{order_id}/customer/billing:
    put:
      tags:
        - Checkout
      summary: Update Customer Billing Address
      description: Update customer billing address
      operationId: UpdateCheckoutOrderCustomerBilling
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
      requestBody:
        description: Billing address
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/Address'
        required: true
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
  /api/v0/checkout/orders/{order_id}/customer/shipping:
    put:
      tags:
        - Checkout
      summary: Update Customer Shipping Address
      description: Update customer shipping address
      operationId: UpdateCheckoutOrderCustomerShipping
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
      requestBody:
        description: Shipping address
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/Address'
        required: true
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
  /api/v0/checkout/orders/{order_id}/consents:
    post:
      tags:
        - Checkout
      summary: Create consent
      description: Create consent
      operationId: CreateCheckoutOrderConsent
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
      requestBody:
        description: Consent
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/Consent'
        required: true
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
    patch:
      tags:
        - Checkout
      summary: Patch consents, will only change value of Checked.
      description: Patch consents
      operationId: PatchCheckoutOrderConsents
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
      requestBody:
        description: Consents
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/Consent'
        required: true
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
  /api/v0/checkout/orders/{order_id}/consents/{consent_id}:
    delete:
      tags:
        - Checkout
      summary: Remove consent
      description: Remove consent
      operationId: RemoveCheckoutOrderConsent
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
        - name: consent_id
          in: path
          description: Consent identifier
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
    patch:
      tags:
        - Checkout
      summary: Patch consent, will only change value of Checked.
      description: Patch consent
      operationId: PatchCheckoutOrderConsent
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
        - name: consent_id
          in: path
          description: Consent identifier
          required: true
          schema:
            type: string
      requestBody:
        description: Consent
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/Consent'
        required: true
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
  /api/v0/checkout/orders/{order_id}/attributes:
    patch:
      tags:
        - Checkout
      summary: Patch attributes
      description: Patch attributes
      operationId: PatchCheckoutOrderAttributes
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
      requestBody:
        description: Attribute
        content:
          application/json:
            schema:
              type: object
              additionalProperties: {}
        required: true
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
  /api/v0/checkout/orders/{order_id}/validations:
    post:
      tags:
        - Checkout
      summary: Create validation
      description: Create validation
      operationId: CreateCheckoutOrderValidation
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
      requestBody:
        description: Validation callback
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/Callback'
        required: true
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
  /api/v0/checkout/orders/{order_id}/validations/{validation_id}:
    put:
      tags:
        - Checkout
      summary: Update validation
      description: Update validation
      operationId: UpdateCheckoutOrderValidation
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
        - name: validation_id
          in: path
          description: Validation identifier
          required: true
          schema:
            type: string
      requestBody:
        description: Validation callback
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/Callback'
        required: true
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
    delete:
      tags:
        - Checkout
      summary: Remove validation
      description: Remove validation
      operationId: RemoveCheckoutOrderValidation
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
        - name: validation_id
          in: path
          description: Validation identifier
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
  /api/v0/checkout/orders/{order_id}/validate:
    post:
      tags:
        - Checkout
      summary: Validate an order
      description: Validate order
      operationId: Validate
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValidationError'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValidationError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
  /api/v0/checkout/orders/{order_id}/reference:
    put:
      tags:
        - Checkout
      summary: Update Order Reference
      description: Update order reference
      operationId: UpdateCheckoutOrderReference
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
  /api/v0/checkout/orders/{order_id}/hooks:
    post:
      tags:
        - Checkout
      summary: Create hook
      description: Create hook
      operationId: CreateCheckoutOrderHook
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
      requestBody:
        description: Hook
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/Hook'
        required: true
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
  /api/v0/checkout/orders/{order_id}/hooks/{hook_id}:
    delete:
      tags:
        - Checkout
      summary: Delete hook
      description: Delete hook
      operationId: DeleteCheckoutOrderHook
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
        - name: hook_id
          in: path
          description: Hook identifier
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
  /api/v0/checkout/orders/{order_id}/notifications:
    post:
      tags:
        - Checkout
      summary: Create notification
      description: Create notification
      operationId: CreateCheckoutOrderNotification
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
      requestBody:
        description: Notification
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/Notification'
        required: true
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
  /api/v0/checkout/orders/{order_id}/notifications/{notification_id}:
    delete:
      tags:
        - Checkout
      summary: Delete notification
      description: Delete notification
      operationId: DeleteCheckoutOrderNotification
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
        - name: notification_id
          in: path
          description: Notification identifier
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
  /api/v0/checkout/orders/{order_id}/payments:
    post:
      tags:
        - Checkout Payment
      summary: Create Order Payment
      description: Creates a order payment
      operationId: CreateOrderPayment
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
      requestBody:
        description: Payment
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/Payment'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
    get:
      tags:
        - Checkout Payment
      summary: Get Order Payments
      description: Get order payments
      operationId: GetOrderPayments
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Payment'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
  /api/v0/checkout/orders/{order_id}/payments/{payment_id}:
    get:
      tags:
        - Checkout Payment
      summary: Get Order Payment
      description: Get order payment
      operationId: GetOrderPayment
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
        - name: payment_id
          in: path
          description: Payment identifier
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
    put:
      tags:
        - Checkout Payment
      summary: Update Order Payment
      description: Update order payment
      operationId: UpdateOrderPayment
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
        - name: payment_id
          in: path
          description: Payment identifier
          required: true
          schema:
            type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/Payment'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
  /api/v0/checkout/orders/{order_id}/payments/{payment_id}/transactions:
    get:
      tags:
        - Checkout Payment
      summary: Get transactions for an order payment
      description: Get transactions for an order payment
      operationId: GetTransactionsForOrderPayment
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
        - name: payment_id
          in: path
          description: Payment identifier
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PaymentTransaction'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
    post:
      tags:
        - Checkout Payment
      summary: Add transaction for an order payment
      description: Add transaction for an order payment
      operationId: AddTransactionForOrderPayment
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
        - name: payment_id
          in: path
          description: Payment identifier
          required: true
          schema:
            type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/PaymentTransaction'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentTransaction'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
  /api/v0/checkout/orders/{order_id}/payments/{payment_id}/actions:
    post:
      tags:
        - Checkout Payment
      summary: Create a Payment PaymentAction
      description: Add paymentAction for an order payment
      operationId: AddPaymentAction
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
        - name: payment_id
          in: path
          description: Payment identifier
          required: true
          schema:
            type: string
      requestBody:
        description: Payment Actions
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/PaymentAction'
        required: true
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
  /api/v0/checkout/orders/{order_id}/payments/{payment_id}/actions/{action_id}/execute:
    post:
      tags:
        - Checkout Payment
      summary: Execute a Payment PaymentAction
      description: Execute a paymentAction for an order payment
      operationId: ExecutePaymentAction
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
        - name: payment_id
          in: path
          description: Payment identifier
          required: true
          schema:
            type: string
        - name: action_id
          in: path
          description: PaymentAction identifier
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
  /api/v0/checkout/orders/{order_id}/shippings:
    post:
      tags:
        - Checkout Shipping
      summary: Create Order Shipping
      description: Creates a order shipping
      operationId: CreateOrderShipping
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
      requestBody:
        description: Shipping
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/Shipping'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
    get:
      tags:
        - Checkout Shipping
      summary: Get Order Shippings
      description: Get order shippings
      operationId: GetOrderShippings
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Shipping'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
  /api/v0/checkout/orders/{order_id}/shippings/{shipping_id}:
    get:
      tags:
        - Checkout Shipping
      summary: Get Order Shipping
      description: Get order shipping
      operationId: GetOrderShipping
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
        - name: shipping_id
          in: path
          description: Shipping identifier
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Shipping'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
    put:
      tags:
        - Checkout Shipping
      summary: Update Order Shipping
      description: Update order shipping
      operationId: UpdateOrderShipping
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            minLength: 1
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            minLength: 1
            type: string
            example: '1'
          example: '1'
        - name: x-adapterid
          in: header
          description: >-
            Optional adapter identifier. When provided, hooks belonging to this
            adapter

            will not be triggered for changes made by the adapter itself.
          schema:
            type: string
            example: qliro_checkout_adapter
          example: qliro_checkout_adapter
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
        - name: shipping_id
          in: path
          description: Shipping identifier
          required: true
          schema:
            type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/Shipping'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Shipping'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      security:
        - Bearer: []
components:
  schemas:
    Addon:
      type: object
      properties:
        reference:
          type: string
          description: Shipping addon reference.
        price:
          type: number
          description: Cost of addon. Amount in major unit currency.
          format: double
      additionalProperties: false
    Address:
      type: object
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/CustomerType'
          description: The type of customer
          example: Person
        givenName:
          type: string
          description: Given name or first name.
          example: Rosalinainho
        familyName:
          type: string
          description: Family name or last name.
          example: Undulatsson
        careOf:
          type: string
          description: Care of.
          example: Olleinho Jyckesson
        reference:
          type: string
          description: Reference to the customer
        organizationName:
          type: string
          description: Name of the Organization
          example: Storm
        streetAddress:
          type: string
          description: Address or street name, first line.
          example: Adaptivevägen 18
        streetAddress2:
          type: string
          description: Address or street name, second line.
          example: Lgh 1203
        postalCode:
          type: string
          description: Postal code, zip or post code.
          example: 955 60
        city:
          type: string
          description: City.
          example: Boden
        region:
          type: string
          description: State or region.
          example: Norrbotten
        country:
          pattern: ^[A-Za-z]{2,2}$
          type: string
          description: Country. ISO 3166 alpha-2.
          example: SE
        phone:
          type: string
          description: Phone number.
          example: '0753892233'
        email:
          type: string
          description: E-mail address.
          example: rosalinainho.undulatsson@example.com
        nationalIdentificationNumber:
          type: string
          description: >-
            Number used to identify individuals. E.g. could be used for Personal
            identity number (personnummer) in Sweden.
          example: 890201-3286
        organizationIdentificationNumber:
          type: string
          description: >-
            Number used to identify organizations or legal persons. E.g. could
            be used for Corporate identity number.

            (organisationsnummer in Sweden)
          example: 212000-1355
        attributes:
          type: object
          additionalProperties: {}
          description: Allows you to store any custom attributes for the address.
      additionalProperties: false
    BaseError:
      type: object
      properties:
        code:
          type: string
          description: Error code
          example: order-not-found
        message:
          type: string
          description: Detailed error information
          example: Order with id:{id} not found.
      additionalProperties: false
    Callback:
      type: object
      properties:
        id:
          type: string
          description: Unique ID for the callback.
          readOnly: true
          example: oc_BaDIudFOjBEuFmLlmDExePUFTh
        adapterId:
          type: string
          description: Callback Adapter ID.
          example: jetshop_adapter
        url:
          type: string
          description: >-
            Full valid url to be called by POST. If the url contains the
            substring '{order_id}' it will be replaced with the

            orders id

            before call is performed.
          example: >-
            http://specific-feature-adapter.norce.io/api/v1/callbacks/orders/{order_id}/specific-callback
      additionalProperties: false
    Cart:
      type: object
      properties:
        reference:
          type: string
          description: Cart Reference
        items:
          type: array
          items:
            $ref: '#/components/schemas/Item'
          description: List of Items
        discounts:
          type: array
          items:
            $ref: '#/components/schemas/Discount'
          description: List of Discounts
        total:
          allOf:
            - $ref: '#/components/schemas/Price'
          description: Cart total excluding shipping fees
        attributes:
          type: object
          additionalProperties: {}
          description: Allows you to store any custom attributes for cart.
      additionalProperties: false
    Consent:
      type: object
      properties:
        id:
          type: string
          description: Unique ID for the consent item.
          example: ci_newsleter
        checked:
          type: boolean
          description: Consent checked status.
        text:
          type: string
          description: Consent description.
        required:
          type: boolean
          description: Required for transitioning order state to 'Processing'
      additionalProperties: false
    CreateResponse:
      type: object
      properties:
        id:
          type: string
      additionalProperties: false
    Customer:
      required:
        - type
      type: object
      properties:
        billing:
          allOf:
            - $ref: '#/components/schemas/Address'
          description: Billing address to the customer
        shipping:
          allOf:
            - $ref: '#/components/schemas/Address'
          description: Shipping address to the customer
        type:
          allOf:
            - $ref: '#/components/schemas/CustomerType'
          description: The type of customer
          example: Person
        attributes:
          type: object
          additionalProperties: {}
          description: Allows you to store any custom attributes for the customer.
      additionalProperties: false
    CustomerType:
      enum:
        - person
        - organization
      type: string
    DeliveryDetails:
      type: object
      properties:
        carrier:
          type: string
          description: Carrier name.
        carrierProductId:
          type: string
          description: Carrier product identifier.
        class:
          type: string
          description: Shipping class.
        product:
          allOf:
            - $ref: '#/components/schemas/Product'
          description: Shipping product.
        pickupLocation:
          allOf:
            - $ref: '#/components/schemas/PickupLocation'
          description: Pickup location.
      additionalProperties: false
    Discount:
      type: object
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/DiscountType'
          description: Indicates if the discount applies to items or shipping.
        name:
          type: string
          description: Name of the discount.
        reference:
          type: string
          description: Discount reference.
        description:
          type: string
          description: Description of the discount.
        code:
          type: string
          description: Discount code.
        value:
          allOf:
            - $ref: '#/components/schemas/Price'
          description: Total sum of discount.
        attributes:
          type: object
          additionalProperties: {}
          description: Allows you to store any custom attributes for the discount.
      additionalProperties: false
    DiscountType:
      enum:
        - item
        - shipping
      type: string
    Hook:
      type: object
      properties:
        id:
          type: string
          description: Unique ID for the callback.
          readOnly: true
          example: oc_BaDIudFOjBEuFmLlmDExePUFTh
        adapterId:
          type: string
          example: jetshop_adapter
        subscribeTo:
          type: string
        target:
          type: string
        invoke:
          type: string
          description: >-
            Full valid url to be called by POST. If the url contains the
            substring '{order_id}' it will be replaced with the

            orders id

            before call is performed.
          example: >-
            http://specific-feature-adapter.norce.io/api/v1/callbacks/orders/{order_id}/specific-callback
        version:
          allOf:
            - $ref: '#/components/schemas/OrderVersion'
          description: The version of the order body you expect to receive in the callback.
      additionalProperties: false
    Item:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the order
          example: ci_FpEzyBvBBUyKxkeNriFUxZOCje
        reference:
          type: string
          description: Optional. Platform cart item reference.
        name:
          type: string
          description: Descriptive name of the item.
          example: T-Shirt XL
        sku:
          type: string
          description: SKU or article number.
          example: A000123
        productType:
          allOf:
            - $ref: '#/components/schemas/ProductType'
          description: >-
            Product type, physical is the default. Other options include
            Digital, GiftCard and Bundle.
        items:
          type: array
          items:
            $ref: '#/components/schemas/Item'
          description: >-
            A List of items, useful for when this item is a bundle containing
            other items.
        url:
          type: string
          description: URL to the product page.
          example: https://example.com/products/A000123
        imageUrl:
          type: string
          description: URL to an image showing the item.
          example: https://example.com/products/A000123/images/1
        quantity:
          type: integer
          description: Quantity of the item.
          format: int32
          example: 2
        unit:
          type: string
          description: Unit used to describe the quantity. Ex. st, kg
          example: st
        price:
          allOf:
            - $ref: '#/components/schemas/Price'
          description: Unit price, excluding discount
        total:
          allOf:
            - $ref: '#/components/schemas/Price'
          description: Total sum for all quantities including discount.
        originalTotal:
          allOf:
            - $ref: '#/components/schemas/Price'
          description: Total sum for all quantities excluding discount.
        vatRate:
          type: number
          description: Value-added tax. 25% would be input as 0.25.
          format: double
          example: 0.25
        discounts:
          type: array
          items:
            $ref: '#/components/schemas/Discount'
          description: Discounts applied to item.
        logistics:
          allOf:
            - $ref: '#/components/schemas/Logistics'
          description: Logistics-related information for shipping and handling of the item.
        upsell:
          type: boolean
          description: Indicates if item should be added after order has been accepted.
        attributes:
          type: object
          additionalProperties: {}
          description: Allows you to store any custom attributes for the item.
      additionalProperties: false
    Logistics:
      type: object
      properties:
        weight:
          type: integer
          description: Weight of the item in grams.
          format: int32
          example: 2500
        height:
          type: integer
          description: Height of the item in millimeters.
          format: int32
          example: 100
        width:
          type: integer
          description: Width of the item in millimeters.
          format: int32
          example: 50
        length:
          type: integer
          description: Length of the item in millimeters.
          format: int32
          example: 200
        tags:
          type: array
          items:
            type: string
          description: >-
            Tags that can be used to setup custom delivery rules in delivery
            modules.
        shippingDate:
          type: string
          format: date-time
      additionalProperties: false
    Notification:
      type: object
      properties:
        id:
          type: string
          description: Unique ID for the Notification
          example: ocGooDddTOjKOuFmNnkEozEpfuTh
        adapterId:
          type: string
          description: >-
            Identifier for the system responsible for this notification. If any
            reference to configuration is made inside curly

            braces in Invoke the configuration is found using this identifier.
          example: jetshop_adapter
        reference:
          type: string
          description: >-
            Reference for the Notification. Should (but not required to) be
            unique for the order. Used to track notifications

            across different orders.
          example: PuXCudQEiWTOHvquGGolFUVOuy
        description:
          type: string
          description: Purpose or effect of the notification.
          example: Export payment information to Jetshop when order has been completed.
        scope:
          type: string
          description: >-
            Valid json path inside the order. Does not support scope inside
            arrays.
          example: /state/currentStatus
        schema:
          type: object
          additionalProperties: {}
          description: >-
            Json schema (https://json-schema.org/draft/2020-12/schema) on the
            scope. Notification triggers when a change occurs

            on the scope and the schema is valid for the scope.
          example:
            const: completed
        invoke:
          type: string
          description: >-
            Url to invoke on notification trigger. Can include references to
            adapter configuration and order inside curly

            braces.
          example: >-
            {configuration.adapter.internalUrl}/api/v1/callbacks/orders/{order.id}/specific-callback
        version:
          allOf:
            - $ref: '#/components/schemas/OrderVersion'
          description: The version of the order body you expect to receive in the callback.
        delay:
          type: integer
          description: The delay in ms before the notification is sent.
          format: int32
      additionalProperties: false
    Order:
      required:
        - channel
        - merchant
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the order
          readOnly: true
          example: o_yClTSySjyAuuBjmiBlHCjuEcTf
        merchant:
          minLength: 1
          type: string
          description: Merchant identifier
          readOnly: true
        channel:
          minLength: 1
          type: string
          description: Merchant channel
          readOnly: true
        reference:
          type: string
          description: External order reference
        created:
          type: string
          description: Order creation date time
          format: date-time
          readOnly: true
        lastModified:
          type: string
          description: Order last modified date time
          format: date-time
          readOnly: true
        state:
          allOf:
            - $ref: '#/components/schemas/State'
          description: Order state
        culture:
          pattern: ^[A-Za-z]{2,3}(?:-[A-Za-z]{2,2})*$
          type: string
          description: Order Culture, RFC-1766
        currency:
          pattern: ^[A-Za-z]{3,3}$
          type: string
          description: Order Currency, ISO 4217 alpha-3.
        country:
          pattern: ^[A-Za-z]{2,2}$
          type: string
          description: Order Country. ISO 3166 alpha-2.
        cart:
          allOf:
            - $ref: '#/components/schemas/Cart'
          description: Order cart
        shippings:
          type: array
          items:
            $ref: '#/components/schemas/Shipping'
          description: Shippings related to the order
          readOnly: true
        payments:
          type: array
          items:
            $ref: '#/components/schemas/Payment'
          description: Payments related to the order
          readOnly: true
        customer:
          allOf:
            - $ref: '#/components/schemas/Customer'
          description: Customer information
        consents:
          type: array
          items:
            $ref: '#/components/schemas/Consent'
          description: Order consents
        validations:
          type: array
          items:
            $ref: '#/components/schemas/Callback'
          description: >-
            Order actions are called in order to complete an action, such as
            'Validate'. If provided the action is not

            completed if the response is not successful (e.g. http status code
            400), note however that in case of a time

            constraint the action might be completed without a successful
            response.
        hooks:
          type: array
          items:
            $ref: '#/components/schemas/Hook'
          description: Hooks, added by a separate endpoint.
        notifications:
          type: array
          items:
            $ref: '#/components/schemas/Notification'
          description: >-
            Order notifications are called after an event has occurred, such as
            order reaching 'Completed' state.
        total:
          allOf:
            - $ref: '#/components/schemas/Price'
          description: Order total including shipping fees
        attributes:
          type: object
          additionalProperties: {}
          description: Allows you to store any custom attributes for the order.
      additionalProperties: false
    OrderListOrderBy:
      enum:
        - created
        - billingEmail
        - billingName
        - cartTotal
      type: string
    OrderListOrderByDirection:
      enum:
        - asc
        - desc
      type: string
    OrderPaginationSet:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Order'
          description: Data set of requested orders
          readOnly: true
        pagination:
          allOf:
            - $ref: '#/components/schemas/Pagination'
          description: Pagination meta data
          readOnly: true
      additionalProperties: false
    OrderStatus:
      enum:
        - checkout
        - processing
        - accepted
        - completed
        - declined
        - removed
      type: string
    OrderVersion:
      enum:
        - v0
        - v1
      type: string
    Pagination:
      type: object
      properties:
        offset:
          type: integer
          description: Query offset
          format: int32
          readOnly: true
        limit:
          type: integer
          description: Query limit
          format: int32
          readOnly: true
        size:
          type: integer
          description: Results count, after filtering
          format: int32
          readOnly: true
        valueSum:
          type: number
          description: Sum of values, after filtering, Amount in major unit currency.
          format: double
          readOnly: true
        totalSize:
          type: integer
          description: Total size of available set
          format: int32
          readOnly: true
      additionalProperties: false
    Payment:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the payment.
          readOnly: true
          example: p_KBiXuYjvYxsezKCQAMuuSKGDaT
        adapterId:
          type: string
          description: Adapter ID
          example: klarna-checkout
        name:
          type: string
          description: Payment service provider name
        merchant:
          type: string
          description: Merchant identifier.
          example: norce
        channel:
          type: string
          description: Merchant channel.
        currency:
          pattern: ^[A-Za-z]{3,3}$
          type: string
          description: Currency of the purchase. ISO 4217 alpha-3.
          example: SEK
        type:
          allOf:
            - $ref: '#/components/schemas/PaymentType'
          description: Type of payment.
          example: default
        orderId:
          type: string
          description: ID of the order.
          example: o_DhZSbDfVzNzuxOzHyCFskzGzaJ
        amount:
          type: number
          description: >-
            The amount to be covered by the payment. Amount in major unit
            currency.
          format: double
          example: 10
        upperLimitAmount:
          type: number
          description: >-
            The upper limit to be used by this payment. For example the amount
            available on a voucher. Amount in major unit currency.
          format: double
          example: 100
        state:
          allOf:
            - $ref: '#/components/schemas/PaymentState'
          description: The state of the payment.
          example: Intent
        reference:
          type: string
          description: External reference to payment service provider.
          example: 7d31e2cf-2d46-4db0-b87d-d65dfaae298f
        attributes:
          type: object
          additionalProperties: {}
          description: Allows you to store any custom attributes for the payment.
        actions:
          type: array
          items:
            $ref: '#/components/schemas/PaymentAction'
          description: After payment actions
        recurring:
          allOf:
            - $ref: '#/components/schemas/Recurring'
          description: >-
            Information about a recurring payment used for processing repeated
            purchases.
        upsell:
          allOf:
            - $ref: '#/components/schemas/Upsell'
          description: Information about upsell transactions.
      additionalProperties: false
    PaymentAction:
      required:
        - adapterId
        - type
        - url
      type: object
      properties:
        id:
          type: string
          readOnly: true
        adapterId:
          minLength: 1
          type: string
        type:
          minLength: 1
          type: string
        url:
          minLength: 1
          type: string
      additionalProperties: false
    PaymentEvent:
      enum:
        - open
        - process
        - confirm
        - reopen
        - cancel
        - paymentAction
        - capture
        - refund
      type: string
    PaymentState:
      enum:
        - intent
        - removed
        - processing
        - failed
        - confirmed
        - pending
        - declined
        - reserved
        - credited
        - captured
        - cancelled
        - refunded
      type: string
    PaymentTransaction:
      type: object
      properties:
        event:
          allOf:
            - $ref: '#/components/schemas/PaymentEvent'
          description: Event that triggered the transaction.
        pspEvent:
          type: string
          description: Payment service provider event.
        amount:
          type: number
          description: Amount after transaction. Amount in major unit currency.
          format: double
        isSuccess:
          type: boolean
          description: Indicated whether the transaction was successful.
        errorDetail:
          type: string
          description: Message detailing the error.
        pspStatus:
          type: string
          description: Payment service provider status.
        requestJson:
          type: string
          description: Transaction request. Must be a valid json.
        responseJson:
          type: string
          description: Transaction response. Must be a valid json.
        created:
          type: string
          description: DateTime when transaction was posted.
          format: date-time
          readOnly: true
        paymentAction:
          allOf:
            - $ref: '#/components/schemas/PaymentAction'
          description: Payment Action
      additionalProperties: false
    PaymentType:
      enum:
        - default
        - prepaid
        - voucher
      type: string
    PickupLocation:
      type: object
      properties:
        reference:
          type: string
          description: Pickup location reference.
        name:
          type: string
          description: Name of pickup location.
        address:
          allOf:
            - $ref: '#/components/schemas/PickupLocationAddress'
          description: Pickup location address.
      additionalProperties: false
    PickupLocationAddress:
      type: object
      properties:
        streetAddress:
          type: string
          description: Address or street name, first line.
          example: Adaptivevägen 18
        city:
          type: string
          description: City.
          example: Boden
        postalCode:
          type: string
          description: Postal code, zip or post code.
          example: 955 60
        country:
          pattern: ^[A-Za-z]{2,2}$
          type: string
          description: Country. ISO 3166 alpha-2.
          example: SE
      additionalProperties: false
    Price:
      type: object
      properties:
        includingVat:
          type: number
          description: >-
            Total price including vat in the checkout specified currency. Amount
            in major unit currency.
          format: double
          example: 1234
        excludingVat:
          type: number
          description: >-
            Total price excluding vat in the checkout specified currency. Amount
            in major unit currency.
          format: double
          example: 987.2
      additionalProperties: false
    Product:
      type: object
      properties:
        reference:
          type: string
          description: Product reference.
        name:
          type: string
          description: Carrier product name.
      additionalProperties: false
    ProductType:
      enum:
        - physical
        - digital
        - giftCard
        - bundle
      type: string
    Recurring:
      required:
        - token
      type: object
      properties:
        token:
          minLength: 1
          type: string
        description:
          type: string
        attributes:
          type: object
          additionalProperties: {}
      additionalProperties: false
    Shipping:
      required:
        - total
        - vatRate
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the shipping.
          readOnly: true
          example: s_pmHreuEBboeezpixrHMDPQlazU
        merchant:
          type: string
          description: Merchant identifier.
          example: norce
        channel:
          type: string
          description: Channel identifier
          example: '1'
        state:
          allOf:
            - $ref: '#/components/schemas/ShippingState'
          description: Current state of the shipping.
        reference:
          type: string
          description: External reference to shipping.
          example: e8ed2091-c34c-4837-a3a8-bc827b0dc183
        tmsReference:
          type: string
          description: TMS Reference.
          example: a935a628-f70c-47a4-a9f6-98c6d08c2ba3
        orderId:
          type: string
          description: ID of the order.
          example: o_DhZSbDfVzNzuxOzHyCFskzGzaJ
        adapterId:
          type: string
          description: Adapter ID
          example: ingrid-shipping-adapter
        name:
          type: string
          description: Descriptive name of the shipping.
          example: PostNord MyPack Home
        total:
          allOf:
            - $ref: '#/components/schemas/Price'
          description: Total price of the shipping.
        vatRate:
          type: number
          description: Value-added tax. 25% would be input as 0.25.
          format: double
          example: 0.25
        deliveryDetails:
          allOf:
            - $ref: '#/components/schemas/DeliveryDetails'
          description: Delivery details.
        addons:
          type: array
          items:
            $ref: '#/components/schemas/Addon'
          description: Shipping addons.
        attributes:
          type: object
          additionalProperties: {}
          description: Allows you to store any custom attributes for the shipping.
      additionalProperties: false
    ShippingState:
      enum:
        - intent
        - removed
        - processing
        - failed
        - confirmed
      type: string
    State:
      type: object
      properties:
        currentStatus:
          allOf:
            - $ref: '#/components/schemas/OrderStatus'
          description: State of the order.
        transitions:
          type: array
          items:
            $ref: '#/components/schemas/Transition'
          description: State transitions.
          readOnly: true
      additionalProperties: false
    Transition:
      type: object
      properties:
        status:
          allOf:
            - $ref: '#/components/schemas/OrderStatus'
          description: State of the order.
          readOnly: true
        timeStamp:
          type: string
          description: UTC Time when state was set.
          format: date-time
          readOnly: true
      additionalProperties: false
    Upsell:
      type: object
      properties:
        eligible:
          type: boolean
        expiration:
          type: string
          description: |-
            If provided this will indicate how long until upsell is no longer
            possible.
          format: date-time
        transactions:
          type: array
          items:
            $ref: '#/components/schemas/UpsellTransaction'
        attributes:
          type: object
          additionalProperties: {}
      additionalProperties: false
    UpsellState:
      enum:
        - created
        - actionRequired
        - completed
        - failed
      type: string
    UpsellTransaction:
      type: object
      properties:
        id:
          type: string
          description: |-
            Provider-specific id for referencing the upsell transaction
            (e.g. Qliro upsellId, Walley checkout reference)
        state:
          allOf:
            - $ref: '#/components/schemas/UpsellState'
          description: State derived from provider status mapping
        attributes:
          type: object
          additionalProperties: {}
          description: Metadata that may vary between PSPs (items, URLs, constraints, ...)
      additionalProperties: false
    ValidationError:
      type: object
      properties:
        code:
          type: string
        adapterId:
          type: string
      additionalProperties: false
  securitySchemes:
    Bearer:
      type: apiKey
      description: >-
        Authorization header using the bearer scheme. Example: 'Bearer
        a3bcdABCaB12abc3AbCDAB5AbcABCaBcABC5ab3c5A0='
      name: Authorization
      in: header
