openapi: 3.0.2
info:
  title: Media Jay Basket API - v2
  description: >

    The basket API provides shopping baskets. It is designed fast access for a
    big amount of users.


    #### Authentication


    To access the endpoints you require a **X-API-Key** in the header. Partners,
    please contact Transfermedia to retrieve one.


    All endpoints are protected with a standard Authentication Bearer JWT token.
    We provide two mechanisms here:

    1. A JWT token provided on partner side. Signature validation is required.
        This allows **comfort functions** like:
        - the customer id to prevent users to re-enter their data multiple times
        - a payment token to checkout with a single click

        This requires:
        - that the JWT token can be validated on partners side.
        - the user id is specified in the 'sub' field of the payload.
        - optionally a static issuer is specified in the 'iss' field of the payload.
        - optionally a static audience is specified in the 'aud' field of the payload.
    2. A JWT token and a user id is generated on an endpoint in the basket api
    for **guest users**. In such a case the basket has some limitations:
        - the basket is a fresh one (filled only with the products specified)
        - no comfort functions are available
        - the JWT token expires after 30 days 


    #### Versioning

    To use a specific implementation version of this API place it to the request
    header **X-API-Version**.

    If the header is missed the latest implementation version **2025-07-21** is
    used.

    The response header **X-API-Version** contains the implementation version
    the request was processed with.


    #### Shopping basket

    A **shopping basket** contains three product lists:

    - *cart*: holding up to 20 products planned to buy

    - *saved*: holding the products to remember for later usage (aka wishlist)

    - *checkout*: holding the products currently in the order process (in the
    active checkout session)

    Products can be added, updated and deleted to/from the cart or saved list.


    #### Products

    *Products* are represented by a product identifier with an order count. A
    product can be a main product or a product variant (e.g. a shoe in a
    specific size).


    #### Checkout session

    When the user decides to *start the order process* the checkout is the first
    step in the order process. It communicates with the payment service provider
    (PSP) responsible to manage the payment. If the payment succeeds an order
    process starts in the background.


    #### Transfer basket

    The API provides the ability to transfer a basket e.g., to a web shop.

    Optionally a QR code image can be created to be presented to a customer.

    For security reasons the transfer needs to be finished within 1 minute. 


    #### Further documentation

    For further details please visit the
    [documentation](https://docs.jay-metadata.com/) or contact Transfermedia
    <support@transfermedia.de>. 
  version: '2025-07-21'
servers:
  - url: /v2
paths:
  /baskets/guests:
    post:
      tags:
        - Guest Baskets
      summary: Creates a fresh guest shopping basket.
      description: >-
        Creates a fresh guest (aka anonymous) shopping basket. If the query
        parameter "jayToken" is specified this methods creates the credentials
        to access a transferred basket.<br><br>Products can be added directly to
        this basket. Some restrictions apply on a guest basket:<br>- no comfort
        functions are available<br>- a guest basket is accessible for 30
        days<br>If you add the same product multiple times they become a single
        product entry in the basket.
      operationId: createGuestBasket
      parameters:
        - description: The Jay transfer token to access a transferred basket.
          required: false
          schema:
            title: Jay transfer token
            type: string
            description: The Jay transfer token to access a transferred basket.
          name: jayToken
          in: query
        - description: >-
            **Required.** API access key for authorized use of the checkout
            endpoints. Partners, please contact Transfermedia to retrieve a
            valid key.
          required: true
          schema:
            title: X-Api-Key
            type: string
            description: >-
              **Required.** API access key for authorized use of the checkout
              endpoints. Partners, please contact Transfermedia to retrieve a
              valid key.
          name: X-API-Key
          in: header
        - description: >-
            Tracking session header for user tracking and analytics. This is set
            by the /playouts/tracking/session endpoint.
          required: false
          schema:
            title: '  Secure-Jay Tracking'
            type: string
            description: >-
              Tracking session header for user tracking and analytics. This is
              set by the /playouts/tracking/session endpoint.
          example: __Secure-jay_tracking=eyJzZX...
          name: __Secure-jay_tracking
          in: header
        - description: The version of the API to use. Defaults to 2025-07-21.
          required: false
          schema:
            title: X-Jay-Api-Version
            type: string
            description: The version of the API to use. Defaults to 2025-07-21.
            default: '2025-07-21'
          name: x-jay-api-version
          in: header
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateGuestBasketRequestBodyV2'
      responses:
        '200':
          description: Successfully updated the basket comfort settings
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/ResultResponse_CreateGuestBasketResponseBodyV2
        '422':
          description: Request validation failed.
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/ResultResponse_CreateGuestBasketResponseBodyV2
              example:
                error:
                  code: '3002'
                  message: Request validation failed.
                  details: validation errors
  /baskets/users/{userId}:
    get:
      tags:
        - Basket Operations
      summary: Gets the shopping basket of the specified user.
      description: >-
        Retrieves the shopping basket of a user. An empty basket is returned if
        it does not exist yet.


        A shopping basket contains

        - a cart containing the products to buy

        - a saved list containing the products to remember for later usage

        - a checkout list containing the products in the active checkout session
      operationId: getBasket
      parameters:
        - description: The platform specific user identifier representing a user.
          required: true
          schema:
            title: Userid
            maxLength: 256
            minLength: 1
            type: string
            description: The platform specific user identifier representing a user.
          name: userId
          in: path
        - description: >-
            **Required.** API access key for authorized use of the checkout
            endpoints. Partners, please contact Transfermedia to retrieve a
            valid key.
          required: true
          schema:
            title: X-Api-Key
            type: string
            description: >-
              **Required.** API access key for authorized use of the checkout
              endpoints. Partners, please contact Transfermedia to retrieve a
              valid key.
          name: X-API-Key
          in: header
        - description: >-
            Tracking session header for user tracking and analytics. This is set
            by the /playouts/tracking/session endpoint.
          required: false
          schema:
            title: '  Secure-Jay Tracking'
            type: string
            description: >-
              Tracking session header for user tracking and analytics. This is
              set by the /playouts/tracking/session endpoint.
          example: __Secure-jay_tracking=eyJzZX...
          name: __Secure-jay_tracking
          in: header
        - description: The version of the API to use. Defaults to 2025-07-21.
          required: false
          schema:
            title: X-Jay-Api-Version
            type: string
            description: The version of the API to use. Defaults to 2025-07-21.
            default: '2025-07-21'
          name: x-jay-api-version
          in: header
      responses:
        '200':
          description: Successfully retrieved the shopping basket of the specified user.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultResponse_BasketV2'
              example:
                data:
                  lastChanged: '2025-06-04T12:34:56Z'
                  cart:
                    - productId: prod-123
                      count: 2
                    - productId: prod-456
                      count: 1
                  saved:
                    - productId: prod-789
                      count: 1
                  checkout:
                    - productId: prod-123
                      count: 1
                    - productId: prod-456
                      count: 1
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultResponse_BasketV2'
              example:
                error:
                  code: '3001'
                  message: Invalid authentication credentials for the basket
                  details: AUTHENTICATION_ERROR
        '422':
          description: Request validation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultResponse_BasketV2'
              example:
                error:
                  code: '3002'
                  message: Request validation failed.
                  details: validation errors
      security:
        - Basket-API-Endpoints: []
    delete:
      tags:
        - Basket Operations
      summary: Deletes a shopping basket of the specified user.
      description: Deletes the shopping basket of a user.
      operationId: deleteBasket
      parameters:
        - description: The platform specific user identifier representing a user.
          required: true
          schema:
            title: Userid
            maxLength: 256
            minLength: 1
            type: string
            description: The platform specific user identifier representing a user.
          name: userId
          in: path
        - description: >-
            **Required.** API access key for authorized use of the checkout
            endpoints. Partners, please contact Transfermedia to retrieve a
            valid key.
          required: true
          schema:
            title: X-Api-Key
            type: string
            description: >-
              **Required.** API access key for authorized use of the checkout
              endpoints. Partners, please contact Transfermedia to retrieve a
              valid key.
          name: X-API-Key
          in: header
        - description: >-
            Tracking session header for user tracking and analytics. This is set
            by the /playouts/tracking/session endpoint.
          required: false
          schema:
            title: '  Secure-Jay Tracking'
            type: string
            description: >-
              Tracking session header for user tracking and analytics. This is
              set by the /playouts/tracking/session endpoint.
          example: __Secure-jay_tracking=eyJzZX...
          name: __Secure-jay_tracking
          in: header
        - description: The version of the API to use. Defaults to 2025-07-21.
          required: false
          schema:
            title: X-Jay-Api-Version
            type: string
            description: The version of the API to use. Defaults to 2025-07-21.
            default: '2025-07-21'
          name: x-jay-api-version
          in: header
      responses:
        '204':
          description: Successful Response
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultResponse'
              example:
                error:
                  code: '3001'
                  message: Invalid authentication credentials for the basket
                  details: AUTHENTICATION_ERROR
        '422':
          description: Request validation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultResponse'
              example:
                error:
                  code: '3002'
                  message: Request validation failed.
                  details: validation errors
      security:
        - Basket-API-Endpoints: []
  /baskets/users/{userId}/comfort:
    patch:
      tags:
        - Basket Operations
      summary: Update basket comfort settings
      description: >-
        Allows to update basket comfort settings.


        This is a user specific comfort function available to validated users
        only.


        Important: The streaming provider needs to provide an authentication
        endpoint providing a JWT token so Jay is able to validate the user.
      operationId: updateComfortBasketSettings
      parameters:
        - description: The platform specific user identifier representing a user.
          required: true
          schema:
            title: Userid
            maxLength: 256
            minLength: 1
            type: string
            description: The platform specific user identifier representing a user.
          name: userId
          in: path
        - description: >-
            **Required.** API access key for authorized use of the checkout
            endpoints. Partners, please contact Transfermedia to retrieve a
            valid key.
          required: true
          schema:
            title: X-Api-Key
            type: string
            description: >-
              **Required.** API access key for authorized use of the checkout
              endpoints. Partners, please contact Transfermedia to retrieve a
              valid key.
          name: X-API-Key
          in: header
        - description: >-
            Tracking session header for user tracking and analytics. This is set
            by the /playouts/tracking/session endpoint.
          required: false
          schema:
            title: '  Secure-Jay Tracking'
            type: string
            description: >-
              Tracking session header for user tracking and analytics. This is
              set by the /playouts/tracking/session endpoint.
          example: __Secure-jay_tracking=eyJzZX...
          name: __Secure-jay_tracking
          in: header
        - description: The version of the API to use. Defaults to 2025-07-21.
          required: false
          schema:
            title: X-Jay-Api-Version
            type: string
            description: The version of the API to use. Defaults to 2025-07-21.
            default: '2025-07-21'
          name: x-jay-api-version
          in: header
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BasketComfortPatchRequestBodyV2'
        required: true
      responses:
        '200':
          description: Successfully updated the basket comfort settings
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultResponse'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultResponse'
              example:
                error:
                  code: '3001'
                  message: Invalid authentication credentials for the basket
                  details: AUTHENTICATION_ERROR
        '422':
          description: Request validation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultResponse'
              example:
                error:
                  code: '3002'
                  message: Request validation failed.
                  details: validation errors
      security:
        - Basket-API-Endpoints: []
  /baskets/users/{userId}/products/{productId}:
    post:
      tags:
        - Product Operations
      summary: Assigns a product to the shopping basket.
      description: >-
        Assigns a product to the shopping basket. If the product exists it will
        be overwritten.<br>- A product with an order "count" == 0 will be added
        to the saved list (and removed from cart).<br>- A product with an order
        "count" > 0 will be added to the cart (and removed from saved
        list).<br><br>Note that at max 20 products can be put into the cart.
      operationId: assignProductToBasket
      parameters:
        - description: The platform specific user identifier representing a user.
          required: true
          schema:
            title: Userid
            maxLength: 256
            minLength: 1
            type: string
            description: The platform specific user identifier representing a user.
          name: userId
          in: path
        - description: >-
            The product identifier uniquely identifying a product from a
            playout.
          required: true
          schema:
            title: product identifier
            type: string
            description: >-
              The product identifier uniquely identifying a product from a
              playout.
          name: productId
          in: path
        - description: >-
            **Required.** API access key for authorized use of the checkout
            endpoints. Partners, please contact Transfermedia to retrieve a
            valid key.
          required: true
          schema:
            title: X-Api-Key
            type: string
            description: >-
              **Required.** API access key for authorized use of the checkout
              endpoints. Partners, please contact Transfermedia to retrieve a
              valid key.
          name: X-API-Key
          in: header
        - description: >-
            Tracking session header for user tracking and analytics. This is set
            by the /playouts/tracking/session endpoint.
          required: false
          schema:
            title: '  Secure-Jay Tracking'
            type: string
            description: >-
              Tracking session header for user tracking and analytics. This is
              set by the /playouts/tracking/session endpoint.
          example: __Secure-jay_tracking=eyJzZX...
          name: __Secure-jay_tracking
          in: header
        - description: The version of the API to use. Defaults to 2025-07-21.
          required: false
          schema:
            title: X-Jay-Api-Version
            type: string
            description: The version of the API to use. Defaults to 2025-07-21.
            default: '2025-07-21'
          name: x-jay-api-version
          in: header
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BasketProductPostRequestBodyV2'
        required: true
      responses:
        '200':
          description: Successfully assigned a product to the shopping basket.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultResponse_BasketV2'
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultResponse_BasketV2'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultResponse_BasketV2'
              example:
                error:
                  code: '3001'
                  message: Invalid authentication credentials for the basket
                  details: AUTHENTICATION_ERROR
        '422':
          description: Request validation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultResponse_BasketV2'
              example:
                error:
                  code: '3002'
                  message: Request validation failed.
                  details: validation errors
      security:
        - Basket-API-Endpoints: []
    delete:
      tags:
        - Product Operations
      summary: Removes a product from the shopping basket.
      description: Removes a product from the shopping basket (from cart and saved list).
      operationId: deleteProductFromBasket
      parameters:
        - description: The platform specific user identifier representing a user.
          required: true
          schema:
            title: Userid
            maxLength: 256
            minLength: 1
            type: string
            description: The platform specific user identifier representing a user.
          name: userId
          in: path
        - description: >-
            The product identifier uniquely identifying a product from a
            playout.
          required: true
          schema:
            title: product identifier
            type: string
            description: >-
              The product identifier uniquely identifying a product from a
              playout.
          name: productId
          in: path
        - description: >-
            **Required.** API access key for authorized use of the checkout
            endpoints. Partners, please contact Transfermedia to retrieve a
            valid key.
          required: true
          schema:
            title: X-Api-Key
            type: string
            description: >-
              **Required.** API access key for authorized use of the checkout
              endpoints. Partners, please contact Transfermedia to retrieve a
              valid key.
          name: X-API-Key
          in: header
        - description: >-
            Tracking session header for user tracking and analytics. This is set
            by the /playouts/tracking/session endpoint.
          required: false
          schema:
            title: '  Secure-Jay Tracking'
            type: string
            description: >-
              Tracking session header for user tracking and analytics. This is
              set by the /playouts/tracking/session endpoint.
          example: __Secure-jay_tracking=eyJzZX...
          name: __Secure-jay_tracking
          in: header
        - description: The version of the API to use. Defaults to 2025-07-21.
          required: false
          schema:
            title: X-Jay-Api-Version
            type: string
            description: The version of the API to use. Defaults to 2025-07-21.
            default: '2025-07-21'
          name: x-jay-api-version
          in: header
      responses:
        '201':
          description: Successfully removed an existing product from the shopping basket.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultResponse_BasketV2'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultResponse_BasketV2'
              example:
                error:
                  code: '3001'
                  message: Invalid authentication credentials for the basket
                  details: AUTHENTICATION_ERROR
        '422':
          description: Request validation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultResponse_BasketV2'
              example:
                error:
                  code: '3002'
                  message: Request validation failed.
                  details: validation errors
      security:
        - Basket-API-Endpoints: []
    patch:
      tags:
        - Product Operations
      summary: Updates an existing product in the shopping basket.
      description: >-
        Updates an existing product in the shopping basket.

        - A product with an order "count" == 0 will be added to the saved list
        (and removed from cart).

        - A product with an order "count" > 0 will be added to the cart (and
        removed from saved list).

        - If the order "count" is None the product is not changed.
      operationId: updateProductInBasket
      parameters:
        - description: The platform specific user identifier representing a user.
          required: true
          schema:
            title: Userid
            maxLength: 256
            minLength: 1
            type: string
            description: The platform specific user identifier representing a user.
          name: userId
          in: path
        - description: >-
            The product identifier uniquely identifying a product from a
            playout.
          required: true
          schema:
            title: product identifier
            type: string
            description: >-
              The product identifier uniquely identifying a product from a
              playout.
          name: productId
          in: path
        - description: >-
            **Required.** API access key for authorized use of the checkout
            endpoints. Partners, please contact Transfermedia to retrieve a
            valid key.
          required: true
          schema:
            title: X-Api-Key
            type: string
            description: >-
              **Required.** API access key for authorized use of the checkout
              endpoints. Partners, please contact Transfermedia to retrieve a
              valid key.
          name: X-API-Key
          in: header
        - description: >-
            Tracking session header for user tracking and analytics. This is set
            by the /playouts/tracking/session endpoint.
          required: false
          schema:
            title: '  Secure-Jay Tracking'
            type: string
            description: >-
              Tracking session header for user tracking and analytics. This is
              set by the /playouts/tracking/session endpoint.
          example: __Secure-jay_tracking=eyJzZX...
          name: __Secure-jay_tracking
          in: header
        - description: The version of the API to use. Defaults to 2025-07-21.
          required: false
          schema:
            title: X-Jay-Api-Version
            type: string
            description: The version of the API to use. Defaults to 2025-07-21.
            default: '2025-07-21'
          name: x-jay-api-version
          in: header
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BasketProductPatchRequestBodyV2'
        required: true
      responses:
        '200':
          description: Successfully updated an existing product in the shopping basket.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultResponse_BasketV2'
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultResponse_BasketV2'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultResponse_BasketV2'
              example:
                error:
                  code: '3001'
                  message: Invalid authentication credentials for the basket
                  details: AUTHENTICATION_ERROR
        '422':
          description: Request validation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultResponse_BasketV2'
              example:
                error:
                  code: '3002'
                  message: Request validation failed.
                  details: validation errors
      security:
        - Basket-API-Endpoints: []
  /baskets/products/details:
    post:
      tags:
        - Product Details
      summary: Get detailed information about multiple products.
      description: >-
        Retrieves detailed information about multiple products. This contains
        the name, brand, images, the current stock count and much more.
      operationId: getProductInformation
      parameters:
        - description: >-
            **Required.** API access key for authorized use of the checkout
            endpoints. Partners, please contact Transfermedia to retrieve a
            valid key.
          required: true
          schema:
            title: X-Api-Key
            type: string
            description: >-
              **Required.** API access key for authorized use of the checkout
              endpoints. Partners, please contact Transfermedia to retrieve a
              valid key.
          name: X-API-Key
          in: header
        - description: >-
            Tracking session header for user tracking and analytics. This is set
            by the /playouts/tracking/session endpoint.
          required: false
          schema:
            title: '  Secure-Jay Tracking'
            type: string
            description: >-
              Tracking session header for user tracking and analytics. This is
              set by the /playouts/tracking/session endpoint.
          example: __Secure-jay_tracking=eyJzZX...
          name: __Secure-jay_tracking
          in: header
        - description: The version of the API to use. Defaults to 2025-07-21.
          required: false
          schema:
            title: X-Jay-Api-Version
            type: string
            description: The version of the API to use. Defaults to 2025-07-21.
            default: '2025-07-21'
          name: x-jay-api-version
          in: header
      requestBody:
        content:
          application/json:
            schema:
              title: product identifiers
              type: array
              items:
                type: string
              description: The product identifiers to resolve
        required: true
      responses:
        '200':
          description: Successfully retrieved detailed information about multiple products.
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/ResultResponse_DetailedBasketProductListV2
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/ResultResponse_DetailedBasketProductListV2
              example:
                error:
                  code: '3001'
                  message: Invalid authentication credentials for the basket
                  details: AUTHENTICATION_ERROR
        '422':
          description: Request validation failed.
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/ResultResponse_DetailedBasketProductListV2
              example:
                error:
                  code: '3002'
                  message: Request validation failed.
                  details: validation errors
      security:
        - Basket-API-Endpoints: []
  /baskets/users/{userId}/checkout/sessions:
    post:
      tags:
        - Checkout Sessions
      summary: Checkout the shopping basket of the specified user.
      description: >-
        Contacts the payment service provider (PSP) to prepare a checkout of the
        products in the cart. Creates an order for this checkout.
      operationId: checkoutBasket
      parameters:
        - description: The platform specific user identifier representing a user.
          required: true
          schema:
            title: Userid
            maxLength: 256
            minLength: 1
            type: string
            description: The platform specific user identifier representing a user.
          name: userId
          in: path
        - description: >-
            Set to "true" to work under test conditions (do not make real
            payments). Defaults to "false".


            Please note that a test mode can also be configured by Jay for your
            complete company.
          required: false
          schema:
            title: Use test mode
            pattern: ^(true|false)$
            type: string
            description: >-
              Set to "true" to work under test conditions (do not make real
              payments). Defaults to "false".


              Please note that a test mode can also be configured by Jay for
              your complete company.
            default: 'false'
          example: 'true'
          name: testMode
          in: query
        - description: >-
            **Required.** API access key for authorized use of the checkout
            endpoints. Partners, please contact Transfermedia to retrieve a
            valid key.
          required: true
          schema:
            title: X-Api-Key
            type: string
            description: >-
              **Required.** API access key for authorized use of the checkout
              endpoints. Partners, please contact Transfermedia to retrieve a
              valid key.
          name: X-API-Key
          in: header
        - description: >-
            Tracking session header for user tracking and analytics. This is set
            by the /playouts/tracking/session endpoint.
          required: false
          schema:
            title: '  Secure-Jay Tracking'
            type: string
            description: >-
              Tracking session header for user tracking and analytics. This is
              set by the /playouts/tracking/session endpoint.
          example: __Secure-jay_tracking=eyJzZX...
          name: __Secure-jay_tracking
          in: header
        - description: The version of the API to use. Defaults to 2025-07-21.
          required: false
          schema:
            title: X-Jay-Api-Version
            type: string
            description: The version of the API to use. Defaults to 2025-07-21.
            default: '2025-07-21'
          name: x-jay-api-version
          in: header
      requestBody:
        content:
          application/json:
            schema:
              title: Body
              allOf:
                - $ref: '#/components/schemas/BasketCheckoutRequestBodyV2'
              default: {}
      responses:
        '200':
          description: >-
            Successfully retrieved the checkout info for the shopping basket of
            the specified user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultResponse_BasketCheckoutResponseV2'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultResponse_BasketCheckoutResponseV2'
              example:
                error:
                  code: '3001'
                  message: Invalid authentication credentials for the basket
                  details: AUTHENTICATION_ERROR
        '422':
          description: Request validation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultResponse_BasketCheckoutResponseV2'
              example:
                error:
                  code: '3002'
                  message: Request validation failed.
                  details: validation errors
      security:
        - Basket-API-Endpoints: []
  /baskets/users/{userId}/checkout/sessions/finish-active:
    post:
      tags:
        - Checkout Sessions
      summary: Finish the active checkout.
      description: Finish the active checkout in the shopping basket.
      operationId: finishActiveCheckout
      parameters:
        - description: The platform specific user identifier representing a user.
          required: true
          schema:
            title: Userid
            maxLength: 256
            minLength: 1
            type: string
            description: The platform specific user identifier representing a user.
          name: userId
          in: path
        - description: >-
            **Required.** API access key for authorized use of the checkout
            endpoints. Partners, please contact Transfermedia to retrieve a
            valid key.
          required: true
          schema:
            title: X-Api-Key
            type: string
            description: >-
              **Required.** API access key for authorized use of the checkout
              endpoints. Partners, please contact Transfermedia to retrieve a
              valid key.
          name: X-API-Key
          in: header
        - description: >-
            Tracking session header for user tracking and analytics. This is set
            by the /playouts/tracking/session endpoint.
          required: false
          schema:
            title: '  Secure-Jay Tracking'
            type: string
            description: >-
              Tracking session header for user tracking and analytics. This is
              set by the /playouts/tracking/session endpoint.
          example: __Secure-jay_tracking=eyJzZX...
          name: __Secure-jay_tracking
          in: header
        - description: The version of the API to use. Defaults to 2025-07-21.
          required: false
          schema:
            title: X-Jay-Api-Version
            type: string
            description: The version of the API to use. Defaults to 2025-07-21.
            default: '2025-07-21'
          name: x-jay-api-version
          in: header
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BasketFinishCheckoutRequestBodyV2'
        required: true
      responses:
        '200':
          description: Successfully finished the checkout process
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultResponse_BasketV2'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultResponse_BasketV2'
              example:
                error:
                  code: '3001'
                  message: Invalid authentication credentials for the basket
                  details: AUTHENTICATION_ERROR
        '422':
          description: Request validation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultResponse_BasketV2'
              example:
                error:
                  code: '3002'
                  message: Request validation failed.
                  details: validation errors
      security:
        - Basket-API-Endpoints: []
  /baskets/users/{userId}/transfer:
    post:
      tags:
        - Basket Transfer
      summary: Transfer the basket to another system (e.g. a web shop).
      description: >-
        Transfer the basket over a common url or a QR code to another system
        (e.g. a web shop). The transfer token is valid for
        {duration_to_text(BASKET_V2_TRANSFER_EXPIRATION)} only.
      operationId: transferBasket
      parameters:
        - description: The platform specific user identifier representing a user.
          required: true
          schema:
            title: Userid
            maxLength: 256
            minLength: 1
            type: string
            description: The platform specific user identifier representing a user.
          name: userId
          in: path
        - description: >-
            Create a QR code image to transfer the basket to another system
            (e.g. a web shop).
          required: false
          schema:
            title: Create QR code
            pattern: ^(true|false)$
            type: string
            description: >-
              Create a QR code image to transfer the basket to another system
              (e.g. a web shop).
            default: 'false'
          example: 'true'
          name: qr
          in: query
        - description: >-
            **Required.** API access key for authorized use of the checkout
            endpoints. Partners, please contact Transfermedia to retrieve a
            valid key.
          required: true
          schema:
            title: X-Api-Key
            type: string
            description: >-
              **Required.** API access key for authorized use of the checkout
              endpoints. Partners, please contact Transfermedia to retrieve a
              valid key.
          name: X-API-Key
          in: header
        - description: >-
            Tracking session header for user tracking and analytics. This is set
            by the /playouts/tracking/session endpoint.
          required: false
          schema:
            title: '  Secure-Jay Tracking'
            type: string
            description: >-
              Tracking session header for user tracking and analytics. This is
              set by the /playouts/tracking/session endpoint.
          example: __Secure-jay_tracking=eyJzZX...
          name: __Secure-jay_tracking
          in: header
        - description: The version of the API to use. Defaults to 2025-07-21.
          required: false
          schema:
            title: X-Jay-Api-Version
            type: string
            description: The version of the API to use. Defaults to 2025-07-21.
            default: '2025-07-21'
          name: x-jay-api-version
          in: header
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferBasketRequestBodyV2'
        required: true
      responses:
        '200':
          description: Successfully retrieved the shopping basket of the specified user.
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/ResultResponse_TransferBasketResponseBodyV2
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/ResultResponse_TransferBasketResponseBodyV2
              example:
                error:
                  code: '3001'
                  message: Invalid authentication credentials for the basket
                  details: AUTHENTICATION_ERROR
        '422':
          description: Request validation failed.
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/ResultResponse_TransferBasketResponseBodyV2
              example:
                error:
                  code: '3002'
                  message: Request validation failed.
                  details: validation errors
      security:
        - Basket-API-Endpoints: []
  /version:
    get:
      tags:
        - API information
      summary: Api Version
      operationId: api_version_version_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VersionResponse'
components:
  schemas:
    APIErrorCode:
      title: APIErrorCode
      enum:
        - 1001
        - 1002
        - 1003
        - 1004
        - 1005
        - 1006
        - 1007
        - 1008
        - 1009
        - 1010
        - 1011
        - 1012
        - 1013
        - 1014
        - 2001
        - 2002
        - 2003
        - 2004
        - 2005
        - 2006
        - 2008
        - 2012
        - 2013
        - 2014
        - 2015
        - 2016
        - 2017
        - 2018
        - 2019
        - 2020
        - 2021
        - 2022
        - 2023
        - 2024
        - 2025
        - 3000
        - 3001
        - 3002
        - 3003
        - 3004
        - 3005
        - 3006
        - 3007
        - 4001
        - 4002
        - 5001
        - 5002
        - 5003
        - 5004
        - 200
        - 201
        - 202
        - 204
        - 400
        - 401
        - 403
        - 404
        - 405
        - 406
        - 422
        - 423
        - 501
        - 503
      type: integer
      description: Represents an error code
    ApiErrorResponse:
      title: ApiErrorResponse
      required:
        - code
        - message
      type: object
      properties:
        code:
          title: API error code
          allOf:
            - $ref: '#/components/schemas/APIErrorCode'
          description: The API error code
        message:
          title: API error message
          type: string
          description: The API error message.
        details:
          title: HTTP details
          description: The HTTP error details.
      description: Represents a data response with a possible error.
    BasketCheckoutRequestBodyV2:
      title: BasketCheckoutRequestBodyV2
      type: object
      properties:
        language:
          title: language
          pattern: ^[a-z]{2}$
          type: string
          description: The 2-letter language code as specified in ISO 639-1
        country:
          title: country
          pattern: ^[A-Z]{2}$
          type: string
          description: The 2-letter country code as specified in ISO 3166
        stripeUsingSdk:
          title: Use stripe SDK
          type: boolean
          description: >-
            Set to True when confirming server-side and using Stripe.js, iOS, or
            Android client-side SDKs to handle the next actions. Defaults to
            False.
          default: false
      description: Represents a checkout session request
    BasketCheckoutResponseNovalnetV2:
      title: BasketCheckoutResponseNovalnetV2
      type: object
      properties:
        priceByShop:
          title: The price for each shop
          type: object
          additionalProperties:
            type: integer
          description: >-
            The price of the products checked out for each shop (including tax,
            shipping, etc.). Each price is given in minor units. Divide it by
            100 before present it.
        checkoutUrl:
          title: The url to the checkout form of Novalnet
          type: string
      description: Represents the checkout response from stripe
    BasketCheckoutResponseStripeV2:
      title: BasketCheckoutResponseStripeV2
      type: object
      properties:
        priceByShop:
          title: The price for each shop
          type: object
          additionalProperties:
            type: integer
          description: >-
            The price of the products checked out for each shop (including tax,
            shipping, etc.). Each price is given in minor units. Divide it by
            100 before present it.
        checkoutUrl:
          title: the checkout url
          type: string
        publicKey:
          title: the public key
          type: string
        customerId:
          title: the customer identifier
          type: string
        ephemeralKeySecret:
          title: the ephemeral key secret
          type: string
        paymentIntentClientSecret:
          title: payment intent client secret
          type: string
      description: Represents the checkout response from stripe
    BasketCheckoutResponseV2:
      title: BasketCheckoutResponseV2
      type: object
      properties:
        orderNo:
          title: The order number
          type: string
        currency:
          title: The checkout currency
          type: string
          description: The currency used for payment
        fullPrice:
          title: The full price
          type: integer
          description: >-
            The full price of the products checked out (including tax, shipping,
            etc.). The price is given in minor units. Divide it by 100 before
            present it.
        fullTax:
          title: The full tax
          type: integer
          description: >-
            The full tax given in minor units. Divide it by 100 before present
            it.
        shippingCost:
          title: Shipping costs
          type: integer
          description: >-
            The shipping cost given in minor units. Divide it by 100 before
            present it.
        novalnet:
          title: The Novalnet related response
          allOf:
            - $ref: '#/components/schemas/BasketCheckoutResponseNovalnetV2'
        stripe:
          title: The Stripe related response
          allOf:
            - $ref: '#/components/schemas/BasketCheckoutResponseStripeV2'
        testMode:
          title: Test mode
          type: boolean
          description: >-
            True if the checkout session ran in test mode (no real payments).
            False if the checkout session ran in live mode (with real payments).
      description: Represents the response of a checkout session.
    BasketComfortPatchRequestBodyV2:
      title: BasketComfortPatchRequestBodyV2
      type: object
      properties:
        customerId:
          title: The customer identifier
          type: string
          description: >-
            Used to speed up the checkout process (prefill customer related
            information).


            This is comfort function which needs user validation.
        paymentToken:
          title: The payment token
          type: string
          description: |-
            Used to speed up the payment process (one-click buy).

            This is comfort function which needs user validation.
      description: Represents a request body to patch basket comfort settings
    BasketFinishCheckoutRequestBodyV2:
      title: BasketFinishCheckoutRequestBodyV2
      required:
        - ordered
      type: object
      properties:
        ordered:
          title: Ordered state
          type: boolean
          description: >-
            If True the active checkout session has been finished with success
            and the products are "ordered" now.

            If False the active checkout session has been aborted. The products
            in checkout will be moved back to the cart.
      description: Represents a checkout session finished request
    BasketProductPatchRequestBodyV2:
      title: BasketProductPatchRequestBodyV2
      type: object
      properties:
        count:
          title: The order count
          minimum: 0
          type: integer
          description: >-
            The absolute number of products to order. A value above zero place
            the product in the cart. A value equal to zero places the product in
            the saved list.
      description: Represents the request body to update a product to the basket
    BasketProductPostRequestBodyV2:
      title: BasketProductPostRequestBodyV2
      required:
        - count
      type: object
      properties:
        count:
          title: The order count
          minimum: 0
          type: integer
          description: >-
            The absolute number of products to order. A value above zero place
            the product in the cart. A value equal to zero places the product in
            the saved list.
      description: Represents the request body to put a product to the basket
    BasketProductV2:
      title: BasketProductV2
      type: object
      properties:
        productId:
          title: product identifier
          type: string
          description: The product identifier.
        count:
          title: The order count
          type: integer
          description: >-
            The number of products to order. Default is 1. A value above zero
            place the product in the cart. A value equal to zero places the
            product in the saved list.
          default: 1
        variant:
          title: variant
          type: string
          description: >-
            The product variant (e.g. the size). If empty the main product is
            addressed.
        mainProductIdentifier:
          title: main identifier
          type: string
          description: The identifier of this main product.
      description: Represents the product in the basket
    BasketV2:
      title: BasketV2
      type: object
      properties:
        lastChanged:
          title: The time the basket was changed in UTC and ISO 8601 format.
          type: string
        cart:
          title: The list of products in the cart
          type: array
          items:
            $ref: '#/components/schemas/BasketProductV2'
          description: The list of products in the cart.
        saved:
          title: The list of saved products
          type: array
          items:
            $ref: '#/components/schemas/BasketProductV2'
          description: The list of saved product identifiers in this basket.
        checkout:
          title: The list of products in check-out
          type: array
          items:
            $ref: '#/components/schemas/CheckoutBasketProductV2'
          description: The list of products currently being checked-out
      description: Represents a users shopping basket.
      example:
        lastChanged: '2025-06-04T12:34:56Z'
        cart:
          - productId: prod-123
            count: 2
          - productId: prod-456
            count: 1
        saved:
          - productId: prod-789
            count: 1
        checkout:
          - productId: prod-123
            count: 1
          - productId: prod-456
            count: 1
    CheckoutBasketProductV2:
      title: CheckoutBasketProductV2
      type: object
      properties:
        productId:
          title: product identifier
          type: string
          description: The product identifier.
        count:
          title: The order count
          type: integer
          description: >-
            The number of products to order. Default is 1. A value above zero
            place the product in the cart. A value equal to zero places the
            product in the saved list.
          default: 1
        variant:
          title: variant
          type: string
          description: >-
            The product variant (e.g. the size). If empty the main product is
            addressed.
        mainProductIdentifier:
          title: main identifier
          type: string
          description: The identifier of this main product.
        stocked:
          title: reserved in stock
          type: integer
          description: >-
            The number of products reserved in stock during checkout. A value
            below zero means that a reservation had failed. If None no
            reservation has been made because there are unlimited number of
            products available.
      description: Represents the product in the checkout list of the basket
    CreateGuestBasketRequestBodyV2:
      title: CreateGuestBasketRequestBodyV2
      type: object
      properties:
        products:
          title: products
          type: array
          items:
            $ref: '#/components/schemas/GuestBasketProductV2'
          description: >-
            The products to initially add to the freshly created guest basket.
            If you add identical products multiple times they are merged
            together to one product entry in the basket.
      description: Represents the products initially put to the new guest basket.
    CreateGuestBasketResponseBodyV2:
      title: CreateGuestBasketResponseBodyV2
      required:
        - userId
        - jwtToken
      type: object
      properties:
        userId:
          title: user id
          type: string
          description: The user id of this fresh guest (aka anonymous) basket.
        jwtToken:
          title: JWT token
          type: string
          description: >-
            The JWT token (created by Jay) to use to authenticate with. Note
            that this token is valid for only 30 days
      description: Represents the keys to operate with the guest basket
    DetailedBasketProductListV2:
      title: DetailedBasketProductListV2
      type: object
      properties:
        products:
          title: The list of detailed products
          type: array
          items:
            $ref: '#/components/schemas/DetailedBasketProductV2'
      description: Represents a list of products in the basket.
    DetailedBasketProductV2:
      title: DetailedBasketProductV2
      type: object
      properties:
        currentStockCount:
          title: stock count
          type: integer
          description: >-
            The number of products available in the shop. Negative if not
            available anymore. None if available without limit.
        productId:
          title: product identifier
          type: string
          description: The product identifier.
        count:
          title: The order count
          type: integer
          description: >-
            The number of products to order. Default is 1. A value above zero
            place the product in the cart. A value equal to zero places the
            product in the saved list.
          default: 1
        variant:
          title: variant
          type: string
          description: >-
            The product variant (e.g. the size). If empty the main product is
            addressed.
        mainProductIdentifier:
          title: main identifier
          type: string
          description: The identifier of this main product.
        shopSource:
          title: The shop source
          type: string
          description: The shop source the object is stored under.
        slug:
          title: slug name
          type: string
          description: >-
            The slug name. A slug is a URL-friendly version of a string,
            typically used in URLs to identify a resource in a human-readable
            way. Slugs use only lowercase letters, numbers and hyphens. To
            remove the slug assign an empty string.
        url:
          title: Link
          type: string
          description: A link to an external resource.
        urlLabel:
          title: Link label
          type: string
          description: The link label
        urlNote:
          title: Link note
          type: string
          description: The link note
        urlImageId:
          title: Link image
          type: string
          description: >-
            The link image id (or url/upload_key/download_url/data_identifier)
            of the associated image.
        urlImage:
          title: Link image object
          allOf:
            - $ref: '#/components/schemas/ImageV2'
          description: The link image object.
        linkIds:
          title: Link
          type: array
          items:
            type: string
          description: The link.
        groupIds:
          title: group identifiers
          type: array
          items:
            type: string
          description: The ids of the associated groups.
        currency:
          title: currency
          type: string
          description: The price's currency.
        price:
          title: discount price
          type: string
          description: The price (including discount).
        priceInt:
          title: discount price in minor units
          type: integer
          description: >-
            The price (including discount) given in minor units (e.g. 2799 for
            27,99 EUR).
        originalPrice:
          title: original price
          type: string
          description: The original price (without discount).
        originalPriceInt:
          title: original price
          type: integer
          description: >-
            The original price (without discount) given in minor units (e.g.
            3599 for 35,99 EUR).
        tenantObjectId:
          title: template identifier
          type: string
          description: >-
            The identifier of the associated tenant-wide template object. This
            field is designed to relate this object in a project to an
            tenant-wide object. This field is ignored for a tenant-wide object.
        id:
          title: identifier
          type: string
          description: The identifier of this object.
        name:
          title: name
          type: string
          description: The mandatory name.
        subLine:
          title: sub-line
          type: string
          description: A sub line text.
        description:
          title: description
          type: string
          description: A descriptive text.
        sku:
          title: SKU
          type: string
          description: The stock keeping unit (article number).
        brand:
          title: brand
          type: string
          description: The brand (e.g. "Steffen Klein")
        gender:
          title: gender
          type: string
          description: The gender (usually starting with m/w/d).
        material:
          title: material
          type: string
          description: The material (e.g. "100% linen").
        colour:
          title: colour
          type: string
          description: The colour (e.g. "red").
        colourCode:
          title: colour code
          type: string
          description: The colour code as RGB value.
        size:
          title: size
          type: string
          description: >-
            The available sizes (e.g.
            "S:Small,M:Medium,L:Large,XL:Extra-Large").
        country:
          title: country
          type: string
          description: The country.
        imageIds:
          title: image identifiers
          type: array
          items:
            type: string
          description: >-
            The ids (or urls/upload_keys/download_urls/data_identifiers) of the
            associated images.
        images:
          title: image objects
          type: array
          items:
            $ref: '#/components/schemas/ImageV2'
          description: The image objects.
        artefactType:
          title: artefact type
          type: string
          description: The generic term of the artefact.
        notShoppable:
          title: not shoppable
          type: boolean
          description: If True the product is not shoppable (e.g. Restaurant, Recipe, ...).
        fit:
          title: costume fit
          type: string
          description: The fit of the costume
        sizeIds:
          title: size identifiers
          type: array
          items:
            type: string
          description: The ids of the associated sizes.
        imagesLogoId:
          title: image objects logo identifier
          type: string
          description: >-
            The ids (or urls/upload_keys/download_urls/data_identifiers) of the
            associated images.
        imagesLogo:
          title: image objects logo
          allOf:
            - $ref: '#/components/schemas/ImageV2'
          description: The image objects logo.
        availability:
          title: availability
          type: string
          description: The product availability (e.g. "AVAILABLE", "OUT_OF_STOCK")
        sizes:
          title: product variants
          type: array
          items:
            $ref: '#/components/schemas/SizeV2'
          description: The product variants (e.g. sizes).
        outOfStock:
          title: Mark product out-of-stock
          type: boolean
          description: If True the product is out_of_stock
          default: false
      description: Represents the product details.
    GuestBasketProductV2:
      title: GuestBasketProductV2
      required:
        - productId
      type: object
      properties:
        productId:
          title: product identifier
          type: string
          description: The product identifier.
        count:
          title: The order count
          minimum: 0
          type: integer
          description: >-
            The number of products to order. Default is 1. A value above zero
            place the product in the cart. A value equal to zero places the
            product in the saved list.
          default: 1
      description: Represents the product to import to a guest basket
    ImageV2:
      title: ImageV2
      type: object
      properties:
        id:
          title: identifier
          type: string
          description: The identifier of this object.
        url:
          title: image url
          type: string
          description: >-
            The url/upload_key/download_url/data_identifier of the associated
            image.
        copyrightText:
          title: copyright
          type: string
          description: The copyright text for the image.
        mlInstanceId:
          title: Associated image instance
          type: integer
          description: >-
            Stores the associated ActorInstance/CostumeInstance identifier the
            image is linked to. This field is ignored in the project object.
      description: >-
        Represents a single image.

        Get: A property value of None means does-not-exist.

        Update: A property value of None means do-not-change, an empty
        string/list or a zero integer means remove.
    ResultResponse:
      title: ResultResponse
      type: object
      properties:
        data:
          title: The response data
          description: The response data.
        nextToken:
          title: Next token
          type: string
          description: The token, which can be used to retrieve the next page of data.
        error:
          title: The error response
          allOf:
            - $ref: '#/components/schemas/ApiErrorResponse'
          description: >-
            Details of the error that occurred during the API request, including
            error code and message. This field is only present when the request
            results in an error.
      description: Represents the list of available episodes
    ResultResponse_BasketCheckoutResponseV2:
      title: ResultResponse_BasketCheckoutResponseV2
      type: object
      properties:
        data:
          title: The response data
          allOf:
            - $ref: '#/components/schemas/BasketCheckoutResponseV2'
          description: The response data.
          example:
            orderNo: string
            currency: string
            fullPrice: 0
            fullTax: 0
            shippingCost: 0
            novalnet:
              priceByShop: <typing.Dict[str, int]>
              checkoutUrl: string
            stripe:
              priceByShop: <typing.Dict[str, int]>
              checkoutUrl: string
              publicKey: string
              customerId: string
              ephemeralKeySecret: string
              paymentIntentClientSecret: string
            testMode: true
        nextToken:
          title: Next token
          type: string
          description: The token, which can be used to retrieve the next page of data.
        error:
          title: The error response
          allOf:
            - $ref: '#/components/schemas/ApiErrorResponse'
          description: >-
            Details of the error that occurred during the API request, including
            error code and message. This field is only present when the request
            results in an error.
      description: Represents the list of available episodes
      example:
        data:
          orderNo: string
          currency: string
          fullPrice: 0
          fullTax: 0
          shippingCost: 0
          novalnet:
            priceByShop: <typing.Dict[str, int]>
            checkoutUrl: string
          stripe:
            priceByShop: <typing.Dict[str, int]>
            checkoutUrl: string
            publicKey: string
            customerId: string
            ephemeralKeySecret: string
            paymentIntentClientSecret: string
          testMode: true
    ResultResponse_BasketV2:
      title: ResultResponse_BasketV2
      type: object
      properties:
        data:
          title: The response data
          allOf:
            - $ref: '#/components/schemas/BasketV2'
          description: The response data.
          example:
            lastChanged: '2025-06-04T12:34:56Z'
            cart:
              - productId: prod-123
                count: 2
              - productId: prod-456
                count: 1
            saved:
              - productId: prod-789
                count: 1
            checkout:
              - productId: prod-123
                count: 1
              - productId: prod-456
                count: 1
        nextToken:
          title: Next token
          type: string
          description: The token, which can be used to retrieve the next page of data.
        error:
          title: The error response
          allOf:
            - $ref: '#/components/schemas/ApiErrorResponse'
          description: >-
            Details of the error that occurred during the API request, including
            error code and message. This field is only present when the request
            results in an error.
      description: Represents the list of available episodes
      example:
        data:
          lastChanged: '2025-06-04T12:34:56Z'
          cart:
            - productId: prod-123
              count: 2
            - productId: prod-456
              count: 1
          saved:
            - productId: prod-789
              count: 1
          checkout:
            - productId: prod-123
              count: 1
            - productId: prod-456
              count: 1
    ResultResponse_CreateGuestBasketResponseBodyV2:
      title: ResultResponse_CreateGuestBasketResponseBodyV2
      type: object
      properties:
        data:
          title: The response data
          allOf:
            - $ref: '#/components/schemas/CreateGuestBasketResponseBodyV2'
          description: The response data.
          example:
            userId: string
            jwtToken: string
        nextToken:
          title: Next token
          type: string
          description: The token, which can be used to retrieve the next page of data.
        error:
          title: The error response
          allOf:
            - $ref: '#/components/schemas/ApiErrorResponse'
          description: >-
            Details of the error that occurred during the API request, including
            error code and message. This field is only present when the request
            results in an error.
      description: Represents the list of available episodes
      example:
        data:
          userId: string
          jwtToken: string
    ResultResponse_DetailedBasketProductListV2:
      title: ResultResponse_DetailedBasketProductListV2
      type: object
      properties:
        data:
          title: The response data
          allOf:
            - $ref: '#/components/schemas/DetailedBasketProductListV2'
          description: The response data.
          example:
            products:
              - item
        nextToken:
          title: Next token
          type: string
          description: The token, which can be used to retrieve the next page of data.
        error:
          title: The error response
          allOf:
            - $ref: '#/components/schemas/ApiErrorResponse'
          description: >-
            Details of the error that occurred during the API request, including
            error code and message. This field is only present when the request
            results in an error.
      description: Represents the list of available episodes
      example:
        data:
          products:
            - item
    ResultResponse_TransferBasketResponseBodyV2:
      title: ResultResponse_TransferBasketResponseBodyV2
      type: object
      properties:
        data:
          title: The response data
          allOf:
            - $ref: '#/components/schemas/TransferBasketResponseBodyV2'
          description: The response data.
          example:
            expires: string
            jaySource: string
            jayToken: string
            url: string
            qrCodeImageUrl: string
            qrCodeImageBase64: string
        nextToken:
          title: Next token
          type: string
          description: The token, which can be used to retrieve the next page of data.
        error:
          title: The error response
          allOf:
            - $ref: '#/components/schemas/ApiErrorResponse'
          description: >-
            Details of the error that occurred during the API request, including
            error code and message. This field is only present when the request
            results in an error.
      description: Represents the list of available episodes
      example:
        data:
          expires: string
          jaySource: string
          jayToken: string
          url: string
          qrCodeImageUrl: string
          qrCodeImageBase64: string
    SizeV2:
      title: SizeV2
      type: object
      properties:
        currentStockCount:
          title: stock count
          type: integer
          description: >-
            The number of products available in the shop. Negative if not
            available anymore. None if available without limit.
        shopSource:
          title: The shop source
          type: string
          description: The shop source the object is stored under.
        currency:
          title: currency
          type: string
          description: The price's currency.
        price:
          title: discount price
          type: string
          description: The price (including discount).
        priceInt:
          title: discount price in minor units
          type: integer
          description: >-
            The price (including discount) given in minor units (e.g. 2799 for
            27,99 EUR).
        originalPrice:
          title: original price
          type: string
          description: The original price (without discount).
        originalPriceInt:
          title: original price
          type: integer
          description: >-
            The original price (without discount) given in minor units (e.g.
            3599 for 35,99 EUR).
        id:
          title: identifier
          type: string
          description: The identifier of this object.
        sku:
          title: SKU
          type: string
          description: The stock keeping unit (article number).
        availability:
          title: availability
          type: string
          description: >-
            The product availability (e.g. "AVAILABLE", "OUT_OF_STOCK", "MANY",
            "LOW")
        short:
          title: short value
          type: string
          description: The short value of the size (e.g. "S", "M", "56", "55,5").
        long:
          title: long value
          type: string
          description: >-
            The long value of the size (e.g. "Small", "Medium"). If not
            available use short value.
      description: >-
        Represents a single size.

        Get: A property value of None means does-not-exist.

        Update: A property value of None means do-not-change, an empty
        string/list or a zero integer means remove.
    TransferBasketRequestBodyV2:
      title: TransferBasketRequestBodyV2
      type: object
      properties:
        url:
          title: Url
          type: string
          description: >-
            The URL to extend (e.g. to trigger a web shop action). The query
            parameters "jaySource" and "jayToken" will be added to this URL.
      description: Represents the request body to transfer a basket to a web shop.
    TransferBasketResponseBodyV2:
      title: TransferBasketResponseBodyV2
      required:
        - expires
        - jaySource
        - jayToken
      type: object
      properties:
        expires:
          title: Basket Transfer Expiration Date
          type: string
          description: >-
            The date and time as ISO 8601 string when the basket transfer token
            expire.
        jaySource:
          title: Basket Transfer Source
          type: string
          description: >-
            The query parameter "jaySource" (not url-encoded) added to the URL
            carrying the name of the transfer source.
        jayToken:
          title: Basket Transfer Token
          type: string
          description: >-
            The query parameter "jayToken" (not url-encoded) added to the URL.
            The token is valid for 1 minute only.
        url:
          title: Basket Transfer Url
          type: string
          description: >-
            The extended URL (e.g. to trigger a web shop action). The url
            identifies the associated basket and is valid for 1 minute
            only.<br>Use GET /baskets/guests?jayToken=... to create the basket
            credentials to access the basket again.
        qrCodeImageUrl:
          title: Basket Transfer QR Code Image Url
          type: string
          description: >-
            The URL to the QR code image representing the URL. The url is valid
            for 1 minute.
        qrCodeImageBase64:
          title: Basket Transfer QR Code Image
          type: string
          description: The base-64 encoded QR code image representing the URL.
      description: >-
        Represents the values to transfer a basket e.g., to a web shop.

        A basket transfer is valid for
        {duration_to_text(BASKET_V2_TRANSFER_EXPIRATION)}.
    VersionResponse:
      title: VersionResponse
      required:
        - apiTitle
        - apiPath
        - xAPIVersions
      type: object
      properties:
        apiTitle:
          title: api title
          type: string
        apiPath:
          title: api path
          type: string
        xAPIVersions:
          title: X-API-Version`s
          allOf:
            - $ref: '#/components/schemas/VersionResponseApiVersions'
          description: Information about the X-API-Version`s.
      description: Represents the api version response.
    VersionResponseApiVersions:
      title: VersionResponseApiVersions
      required:
        - latest
        - available
        - changelog
      type: object
      properties:
        latest:
          title: latest X-API-Version
          type: string
        available:
          title: available X-API-Version`s
          type: array
          items:
            type: string
        changelog:
          title: X-API-Version`s changelog
          type: array
          items:
            $ref: '#/components/schemas/VersionResponseChangelogEntry'
      description: Represents the api versions information.
    VersionResponseChangelogEntry:
      title: VersionResponseChangelogEntry
      required:
        - name
        - changed
      type: object
      properties:
        name:
          title: X-API-Version
          type: string
        changed:
          title: topics changed
          type: array
          items:
            type: string
      description: Represents a single api changelog entry.
  securitySchemes:
    Basket-API-Endpoints:
      type: http
      description: Provides an authorization mechanism to access the Basket API Endpoints
      scheme: bearer
      bearerFormat: Bearer
