openapi: 3.0.1
info:
  title: FareGo Suite API Overview
  description: >
    The following API calls are available for use by different Business Entities with explicit roles within the FareGo Suite. The roles are defined via role based access controls (RBAC) within the API Gateway.


    These roles are defined by the purpose of the Business Entity within the system.


    The various API calls are grouped together as a block of calls by the Resource Controller on which they interact with.


    Each block has it's own 100 range of calls to help facilitate identification of what Resource Controller an API interacts with.


    __Examples:__

    * Calls relating to Passenger Accounts occupy the 80xx range.

    * Calls relating to Tranist Accounts occupy the 81xx range.


    Where appropriate you will see the related tokenised identifier for the Resource that the API interacts with.

  contact:
    email: help@farego-helpdesk.com
  version: 3.6.3
tags:
  - name: Passenger-Accounts
    description: (80xx) Management of Passenger Accounts - xPAT
servers:
  - url: 'https://api.sbx.idbt.translink.nl/api/v3'
    description: Sandbox
paths:
  /passenger-accounts:
    post:
      tags:
        - Passenger-Accounts
      summary: 8001 - Create-Empty-Passenger-Account
      description: >-
        This API creates an empty passenger account.



        The purpose of a passenger account is to be a container for multiple transit accounts that belong to a single customer. A passenger account is identified by an xPAT (external passenger account token) with which it is possible to manage a list of transit accounts. A passenger account holds a list with transit accounts. 



        To allow a consuming system to connect the passenger account to a resource in it's local system (such as a CRM system or a mobile application) it is required to register an external account id. The external account id is the indentifier of the local resource.



        After the creation of an empty passenger account it is possible to bind transit accounts to the created passenger account. 



        The API requires an external account id as input (that is the Id used by the local application) and returns an external passenger account number (xPAT) that could be used to access the passenger acount. Through the external acount ID the passenger account is linked to a resource in the local application. Examples of a local application are a CRM and a mobile application. It is not possible to access the passenger account through the external account id. The local application should store and use the xPAT to access the passenger account.
      operationId: API-8001_Create_Passenger-Accounts
      security:
        - OAuthAuthorization:
            - default
      requestBody:
        description: >-
          The body contains one mandatory parameter <i>externalAccountId</i>.

          Parameter was originally intended for storing of identifier that serves as a link to other system.

          For example if CRM system is creating new passanger account in IDBT system, it can store here ID of passenger account in CRM.

          This way a caller might link his own passenger account representation with IDBT passenger account.

          This parameter is not interpreted by IDBT system in any way. Basically a caller can store arbitrary string here (e.g. "N/A").

          This attribute of passenger account does not have to be unique and can be updated afterwards.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatRequest'
            examples:
              Create passenger account:
                $ref: '#/components/examples/createPassengerAccountNormal'
              Create passenger account - externalAccountId not used:
                $ref: '#/components/examples/createPassengerAccountNA'
      responses:
        '201':
          description: CREATED
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TranslationResponse'
              example:
                value: fe21d2d1-7220-4759-9d81-452f4ad60ba1
                type: xpat
        '400':
          description: |-
            Bad Request

            List of possible error codes:
            <ul>
              <li>TM0003 - Missing mandatory input(s)</li>
              <li>TM0202 - Unknown business entity</li>
            </ul>
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Unknown Business entity - missing input:
                  $ref: '#/components/examples/unknownBusinessEntityMissingInput400'
                Unknown business entity - not found:
                  $ref: '#/components/examples/unknownBusinessEentityNotFound400'
                Missing mandatory input:
                  $ref: '#/components/examples/missingMandatoryInputsError400'
        '500':
          description: >-
            Internal Server Error

            Failed to execute due to internal problems (e.g. failed to access data within database). List of possible error codes:

            <ul>


              <li>TM0001 - Internal system error</li>
            </ul>
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                DB access passenger account error:
                  $ref: >-
                    #/components/examples/dbAccessExternalPassengerAccountError500
                Cache access error:
                  $ref: '#/components/examples/cacheAccessError500'
                Cache cast error:
                  $ref: '#/components/examples/cacheCastError500'
  '/passenger-accounts/{xPAT}':
    get:
      tags:
        - Passenger-Accounts
      summary: 8002 - Look Up Passenger-Accounts
      description: >-
        This API returns the xTAT's of the transit account that are bound to the passenger account.



        The purpose of a passenger account is to be a container for multiple transit accounts that belong to a single customer. A passenger account is identified by an xPAT with which it is possible to manage a list of transit accounts (identified by an xTAT). A passenger account holds a list with transit accounts. 



        The API requires the xPAT identifier of the passenger account for which the transit accounts need to be returned.
      operationId: API-8002_Look_Up_Passenger-Accounts
      security:
        - OAuthAuthorization:
            - default
      parameters:
        - name: xPAT
          in: path
          description: External Passenger Account Token
          required: true
          schema:
            type: string
            format: uuid
            example: bf44ddfe-dbb2-421a-93d6-5f24bb2480fb
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalPassengerAccountResponse'
              examples:
                Empty passenger accout:
                  $ref: '#/components/examples/emptyPassengerAccount200'
                Passenger account with 3 transit accounts:
                  $ref: '#/components/examples/passengerAccountWith3TAs200'
        '400':
          description: |-
            Bad Request
            List of possible error codes:
            <ul>
              <li>TM0002 - Invalid input data</li>
              <li>TM0202 - Unknown business entity</li>
              <li>TM0222 - Unknown external passenger account token</li>
            </ul>
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Invalid input data - external PAT:
                  $ref: '#/components/examples/invalidInputDataPAT400'
                Unknown business entity - missing input:
                  $ref: '#/components/examples/unknownBusinessEntityMissingInput400'
                Unknown External PAT:
                  $ref: '#/components/examples/unknownExternalPAT400'
        '500':
          description: >-
            Internal Server Error

            Failed to execute due to internal problems (e.g. failed to access data within database). List of possible error codes:

            <ul>


              <li>TM0001 - Internal system error</li>
            </ul>
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Internal system error:
                  $ref: '#/components/examples/internalSystemError500'
    put:
      tags:
        - Passenger-Accounts
      summary: 8003 - Update Passenger-Account
      description: >-
        This API changes the external Account ID of a passenger account. 



        The purpose of a passenger account is to be a container for multiple transit accounts that belong to a single customer. A passenger account is identified by an xPAT with which it is possible to manage a list of transit accounts (identified by an xTAT). A passenger account does not hold any data other then the list with transit accounts. Travel related data (payments, trips, products, alerts) should be accessed through a transit account or a token.



        To allow a consuming system to connect the passenger account to a resource in it's local system (such as a CRM system or a mobile application) it is possible to register an external account id which is the indentifier of the local resource.





        The API requires a passenger acount number (xPAT) and the new external account-id.
      operationId: API-8003_Update_Passenger-Account
      security:
        - OAuthAuthorization:
            - default
      parameters:
        - name: xPAT
          in: path
          description: xPAT
          required: true
          schema:
            type: string
            format: uuid
            example: 3e60fbae-ec12-4d28-92fd-41d01c5b80a4
      requestBody:
        description: >-
          The body contains attributes that should be changed. The only one allowed attribute is the external passenger account ID.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatRequest'
      responses:
        '204':
          description: NO CONTENT
        '400':
          description: |-
            Bad Request

            List of possible error codes:
            <ul>
              <li>TM0003 - Missing mandatory input(s)</li>
              <li>TM0202 - Unknown business entity</li>
              <li>TM0222 - Unknown external passenger account token</li>
            </ul>
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                errorMessage:
                  referenceId: c4839b50-3be3-4311-b133-e8071b1356e7
                  message: Unknown business entity.
                businessExceptions:
                  - code: TM0202
                    message: Unknown business entity.
        '500':
          description: >-
            Internal Server Error


            Failed to execute due to internal problems (e.g. failed to access data within database). List of possible error codes:

            <ul>


              <li>TM0001 - Internal system error</li>
            </ul>
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                errorMessage:
                  referenceId: b0d98c6b-3e3d-4d9f-a33d-af40b6a21765
                  message: Internal system error
                businessExceptions:
                  - code: TM0001
                    message: Internal system error
  '/passenger-accounts/{xPAT}/transit-accounts/{xTAT}':
    put:
      tags:
        - Passenger-Accounts
      summary: 8053 - Bind Transit-Account to Passenger-Account
      description: >-
        This API binds a transit account to a passenger account. 



        The API requires a passenger acount number (xPAT) and the identifer of the transit account (xBOT) that a customer wants to bind. 



        After the transit account is bound the transuit account will appear in the list of transit account when the passenger account is accessed.



        The purpose of a passenger account is to be a container for multiple transit accounts that belong to a single customer. A passenger account is identified by an xPAT with which it is possible to manage a list of transit accounts (identified by an xTAT). A passenger account does not hold any data other then the list with transit accounts. Travel related data (payments, trips, products, alerts) should be accessed through a transit account or a token.



        The purpose of a transit account is to hold the payment methods, the products (sales packages), tariff profiles and the token that is used during travel. An example of a token is an EMV card. Although multiple tokens could be connected only one can be active.

      operationId: API-8053_Bind_Transit-Account_to_Passenger-Account
      security:
        - OAuthAuthorization:
            - default
      parameters:
        - name: xPAT
          in: path
          description: external passenger account token (ID of passenger account)
          required: true
          schema:
            type: string
            format: uuid
            example: e8bc073f-2408-4dbe-8781-4c33df25e9a8
        - name: xTAT
          in: path
          description: external transit account token (ID of transit account)
          required: true
          schema:
            type: string
            format: uuid
            example: e7fa3392-646b-40e2-95a6-c417dc0b0969
      responses:
        '204':
          description: >-
            NO CONTENT


            Transit account was successfully bound to the passenger account.


            Important: Response 204 is returned also in case that this transit account was already bound to specified Passenger Account

            (because PUT is idempotent operation).
        '400':
          description: |-
            Bad Request
            Failed to bind transit account. List of possible error codes:
            <ul>
              <li>TM0202 - Unknown business entity</li>
              <li>TM0207 - Unknown external transit account token</li>
              <li>TM0222 - Unknown external passenger account token</li>
            </ul>
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Unknown business entity - missing input:
                  $ref: '#/components/examples/unknownBusinessEntityMissingInput400'
                Unknown external transit account token - invalid format:
                  $ref: '#/components/examples/unknownExternalTAT400'
                Unknown external passenger account token - invalid format:
                  $ref: '#/components/examples/unknownExternalPAT400'
        '500':
          description: >-
            Internal Server Error

            Failed to execute due to internal problems (e.g. failed to access data within database). List of possible error codes:

            <ul>


              <li>TM0001 - Internal system error</li>
            </ul>
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Internal system error:
                  $ref: '#/components/examples/dbAccessTransitAccountError500'
    delete:
      tags:
        - Passenger-Accounts
      summary: 8054 - Unbind Transit-Account from Passenger-Account
      description: >-
        This API unbinds a transit account from a passenger account. After the transit account is unbound the transit account will nolonger appear in the list of transit account when the passenger account is accessed.



        The API requires a passenger account number (xPAT) and the identifer of the transit account (xTAT) that a customer wants to unbind. 



        The purpose of a passenger account is to be a container for multiple transit accounts that belong to a single customer. A passenger account is identified by an xPAT with which it is possible to manage a list of transit accounts (identified by an xTAT). A passenger account does not hold any data other then the list with transit accounts. Travel related data (payments, trips, products, alerts) should be accessed through a transit account or a token.



        The purpose of a transit account is to hold the payment methods, the products (sales packages) and the medium that is used during travel. A medium is also referred to as token. An example of a token or medium is an EMV card. Although multiple media could be connected only one can be active. The mechanism to differentiate between a medium and a transit account is that through the transit account it is possible to replace the token, keep the connection with the payment methods and products and the full history of trips and payments. 

        A transit account is identified by an external transit account number xTAT. A passenger account does not hold any data other then the list with identifiers of transit accounts. Travel related data (payments, trips, products, alerts) should be accessed through a transit account or a token.

      operationId: API-8054_Unbind_Transit-Account_from_Passenger-Account
      security:
        - OAuthAuthorization:
            - default
      parameters:
        - name: xPAT
          in: path
          description: external passenger account token (ID of passenger account)
          required: true
          schema:
            type: string
            format: uuid
            example: e8bc073f-2408-4dbe-8781-4c33df25e9a8
        - name: xTAT
          in: path
          description: external transit account token (ID of transit account)
          required: true
          schema:
            type: string
            format: uuid
            example: e7fa3392-646b-40e2-95a6-c417dc0b0969
      responses:
        '204':
          description: |-
            NO CONTENT

            Transit account was successfully unbound from the passenger account.
        '400':
          description: |-
            Bad Request
            Failed to unbind transit account. List of possible error codes:
            <ul>
              <li>TM0202 - Unknown business entity</li>
              <li>TM0207 - Unknown external transit account token</li>
              <li>TM0222 - Unknown external passenger account token.</li>
              <li>TM0223 - Transit account is not bound to the specified passenger account.</li>
            </ul>
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Unknown Business entity - missing input:
                  $ref: '#/components/examples/unknownBusinessEntityMissingInput400'
                Unknown external transit account token:
                  $ref: '#/components/examples/unknownExternalTAT400'
                Unknown external passenger account token:
                  $ref: '#/components/examples/unknownExternalPAT400'
                Transit account token not bount to passenger account token:
                  $ref: '#/components/examples/notBountTATtoPAT400'
        '500':
          description: >-
            Internal Server Error

            Failed to execute due to internal problems (e.g. failed to access data within database). List of possible error codes:

            <ul>


              <li>TM0001 - Internal system error</li>
            </ul>
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Internal system error - db access problem:
                  $ref: '#/components/examples/dbAccessPassengerAccountError500'
  '/passenger-accounts/{xPAT}/transit-accounts/id-media/types/{mediumType}/engravedid/{EID}':
    put:
      tags:
        - Passenger-Accounts
      summary: 8055 - Bind Transit-Account to Passenger-Account by EngravedId
      description: |-
        Binds transit account identified by EngravedId of a Medium
        (EID) to the Passenger Account identified by external passenger account
        token (xPAT).
      operationId: API-8055_Bind_Transit-Account_to_Passenger-Account_by_EngravedId
      security:
        - OAuthAuthorization:
            - default
      parameters:
        - name: xPAT
          in: path
          description: external passenger account token (ID of passenger account)
          required: true
          schema:
            type: string
            format: uuid
            example: e8bc073f-2408-4dbe-8781-4c33df25e9a8
        - name: mediumType
          in: path
          description: type of Token
          required: true
          schema:
            type: string
            enum:
              - OVC
              - EMV
              - GemaltoPure
              - MasterCardWL
              - Cibo
              - GBO
        - name: EID
          in: path
          description: EngravedId
          required: true
          schema:
            type: string
      responses:
        '204':
          description: >-
            NO CONTENT


            Transit account was successfully bound to the passenger account.


            Important: Response 204 is returned also in case that this transit account was already bound to specified Passenger Account

            (because PUT is idempotent operation).
        '400':
          description: |-
            Bad Request
            Failed to bind transit account. List of possible error codes:
            <ul>
              <li>TM0202 - Unknown business entity</li>
              <li>TM0207 - Unknown external transit account token</li>
              <li>TM0222 - Unknown external passenger account token</li>
            </ul>
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Unknown business entity - missing input:
                  $ref: '#/components/examples/unknownBusinessEntityMissingInput400'
                Unknown external transit account token - invalid format:
                  $ref: '#/components/examples/unknownExternalTAT400'
                Unknown external passenger account token - invalid format:
                  $ref: '#/components/examples/unknownExternalPAT400'
        '500':
          description: >-
            Internal Server Error

            Failed to execute due to internal problems (e.g. failed to access data within database). List of possible error codes:

            <ul>


              <li>TM0001 - Internal system error</li>
            </ul>
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Internal system error:
                  $ref: '#/components/examples/dbAccessTransitAccountError500'
    delete:
      tags:
        - Passenger-Accounts
      summary: 8056 - Unbind Transit-Account from Passenger-Account using Engraved ID
      description: >-
        This API unbinds a transit account from a passenger account. After the transit account is unbound the transit account will nolonger appear in the list of transit account when the passenger account is accessed.



        The API requires a passenger account number (xPAT) and the identifer of the transit account (engraveid) that a customer wants to unbind. Note that the engraveid is an secondary identifier of a transit account. The primary identifier is the xTAT. It is the xTAT that is unbound from the passenger account and will nolonger appear in the list when the passenger account is accessed.



        The purpose of a passenger account is to be a container for multiple transit accounts that belong to a single customer. A passenger account is identified by an xPAT with which it is possible to manage a list of transit accounts (identified by an xTAT). A passenger account does not hold any data other then the list with transit accounts. Travel related data (payments, trips, products, alerts) should be accessed through a transit account or a token.



        The purpose of a transit account is to hold the payment methods, the products (sales packages) and the medium that is used during travel. A medium is also referred to as token. An example of a token or medium is an EMV card. Although multiple media could be connected only one can be active. The mechanism to differentiate between a medium and a transit account is that through the transit account it is possible to replace the token, keep the connection with the payment methods and products and the full history of trips and payments. 

        A transit account is identified by an external transit account number xTAT. A passenger account does not hold any data other then the list with identifiers of transit accounts. Travel related data (payments, trips, products, alerts) should be accessed through a transit account or a token.

      operationId: API-8056_Unbind_Transit-Account_from_Passenger-Account_by_EngravedId
      security:
        - OAuthAuthorization:
            - default
      parameters:
        - name: xPAT
          in: path
          description: external passenger account token (ID of passenger account)
          required: true
          schema:
            type: string
            format: uuid
            example: e8bc073f-2408-4dbe-8781-4c33df25e9a8
        - name: mediumType
          in: path
          description: type of Token
          required: true
          schema:
            type: string
            enum:
              - OVC
              - EMV
              - GemaltoPure
              - MasterCardWL
              - Cibo
              - GBO
        - name: EID
          in: path
          description: EngravedId
          required: true
          schema:
            type: string
      responses:
        '204':
          description: |-
            NO CONTENT

            Transit account was successfully unbound from the passenger account.
        '400':
          description: |-
            Bad Request
            Failed to unbind transit account. List of possible error codes:
            <ul>
              <li>TM0202 - Unknown business entity</li>
              <li>TM0207 - Unknown external transit account token</li>
              <li>TM0222 - Unknown external passenger account token.</li>
              <li>TM0223 - Transit account is not bound to the specified passenger account.</li>
            </ul>
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Unknown Business entity - missing input:
                  $ref: '#/components/examples/unknownBusinessEntityMissingInput400'
                Unknown external transit account token:
                  $ref: '#/components/examples/unknownExternalTAT400'
                Unknown external passenger account token:
                  $ref: '#/components/examples/unknownExternalPAT400'
                Transit account token not bount to passenger account token:
                  $ref: '#/components/examples/notBountTATtoPAT400'
        '500':
          description: >-
            Internal Server Error

            Failed to execute due to internal problems (e.g. failed to access data within database). List of possible error codes:

            <ul>


              <li>TM0001 - Internal system error</li>
            </ul>
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Internal system error - db access problem:
                  $ref: '#/components/examples/dbAccessPassengerAccountError500'
  '/passenger-accounts/{xPAT}/transit-accounts/id-media/tokens/xbot/{xBOT}':
    put:
      tags:
        - Passenger-Accounts
      summary: 8057 - Bind Transit-Account to Passenger-Account by xBOT
      description: |-
        Binds transit account identified by external backoffice token
        (xBOT) to the Passenger Account identified by external passenger account
        token (xPAT).
      operationId: API-8057_Bind_Transit-Account_to_Passenger-Account_by_xBOT
      security:
        - OAuthAuthorization:
            - default
      parameters:
        - name: xPAT
          in: path
          description: external passenger account token (ID of passenger account)
          required: true
          schema:
            type: string
            format: uuid
            example: e8bc073f-2408-4dbe-8781-4c33df25e9a8
        - name: xBOT
          in: path
          required: true
          schema:
            type: string
            format: uuid
            example: e1307c73-676a-4d07-967b-6141276f7c7c
          description: External BackOffice Token (identifier)
      responses:
        '204':
          description: >-
            NO CONTENT


            Transit account was successfully bound to the passenger account.


            Important: Response 204 is returned also in case that this transit account was already bound to specified Passenger Account

            (because PUT is idempotent operation).
        '400':
          description: |-
            Bad Request
            Failed to bind transit account. List of possible error codes:
            <ul>
              <li>TM0202 - Unknown business entity</li>
              <li>TM0207 - Unknown external transit account token</li>
              <li>TM0222 - Unknown external passenger account token</li>
            </ul>
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Unknown business entity - missing input:
                  $ref: '#/components/examples/unknownBusinessEntityMissingInput400'
                Unknown external transit account token - invalid format:
                  $ref: '#/components/examples/unknownExternalTAT400'
                Unknown external passenger account token - invalid format:
                  $ref: '#/components/examples/unknownExternalPAT400'
        '500':
          description: >-
            Internal Server Error

            Failed to execute due to internal problems (e.g. failed to access data within database). List of possible error codes:

            <ul>


              <li>TM0001 - Internal system error</li>
            </ul>
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Internal system error:
                  $ref: '#/components/examples/dbAccessTransitAccountError500'
components:
  schemas:
    AllowedPaymentMethodProvider:
      type: object
      properties:
        paymentMethodProviderId:
          type: string
          description: Payment Method Provider Id.
          format: uuid
        mediumTypeId:
          type: integer
          description: Payment Method Provider Id.
          format: int32
      description: Allowed Payment Method Providers.
    BusinessException:
      required:
        - code
        - message
      type: object
      properties:
        code:
          type: string
          description: error code consists of prefix following with 4 digit number
        message:
          type: string
          description: detail description of error message related to business rule
      description: describes exception related to the business rule
    ErrorMessage:
      required:
        - message
      type: object
      properties:
        referenceId:
          type: string
          description: UUID string used to lookup request in logs
          example: 74736650-0bc2-421f-9fe8-76436e23e033
        message:
          type: string
          description: 'Message describing error, possibly with cause'
      description: represents general error description
    ErrorResponse:
      required:
        - errorMessage
      type: object
      properties:
        errorMessage:
          $ref: '#/components/schemas/ErrorMessage'
        businessExceptions:
          type: array
          description: list of exception(s) related to business rule
          items:
            $ref: '#/components/schemas/BusinessException'
        fieldValidations:
          type: array
          description: optional list of field validation(s)
          items:
            $ref: '#/components/schemas/FieldValidation'
    FieldValidation:
      required:
        - field
        - message
      type: object
      properties:
        field:
          type: string
          description: field name that violates the validation rule
        message:
          type: string
          description: detail description of validation rule
      description: describes class filed validation violation
    MediumType:
      type: object
      properties:
        mediumTypeId:
          type: integer
          description: Medium Type ID.
          format: int32
        externalId:
          type: string
          description: External unique identifier.
          example: 35b5405d-9ff6-4197-8ba4-56e8422b9005
        mediumTypeDescr:
          type: string
          description: Type of the medium.
          example: EMV
        trustLevel:
          type: string
          description: Trust level.
          example: EMV
        sensitive:
          type: boolean
          description: Sensitive medium.
          example: false
        chsSupport:
          type: boolean
          description: CHS orchestrator support.
          example: false
        chsRegImport:
          type: boolean
          description: CHS orchestrator reg import.
          example: false
        botFormat:
          type: string
          description: Bot Format.
        origin:
          type: string
          description: Origin.
        tvCardType:
          type: string
          description: Tv Card Type.
        allowedPaymentMethodProviders:
          type: array
          description: Allowed Payment Method Providers.
          items:
            $ref: '#/components/schemas/AllowedPaymentMethodProvider'
    PaymentMethodProvider:
      type: object
      properties:
        paymentMethodProviderId:
          type: string
          format: uuid
        name:
          type: string
        paymentMethodMode:
          type: string
        endpoint:
          type: string
        externalBusinessEntityId:
          type: string
      description: Payment Method Provider.
    TatPaymentMethodTemplate:
      type: object
      properties:
        status:
          type: string
          description: Tat Payment Method Template Status.
          example: ACTIVE
        autoTopupEnabled:
          type: boolean
          description: Flag whether auto top-up functionality should be enabled.
          example: false
        paymentMethodOrder:
          type: integer
          description: Payment Method Order.
          format: int32
        mandatoryParams:
          type: string
          description: Mandatory Parameters.
        transitAccountTemplateId:
          type: string
          description: Transit Account Template Id.
          format: uuid
        paymentMethodProvider:
          $ref: '#/components/schemas/PaymentMethodProvider'
    TatPaymentMethodTemplateCreation:
      required:
        - autoTopupEnabled
        - paymentMethodOrder
        - paymentMethodProviderId
        - status
        - transitAccountTemplateId
      type: object
      properties:
        status:
          type: string
          description: Tat Payment Method Template Status.
          example: ACTIVE
        autoTopupEnabled:
          type: boolean
          description: Flag whether auto top-up functionality should be enabled.
          example: false
        paymentMethodOrder:
          type: integer
          description: Payment Method Order.
          format: int32
        mandatoryParams:
          type: string
          description: Mandatory Parameters.
        transitAccountTemplateId:
          type: string
          description: Transit Account Template Id.
          format: uuid
        paymentMethodProviderId:
          type: string
          description: Payment Method Provider Id.
          format: uuid
    TatProductTemplate:
      required:
        - productTemplateId
        - transitAccountTemplateId
      type: object
      properties:
        productTemplateId:
          type: string
          description: Product template identifier in the product catalogue.
          example: dba0b896-118d-4e9e-abf5-af264ced34c4
        validDaysCount:
          type: integer
          description: Valid Days Count.
          format: int32
        transitAccountTemplateId:
          type: string
          description: Transit Account Template Id.
          format: uuid
    TransitAccountTemplate:
      type: object
      properties:
        transitAccountTemplateId:
          type: string
          description: Transit Account Template Id.
          format: uuid
        transitAccountTemplateName:
          type: string
          description: Transit Account Template Name.
        defaultTariffVersion:
          type: string
          description: Default Tariff Version.
        defaultTravelEntitlementId:
          type: string
          description: Default Travel Entitlement Id.
        tatPaymentMethodTemplates:
          type: array
          items:
            $ref: '#/components/schemas/TatPaymentMethodTemplate'
        tatProductTemplates:
          type: array
          items:
            $ref: '#/components/schemas/TatProductTemplate'
        mediumType:
          $ref: '#/components/schemas/MediumType'
    TransitAccountTemplateCreation:
      required:
        - defaultTariffVersion
        - defaultTravelEntitlementId
        - transitAccountTemplateId
        - transitAccountTemplateName
      type: object
      properties:
        transitAccountTemplateId:
          type: string
          description: Transit Account Template Id.
          format: uuid
        transitAccountTemplateName:
          type: string
          description: Transit Account Template Name.
        defaultTariffVersion:
          type: string
          description: Default Tariff Version.
        defaultTravelEntitlementId:
          type: string
          description: Default Travel Entitlement Id.
        mediumTypeId:
          type: integer
          format: int32
        tatPaymentMethodTemplates:
          type: array
          items:
            $ref: '#/components/schemas/TatPaymentMethodTemplateCreation'
        tatProductTemplates:
          type: array
          items:
            $ref: '#/components/schemas/TatProductTemplate'
      description: TransitAccountTemplateCreation
    Alias:
      type: object
      properties:
        iban:
          type: string
        is_light:
          type: boolean
        display_name:
          type: string
        avatar:
          $ref: '#/components/schemas/Avatar'
        label_user:
          $ref: '#/components/schemas/LabelUser'
        country:
          type: string
    Amount:
      type: object
      properties:
        currency:
          type: string
        value:
          type: string
    Avatar:
      type: object
      properties:
        uuid:
          type: string
        image:
          type: array
          items:
            $ref: '#/components/schemas/Image'
    BalanceAfterMutation:
      type: object
      properties:
        currency:
          type: string
        value:
          type: string
    BunqCallback:
      type: object
      properties:
        NotificationUrl:
          type: object
          required:
            - event_type
            - category
          properties:
            target_url:
              type: string
            category:
              type: string
            event_type:
              type: string
            object:
              type: object
              required:
                - CardCredit
              properties:
                CardCredit:
                  type: object
                  properties:
                    user_id:
                      type: integer
    BunqPaymentCallback:
      type: object
      properties:
        NotificationUrl:
          type: object
          required:
            - event_type
            - category
          properties:
            target_url:
              type: string
            category:
              type: string
            event_type:
              type: string
            object:
              type: object
              required:
                - TranslinkTransaction
              properties:
                TranslinkTransaction:
                  $ref: '#/components/schemas/TranslinkTransaction'
    EntryItem:
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/Amount'
        alias:
          $ref: '#/components/schemas/Alias'
        counterparty_alias:
          $ref: '#/components/schemas/Alias'
        description:
          type: string
        merchant_reference:
          type: string
    Image:
      type: object
      properties:
        attachment_public_uuid:
          type: string
        height:
          type: integer
        width:
          type: integer
        content_type:
          type: string
        urls:
          type: array
          items:
            $ref: '#/components/schemas/Url'
    LabelUser:
      type: object
      properties:
        uuid:
          type: string
        display_name:
          type: string
        country:
          type: string
        avatar:
          $ref: '#/components/schemas/Avatar'
        public_nick_name:
          type: string
        type:
          type: string
    MutationUpdateRequest:
      type: object
      properties:
        NotificationUrl:
          $ref: '#/components/schemas/NotificationURL'
    NotificationURL:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ObjectClass'
    ObjectClass:
      type: object
      properties:
        Payment:
          $ref: '#/components/schemas/Payment'
    Payment:
      type: object
      properties:
        balance_after_mutation:
          $ref: '#/components/schemas/BalanceAfterMutation'
        updated:
          type: string
    PaymentItem:
      type: object
      properties:
        id:
          type: integer
        created:
          type: string
        updated:
          type: string
        monetary_account_id:
          type: string
        amount:
          $ref: '#/components/schemas/Amount'
        description:
          type: string
        type:
          type: string
        merchant_reference:
          type: string
        maturity_date:
          type: string
        alias:
          $ref: '#/components/schemas/Alias'
        counterparty_alias:
          $ref: '#/components/schemas/Alias'
        attachment:
          type: array
          items:
            type: object
        geolocation:
          type: string
        batch_id:
          type: integer
        scheduled_id:
          type: integer
        address_billing:
          type: object
        address_shipping:
          type: object
        sub_type:
          type: string
        status:
          type: string
        request_reference_split_the_bill:
          type: array
          items:
            type: object
        balance_after_mutation:
          $ref: '#/components/schemas/Amount'
        all_auto_save_entry:
          type: array
          items:
            type: object
        payment_auto_allocate_instance:
          type: object
    TranslinkTransaction:
      type: object
      properties:
        id:
          type: integer
        created:
          type: string
        updated:
          type: string
        type:
          type: string
        status:
          type: string
        failure_reason:
          type: string
        payments:
          type: array
          items:
            $ref: '#/components/schemas/PaymentItem'
        amount:
          $ref: '#/components/schemas/Amount'
        reference:
          type: string
        description:
          type: string
        entries:
          type: array
          items:
            $ref: '#/components/schemas/EntryItem'
    Url:
      type: object
      properties:
        type:
          type: string
        url:
          type: string
    ExternalPassengerAccountResponse:
      type: object
      properties:
        status:
          type: string
          example: ACTIVE
          enum:
            - ACTIVE
          description: >-
            Status of the Passenger Account. Reserved for future use. At the moment only possible value is ACTIVE.
        externalAccountId:
          type: string
          minLength: 1
          maxLength: 128
          example: b3296c44-2d7e-42c0-9f86-1a4ee029f00b
          description: >-
            The value of <i>externalAccountId</i> parameter as specified during passenger account creation.


            Parameter was originally intended for storing of identifier that serves as a link to other system.

            For example if CRM system creates new passanger account in IDBT system, it can store here ID of passenger account in CRM.

            This way a caller might link his own passenger account representation with IDBT passenger account.
        externalTransitAccounts:
          type: array
          items:
            $ref: '#/components/schemas/ExternalTransitAccount'
    ExternalTransitAccount:
      type: object
      properties:
        xtat:
          type: string
          description: >-
            External transit account token (xTAT). Uniquely identifies the associated transit account.
          format: uuid
          example: 1919be43-5c1c-4472-9a49-4886f97f733b
      description: >-
        List of transit accounts assigned to the requested passenger account.


        Passenger account serves as a grouping of transit accounts. Passenger account groups zero or more transit accounts.
    PatRequest:
      required:
        - externalAccountId
      type: object
      properties:
        externalAccountId:
          type: string
          minLength: 1
          maxLength: 128
          description: >-
            Parameter was originally intended for storing of identifier that serves as a link to other system.

            For example if CRM system is creating new passanger account in IDBT system, it can store here ID of passenger account in CRM.

            This way a caller might link his own passenger account representation with IDBT passenger account.

            This parameter is not interpreted by IDBT system in any way. Basically a caller can store arbitrary string here (e.g. "N/A").

            This attribute of passenger account does not have to be unique and can be updated afterwards.
          example: 7aecc75e-14c1-4ef2-9156-de838d0573b7
    TranslationResponse:
      type: object
      description: Object containing identifier value and its type.
      properties:
        value:
          type: string
          description: Identifier value.
          example: 64d7265e-42ce-4ccc-addd-3e95056b757d
        type:
          type: string
          description: Identifier type.
          enum:
            - xbot
            - xtat
            - xpmit
            - xpit
            - serviceToken
            - eid
            - ttid
            - xprofit
            - xpat
            - xspit
            - inst
            - alit
            - opaque_payment_card
    AlternativeText:
      type: object
      description: AN AlternativeText IS AN object THAT contains values to enable one or more language translations
      properties:
        text:
          type: object
          description: A text is AN wrapper THAT is used as an abstraction layer to contain the properties of AlternativeText
          properties:
            lang:
              type: string
              description: A lang IS AN enumerated identifier THAT describes the language of the text within the AlternativeText object
              example: en-US
            textIdType:
              type: string
              description: A textIdType IS AN name THAT is used to categorize types of text
              example: publicName
            text:
              type: string
              description: A text IS A name THAT has been translated to a particular language
              example: Default Travel Entitlement
    CreateTatRequest:
      type: object
      properties:
        templateName:
          type: string
          description: >-
            The name of transit account template, that should be used for implicit product and payment methods creation. This template must be configured in the database.
          example: default
        mediumType:
          type: string
          description: >-
            The type of medium that will be later bound to this transit account. It determines the transit account template, that should be used for implicit product and payment methods creation. This template must be configured in the database. If the templateName is set, this parameter is not taken into consideration.
          example: MifareUltralight
    ExternalMedium:
      type: object
      properties:
        mediumType:
          type: string
          description: |-
            Type of the medium. List of supported media is project specific.

            <p>
            For TERA projects:
            <ul>
            <li>EMV</li>
            <li>GemaltoPure</li>
            <li>MasterCardWL</li>
            <li>OVC</li>
            <li>Cibo</li>
            <li>GBO</li>
            <li>EMV-CLT</li>
            </ul>
            </p>

            <p hidden>
            tera=[EMV,GemaltoPure,MasterCardWL,OVC,Cibo,GBO,EMV-CLT]
            </p>

            <p>
            For ABTnano projects:
            <ul>
            <li>EMV</li>
            <li>Cibo</li>
            <li>SwissPass</li>
            <li>Barcode</li>
            <li>EMV-CLT</li>
            <li>QRCode</li>
            </ul>
            </p>

            <p hidden>
            nano=[EMV,Cibo,SwissPass,Barcode,EMV-CLT,QRCode]
            </p>
          example: EMV
        trueTokenId:
          type: string
          description: True token value.
          nullable: true
          example: '4012888888881881'
        engravedId:
          type: string
          description: Token physically engraved on the medium.
          nullable: true
          example: '4012888888881881'
        serviceToken:
          type: string
          description: Service token assigned to the medium.
          nullable: true
          example: 8bZxy-Zy6Ey-S5gN2
        formFactor:
          type: string
          description: 'Form of the media (e.g.: ring, watch ...).'
          nullable: true
        status:
          type: string
          description: |-
            Status of the medium.
            <p>
            Possible values:
            <ul>
            <li>OnStock</li>
            <li>RenewedActive</li>
            <li>Active</li>
            <li>Suspended</li>
            <li>Retired</li>
            </ul>
            </p>
          nullable: true
        activationCode:
          type: string
          description: Medium activation code.
          nullable: true
        reason:
          type: string
          description: |-
            The reason of the status change.
            <p>
            Possible values:
            <ul>
            <li>NotAvailable</li>
            <li>CardLost</li>
            <li>CardStolen</li>
            <li>CardBroken</li>
            <li>CardFound</li>
            <li>FraudDetected</li>
            <li>CardBound</li>
            <li>Replaced</li>
            <li>CardImported</li>
            <li>AutoCreated</li>
            <li>CardActivated</li>
            <li>CardUnblocked</li>
            <li>Expired</li>
            <li>Registered</li>
            <li>Anonymized</li>
            <li>ProvisionalNotUsed</li>
            <li>PaymentCoverage</li>
            <li>BoundByIban</li>
            </ul>
            </p>
          nullable: true
        externalUUID:
          type: string
          description: External unique identifier.
          nullable: true
        testFlag:
          type: boolean
          description: Test Flag
          nullable: true
        replacesXBot:
          type: string
          description: External BOT assigned to medium replaced by current instance.
          format: uuid
          nullable: true
          example: d99def09-0309-4099-890e-bbd38327a8dd
        expirationDate:
          type: string
          description: >-
            Date-time until when the medium is valid, format yyyy-MM-ddTHH:mm:sszzz.
          format: date-time
          nullable: true
        propertyBag:
          $ref: '#/components/schemas/PropertyBag'
        xbot:
          type: string
          description: External BOT.
          format: uuid
          example: 1919be43-5c1c-4472-9a49-4886f97f733b
    ExternalPaymentMethodInstance:
      type: object
      properties:
        paymentMethodId:
          type: string
          description: Id of the payment method provider this instance is linked to.
          format: uuid
          example: dba0b896-118d-4e9e-abf5-af264ced34c4
        paymentMethodMode:
          type: string
          description: Mode of the payment method provider this instance is linked to.
          example: Payment_method_provider_mode
        status:
          type: string
          description: Status of the payment method instance.
          example: Active
        externalAccountId:
          type: string
          description: External account ID (e.g. Paypall account ID).
          nullable: true
        fundingSourceId:
          type: string
          description: >-
            Unique identifier of funding source in the Customer account management.
          nullable: true
          example: '4012888888881881'
        fundingSource:
          type: object
          description: >-
            Attributes of funding source as received from Customer Account Management.
          nullable: true
          properties:
            uuid:
              type: string
              description: Id of the funding source in the Customer Account Management.
              format: uuid
              example: dba0b896-118d-4e9e-abf5-af264ced34c4
            type:
              type: string
              description: Type of the funding source.
              example: SEPA
            status:
              type: string
              description: Status of the funding source.
              example: ACTIVE
            displayText:
              type: string
              description: The text that should be displayed for this funding source.
              example: DE893704**********3123
            tokenExpiry:
              type: string
              description: The expiration date of token.
              format: YYYY-MM-DD
              example: '2025-12-31'
            tokenIssuer:
              type: string
              description: The issuer of the funding source.
              example: ABT
            token:
              type: string
              description: Token of the funding source.
              example: '1481568747703112636'
            mandateRef:
              type: string
              description: MAndate reference of the funding source.
              example: FHSDJKLIUERT69384DSKV
            signatureDate:
              type: string
              description: The date of signature.
              format: YYYY-MM-DD
              example: '2022-04-30'
            recurrence:
              type: string
              description: The recurence of funding.
              example: ONE_OFF
            cardBrand:
              type: string
              description: The brand of the card.
              example: VISA
            additionalPayload:
              type: array
              description: List of objects containing key and value.
              example:
                - key: creditorName
                  value: Diergaarde Blijdorp
                - key: creditorIdentifier
                  value: NL002772036B01
                - key: creditorAddress
                  value: Blijdorplaan 8
                - key: creditorPostalCode
                  value: 3041JG
                - key: creditorCity
                  value: Rotterdam
                - key: creditorCountry
                  value: Nederland
              items:
                $ref: '#/components/schemas/PropertyBagItem'
        billingCycle:
          type: object
          description: Attributes of billing cycle.
          nullable: true
          example:
            minimalDueAmount: 50
            forcePaymentAfterPeriods: 1
            paymentExecutionDateDelayInDays: 10
            dueDateDelayInDays: 15
            recurrence:
              period: MONTHLY
              every: 2
        currentBalance:
          type: integer
          description: Current balance. It is set for example for stored value wallet.
          nullable: true
          format: int32
        currency:
          type: string
          description: Currency of current balance.
          nullable: true
          example: EUR
        paymentProviderName:
          type: string
          description: Name of the payment method provider this instance is linked to.
          example: Payment_method_provider_name
        businessEntityId:
          type: string
          example: '3'
        order:
          type: integer
          description: >-
            Order of the payment method. (For payment will be used Active Payment Method with the smallest order number.)
          format: int32
        contractStartDate:
          type: string
          description: >-
            Date (format YYYY-MM-DD) when the contract was (or will be) started. Note: Contract attributes are intended for payment methods for which can be only one active payment method (of that payment method mode) at any moment.
          nullable: true
          example: '2022-04-02'
        minimalContractEndDateInclusive:
          type: string
          description: >-
            The date (format YYYY-MM-DD) until when the contract cannot be terminated by take-over by another PSP. Another contract (of the same type) can be started one day after this date at the earliest. Note: Contract attributes are intended for payment methods for which can be only one active payment method (of that payment method mode) at any moment.
          nullable: true
          example: '2024-04-02'
        contractEndDateInclusive:
          type: string
          description: >-
            Date (format YYYY-MM-DD) when the contract was ( or will be) terminated. The day after this date this payment method cannot be used anymore (status = Terminated - final state).
          nullable: true
          example: '2025-04-02'
        xpmit:
          type: string
          description: External payment method instance token.
          format: uuid
          example: 5d6a84a8-31b0-4be0-9ae8-b254b7abf869
      description: >-
        Payment methods with external identifiers assigned to the transit account.
    ExternalProfileInstance:
      required:
        - validPeriod
      type: object
      description: AN ExternalProfileInstance IS A Profile THAT has been assigned to a Transit Account
      properties:
        profileType:
          type: string
          description: A profileType IS A unique identifier THAT is used to distinguish this Profile from all other Profiles
          example: '199900102'
        name:
          type: string
          description: A profileName IS A name THAT is used to describe the Profile in a human-readable way
          example: Student
        description:
          type: string
          description: A description IS A string THAT adds additional context to the Profile
          example: Students profile.
        validPeriod:
          description: A validPeriod IS A date time range THAT describes a starting and inclusive ending date
          $ref: '#/components/schemas/PeriodDateTimeInclusive'
        xprofit:
          type: string
          description: AN xprofit IS A token THAT references a Profile instance relating to the Business Entity of the callee
          format: uuid
          example: 5d6a84a8-31b0-4be0-9ae8-b254b7abf869
    ExternalSalesPackageOutput:
      required:
        - packageAmount
        - packageTemplateId
      type: object
      properties:
        image:
          type: string
          description: >-
            URL pointing to the image (e.g. icon) associated with the sales package.
          example: icons/salespackages/50011.svg
        url:
          type: string
          description: URL from tariff service associated with the sales package.
          example: salespackages/50011
        packageTemplateId:
          type: string
          description: Sales package template ID.
          example: package_pto1_full
        tariffVersionId:
          type: string
          description: >-
            Version of the product catalog from which the sales package was retrieved.
          nullable: true
          example: '1'
        packageAmount:
          $ref: '#/components/schemas/MonetaryAmount'
        name:
          type: string
          description: Name of the tariff location.
        description:
          type: string
          description: Description of the tariff location.
        salesChannelType:
          type: string
          description: 'Identifies the sales channel, related to a particular retailer.'
          example: webshop
        retailerId:
          type: string
          description: Retailer ID.
          nullable: true
        refundReason:
          type: string
          description: >-
            The reason of refund (only in case that the sales package was refunded).
          nullable: true
        refundBookingId:
          type: string
          description: The booking ID of refund sales packake transaction.
          nullable: true
        refundAmount:
          $ref: '#/components/schemas/MonetaryAmount'
        localization:
          type: array
          description: List of localized texts in the required language(s).
          items:
            $ref: '#/components/schemas/Localization'
        products:
          type: array
          description: Holds collection the products.
          items:
            $ref: '#/components/schemas/ProductLocalizationWrapper'
        salesTimestamp:
          type: string
          description: >-
            Timestamp of the sales moment in ISO 8601 format (yyyy-MM-ddTHH:mm:ssTZD).
          format: date-time
          example: '2021-07-05T09:41:03Z'
        xspit:
          type: string
          description: External sales package instance token.
          format: uuid
          example: 4b4a9121-fb93-4aef-99f1-1268bce9f9b6
      description: >-
        Sales packages with internal identifiers assigned to the transit account.
    ExternalTransitAccountResponse:
      required:
        - status
      type: object
      properties:
        status:
          type: string
          description: Status of the Transit Account.
        provisional:
          type: boolean
          description: Indicates whether the account is provisional.
          example: true
        swipedIn:
          type: boolean
          description: Indicates whether the account is swiped-in.
          example: true
        entrainmentData:
          type: string
          description: Entrainment - additional group checkin data
          example: >-
            [{"type":"ADULTS","count":1},{"type":"CHILDREN","count":5},{"type":"BIKES","count":6}]
        sdkId:
          type: string
          description: Mobile SDK-ID
          example: ca-app-pub-3940256099942544~3347511713
        additionalAttributes:
          $ref: '#/components/schemas/PropertyBag'
        media:
          type: array
          items:
            $ref: '#/components/schemas/ExternalMedium'
        paymentMethodInstances:
          type: array
          items:
            $ref: '#/components/schemas/ExternalPaymentMethodInstance'
        salesPackages:
          type: array
          items:
            $ref: '#/components/schemas/ExternalSalesPackageOutput'
        profileInstances:
          type: array
          items:
            $ref: '#/components/schemas/ExternalProfileInstance'
    Localization:
      type: object
      properties:
        language:
          type: string
          description: ISO 639 language code.
          example: en-US
        textType:
          type: string
          description: Text type (may be project specific).
          example: publicName
        text:
          type: string
          description: Localized text itself.
          example: PTO-1 Night Bus Discount Product
      description: List of localized texts in the required language(s).
    MonetaryAmount:
      required:
        - amount
        - currency
      type: object
      properties:
        amount:
          type: integer
          format: int64
        currency:
          type: string
      description: 'Amount corresponding to the product instance (amount, currency pair).'
      example:
        currency: USD
        amount: 350
    MonetaryAmountWithVAT:
      required:
        - amount
        - currency
      type: object
      properties:
        amount:
          type: integer
          format: int64
        currency:
          type: string
        vatPercentage:
          type: number
          format: double
      description: >-
        Amount corresponding to the product instance (amount, currency pair) with VAT.
      example:
        currency: USD
        amount: 350
        vatPercentage: 10
    NameInfo:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
    PeriodDateTimeInclusive:
      required:
        - fromInclusive
        - untilInclusive
      type: object
      description: A PeriodDateTimeInclusive IS AN object THAT describes a validity period including both the start and end dates
      properties:
        fromInclusive:
          type: string
          description: A fromInclusive IS A date and time indication THAT describes from when a time period starts in yyyy-MM-ddTHH:mm:sszzz
          format: date-time
        untilInclusive:
          type: string
          description: A untilInclusive IS A date and time indication THAT describes when a time period ends in yyyy-MM-ddTHH:mm:sszzz
          format: date-time
    ProductLocalizationWrapper:
      required:
        - salesItemProduct
      type: object
      properties:
        image:
          type: string
          description: URL pointing to the image (e.g. icon) associated with the product.
          example: icons/products/5002.svg
        url:
          type: string
          description: URL from tariff service associated with the product.
          example: products/5002
        salesItemProduct:
          $ref: '#/components/schemas/SalesItemProduct'
        localization:
          type: array
          description: List of localized texts in the required language(s).
          items:
            $ref: '#/components/schemas/Localization'
        typesOfFareProduct:
          type: array
          items:
            type: object
          description: Types of fare product.
          example:
            - privateCode: classSurcharge
      description: Holds collection the products.entrainmentData
    Profile:
      description: A Profile IS AN object THAT contains a set of attributes for a Passenger that influence the calculation of the 'full fare'
      type: object
      properties:
        profileType:
          type: string
          description: A profileType IS A unique identifier THAT is used to distinguish this Profile from all other Profiles
          example: '199900102'
        name:
          type: string
          description: A profileName IS A name THAT is used to describe the Profile in a human-readable way
          example: 'Disabled passenger'
        description:
          type: string
          description: A description IS A string THAT adds additional context to the Profile
          example: 'Disabled passenger eligible for disability discounts'
        alternativeTexts:
          type: array
          description: AN alternativeTexts IS A collection of AlternativeText THAT contains one or more translations for the name of the Profile
          items:
            $ref: '#/components/schemas/AlternativeText'
    ProfileRequest:
      required:
        - profileType
        - validPeriod
      type: object
      properties:
        profileType:
          type: string
          description: 'Identifies the type of profile (e.g. child, handicapped).'
        validPeriod:
          $ref: '#/components/schemas/ValidityPeriod'
    PropertyBag:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/PropertyBagItem'
      description: Collection of the additional attributes provided as key value pairs.
    PropertyBagItem:
      required:
        - key
        - value
      type: object
      properties:
        key:
          type: string
          example: sub
        value:
          type: string
          example: '8632983369136338741'
      description: Property bag items.
    SalesItemProduct:
      required:
        - itemType
        - productTemplateId
        - validPeriod
      type: object
      properties:
        productTemplateId:
          type: string
          description: Product template identifier in the product catalogue.
          example: dba0b896-118d-4e9e-abf5-af264ced34c4
        validPeriod:
          $ref: '#/components/schemas/PeriodDateTimeInclusive'
        tariffVersionId:
          type: string
          description: Tariff version that contains the product template.
          example: '1'
        itemSeq:
          type: integer
          description: >-
            Sequence number of item. This field if optional. If it is set, the same value is set in the corresponding response.
          format: int32
          nullable: true
          example: 0
        productOwnerId:
          type: string
          description: Business entity id of the product owner organisation.
          nullable: true
          example: pto_4
        usablePeriod:
          $ref: '#/components/schemas/PeriodDateTimeInclusive'
        externalProductInstanceId:
          type: string
          description: External system product instance identifier.
          example: ed9cbd06-2fe7-4953-b0d7-e7793f29b467
        retailerReference:
          type: string
          description: Retailer reference.
        status:
          type: string
          description: Product status.
        chsProductInstanceId:
          type: string
          description: Product instance ID from clearing house system.
          example: 1268BCE9F9B6
        itemType:
          type: string
          description: Type of product.
          example: TRAVEL_PRODUCT
          enum:
            - TRAVEL_PRODUCT
            - STORED_VALUE
            - NON_TRAVEL_PRODUCT
        propertyBag:
          $ref: '#/components/schemas/PropertyBag'
        nameInfo:
          $ref: '#/components/schemas/NameInfo'
        itemAmount:
          $ref: '#/components/schemas/MonetaryAmountWithVAT'
        itemRefundAmount:
          $ref: '#/components/schemas/MonetaryAmountWithVAT'
        refundTimestamp:
          type: string
          description: >-
            Timestamp of the refund moment in ISO 8601 format (yyyy-MM-ddTHH:mm:ssTZD). Output only.
          format: date-time
          example: '2021-07-05T09:41:03Z'
        scheduledRefundTimestamp:
          type: string
          description: >-
            Timestamp when the refund should be done. If the refund request is sent with timestamp in the future (later than configured amount of minutes) the refund is scheduled and not done immediately. It is set in ISO 8601 format (yyyy-MM-ddTHH:mm:ssTZD). Output only.
          format: date-time
          example: '2021-07-05T09:41:03Z'
        parameters:
          oneOf:
            - type: object
            - type: array
              items: {}
          description: >-
            Additional product parameters. Parameters are not validated. Both json object and json array are supported as value.
          example: >-
            {"seriesConstraint":{"from":{"tariffLocationId":"8316"},"vias":[{"tariffLocationId":"8318"}],"to":{"tariffLocationId":"8321"}}}
    ValidityPeriod:
      required:
        - fromInclusive
      type: object
      properties:
        fromInclusive:
          type: string
          description: >-
            Date-time from which time period starts in format yyyy-MM-ddTHH:mm:sszzz.
          format: date-time
        untilInclusive:
          type: string
          description: >-
            Date-time at which time period ends in format yyyy-MM-ddTHH:mm:sszzz. If not set, default value (in not reachable future) will be taken
          format: date-time
      description: Validity period of the profile.
    VoidProfileRequest:
      type: object
      properties:
        expirationTimestamp:
          type: string
          example: '2019-11-20T19:48:00Z'
          description: >-
            Timestamp of the profile expiration in ISO 8601 format (yyyy-MM-ddTHH:mm:ssTZD). If not set, the current timestamp is taken
          format: date-time
    Accepted:
      type: object
      properties:
        referenceId:
          type: string
          description: Reference identifier of the response
    Address:
      type: object
      properties:
        street:
          type: string
          description: Street
          example: name
        houseNumber:
          type: string
          description: House number
          example: name
        postalCode:
          type: string
          description: Postal code
          example: name
        city:
          type: string
          description: City
          example: name
        country:
          type: string
          description: Country
          example: name
    Balance:
      type: object
      properties:
        xbot:
          type: string
          format: uuid
        xpmit:
          type: string
          format: uuid
        paymentProviderName:
          type: string
        status:
          type: string
        currentBalance:
          type: number
        currency:
          type: string
    BalancesResponse:
      type: object
      properties:
        balances:
          type: array
          items:
            $ref: '#/components/schemas/Balance'
    BunqAddress:
      type: object
      properties:
        name:
          type: string
          description: Delivery name and name on card
          example: name
        address:
          $ref: '#/components/schemas/Address'
      description: Parameters needed for creation of PaymentMethods from template.
    BusinessResult:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Error message
    CardDebtReason:
      enum:
        - NotAvailable
        - TooMuchDebt
      type: string
    CardDebtStatus:
      enum:
        - InDebt
        - NoDebt
        - NotAvailable
      type: string
    FieldValidationResult:
      type: object
      properties:
        field:
          type: string
          description: Field name
        message:
          type: string
          description: Error message
    GenericErrorResponse:
      required:
        - errorMessage
      type: object
      properties:
        errorMessage:
          type: object
          properties:
            message:
              type: string
              description: Error message
              example: The server responded with http status code 404
            referenceId:
              type: string
              description: Reference identification code
              example: BSS-1615326528285
          description: Error message object
        businessExceptions:
          type: array
          description: List of business exceptions
          items:
            type: object
            properties:
              code:
                type: string
                description: Error code
                example: '5063'
              message:
                type: string
                description: Error message
                example: Unable to get trip detail
            description: Business error result object
      description: Error response object
    GenericOkResponse:
      required:
        - referenceId
      type: object
      properties:
        referenceId:
          type: string
          description: Reference identification code
          example: BSS-1615326528285
      description: Ok response object
    GetXbotDetailsAndDebtAndListStatus:
      description: JSON schema for GetXboxDetailsAndDebtAndListStatus
      type: object
      properties:
        xbot:
          description: Token identification code (backoffice token)
          example: f440d511-79ef-45d4-8a48-8e771146a145
          type: string
        mediumType:
          type: string
          description: |-
            Type of the medium. List of supported media is project specific.

            <p>
            For TERA projects:
            <ul>
            <li>EMV</li>
            <li>GemaltoPure</li>
            <li>MasterCardWL</li>
            <li>OVC</li>
            <li>Cibo</li>
            <li>GBO</li>
            <li>EMV-CLT</li>
            </ul>
            </p>

            <p hidden>
            tera=[EMV,GemaltoPure,MasterCardWL,OVC,Cibo,GBO,EMV-CLT]
            </p>

            <p>
            For ABTnano projects:
            <ul>
            <li>EMV</li>
            <li>Cibo</li>
            <li>SwissPass</li>
            <li>Barcode</li>
            <li>EMV-CLT</li>
            <li>QRCode</li>
            </ul>
            </p>

            <p hidden>
            nano=[EMV,Cibo,SwissPass,Barcode,EMV-CLT,QRCode]
            </p>
          example: EMV
        trueTokenId:
          type: string
          description: True token value.
          nullable: true
          example: '4012888888881881'
        engravedId:
          type: string
          description: Token physically engraved on the medium.
          nullable: true
          example: '4012888888881881'
        serviceToken:
          type: string
          description: Service token assigned to the medium.
          nullable: true
          example: 8bZxy-Zy6Ey-S5gN2
        formFactor:
          type: string
          description: 'Form of the media (e.g.: ring, watch ...).'
          nullable: true
        status:
          type: string
          description: |-
            Status of the medium.
            <p>
            Possible values:
            <ul>
            <li>OnStock</li>
            <li>RenewedActive</li>
            <li>Active</li>
            <li>Suspended</li>
            <li>Retired</li>
            </ul>
            </p>
          nullable: true
        activationCode:
          type: string
          description: Medium activation code.
          nullable: true
        reason:
          type: string
          description: |-
            The reason of the status change.
            <p>
            Possible values:
            <ul>
            <li>NotAvailable</li>
            <li>CardLost</li>
            <li>CardStolen</li>
            <li>CardBroken</li>
            <li>CardFound</li>
            <li>FraudDetected</li>
            <li>CardBound</li>
            <li>Replaced</li>
            <li>CardImported</li>
            <li>AutoCreated</li>
            <li>CardActivated</li>
            <li>CardUnblocked</li>
            <li>Expired</li>
            <li>Registered</li>
            <li>Anonymized</li>
            <li>ProvisionalNotUsed</li>
            <li>PaymentCoverage</li>
            <li>BoundByIban</li>
            </ul>
            </p>
          nullable: true
        externalUUID:
          type: string
          description: External unique identifier.
          nullable: true
        testFlag:
          type: boolean
          description: Test Flag
          nullable: true
        replacesXBot:
          type: string
          description: External BOT assigned to medium replaced by current instance.
          format: uuid
          nullable: true
          example: d99def09-0309-4099-890e-bbd38327a8dd
        expirationDate:
          type: string
          description: >-
            Date-time until when the medium is valid, format yyyy-MM-ddTHH:mm:sszzz.
          format: date-time
          nullable: true
        propertyBag:
          $ref: '#/components/schemas/PropertyBag'
        debt:
          description: The total value od the debt in cents
          example: 120
          type: integer
        trips:
          description: List of trips the debt is related to
          type: array
          items:
            $ref: '#/components/schemas/Trip'
        allowListed:
          description: Determines whether xbot is present on allow list
          example: true
          type: boolean
        denyListed:
          description: Determines whether xbot is present deny list
          example: false
          type: boolean
    IbanRequest:
      required:
        - iban
        - csn
      type: object
      properties:
        iban:
          type: string
          description: International Bank Account Number
        csn:
          type: number
          description: card sequence number
    ListStatusValue:
      enum:
        - 'No'
        - 'Yes'
      type: string
    ManualTap:
      required:
        - xbot
        - counterpartTransactionId
        - deviceClassId
        - deviceId
        - stopId
      type: object
      properties:
        counterpartTransactionId:
          type: string
          description: Id of the transaction that is missing its pair
          example: '1236589547'
        xbot:
          type: string
          description: Token identification code (external backoffice token)
          example: '12272277752953521453'
        stopId:
          type: string
          description: Id of the location of the tap
          example: '123'
        deviceId:
          type: string
          description: Id of the device
          example: '5415236'
        deviceClassId:
          type: string
          description: Class Id of the device
          example: '54'
        transactionTimestamp:
          type: string
          description: Timestamp of the transaction
          format: date-time
          example: '2019-11-25T17:39:45.000Z'
        entryExitType:
          type: string
          description: 'Direction of the tap: in or out'
          example: ENTRY
          enum:
            - UNKNOWN
            - ENTRY
            - EXIT
      description: JSON schema for ManualTap message
    MediumStatusResponse:
      required:
        - xbot
        - card
        - debt
        - paymentCoverage
        - mediumStatus
        - mediumType
        - listStatus
      type: object
      properties:
        xbot:
          description: 'External BackOffice Token, used for identification of medium.'
          type: string
        card:
          description: >-
            latest medium status and latest medium update as a reason affecting medium status
          type: object
          properties:
            status:
              $ref: '#/components/schemas/Status'
            reason:
              $ref: '#/components/schemas/Reason'
        debt:
          description: debt status and reason for this debt
          type: object
          properties:
            status:
              $ref: '#/components/schemas/CardDebtStatus'
            reason:
              $ref: '#/components/schemas/CardDebtReason'
        paymentCoverage:
          description: payment status and reason
          type: object
          properties:
            reason:
              $ref: '#/components/schemas/PaymentCoverageReason'
            status:
              $ref: '#/components/schemas/PaymentCoverageStatus'
        mediumStatus:
          description: >-
            status of the medium, can be one of: NotAvailable, OnStock, Active, RenewedActive, Suspended or Retired
          type: string
        mediumType:
          description: >-
            type of the medium, can be one of: EMV, GemaltoPure, MasterCardWL, BarcodeSingleUseVoucher, BarcodeDayPass
          type: string
        lastStateChange:
          description: >-
            date in format yyyy-MM-dd'T'HH:mm:ss.SSSXXX. This parameter is optional, is not returned for unknown medium.
          type: string
        travelRegime:
          allOf:
            - $ref: '#/components/schemas/TravelRegime'
            - description: >-
                travel regime of media, can be one of: OpenLoop, ClosedLoop. This parameter is optional, is not returned for unknown medium.
        listStatus:
          description: >-
            status, whether the medium is on allow list (white list) and/or deny list (black list)
          type: object
          properties:
            isOnAllowList:
              $ref: '#/components/schemas/ListStatusValue'
            isOnDenyList:
              $ref: '#/components/schemas/ListStatusValue'
    PaymentCoverageReason:
      enum:
        - NotAvailable
        - PaymentCovered
        - PaymentNotCovered
      type: string
    PaymentCoverageStatus:
      enum:
        - NotAvailable
        - PaymentCovered
        - PaymentNotCovered
      type: string
    PaymentMethodTemplateParamItem:
      required:
        - paymentMethodId
      type: object
      properties:
        paymentMethodId:
          type: string
          description: Payment method identifier
          format: uuid
          example: d23ea548-1a33-4880-9dce-c02c18f90c73
        externalAccountId:
          type: string
          description: External Account Id of the payment method.
          example: PAY_7f2a99a3-aec7-4d75-8586-bdf20dc8d6af
        status:
          type: string
          description: 'Status of Payment method (allowed values - Active, Suspended)'
          example: Active
        billingCycle:
          type: object
          description: Attributes of billing cycle.
          nullable: true
          example:
            minimalDueAmount: 50
            forcePaymentAfterPeriods: 1
            paymentExecutionDateDelayInDays: 10
            dueDateDelayInDays: 15
            recurrence:
              period: MONTHLY
              every: 2
      description: Parameters needed for creation of PaymentMethods from template.
    Reason:
      enum:
        - AutoCreated
        - CardActivated
        - CardBound
        - CardBroken
        - CardFound
        - CardImported
        - CardLost
        - CardStolen
        - CardUnblocked
        - FraudDetected
        - NotAvailable
        - Replaced
      type: string
    RegisterMediumRequest:
      type: object
      properties:
        xbot:
          type: string
          description: External BackOffice Token
          example: '194358869743012'
        mediumType:
          type: string
          description: |-
            Type of the medium. List of supported media is project specific.

            <p>
            For TERA projects:
            <ul>
            <li>EMV</li>
            <li>GemaltoPure</li>
            <li>MasterCardWL</li>
            <li>OVC</li>
            <li>Cibo</li>
            <li>GBO</li>
            </ul>
            </p>

            <p hidden>
            tera=[EMV,GemaltoPure,MasterCardWL,OVC,Cibo,GBO]
            </p>

            <p>
            For ABTnano projects:
            <ul>
            <li>EMV</li>
            <li>Cibo</li>
            <li>SwissPass</li>
            <li>Barcode</li>
            </ul>
            </p>

            <p hidden>
            nano=[EMV,Cibo,SwissPass,Barcode]
            </p>
          example: EMV
        trueTokenId:
          type: string
          description: True token value.
          example: '4012888888881881'
        engravedId:
          type: string
          description: Token physically engraved on the medium.
          example: '4012888888881881'
        formFactor:
          type: string
          description: 'The form of medium (card, ring, apple watch,...).'
          example: phone
        status:
          type: string
          description: >-
            Status of the medium. Can be OnStock for import operation and Active or Suspended for register operation.
          example: Active
        activationCode:
          type: string
          description: Code for activation.
          example: '4536812421897'
        propertyBag:
          $ref: '#/components/schemas/PropertyBag'
        templateParams:
          $ref: '#/components/schemas/TemplateParams'
        expirationDate:
          type: string
          description: >-
            Date-time until when the medium is valid, format yyyy-MM-ddTHH:mm:sszzz or yyyy-MM
          nullable: true
          example: '2022-05-20T06:00:00+02:00'
        maskedCardNumber:
          type: string
          description: >-
            Card number masked with mask defined for EMV bank cards (in TokenVault).
          example: 533*************1232
        bin:
          type: string
          description: >-
            BIN representing the bank card (usually the first 6 digits of card number).
          example: '533406'
        issuerCountryCode:
          type: string
          description: >-
            Code of the country that issued the card (represented as numeric string consisting of 3 digits).
          example: '132'
        testFlag:
          type: boolean
          description: 'data for testing '
          example: false
    RenewMediumRequest:
      required:
        - xBot
      type: object
      properties:
        xBot:
          type: string
          description: >-
            Medium (identified by xBOT) that renews the medium identified in URI by xBOT.
          example: c7dfcdd6-9350-448f-9d34-84a09bafc71b
        xbot:
          type: string
    ReplaceMediumRequest:
      required:
        - xbot
      type: object
      properties:
        xbot:
          type: string
          description: >-
            Medium (identified by xBOT) that replaces the medium identified in URI by xBOT.
          example: c7dfcdd6-9350-448f-9d34-84a09bafc71b
        reason:
          type: string
          description: >-
            The reason why the medium was replaced. Allowed values: 'CardLost', 'CardStolen', 'CardBroken'.
          example: CardStolen
          enum:
            - NotAvailable
            - CardLost
            - CardStolen
            - CardBroken
            - CardFound
            - FraudDetected
            - CardBound
            - Replaced
            - CardImported
            - AutoCreated
            - CardActivated
            - CardUnblocked
            - Expired
            - Registered
            - Anonymized
            - ProvisionalNotUsed
            - PaymentCoverage
            - BoundByIban
          default: Replaced
    RiskListStatus:
      required:
        - riskListType
        - riskListIssuingScheme
        - status
      type: object
      description: >-
        The RisktListStatus IS A data set THAT states the presence of the Token on the Risk Lists.
      properties:
        riskListType:
          type: string
          description: >-
            The riskListType IS AN enumeration THAT identifies the kind of Riks List.
          enum:
            - issuerRiskList
            - tokenRiskList
        riskListIssuingScheme:
          type: string
          description: >-
            The riskListIssuingScheme IS AN enumeration THAT describes the type of EMV Scheme of the Token.
          enum:
            - emv
            - emvClt
        status:
          type: string
          description: >-
            The status IS AN enumeration THAT describes the action to be performed on the Token when verified against the Risk List.
          enum:
            - allow
            - conditionalAllow
            - deny
            - toBlock
        reason:
          type: string
          description: >-
            The reason IS AN enumeration THAT details the reason for a TOken to appear on the Risk List.
          enum:
            - badDebt
            - cardReportedLostOrStolen
    StableTokenResponse:
      type: object
      properties:
        token:
          type: string
          description: 'Stable token, e.g. xBot'
        scope:
          type: string
          description: Scope defined by get access token
        storePermanently:
          type: string
          description: Value defined by get access token
          enum:
            - 'true'
            - 'false'
        etoken:
          type: string
          description: 'New ephemeral token, only in case parameter renew is set to true.'
    Status:
      enum:
        - Active
        - NotAvailable
        - OnStock
        - RenewedActive
        - Retired
        - Suspended
      type: string
    StatusChangeRequest:
      type: object
      properties:
        reason:
          type: string
          description: |-
            The reason of the status change.
            <p>
            Possible values:
            <ul>
            <li>NotAvailable</li>
            <li>CardLost</li>
            <li>CardStolen</li>
            <li>CardBroken</li>
            <li>CardFound</li>
            <li>FraudDetected</li>
            <li>CardBound</li>
            <li>Replaced</li>
            <li>CardImported</li>
            <li>AutoCreated</li>
            <li>CardActivated</li>
            <li>CardUnblocked</li>
            <li>Expired</li>
            <li>Registered</li>
            <li>Anonymized</li>
            <li>ProvisionalNotUsed</li>
            </ul>
            </p>
          example: CardFound
          enum:
            - NotAvailable
            - CardLost
            - CardStolen
            - CardBroken
            - CardFound
            - FraudDetected
            - CardBound
            - Replaced
            - CardImported
            - AutoCreated
            - CardActivated
            - CardUnblocked
            - Expired
            - Registered
            - Anonymized
            - ProvisionalNotUsed
            - PaymentCoverage
    Stop:
      description: Stop object
      type: object
      properties:
        stopId:
          description: Stop identification number
          example: 14
          type: integer
        stopCode:
          description: Code of the stop (RFU)
          example: '145'
          type: string
        stopName:
          $ref: '#/components/schemas/PropertyBag'
        stopDesc:
          description: Description of the stop
          example: Central Airport Station
          type: string
        stopLat:
          description: Latitude of the stop
          example: 38.8889
          type: number
        stopLon:
          description: Longitude of the stop
          example: 14.58889
          type: number
        stopUrl:
          description: URL of the stop
          example: /icons/stops/stop.svg
          type: string
        locationType:
          description: Type of the location (RFU)
          type: integer
          default: 0
        locationDescription:
          description: Description of the location (RFU)
          example: main location
          type: string
        parentStation:
          description: Parent station (RFU)
          example: 123
          type: integer
    TemplateParams:
      type: object
      properties:
        paymentMethods:
          type: array
          items:
            $ref: '#/components/schemas/PaymentMethodTemplateParamItem'
      description: >-
        Collection of parameters needed for creation of Transit Account together with predefined Payment Methods and Products.
    TransactionMetaData:
      required:
        - businessEntityId
        - deviceClassId
        - deviceId
        - serviceMode
        - transactionReference
        - transactionTimestamp
        - transactionType
      type: object
      properties:
        transactionType:
          type: string
          description: 'Type of transaction, always TAP'
          enum:
            - TAP
        transactionTimestamp:
          type: string
          description: >-
            Timestamp of the transaction as assigned by the device creating the transaction, in UTC
          format: date-time
          example: '2019-11-25T17:39:45.000Z'
        transactionReference:
          type: string
          minLength: 1
          maxLength: 64
          description: Unique reference to this transaction as UUID
        tariffVersionId:
          type: string
          maxLength: 20
          description: EOD version under which the device was operating
        deviceId:
          type: string
          minLength: 1
          maxLength: 20
          description: Decimal representation of deviceId
        deviceClassId:
          type: string
          minLength: 1
          maxLength: 8
          description: First byte of deviceId
        serviceMode:
          type: string
          description: Means of service
          enum:
            - BUS
            - TRAIN
            - METRO
            - TRAM
            - TAXI
            - BOAT_FERRY
            - RETAILER
            - MOBILE
            - CUSTOMER_SUPPORT
            - WEB
            - BACKOFFICE
        businessEntityId:
          minimum: 0
          maximum: 9999999
          type: integer
          description: PTO id
        tariffLocationId:
          type: string
          maxLength: 10
          description: EOD Location number
        geoLocation:
          required:
            - latitude
            - longitude
          type: object
          properties:
            longitude:
              type: number
              description: 'Longitude, rounded half-up to 6 decimal places'
            latitude:
              type: number
              description: 'Latitude, rounded half-up to 6 decimal places'
          description: Geographical location
        agentId:
          type: string
          maxLength: 10
          description: 'Id of operator of device (ie: inspector)'
        shiftId:
          type: string
          maxLength: 10
          description: Shift number of staff or device
        deviceSubId:
          type: string
          maxLength: 20
          description: Optional device configuration
        agentType:
          type: string
          description: >-
            Identifier of the function of the personnel operating a handheld device
          enum:
            - OPERATOR
            - SUPERVISOR
            - INSPECTOR
            - MAINTENANCE
            - CASHCOLLECTOR
            - DRIVER
            - BACKOFFICE
            - TRAINEE
        facilityOperatorId:
          minimum: 0
          maximum: 9999999
          type: integer
          description: >-
            Business entity operating the facility where the transaction was created
      description: Transaction metadata
    TravelRegime:
      enum:
        - ClosedLoop
        - OpenLoop
      type: string
    TripRecalculations:
      description: TripRecalculations object
      type: object
      properties:
        recalculationStartDateTime:
          type: string
          description: >-
            Timestamp of trip recalculations start. If a timestamp is in the middle of a journey, the whole journey needs to be recalculated. If the timestamp is outside of a journey (or in between journeys), only the journey that follows after the timestamp is re-provisioned.
          format: date-time
          example: '2021-07-05T13:00:00+02:00'
    TripRecalculationsOkResponse:
      type: object
      properties:
        tripsUpdatedCount:
          type: number
          description: Number of trips that are marked with versionReason=“RECALCULATE”
          example: 10
      description: TripRecalculations Ok response object
    ValidationTransaction:
      required:
        - authorizationLists
        - authorizationResult
        - idType
        - onboardValidation
        - transactionMetaData
      type: object
      properties:
        transactionMetaData:
          $ref: '#/components/schemas/TransactionMetaData'
        xbot:
          type: string
          minLength: 1
          maxLength: 25
          description: >-
            BackOffice token. Always use only one of "xbot","engravedId","serviceToken","trueTokenId","encryptedTokenData"
        xxbot:
          type: string
          description: >-
            External BackOffice token. Always use only one of "xbot","engravedId","serviceToken","trueTokenId","encryptedTokenData"
        engravedId:
          type: string
          description: >-
            Engraved Id. Always use only one of "xbot","engravedId","serviceToken","trueTokenId","encryptedTokenData"
        serviceToken:
          type: string
          description: >-
            Service token. Always use only one of "xbot","engravedId","serviceToken","trueTokenId","encryptedTokenData"
        trueTokenId:
          type: string
          description: >-
            True token. Always use only one of "xbot","engravedId","serviceToken","trueTokenId","encryptedTokenData"
        encryptedTokenData:
          required:
            - securityMethod
            - securityVersion
            - encryptedData
          type: object
          properties:
            securityMethod:
              type: string
              description: The security method used to encrypt data
              enum:
                - AES
                - DUKPT
            securityVersion:
              type: integer
              minimum: 0
              description: The version of the key used
            encryptedData:
              type: string
              description: >-
                The encrypted token data in HexString format according to selected security method
          description: >-
            EMV data. Can only be used with Id type "1030", "1031" and "1045". Always use only one of "xbot","engravedId","serviceToken","trueTokenId","encryptedTokenData"
        idType:
          minimum: 0
          maximum: 99999
          type: integer
          description: >-
            Media type, "1031" for Gemalto Pure, "1037" for OV Chip Card, "1038" for Cibo, "1040" for GBO, "1045" for EMV-CLT
        vehicleDirectionType:
          type: string
          description: Direction Type
          enum:
            - UNDEFINED
            - INBOUND
            - OUTBOUND
            - NORTHBOUND
            - EASTBOUND
            - SOUTHBOUND
            - WESTBOUND
            - CLOCKWISE
            - COUNTER_CLOCKWISE
        entryExitType:
          type: string
          description: Corresponds to TLS Transaction Type
          enum:
            - UNKNOWN
            - ENTRY
            - EXIT
            - PRELIMINARY_ENTRY
            - PRELIMINARY_EXIT
        servicePatternId:
          type: string
          maxLength: 10
          description: >-
            Route Id from the most recent segment, decimal encoded in string encapsulation
        lineId:
          type: string
          maxLength: 10
          description: >-
            Line Id from the most recent segment, decimal encoded in string encapsulation
        authorizationResult:
          type: string
          description: Result of the authorization
          enum:
            - PERMIT
            - DENY
            - NO_PASS
            - CANCELLED
            - SKIPPED
            - INCOMPLETE
        authorizationLists:
          type: array
          description: Array of authorizationList objects
          items:
            required:
              - listName
              - listSequenceNo
            type: object
            properties:
              listName:
                type: string
                description: Corresponds to listId
              listSequenceNo:
                minimum: 0
                type: integer
                description: 'Sequence number the list was at, at the time of validation'
              listUpdateReceived:
                type: string
                description: >-
                  Timestamp of the update of the list was at, at the time of validation
                format: date-time
                example: '2019-11-25T17:39:45.000Z'
        denialReason:
          type: string
          description: Reason for the denial
          enum:
            - NOT_REGISTERED
            - CARD_EXPIRED
            - CARD_MISUSE
            - ISSUER_NOT_ACCEPTED
            - CARD_NOT_ALLOWED
            - TOKEN_DENIED
            - NO_TAP_FOUND
            - TRAVELING_IN_INVALID_CLASS
            - ANTI_PASSBACK
            - CONSECUTIVE_TAP
            - DEBOUNCE_HANDLING
            - ALREADY_TAPPED
        vehicleId:
          minimum: 0
          maximum: 99999999
          type: integer
          description: Id of the vehicle
        vehicleTripId:
          type: string
          maxLength: 12
          description: Trip Id of the vehicle
        onboardValidation:
          type: boolean
          description: Onboard validation flag
        networkId:
          minimum: 0
          maximum: 999999
          type: integer
          description: Id of the network
        previousLocation:
          type: object
          properties:
            tariffLocationId:
              type: string
              maxLength: 10
              description: EOD Location number
            geoLocation:
              required:
                - latitude
                - longitude
              type: object
              properties:
                longitude:
                  type: number
                  description: 'Longitude, rounded half-up to 6 decimal places'
                latitude:
                  type: number
                  description: 'Latitude, rounded half-up to 6 decimal places'
              description: Geographical location
        degradedFareMode:
          type: string
          description: Means of degraded fare
          enum:
            - UNDEFINED
            - NORMAL
            - TMO
            - EEO
            - INCIDENT
            - DISRUPTION
        mediaTxnSeqNo:
          minimum: 0
          maximum: 9999999999
          type: integer
          format: int64
          description: >-
            Transaction sequence number as generated by the media, mandatory for EMV
        relations:
          type: array
          description: Relation between transactions
          items:
            required:
              - relationType
              - transactionReference
            type: object
            properties:
              transactionReference:
                type: string
                minLength: 1
                maxLength: 64
                description: Reference to another transaction
              relationType:
                type: string
                description: >-
                  The relation the referenced transaction has with this transaction
                enum:
                  - UNKNOWN
                  - ENTRY
                  - EXIT
                  - PRELIMINARY_ENTRY
                  - PRELIMINARY_EXIT
        routeSegments:
          type: array
          description: Ordered list of RouteSegments
          items:
            required:
              - lineId
            type: object
            properties:
              lineId:
                type: string
                minLength: 1
                maxLength: 10
                description: 'Identifier of a line, decimal in string encapsulation'
              linePublicNbr:
                type: string
                description: Public identifier of a line
              servicePatternId:
                type: string
                maxLength: 10
                description: Public identifier of a route
              tripId:
                type: string
                maxLength: 10
                description: >-
                  Trip from a vehicle perspective, decimal in string encapsulation
              tripPublicNbr:
                type: string
                description: Trip as displayed to the public
              tripType:
                type: string
                description: Type of the trip
                enum:
                  - UNDEFINED
                  - COMMERCIAL
                  - NONCOMMERCIAL
              tripDepartTime:
                type: string
                description: Depart timestamp of the trip
              tripDirection:
                type: string
                description: Direction of the trip
                enum:
                  - UNDEFINED
                  - INBOUND
                  - OUTBOUND
                  - NORTHBOUND
                  - EASTBOUND
                  - SOUTHBOUND
                  - WESTBOUND
                  - CLOCKWISE
                  - COUNTER_CLOCKWISE
              from:
                type: string
                maxLength: 10
                description: Corresponds to a tariffLocationId where the segment started
              to:
                type: string
                maxLength: 10
                description: >-
                  Corresponds to a tariffLocationId where the segment ended. If this segment is the current segment, this is equal to the tariffLocationId in the TransactionMetadata
              distanceCovered:
                minimum: 0
                type: integer
                description: 'Distance covered in this segment, in meters'
              zonesCrossed:
                minimum: 0
                type: integer
                description: Number of zones crossed
              concession:
                type: string
                description: Identifier of the PTO concession the segment belongs to
              passengerClass:
                type: string
                description: Class of travel
                enum:
                  - UNDEFINED
                  - FIRST
                  - SECOND
                  - SERVICE_PROVIDER
    AccountBalanceDto:
      type: object
      description: AN AccountBalance IS A state THAT describes the difference between the amount created and consumed
      properties:
        balanceReferenceId:
          type: string
          description: A balanceReferenceId IS A unique identifier THAT distinguishes this Account Balance from all other Account Balances
        originalPaymentReference:
          type: string
          description: AN originalPaymentReference IS A unique identifier THAT refers to the original Payment
        createSettlementDate:
          type: string
          description: A createSettlementDate IS A date THAT describes when this Account Balance was created
        createReasonCode:
          type: string
          description: A createReasonCode IS AN enumerated identifier THAT describes the reason why this Account Balance was created
        instantiationAmount:
          type: integer
          description: AN instantiationAmount IS AN amount in cents THAT describes the monetary value of the Account Balance when created
          format: int64
        amountChanged:
          type: integer
          description: AN amountChanged IS AN amount in cents THAT describes the difference between the amount created by a correction or consumed by subsequent Trips
          format: int64
        remainingAmount:
          type: integer
          description: A remainingAmount IS AN amount in cents THAT describes the remaining amount of monetary value on balance
          format: int64
    BSSOkResponse:
      required:
        - referenceId
      type: object
      properties:
        referenceId:
          type: string
          description: Reference identification code
          example: BSS-1615326528285
      description: Ok response object
    FareCorrection:
      required:
        - xbot
        - tripId
        - tripVersion
        - legId
        - businessEntityId
        - amountCorrected
        - timestamp
      type: object
      properties:
        xbot:
          type: string
          description: Token identification code (backoffice token)
          example: '12272277752953521453'
        tripId:
          description: Trip identification number of the trip to be fare corrected
          example: 73757
          type: integer
        tripVersion:
          description: Version of the trip to be fare corrected
          example: 1
          type: integer
        legId:
          type: integer
          description: Leg id of the trip to be fare corrected
          example: 141411
        businessEntityId:
          type: integer
          description: Business entity identity
          example: 904
        amountCorrected:
          type: integer
          description: Fare correction amount in cents
          example: -200
        timestamp:
          type: string
          description: Timestamp of the fare correction
          format: date-time
          example: '2019-11-25T17:39:45.000Z'
        reason:
          type: string
          description: Reason of the fare correction
          example: Refund due to duplicate charge
      description: JSON schema for FareCorrection message
    GetOpenDebt:
      required:
        - xbot
        - debt
        - trips
      description: JSON schema for getOpenDebtMessage
      type: object
      properties:
        xbot:
          description: Token identification code (backoffice token)
          example: '12272277752953521453'
          type: string
        debt:
          description: The total value od the debt in cents
          example: 120
          type: integer
        trips:
          description: List of trips the debt is related to
          type: array
          items:
            $ref: '#/components/schemas/Trip'
    PaymentDetailDto:
      type: object
      description: A PaymentDetail IS AN object THAT describes a Payment in detail
      properties:
        paymentId:
          type: string
          description: A paymentId IS AN unique identifier THAT distinguishes a Payment from all other Payments
        serviceReferenceId:
          type: string
          description: A serviceReferenceId IS A identifier THAT can be used externally by end users to refer to this Payment and is shown on their bank statement
        pnReference:
          type: string
          description: A pnReference IS A unique identifier THAT references the request that has been sent to the acquirer
        paymentDateTime:
          type: string
          description: A paymentDateTime IS A date, time and time zone indication THAT describes when the Payment was initiated
          format: date-time
        accountBalance:
          $ref: '#/components/schemas/AccountBalanceDto'
        totalDue:
          type: integer
          description: A totalDue IS AN amount in cents THAT is due for this Payment
          format: int64
        totalPaid:
          type: integer
          description: A totalPaid IS AN amount in cents THAT describes the amount actually paid as a result of this Payment
          format: int64
        rejectionCode:
          type: string
          description: A rejectionCode IS AN identifier THAT references a specific error that has been returned by the Payment Service Provider
        rejectionMessage:
          type: string
          description: A rejectionMessage IS A string THAT contains a functional description of the response
        rejectionReason:
          type: string
          description: A rejectionReason IS AN enumerated identifier THAT describes if the Payment was rejected because of a known reason (RFU)
          enum:
            - REJECTED
            - UNKNOWN
        paymentReason:
          type: string
          description: >-
            A paymentReason IS AN enumerated identifier THAT defines the reason for which the Payment was created
            "TRIP" - Payment for the trip, "REFUND" - Refund payment in case original price was corrected, "RESERVATION" - Reservation of money for future trips (pre-authorisation), "ACCOUNT_VERIFICATION" - Zero value payment or reservation to verify account, "DEBT_RECOVERY" - Recovery of debt caused by previously rejected payment, "CANCEL_RESERVATION" - Cancelation of not used amount reservation, "CANCEL" - Cancelation of payment, "BALANCE_CREATE" - system internal account balance is created in following scenarios - Goodwill to trip, Trip reconstruction or correction, Excessive payment amount caused by external settlement, Fallback due to failed EMV refund, "BALANCE_CREATE_GOODWILL" - Customer Service of PTO handles the complaint of a customer and decides on leniency toward the already paid amount, "TOP_UP" - Customer adds money to the Stored Value Wallet, "WITHDRAWAL" - Customer withdraws remaining money from the Stored Value Wallet
          enum:
            - TRIP
            - REFUND
            - RESERVATION
            - ACCOUNT_VERIFICATION
            - DEBT_RECOVERY
            - CANCEL_RESERVATION
            - CANCEL
            - BALANCE_CREATE
            - BALANCE_CREATE_GOODWILL
            - TOP_UP
            - WITHDRAWAL
        currency:
          type: string
          description: A currency IS AN enumerated identifier THAT references in which currency all amounts within the Payment are expressed (ISO 4217)
        trips:
          type: array
          description: A trips IS A collection of Trips THAT are related to this Payment
          items:
            $ref: '#/components/schemas/TripLineItemDto'
        paymentMethodIcon:
          type: string
          description: A paymentMethodIcon IS AN URL THAT references the location of an icon corresponding to the Payment method
        paymentMethodName:
          type: string
          description: >-
            A paymentMethodName IS AN enumerated identifier THAT defines the used payment method
            "EMV" - EuroCard, MasterCard, Visa, "DDM" - Direct debit mandate, "SSP" - Self service platform, external payment, "BAL" - Internal account balance, "POSTPAID" - Postpaid payment provider
          enum:
            - EMV
            - DDM
            - SSP
            - BAL
            - POSTPAID
            - BUNQ_EPURSE
        paymentMethodId:
          type: string
          description: A paymentMethodId IS A unique identifier THAT distinguishes a Payment Provider from all other Payment Providers
        paymentProviderName:
          type: string
          description: A paymentProviderName IS A name THAT represents the Payment Provider in a human-readable way
        paymentMethodMode:
          type: string
          description: A paymentMethodMode IS AN enumerated identifier THAT describes the mode of the Payment Method Provider
        maskedCardNumber:
          type: string
          description: A maskedCardNumber IS AN masked identifier THAT references a Primary Account Number (PAN)
        paymentToken:
          type: string
          description: A paymentToken IS A unique identifier THAT references the External Backoffice Token of the payment card
        xbot:
          type: string
          description: A xBOT IS AN unique identifier THAT is an external representation of a backoffice Token for a particular Business Entity
          format: uuid
        tripCosts:
          type: integer
          description: A tripCosts IS AN amount in cents THAT describes the cost of the Trip(s)
          format: int64
        vat:
          type: integer
          description: A VAT IS AN amount THAT describes the added value added tax
          format: int64
        tripCostsMinusVat:
          type: integer
          description: A tripCostsMinusVat IS AN amount in cents THAT describes the cost of the Trip(s) without the VAT (RFU)
          format: int64
        chargeId:
          type: integer
          description: A chargeId IS A unique identifier THAT references a Payment for a specific Payment Method
          format: int64
        status:
          type: string
          description: A status IS AN enumerated identifier THAT describes the result of the Payment
          enum:
            - OK
            - REJECTED
            - TECHNICAL_ERROR
        externalAccountId:
          type: string
          description: AN externalAccountId IS AN identifier THAT references the ID of the external account as set by the Payment Service Provider
        paymentProviderBusinessEntityId:
          type: string
          description: A paymentProviderBusinessEntityId IS AN unique identifier THAT references the Business Entity ID of the Payment Service Provider
        createdAt:
          type: string
          description: A createdAt IS A date, time and time zone indication THAT describes when the Payment was received by the Notification processor
    PaymentDto:
      type: object
      description: A Payment IS AN object THAT represents a message between the Central Transaction Processor and a Payment Service Provider
      properties:
        xbot:
          type: string
          description: A xBOT IS AN unique identifier THAT is an external representation of a backoffice Token for a particular Business Entity
          format: uuid
        paymentDateTime:
          type: string
          description: A paymentDateTime IS A date, time and time zone indication THAT describes when the Payment was initiated
          format: date-time
        totalDue:
          type: integer
          description: A totalDue IS AN amount in cents THAT is due for this Payment
          format: int64
        totalPaid:
          type: integer
          description: A totalPaid IS AN amount in cents THAT describes the amount actually paid as a result of this Payment
          format: int64
        paymentReason:
          type: string
          description: >-
            A paymentReason IS AN enumerated identifier THAT describes the reason for which the Payment was created
            "TRIP" - Payment for the trip, "REFUND" - Refund payment in case original price was corrected, "RESERVATION" - Reservation of money for future trips (pre-authorisation), "ACCOUNT_VERIFICATION" - Zero value payment or reservation to verify account, "DEBT_RECOVERY" - Recovery of debt caused by previously rejected payment, "CANCEL_RESERVATION" - Cancelation of not used amount reservation, "CANCEL" - Cancelation of payment, "BALANCE_CREATE" - system internal account balance is created in following scenarios: Goodwill to trip, Trip reconstruction or correction, Excessive payment amount caused by external settlement, Fallback due to failed EMV refund, "BALANCE_CREATE_GOODWILL" - Customer Service of PTO handles the complaint of a customer and decides on leniency toward the already paid amount
          enum:
            - TRIP
            - REFUND
            - RESERVATION
            - ACCOUNT_VERIFICATION
            - DEBT_RECOVERY
            - CANCEL_RESERVATION
            - CANCEL
            - BALANCE_CREATE
            - BALANCE_CREATE_GOODWILL
        rejectionReason:
          type: string
          description: A rejectionReason IS AN enumerated identifier THAT describes if the Payment was rejected because of a known reason (RFU)
          enum:
            - REJECTED
            - UNKNOWN
        currency:
          type: string
          description: A currency IS AN enumerated identifier THAT references in which currency all amounts within the Payment are expressed (ISO 4217)
        paymentId:
          type: string
          description: A paymentId IS AN unique identifier THAT distinguishes a Payment from all other Payments
        paymentMethodIcon:
          type: string
          description: A paymentMethodIcon IS AN URL THAT references the location of an icon corresponding to the Payment method
        loyaltyOrDiscount:
          type: boolean
          description: A loyaltyOrDiscount IS A boolean THAT indicates if a discount Product was applied (RFU)
        serviceReferenceId:
          type: string
          description: A serviceReferenceId IS A identifier THAT can be used externally by end users to refer to this Payment and is shown on their bank statement
        paymentMethodName:
          type: string
          description: >-
            A paymentMethodName IS AN enumerated identifier THAT defines the used payment method
            "EMV" - EuroCard, MasterCard, Visa, "DDM" - Direct debit mandate, "SSP" - Self service platform, external payment, "BAL" - Internal account balance, "POSTPAID" - Postpaid payment provider
          enum:
            - EMV
            - DDM
            - SSP
            - BAL
            - POSTPAID
            - BUNQ_EPURSE
        status:
          type: string
          description: A status IS AN enumerated identifier THAT describes the result of the Payment
          enum:
            - OK
            - REJECTED
            - TECHNICAL_ERROR
        balanceReferenceId:
          type: string
          description: A balanceReferenceId IS A unique identifier THAT references the Account Balance that is the funding source for this Payment
        paymentMethodId:
          type: string
          description: A paymentMethodId IS A unique identifier THAT references the Payment Method Provider
        paymentProviderName:
          type: string
          description: A paymentProviderName IS A name THAT represents the Payment Provider in a human-readable way
        paymentMethodMode:
          type: string
          description: A paymentMethodMode IS AN enumerated identifier THAT describes the mode of the Payment Method Provider
        paymentProviderBusinessEntityId:
          type: string
          description: A paymentProviderBusinessEntityId IS AN unique identifier THAT references the Business Entity ID of the Payment Service Provider
        paymentReference:
          type: string
          description: A paymentReference IS A unique identifier THAT internally distinguishes a Payment from all other Payments
        originalPaymentReference:
          type: string
          description: AN originalPaymentReference IS A unique identifier THAT refers to the original Payment
    PaymentSummaryDto:
      type: object
      properties:
        totalDue:
          type: integer
          description: A totalDue IS AN amount in cents THAT is due for this Payment
        totalPaid:
          type: integer
          description: A totalPaid IS AN amount in cents THAT describes the amount actually paid as a result of this Payment
        totalGoodwill:
          type: integer
          description: >-
            The totalGoodwill is a value that describes the summation of the payments to the Passenger as Goodwill.
        total:
          type: integer
          description: >-
            The total is a value that is the result of totalDue minus totalPaid minus totalGoodwill as present on the Receipt.
        currency:
          type: string
          description: A currency IS AN enumerated identifier THAT references in which currency all amounts within the Payment are expressed (ISO 4217)
    PropertyBagDto:
      type: object
      properties:
        items:
          type: array
          description: List of properties
          items:
            $ref: '#/components/schemas/PropertyBagItemDto'
    PropertyBagItemDto:
      type: object
      properties:
        key:
          type: string
          description: Property name
        value:
          type: string
          description: Property value
    ReceiptDto:
      type: object
      properties:
        xbot:
          type: string
          description: External Token identification (external backoffice token)
        trips:
          type: array
          description: >-
            List of trips related to this receipt. A trip is related when its fare has been partially or fully paid by the refered payment. A trip is also related when its fare has been paid by account balance which originated from this referred payment. A trip is a sequence of taps that form a part of a journey of the passenger with one Mobility Service Provider.
          items:
            $ref: '#/components/schemas/TripLineItemDto'
        payments:
          type: array
          description: List of payments related to this receipt.
          items:
            $ref: '#/components/schemas/PaymentDto'
        summary:
          $ref: '#/components/schemas/PaymentSummaryDto'
    SettleOpenDebt:
      required:
        - xbot
        - totalPaid
        - transactionReference
      type: object
      properties:
        transactionReference:
          type: string
          description: Unique reference to the external payment transaction
          example: '25478963214525214'
        xbot:
          type: string
          description: Token identification code (backoffice token)
          example: '12272277752953521453'
        totalPaid:
          type: integer
          description: The total value od the debt paid in cents
          example: 1250
        currency:
          type: string
          description: 'The currency in which the debt was paid. Supported value: EUR'
          example: EUR
      description: JSON schema for SettleOpenDebt message
    StopDto:
      type: object
      properties:
        stopId:
          type: integer
          description: Stop identification number
          format: int64
        stopCode:
          type: string
          description: Code of the stop (RFU)
        stopName:
          $ref: '#/components/schemas/PropertyBagDto'
        stopDesc:
          type: string
          description: Description of the stop
        stopLat:
          type: number
          description: Latitude of the stop
          format: double
        stopLon:
          type: number
          description: Longitude of the stop
          format: double
        stopUrl:
          type: string
          description: URL of the stop
        locationType:
          type: integer
          description: Type of the location (RFU)
          format: int64
        locationDescription:
          type: string
          description: Description of the location (RFU)
        parentStation:
          type: integer
          description: Parent station (RFU)
          format: int64
    Trip:
      description: Trip item object
      type: object
      properties:
        businessEntityId:
          description: Business entity Id Authorization.
          example: '1'
          type: string
        debt:
          description: The value od the debt for the trip in cents
          example: 120
          type: integer
        tripId:
          description: Trip identification number
          example: 13645
          type: integer
        tripVersion:
          description: Version of the trip
          example: 1
          type: integer
        transportType:
          description: 'Enum, which defines the type of the transport'
          example: BUS
          type: string
          enum:
            - AIR
            - BUS
            - COACH
            - FUNICULAR
            - METRO
            - RAIL
            - TROLLEYBUS
            - TRAM
            - WATER
            - CABLEWAY
            - OTHER
        organisationIcon:
          type: string
          description: Relative URL to the corresponding icon of the PTO organisation
          example: /icons/organisations/tls.svg
        organisationId:
          type: string
          description: Organisation identification code
          example: '2'
        organisationName:
          type: string
          description: Name of the PTO organisation
          example: TLS
        lineId:
          description: Line identification code
          example: '125'
          type: string
        lineName:
          description: Name of the line
          example: Airport shuttle
          type: string
        tripStatus:
          description: >-
            Enum, which defines the status of the trip. "COMPLETE" - has CKI and CKO, "CORRECTED" - was corrected by cardholder or support personnel, "CKI_EXPECTED" - system is waiting for a Check In transaction, "CKI_MISSING" - system stopped waiting for a Check In transaction, "CKO_EXPECTED" - system is waiting for a Check Out transaction, "CKO_MISSING" - system stopped waiting for a Check Out transaction, "ISN_PENDING" - inspection has taken place, but system is waiting for more transactions, "ISN_ONLY" - Inspection took place, but cardholder has not checked in
          type: string
          enum:
            - COMPLETE
            - CORRECTED
            - CKI_EXPECTED
            - CKO_EXPECTED
            - CKI_MISSING
            - CKO_MISSING
            - ISN_PENDING
            - ISN_ONLY
        xbot:
          type: string
          description: External BackOffice Token (identifier)
          format: uuid
        tokenType:
          description: Type of the token
          example: EMV
          type: string
        tokenNumber:
          description: Number of the token (RFU)
          example: '12'
          type: string
        fare:
          description: >-
            Total fare value from product assignments, in eurocents, to be deducted from the cardholder's account
          example: 120
          type: integer
        currency:
          description: Currency in currency code (ISO 4217)
          example: EUR
          type: string
        lastUpdatedTripDateTime:
          description: Timestamp the last update of the trip
          type: string
          format: date-time
          example: '2019-11-25T17:39:45.000Z'
        checkinTransactionTimestamp:
          type: string
          description: Timestamp of the Check-In
          format: date-time
          example: '2019-11-25T17:39:45.000Z'
        checkoutTransactionTimestamp:
          type: string
          description: Timestamp of the Check-Out
          format: date-time
          example: '2019-11-25T17:39:45.000Z'
        checkinLocation:
          $ref: '#/components/schemas/Stop'
        checkoutLocation:
          $ref: '#/components/schemas/Stop'
        loyaltyOrDiscount:
          description: Loyalty of discount flag. True if some discount product was applied.
          type: boolean
          default: false
        transportIcon:
          description: Relative URL to the corresponding icon of the means of transport
          example: /icons/bus/bus.svg
          type: string
        transportSubType:
          description: Subtype of the tansport (e.g. local bus)
          example: local bus
          type: string
    TripLineItemDto:
      type: object
      properties:
        tripId:
          type: integer
          description: Trip identification number
          format: int64
        tripVersion:
          type: integer
          description: Version of the trip
          format: int64
        transportType:
          type: string
          description: 'Enum, which defines the type of the transport'
          enum:
            - AIR
            - BUS
            - COACH
            - FUNICULAR
            - METRO
            - RAIL
            - TROLLEYBUS
            - TRAM
            - WATER
            - CABLEWAY
            - OTHER
        organisationIcon:
          type: string
          description: Relative URL to the corresponding icon of the PTO organisation
        organisationId:
          type: string
          description: Organisation identification code
        organisationName:
          type: string
          description: Name of the PTO organisation
        lineId:
          type: string
          description: Line identification code
        lineName:
          type: string
          description: Name of the line
        tripStatus:
          type: string
          description: >-
            Enum, which defines the status of the trip. "COMPLETE" - has CKI and CKO, "CORRECTED" - was corrected by cardholder or support personnel, "CKI_EXPECTED" - system is waiting for a Check In transaction, "CKI_MISSING" - system stopped waiting for a Check In transaction, "CKO_EXPECTED" - system is waiting for a Check Out transaction, "CKO_MISSING" - system stopped waiting for a Check Out transaction, "ISN_PENDING" - inspection has taken place, but system is waiting for more transactions, "ISN_ONLY" - Inspection took place, but cardholder has not checked in
          enum:
            - COMPLETE
            - CORRECTED
            - CKI_EXPECTED
            - CKO_EXPECTED
            - CKI_MISSING
            - CKO_MISSING
            - ISN_PENDING
            - ISN_ONLY
        xbot:
          type: string
          description: External BackOffice Token (identifier)
          format: uuid
        tokenType:
          type: string
          description: Type of the token
        tokenNumber:
          type: string
          description: Number of the token (RFU)
        fare:
          type: integer
          description: >-
            Total fare value from product assignments, in eurocents, to be deducted from the cardholder's account
          format: int64
        currency:
          type: string
          description: Currency in currency code (ISO 4217)
        lastUpdatedTripDateTime:
          type: string
          description: Timestamp the last update of the trip
          format: date-time
        checkinTransactionTimestamp:
          type: string
          description: Timestamp of the Check-In
          format: date-time
        checkoutTransactionTimestamp:
          type: string
          description: Timestamp of the Check-Out
          format: date-time
        checkinLocation:
          $ref: '#/components/schemas/StopDto'
        checkoutLocation:
          $ref: '#/components/schemas/StopDto'
        loyaltyOrDiscount:
          type: boolean
          description: >-
            Loyalty of discount flag. True if some discount product was applied. (fare is lower than baseRate)
        transportIcon:
          type: string
          description: Relative URL to the corresponding icon of the means of transport
        transportSubType:
          type: string
          description: Subtype of the tansport (e.g. local bus)
    BindPaymentMethodProviderRequest:
      required:
        - paymentMethodId
      type: object
      properties:
        paymentMethodId:
          type: string
          description: Payment method provider ID.
          format: uuid
          example: 66d7e618-f4c6-4f5b-bfe0-74373e465e5b
        status:
          type: string
          description: >-
            Status of created payment method instance. Can be Active or Suspended.
          default: Active
        externalAccountId:
          type: string
          description: External account ID (e.g. Paypall account ID).
          nullable: true
        billingCycle:
          type: object
          description: >-
            JSon representing the properties of billing cycle. The structure of JSON is not check (it must be just correct JSON).
          example:
            minimalDueAmount: 50
            forcePaymentAfterPeriods: 1
            paymentExecutionDateDelayInDays: 10
            dueDateDelayInDays: 15
            recurrence:
              period: MONTHLY
              every: 2
        fundingSourceId:
          type: string
          description: >-
            Unique identifier of Funding Source in the Customer account management.
          example: cc379c62-2715-483a-ac6f-d7c2fdf90bdc
        order:
          type: integer
          description: >-
            The attribute order indicates the order among other payment methods assigned to this transit account. It starts with 1 (e.i. 0 is not used.) Payment method with order 1 will be used for payment (if it is active). The payment method is inserted to the position indicated by order attribute and other payment methods are shifted. If order is set to value less than 1, it will be changed to 1. If it is set to the number greater than count of bound Payment methods, it is inserted to the end of payment methods and the order is set correctly.
          default: 1
          nullable: true
        contractStartDate:
          type: string
          description: >-
            Date (format YYYY-MM-DD) when the contract should be started. If the date is the current date, the payment method is immediately activated (or suspended - if the status is set to Suspended in request) If the date is in the future, the activation is scheduled and the payment method is not active yet. If the date is in the past, the error response is returned. If the value is not set, the current date is set. Note: Contract attributes are intended for payment methods for which can be only one active payment method (of that payment method mode) at any moment.
          nullable: true
          example: '2022-04-02'
        minimalContractEndDateInclusive:
          type: string
          description: >-
            Date (format YYYY-MM-DD) until when the contract cannot be terminated by take-over by another PSP. Another contract (of the same type) can be started one day after this date. Note: Contract attributes are intended for payment methods for which can be only one active payment method (of that payment method mode) at any moment.
          nullable: true
          example: '2024-04-02'
        contractEndDateInclusive:
          type: string
          description: >-
            Date (format YYYY-MM-DD) when the contract should be terminated. The day after this date this payment method cannot be used anymore (status = Terminated - final state).
          nullable: true
          example: '2025-04-02'
    ExternalAccountIdentifier:
      type: object
      properties:
        xTAT:
          type: string
          description: External External Transit Account identifier
          format: uuid
          example: c7dfcdd6-9350-448f-9d34-84a09bafc71b
      description: External Transit Account Identifier
    ModifyPaymentMethodStateRequest:
      required:
        - externalAccountId
        - paymentMethodId
      type: object
      properties:
        paymentMethodId:
          type: string
          description: Payment method provider ID.
          format: uuid
          example: a827f3b6-b12a-4315-aded-2aec37612a95
        externalAccountId:
          type: string
          description: External account ID (e.g. Paypall account ID).
    PMTranslationResponse:
      type: object
      description: Object containing identifier value and its type.
      properties:
        value:
          type: string
          description: Identifier value.
          example: 64d7265e-42ce-4ccc-addd-3e95056b757d
        type:
          type: string
          description: Identifier type.
          enum:
            - xpmit
    PaymentMethod:
      type: object
      properties:
        paymentMethodId:
          type: string
          description: Id of the payment method provider this instance is linked to.
          format: uuid
          example: dba0b896-118d-4e9e-abf5-af264ced34c4
        paymentMethodMode:
          type: string
          description: Mode of the payment method provider this instance is linked to.
          example: Payment_method_provider_mode
        paymentProviderName:
          type: string
          description: Name of the payment method provider this instance is linked to.
          example: Payment_method_provider_name
        businessEntityId:
          type: string
          example: '3'
    UpdateStatusByExtenalPMIdResponse:
      type: object
      properties:
        updatedPaymentMethodInstanceCount:
          type: integer
          description: Count of updated Payment Method Instances.
          format: int32
          example: 3
        affectedTransitAccounts:
          type: array
          description: List of Transit Accounts that were affected by this change.
          items:
            $ref: '#/components/schemas/ExternalAccountIdentifier'
    AccountDetails:
      type: object
      properties:
        accountNumber:
          description: Unique identifier of the account
          type: string
        products:
          description: Product instances (version 3) on the account
          type: array
          items:
            $ref: '#/components/schemas/ProductInstance'
        remainingValue:
          format: int32
          description: Remaining amount in the stored value wallet on the account
          type: string
        travelEntitlements:
          description: Travel entitlement instances on the account
          type: array
          items:
            $ref: '#/components/schemas/TravelEntitlementInstance'
    BindProductRequest:
      required:
        - itemType
        - productTemplateId
        - tariffVersionId
        - validPeriod
      type: object
      properties:
        productTemplateId:
          type: string
          description: Product template identifier in the product catalogue.
          example: dba0b896-118d-4e9e-abf5-af264ced34c4
        validPeriod:
          $ref: '#/components/schemas/PeriodDateTimeInclusive'
        tariffVersionId:
          type: string
          description: Tariff version that contains the product template.
          example: '1'
        itemSeq:
          type: integer
          description: >-
            Sequence number of item. This field if optional. If it is set, the same value is set in the corresponding response.
          format: int32
          nullable: true
          example: 0
        productOwnerId:
          type: string
          description: Business entity id of the product owner organisation.
          nullable: true
          example: pto_4
        usablePeriod:
          $ref: '#/components/schemas/PeriodDateTimeInclusive'
        externalProductInstanceId:
          type: string
          description: External system product instance identifier.
          example: ed9cbd06-2fe7-4953-b0d7-e7793f29b467
        status:
          type: string
          description: Product status.
        itemType:
          type: string
          description: >-
            Type of product. If not provided default value "TRAVEL_PRODUCT" will be used.
          example: TRAVEL_PRODUCT
          enum:
            - TRAVEL_PRODUCT
            - STORED_VALUE
            - NON_TRAVEL_PRODUCT
        propertyBag:
          $ref: '#/components/schemas/PropertyBag'
        nameInfo:
          $ref: '#/components/schemas/NameInfo'
        itemAmount:
          $ref: '#/components/schemas/MonetaryAmountWithVAT'
        parameters:
          oneOf:
            - type: object
            - type: array
              items: {}
          description: >-
            Additional product parameters. Parameters are not validated. Both json object and json array are supported as value.
          example:
            seriesConstraint:
              from:
                tariffLocationId: '8316'
              vias:
                - tariffLocationId: '8318'
              to:
                tariffLocationId: '8321'
        purchaseDateTime:
          type: string
          description: >-
            Date-time of the timestamp the product was purchased, format yyyy-MM-ddTHH:mm:sszzz. Current date-time will be used if not provided.
          format: date-time
    CheckoutReq_Payment:
      required:
        - paymentMethod
        - monetaryAmount
      type: object
      properties:
        paymentTimestamp:
          format: date-time
          description: >-
            Timestamp of the payment in ISO format, in case the payment has been done by the retail device (BANK_CARD method).
          type: string
        paymentMethod:
          allOf:
            - $ref: '#/components/schemas/CheckoutReq_PaymentMethod'
            - description: >-
                Payment method used, see enumeration for supported values. For certain payment methods additional method-specific data must be provided in the paymentMedia structure.
        paymentMedia:
          allOf:
            - $ref: '#/components/schemas/CheckoutReq_PaymentMedia'
            - description: Additional data specific to individual payment method.
        monetaryAmount:
          allOf:
            - $ref: '#/components/schemas/MonetaryAmount'
            - description: >-
                Monetary amount of the payment. It shall correspond to the combined amount of the sales order items.
        receiptNumber:
          description: Identifier of the payment receipt.
          type: string
        receiptData:
          description: Textual receipt data.
          type: string
        requestReference:
          allOf:
            - $ref: '#/components/schemas/PaymentReference'
            - description: Payment request reference data.
        responseReference:
          allOf:
            - $ref: '#/components/schemas/PaymentReference'
            - description: Payment response reference data.
    CheckoutReq_PaymentMedia:
      type: object
      properties:
        bankCard:
          allOf:
            - $ref: '#/components/schemas/PaymentMedia_BankCard'
            - description: Media properties used for the paymentMethod BANK_CARD.
        externalReference:
          allOf:
            - $ref: '#/components/schemas/PaymentMedia_ExternalReference'
            - description: Media properties used for the paymentMethod EXTERNAL_REFERENCE.
        serviceOperation:
          allOf:
            - $ref: '#/components/schemas/PaymentMedia_ServiceOperation'
            - description: Media properties used for the paymentMethod SERVICE_OPERATION.
        differentAccountStoredValue:
          allOf:
            - $ref: '#/components/schemas/PaymentMedia_AnotherSVWallet'
            - description: Media properties used for the paymentMethod ANOTHER_SVWALLET.
        fundingSource:
          allOf:
            - $ref: '#/components/schemas/PaymentMedia_FundingSource'
            - description: >-
                Media properties used for the paymentMethod FUNDING_SOURCE/SEPA_DD.
        creditVoucher:
          allOf:
            - $ref: '#/components/schemas/PaymentMedia_CreditVoucher'
            - description: Media properties used for the paymentMethod CREDIT_VOUCHER.
    CheckoutReq_PaymentMethod:
      enum:
        - ACCOUNT_SVWALLET
        - ANOTHER_SVWALLET
        - BANK_CARD
        - CASH
        - CREDIT_VOUCHER
        - EXTERNAL_REFERENCE
        - FUNDING_SOURCE
        - PAYMENT_TOKEN
        - SERVICE_OPERATION
      type: string
    ErrorResponseBody:
      type: object
      properties:
        errorMessage:
          allOf:
            - $ref: '#/components/schemas/ErrorMessage'
            - description: Summary of the error.
        businessExceptions:
          description: List of exceptions causing the error.
          type: array
          items:
            $ref: '#/components/schemas/BusinessException'
    ExternalSalesPackagesResponse:
      type: object
      properties:
        salesPackages:
          type: array
          items:
            $ref: '#/components/schemas/PSLExternalSalesPackageOutput'
    ItemAmountDetails:
      title: ItemAmountDetails
      description: >-
        Item amount details used for the instantiation of a product available for purchase
      required:
        - type
      type: object
      properties:
        type:
          description: >-
            Item amount instantiation type. The following types are currently defined:<br><ul><li>fixed - item amount to be used as provided</li><li>range - item amount to be used within defined limits</li></ul>
          enum:
            - fixed
            - range
          type: string
        minimumAmount:
          format: int32
          description: Item minimum amount
          type: integer
        maximumAmount:
          format: int32
          description: Item maximum amount
          type: integer
        currency:
          description: Item currency
          type: string
        vatPercentage:
          description: Item vatPercentage
          type: number
    ItemPeriodDetails:
      title: ItemPeriodDetails
      description: >-
        Item validity/usability period details used for the instantiation of a product available for purchase
      required:
        - type
      type: object
      properties:
        type:
          description: >-
            Item period instantiation type. The following types are currently defined:<br><ul><li>fixed - item period to be used as provided</li><li>free - item period to be used within defined limits</li></ul>
          enum:
            - fixed
            - free
            - none
          type: string
        earliestFromInclusive:
          format: date-time
          description: Item period earliest start
          type: string
        latestUntilInclusive:
          format: date-time
          description: Item period latest end
          type: string
        duration:
          description: Item period duration.
          type: string
    LocalizationRequired:
      type: object
      properties:
        languages:
          type: array
          items:
            type: string
        textTypes:
          type: array
          items:
            type: string
    LocalizedText:
      required:
        - language
        - textType
        - text
      type: object
      properties:
        language:
          description: Language code as defined by RFC5646
          type: string
        textType:
          description: Type of localized text (project specific)
          type: string
        text:
          description: Localized text of the given type in the given language
          type: string
    LocationId:
      type: object
      properties:
        tariffLocationId:
          description: tariff location (stop) id
          type: string
    PSLExternalSalesPackageOutput:
      required:
        - packageAmount
        - packageTemplateId
      type: object
      properties:
        image:
          type: string
          description: >-
            URL pointing to the image (e.g. icon) associated with the sales package.
          example: icons/salespackages/50011.svg
        url:
          type: string
          description: URL from tariff service associated with the sales package.
          example: salespackages/50011
        packageTemplateId:
          type: string
          description: Sales package template ID.
          example: package_pto1_full
        tariffVersionId:
          type: string
          description: >-
            Version of the product catalog from which the sales package was retrieved.
          nullable: true
          example: '1'
        packageAmount:
          $ref: '#/components/schemas/MonetaryAmount'
        name:
          type: string
          description: Name of the tariff location.
        description:
          type: string
          description: Description of the tariff location.
        salesChannelType:
          type: string
          description: 'Identifies the sales channel, related to a particular retailer.'
          example: webshop
        retailerId:
          type: string
          description: Retailer ID.
          nullable: true
        refundReason:
          type: string
          description: >-
            The reason of refund (only in case that the sales package was refunded).
          nullable: true
        refundBookingId:
          type: string
          description: The booking ID of refund sales packake transaction.
          nullable: true
        refundServiceReferenceId:
          type: string
          description: The service reference ID of refund sales packake transaction.
          nullable: true
        refundAmount:
          $ref: '#/components/schemas/MonetaryAmount'
        localization:
          type: array
          description: List of localized texts in the required language(s).
          items:
            $ref: '#/components/schemas/Localization'
        products:
          type: array
          description: Holds collection the products.
          items:
            $ref: '#/components/schemas/PSLProductLocalizationWrapper'
        salesTimestamp:
          type: string
          description: >-
            Timestamp of the sales moment in ISO 8601 format (yyyy-MM-ddTHH:mm:ssTZD).
          format: date-time
          example: '2021-07-05T09:41:03Z'
        xspit:
          type: string
          description: External sales package instance token.
          format: uuid
          example: 4b4a9121-fb93-4aef-99f1-1268bce9f9b6
      description: >-
        Sales packages with internal identifiers assigned to the transit account.
    PSLProductLocalizationWrapper:
      required:
        - salesItemProduct
      type: object
      properties:
        image:
          type: string
          description: URL pointing to the image (e.g. icon) associated with the product.
          example: icons/products/5002.svg
        url:
          type: string
          description: URL from tariff service associated with the product.
          example: products/5002
        salesItemProduct:
          $ref: '#/components/schemas/PSLSalesItemProduct'
        localization:
          type: array
          description: List of localized texts in the required language(s).
          items:
            $ref: '#/components/schemas/Localization'
        typesOfFareProduct:
          type: array
          items:
            type: object
          description: Types of fare product.
          example:
            - privateCode: classSurcharge
      description: Holds collection the products.entrainmentData
    PSLSalesItemProduct:
      title: SalesItemProduct
      description: >-
        Product instance being a part of a sales order item (sales package instance)
      required:
        - itemType
        - productTemplateId
        - tariffVersionId
      type: object
      properties:
        itemAmount:
          allOf:
            - $ref: '#/components/schemas/MonetaryAmount'
            - description: Amount corresponding to this product instance
        itemSeq:
          format: int32
          description: >-
            Sequence number of this product instance within the sales package instance
          type: integer
        itemType:
          description: Type of the product
          enum:
            - TRAVEL_PRODUCT
            - NON_TRAVEL_PRODUCT
          type: string
        nameInfo:
          allOf:
            - $ref: '#/components/schemas/NameInfo'
            - description: Holds the product instance naming information
        parameters:
          allOf:
            - $ref: '#/components/schemas/ProductParameters'
            - description: Additional explicit product parameters
        passbackAllowed:
          description: Flag if the product allows passback
          type: boolean
        productOwnerId:
          description: Business entity id of the product owner organisation
          type: string
        productTemplateId:
          description: Unique identifier of the product template
          type: string
        soldValue:
          format: int32
          description: Number of sold rides for ride based product
          type: integer
        tariffVersionId:
          description: Tariff version that contains the product template
          type: string
        usablePeriod:
          allOf:
            - $ref: '#/components/schemas/PeriodDateTimeInclusive'
            - description: Period of active usability of the product instance
        validPeriod:
          allOf:
            - $ref: '#/components/schemas/PeriodDateTimeInclusive'
            - description: >-
                Validity period of the product instance (for active as well as inactive products)
    PaymentMedia_AnotherSVWallet:
      required:
        - xtat
      type: object
      properties:
        xtat:
          description: >-
            Transit account token of another account/wallet. From this wallet the amount will paid.
          type: string
          nullable: false
    PaymentMedia_BankCard:
      type: object
      properties:
        maskedPan:
          description: Masked PAN of the bank card.
          type: string
        cardBrand:
          description: Brand of the card.
          type: string
        bin:
          description: Bank identification number of the card.
          type: string
        expirationMonth:
          format: int32
          description: Card expiration month.
          type: integer
        expirationYear:
          format: int32
          description: Card expiration year.
          type: integer
    PaymentMedia_CreditVoucher:
      required:
        - recipientEmail
      type: object
      properties:
        recipientEmail:
          description: Email for receiving the created voucher.
          type: string
          nullable: false
    PaymentMedia_ExternalReference:
      required:
        - type
        - reference
      type: object
      properties:
        type:
          description: 'Type of the external reference, e.g. TWINT, PAYPAL, etc.'
          type: string
        reference:
          description: External reference specific to the given type.
          type: string
    PaymentMedia_FundingSource:
      required:
        - fundingSourceId
      type: object
      properties:
        fundingSourceId:
          description: >-
            Identifier for payment using SEPA Direct Debit. (payment method FUNDING_SOURCE/SEPA_DD)
          type: string
          nullable: false
    PaymentMedia_ServiceOperation:
      type: object
      properties:
        operatorId:
          description: Identifier of the operator who carried out the service operation.
          type: string
        reasonCode:
          description: Reason of the service operation.
          type: string
        reasonMessage:
          description: Additional details for the service operation.
          type: string
    PaymentReference:
      type: object
      properties:
        referenceId:
          description: Identifier of the payment request/response.
          type: string
        referenceCode:
          description: Code of the payment request/response.
          type: string
        referenceMessage:
          description: Additional details od the payment request/response.
          type: string
    ProductInstance:
      description: TODO complete
      type: object
    ProductListQueryRequest:
      required:
        - xtat
        - salesChannelType
      type: object
      properties:
        salesTimestamp:
          format: date-time
          description: >-
            In ProductSales, used to load the tariff version and business rules; if not provided, the current server time is used
          type: string
        xtat:
          description: >-
            Identifier of the transit account containing the sales package instance to be refunded.
          type: string
        businessEntityId:
          description: Business entity identifier
          type: string
        salesChannelType:
          description: Unique identifier of the sales channel
          type: string
        salesLocationId:
          description: Unique identifier of the sales location
          type: string
        deviceId:
          description: Unique identifier of the sales device
          type: string
        productCategories:
          description: Product categories to limit the product query
          type: array
          items:
            type: string
        productTemplateIds:
          description: Product template ids to limit the product query
          type: array
          items:
            type: string
        parameters:
          description: Object used to populate project specific properties
          type: object
        tariffZoneIds:
          description: Tariff zone ids to limit the product query
          type: array
          items:
            type: string
        fromTariffLocationId:
          description: Unique identifier of origin location
          type: string
        toTariffLocationId:
          description: Unique identifier of destination location
          type: string
        viaTariffLocationIds:
          description: Array of via locations
          type: array
          items:
            type: string
        localizationRequired:
          allOf:
            - $ref: '#/components/schemas/LocalizationRequired'
            - description: Types of localization to be provided in the response
    ProductParameters:
      type: object
      properties:
        seriesConstraint:
          allOf:
            - $ref: '#/components/schemas/SeriesConstraint'
            - description: Series constraint parameters (from - to restricted route)
    ProductResponse:
      type: object
      properties:
        xxpit:
          type: string
          description: >-
            External identifier of the sales package (UUID created for business entity).
          format: uuid
        xpit:
          type: string
          description: >-
            Internal identifier of the sales package (UUID created for business entity).
          format: uuid
        itemSeq:
          type: integer
          description: >-
            Sequence number of the item. Is the same as in corresponding product in the request. Can be used for pairing request with response. It is omitted in the response if it is not set in the request.
          format: int32
      description: 1-K products that belong to this Sales package.
    RefundSalesPackageRequest:
      required:
        - refundChannelType
        - refundReason
        - refundTimestamp
        - refundBookingId
        - refundedSalesPackage
      type: object
      properties:
        refundChannelType:
          type: string
          description: >-
            Identifies the refund channel (e.g. webshop), related to a particular retailer.
        refundTimestamp:
          type: string
          description: >-
            Timestamp of the refund moment in ISO 8601 format (yyyy-MM-ddTHH:mm:ssTZD). If the refund request is sent with timestamp in the future (later than configured amount of minutes) the refund is scheduled and not done immediately. When the scheduled time comes the refund is performed (in TM, CHS, events are sent, retailer feedback is saved, ...) Notice: This timestamp must be the same as refund timestamps of all refunded products! Notice2: In v2 version of refund endpoint is scheduling not supported, so the refund is always done immediately (in TM DB, CHS, events are sent, retailer feedback is saved, ...)
          format: date-time
        refundReason:
          type: string
          description: Reason for requested refund.
        refundBookingId:
          type: string
          description: Identifier of refund booking transaction.
        refundServiceReferenceId:
          type: string
          description: The service reference ID of refund sales packake transaction.
          nullable: true
        refundedSalesPackage:
          $ref: '#/components/schemas/RefundedSalesPackage'
    RefundedProduct:
      required:
        - itemRefundAmount
        - refundTimestamp
        - xpit
      type: object
      properties:
        itemRefundAmount:
          $ref: '#/components/schemas/MonetaryAmountWithVAT'
        xpit:
          type: string
          description: External product instance token.
          format: uuid
          example: 5d6a84a8-31b0-4be0-9ae8-b254b7abf869
        refundTimestamp:
          type: string
          description: >-
            Timestamp of the refund moment in ISO 8601 format (yyyy-MM-ddTHH:mm:ssTZD). If the refund request is sent with timestamp in the future (later than configured amount of minutes)


             refund is scheduled and not done immediately. When the scheduled time comes the refund is performed (in TM, CHS, events are sent, retailer feedback is saved, ...) Notice:
             This timestamp must be the same as refund timestamps of the request!
             Notice2: In v2 version of refund endpoint is scheduling not supported, so the refund is always done immediately (in TM DB, CHS, events are sent, retailer feedback is saved, ...)
          format: date-time
          example: '2021-07-05T09:41:03Z'
      description: 1-N products to be refunded.
    RefundedSalesPackage:
      required:
        - packageRefundAmount
        - products
        - xspit
      type: object
      properties:
        xspit:
          type: string
          description: External sales package instance token.
          format: uuid
          example: 4b4a9121-fb93-4aef-99f1-1268bce9f9b6
        packageRefundAmount:
          $ref: '#/components/schemas/MonetaryAmount'
        products:
          type: array
          description: 1-N products to be refunded.
          items:
            $ref: '#/components/schemas/RefundedProduct'
      description: Sales package to be refunded.
    SOCheckoutReq_ClientTransactionData:
      type: object
      properties:
        transactionId:
          description: Identifier of the retail device transaction.
          type: string
        lineId:
          description: Identifier of the line from which the transaction was initiated.
          type: string
        stopId:
          description: Identifier of the stop from which the transaction was initiated.
          type: string
        vehicleId:
          description: Identifier of the vehicle from which the transaction was initiated.
          type: string
    SOCheckoutReq_SalesOrderItemProps:
      required:
        - salesOrderItemId
      type: object
      properties:
        salesOrderItemId:
          description: Identifier of a single item (sales package) in the sales order.
          type: string
          nullable: false
        bookingId:
          description: >-
            Booking number in the external booking system (e.g. Nova) to be stored with the sales order item in case it has been obtained after the sales order creation time.
          type: string
    SOCheckoutResp_ProductProps:
      type: object
      properties:
        xpit:
          description: Product instance token asssigned at the backoffice.
          type: string
    SOCheckoutResp_SalesOrderItemProps:
      type: object
      properties:
        salesOrderItemId:
          description: Identifier of a single item (sales package) in the sales order.
          type: string
        xspit:
          description: Sales package instance token asssigned at the backoffice.
          type: string
        products:
          description: >-
            List of product instance tokens for individual product instances in the sales order item (sales package).
          type: array
          items:
            $ref: '#/components/schemas/SOCheckoutResp_ProductProps'
    SOCreateReq_Product:
      description: Product being a part of a sales offer package in a sales order.
      required:
        - itemSeq
        - productTemplateId
      type: object
      properties:
        itemSeq:
          description: Sequence number of the product in the sales offer package.
          type: number
          nullable: false
        itemType:
          description: 'Deprecated, inherited from legacy CSI API.'
          enum:
            - TRAVEL_PRODUCT
            - NON_TRAVEL_PRODUCT
          type: string
          deprecated: true
        itemAmount:
          allOf:
            - $ref: '#/components/schemas/MonetaryAmount'
            - description: Monetary amount associated with the product.
        nameInfo:
          allOf:
            - $ref: '#/components/schemas/NameInfo'
            - description: Name and description of the product (not localized).
        productTemplateId:
          description: Identifier of the product template in tariff data.
          type: string
          nullable: false
        productCategories:
          description: Category tags associated with the product in the tariff data.
          type: array
          items:
            type: string
        tariffVersionId:
          description: Version of tariff data that contains the product template.
          type: string
        validPeriod:
          allOf:
            - $ref: '#/components/schemas/PeriodDateTimeInclusive'
            - description: Validity period of the product instance.
        parameters:
          description: >-
            Arbitrary JSON structure that contains additional (project specific) parameters of the offered product instance.
          type: object
        image:
          description: >-
            URL pointing to the image (e.q.icon) associated with the product template. Provided for external (non-ABT) products.
          type: string
        url:
          description: >-
            Other URL associated with the product template. Provided for external (non-ABT) products.
          type: string
        localization:
          description: >-
            Localized texts associated with the product template. Provided for external (non-ABT) products.
          type: array
          items:
            $ref: '#/components/schemas/LocalizedText'
        productOwnerId:
          description: Organisation that owns the purchased product
          type: string
    SOCreateReq_SalesOfferPackage:
      description: Sales offer package in a sales order.
      required:
        - products
      type: object
      properties:
        dataSource:
          description: >-
            Identifies the system from which the sales offer package originates. Packages from ABT use the value "ABT". Other values are project specific.
          type: string
        tariffVersionId:
          description: >-
            Version of tariff data that contains the sales offer package template.
          type: string
        packageTemplateId:
          description: Identifier of the sales offer package template in tariff data.
          type: string
        offerId:
          description: >-
            Identifier of the specific offer in the booking system - combination of template parameters with instance parameters.
          type: string
        bookingId:
          description: >-
            Booking number in the external booking system (e.g. Nova) if the offer was already booked at sales order creation time. If not available, bookingId can be added to the sales offer package at sales order checkout time.
          type: string
        products:
          description: List of products contained within the sales offer package.
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/SOCreateReq_Product'
          nullable: false
    SOCreateResp_SalesOrderItem:
      required:
        - salesOrderItemId
      type: object
      properties:
        salesOrderItemId:
          description: Identifier of a single item (sales package) in the sales order.
          type: string
    SalesLogicParameters:
      type: object
      properties:
        itemAmount:
          allOf:
            - $ref: '#/components/schemas/ItemAmountDetails'
            - description: ItemAmount instantiation details for the instantiated product
        validPeriod:
          allOf:
            - $ref: '#/components/schemas/ItemPeriodDetails'
            - description: ValidPeriod instantiation details for the instantiated product
        usablePeriod:
          allOf:
            - $ref: '#/components/schemas/ItemPeriodDetails'
            - description: UsablePeriod instantiation details for the instantiated product
    SalesOfferPackage:
      required:
        - tariffVersionId
        - packageTemplateId
        - salesOfferPackageElements
      type: object
      properties:
        tariffVersionId:
          description: Tariff version used to sell the package
          type: string
        packageTemplateId:
          description: Sales package tariff template identifier
          type: string
        offerId:
          description: Unique identifier of the sales package with populated parameters
          type: string
        name:
          description: Name of the sales offer package
          type: string
        description:
          description: Description of the sales offer package
          type: string
        image:
          description: >-
            URL pointing to the image (e.q.icon) associated with the sales offer package
          type: string
        url:
          description: Other URL associated with the sales offer package
          type: string
        dataSource:
          description: >-
            Identifier of source of data, e.g. system that generated the sales offfer. The value is project specific e.g. in SBB these are ABT, Nova.
          type: string
        parameters:
          description: Object used to populate project specific properties
          type: object
        localization:
          description: Texts of required type(s) localized in required language(s)
          type: array
          items:
            $ref: '#/components/schemas/Localization'
        productCategories:
          description: Sales package element product category
          type: array
          items:
            type: string
        salesOfferPackageElements:
          description: Sales package elements in the sales offer package
          type: array
          items:
            $ref: '#/components/schemas/SalesOfferPackageElement'
    SalesOfferPackageElement:
      required:
        - itemSeq
        - productTemplateId
        - tariffVersionId
        - salesLogicParameters
      type: object
      properties:
        itemSeq:
          format: int32
          type: integer
        itemType:
          type: string
        itemAmount:
          $ref: '#/components/schemas/MonetaryAmount'
        nameInfo:
          $ref: '#/components/schemas/NameInfo'
        productTemplateId:
          type: string
        productCategories:
          type: array
          items:
            type: string
        tariffVersionId:
          type: string
        validPeriod:
          $ref: '#/components/schemas/PeriodDateTimeInclusive'
        usablePeriod:
          $ref: '#/components/schemas/PeriodDateTimeInclusive'
        productOwnerId:
          type: string
        image:
          type: string
        url:
          type: string
        localization:
          type: array
          items:
            $ref: '#/components/schemas/Localization'
        parameters:
          type: object
        salesLogicParameters:
          $ref: '#/components/schemas/SalesLogicParameters'
    SalesOrderCheckoutRequest:
      required:
        - xtat
        - salesChannelType
        - salesOrderId
        - payments
      type: object
      properties:
        idType:
          format: int32
          description: Type of media used for the sales operation.
          type: integer
        xtat:
          description: >-
            Identifier of the transit account, on which the products shall be instantiated.
          type: string
          nullable: false
        salesChannelType:
          description: Identifier of the sales channel used by the retailer.
          type: string
          nullable: false
        salesOrderId:
          description: >-
            Identifier of the sales order returned after its successful creation.
          type: string
          nullable: false
        agentId:
          description: Identifier of the sales channel operator.
          type: string
        clientTransactionData:
          allOf:
            - $ref: '#/components/schemas/SOCheckoutReq_ClientTransactionData'
            - description: >-
                Set of retail device transaction properties to be stored to the sales transaction at the backoffice.
        salesPackages:
          description: >-
            Can be used to add new properties to the items of the order at checkout time. Currently used to record the booking identifier at the external booking system (e.g. Nova).
          type: array
          items:
            $ref: '#/components/schemas/SOCheckoutReq_SalesOrderItemProps'
        payments:
          description: >-
            Properties of the payment for the sales order items. The array may currently contain only one element.
          type: array
          items:
            $ref: '#/components/schemas/CheckoutReq_Payment'
          nullable: false
    SalesOrderCreateRequest:
      required:
        - xtat
        - salesChannelType
        - salesTimestamp
        - salesPackages
      type: object
      properties:
        xtat:
          description: >-
            Identifier of the transit account, on which the products shall be instantiated.
          type: string
        businessEntityId:
          description: >-
            May optionally specify a different retailer organization than the one authenticated on the external API
          type: string
        salesChannelType:
          description: >-
            Identifier of the sales channel used by the retailer. Affects the set of available packages.
          type: string
          nullable: false
        salesLocationId:
          description: Identifier of the sales location.
          type: string
        deviceClassId:
          description: Type of the retail device.
          type: string
        deviceId:
          description: Identifier of the retail device.
          type: string
        salesTimestamp:
          format: date-time
          description: Timestamp of the sales operation.
          type: string
          nullable: false
        salesPackages:
          description: List of sales offer packages that are part of a new sales order.
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/SOCreateReq_SalesOfferPackage'
          nullable: false
    SalesOrderItem:
      description: Item in a sales order corresponding to one sales package
      required:
        - packageTemplateId
        - products
        - salesOrderItemId
        - tariffVersionId
      type: object
      properties:
        name:
          description: Name of the sales package instance
          type: string
        packageAmount:
          allOf:
            - $ref: '#/components/schemas/MonetaryAmount'
            - description: >-
                Amount corresponding to this sales package instance (sum over all product instances)
        packageTemplateId:
          description: Sales package tariff template identifier
          type: string
        products:
          description: Contains the individual product instances
          type: array
          items:
            $ref: '#/components/schemas/PSLSalesItemProduct'
        salesOrderItemId:
          description: Unique identifier of the sales order item within the sales order
          type: string
        tariffVersionId:
          description: Tariff version that contains the sales package template
          type: string
    SalesOrderItemCreationRequest:
      required:
        - packageTemplateId
        - salesChannelType
      type: object
      properties:
        accountDetails:
          allOf:
            - $ref: '#/components/schemas/AccountDetails'
            - description: Items stored in the travel account
        localization:
          allOf:
            - $ref: '#/components/schemas/LocalizationRequired'
            - description: Types of localization to be provided in the response
        packageTemplateId:
          description: Unique identifier of the sales package
          type: string
        salesChannelType:
          description: Unique identifier of the sales channel
          type: string
        salesOrderItems:
          description: Items stored in the current sales order
          type: array
          items:
            $ref: '#/components/schemas/SalesOrderItem'
        salesTimestamp:
          format: date-time
          description: >-
            Timestamp to load the tariff version and business rules; if not provided, the current server time is used
          type: string
    SalesOrderItemCreationResponse:
      required:
        - sellableItem
      type: object
      properties:
        sellableItem:
          allOf:
            - $ref: '#/components/schemas/SellableItemDetails'
            - description: >-
                Details of the required sales package instance and individual product instances it contains
    SalesOrderItemValidation:
      required:
        - packageTemplateId
        - salesOrderItemId
        - validationResult
      type: object
      properties:
        salesOrderItemId:
          type: string
          description: OMS Identifier of the sales order item.
        packageTemplateId:
          type: string
          description: Sales package tariff template identifier.
        validationResult:
          type: string
          description: >-
            Result of the sales order item validation ("accepted" or "rejected").
        rejectReasonCode:
          type: string
          description: >-
            Reason code of the rejection in case of "rejected" validation result.
        rejectReasonMessage:
          type: string
          description: >-
            Details of the rejection reason in case of "rejected" validation result.
      description: List of validation results per individual sales package.
    SalesOrderRequest:
      required:
        - salesChannelType
        - salesOrderId
        - salesTimestamp
        - sellableItems
      type: object
      properties:
        salesChannelType:
          type: string
          description: >-
            Identifies the sales channel (e.g. webshop), related to a particular retailer.
        salesOrderId:
          type: string
          description: >-
            "Instance" identifier of the sales order holding all sales packages sold together. ID should be unique per retailer.
        salesTimestamp:
          type: string
          description: >-
            Timestamp of the sales moment in ISO 8601 format (yyyy-MM-ddTHH:mm:ssTZD).
          format: date-time
          example: '2021-07-05T09:41:03Z'
        sellableItems:
          type: array
          description: 1-N sales packages to be added to the transit account.
          items:
            $ref: '#/components/schemas/SalesPackageInput'
    SalesOrderResponse:
      required:
        - salesPackages
      type: object
      properties:
        salesPackages:
          type: array
          description: 1-N sales packages that were added to the transit account.
          items:
            $ref: '#/components/schemas/SalesPackageResponse'
    SalesOrderValidationResponse:
      required:
        - salesOrderId
        - salesOrderItemValidation
        - validationResult
        - validationTimestamp
      type: object
      properties:
        salesOrderId:
          type: string
          description: OMS Identifier of the sales order to be validated.
        validationTimestamp:
          type: string
          description: >-
            Server timestamp of the validation in ISO 8601 format (yyyy-MM-ddTHH:mm:ssTZD).
          format: date-time
          example: '2021-07-05T09:41:03Z'
        validationResult:
          type: string
          description: Result of the sales order validation ("accepted" or "rejected").
        salesOrderItemValidation:
          type: array
          description: List of validation results per individual sales package.
          items:
            $ref: '#/components/schemas/SalesOrderItemValidation'
    SalesPackageInput:
      required:
        - packageAmount
        - packageTemplateId
        - products
        - salesOrderItemId
        - tariffVersionId
      type: object
      properties:
        image:
          type: string
          description: >-
            URL pointing to the image (e.g. icon) associated with the sales package.
          example: icons/salespackages/50011.svg
        url:
          type: string
          description: URL from tariff service associated with the sales package.
          example: salespackages/50011
        packageTemplateId:
          type: string
          description: Sales package template ID.
          example: package_pto1_full
        tariffVersionId:
          type: string
          description: Tariff version that defines the provided sales package data.
          example: '1'
        packageAmount:
          $ref: '#/components/schemas/MonetaryAmount'
        name:
          type: string
          description: Name of the tariff location.
        description:
          type: string
          description: Description of the tariff location.
        salesOrderItemId:
          type: string
          description: Unique identifier of the sales order item within the sales order.
        localization:
          type: array
          description: List of localized texts in the required language(s).
          items:
            $ref: '#/components/schemas/Localization'
        products:
          type: array
          description: Holds collection the products.
          items:
            $ref: '#/components/schemas/PSLProductLocalizationWrapper'
      description: 1-N sales packages to be added to the transit account.
    SalesPackageResponse:
      required:
        - products
        - salesOrderItemId
      type: object
      properties:
        xxspit:
          type: string
          description: >-
            External identifier of the sales package (UUID created for business entity).
          format: uuid
        xspit:
          type: string
          description: >-
            Internal identifier of the sales package (UUID created for business entity).
          format: uuid
        products:
          type: array
          description: 1-K products that belong to this Sales package.
          items:
            $ref: '#/components/schemas/ProductResponse'
        salesOrderItemId:
          type: string
          description: Sales order item ID.
      description: 1-N sales packages that were added to the transit account.
    SellableItemDetails:
      description: Details of a sales package available for purchase
      required:
        - name
        - packageAmount
        - packageTemplateId
        - products
        - tariffVersionId
      type: object
      properties:
        image:
          description: >-
            URL pointing to the image (e.q.icon) associated with the sales package
          type: string
        localization:
          description: Texts of required type(s) localized in required language(s)
          type: array
          items:
            $ref: '#/components/schemas/LocalizedText'
        name:
          description: Sales package name
          type: string
        packageAmount:
          allOf:
            - $ref: '#/components/schemas/MonetaryAmount'
            - description: Combined price of all products in the sales package
        packageTemplateId:
          description: Unique identifier of the sales package template.
          type: string
        products:
          description: Holds data of individual products from this sales package
          type: array
          items:
            $ref: '#/components/schemas/SellableItemProduct'
        tariffVersionId:
          description: Tariff version that defines the provided sales package data
          type: string
        url:
          description: Other URL associated with the sales package
          type: string
    SellableItemOverview:
      description: Overview of a sales package available for purchase
      required:
        - name
        - packageAmount
        - packageTemplateId
        - tariffVersionId
      type: object
      properties:
        image:
          description: >-
            URL pointing to the image (e.q.icon) associated with the sales package
          type: string
        localization:
          description: Texts of required type(s) localized in required language(s)
          type: array
          items:
            $ref: '#/components/schemas/LocalizedText'
        name:
          description: Sales package name
          type: string
        packageAmount:
          allOf:
            - $ref: '#/components/schemas/MonetaryAmount'
            - description: Combined price of all products in the sales package
        packageTemplateId:
          description: Unique identifier of the sales package template.
          type: string
        productCategories:
          description: Product categories associated with the products in the sales package
          type: array
          items:
            type: string
        tariffVersionId:
          description: Tariff version that defines the provided sales package data
          type: string
        url:
          description: Other URL associated with the sales package
          type: string
    SellableItemParameter:
      required:
        - type
        - value
      type: object
      properties:
        type:
          description: type of the product parameter
          type: string
        value:
          description: value of the product parameter
          type: string
    SellableItemProduct:
      title: SellableItemProduct
      description: Details of a product available for purchase
      type: object
      properties:
        image:
          description: URL pointing to the image (e.q.icon) associated with the product
          type: string
        itemAmount:
          allOf:
            - $ref: '#/components/schemas/ItemAmountDetails'
            - description: ItemAmount instantiation details for the instantiated product
        localization:
          description: Texts of required type(s) localized in required language(s)
          type: array
          items:
            $ref: '#/components/schemas/Localization'
        parameters:
          description: Set of explicit product parameters specified on purchase
          uniqueItems: true
          type: array
          items:
            $ref: '#/components/schemas/SellableItemParameter'
        salesItemProduct:
          allOf:
            - $ref: '#/components/schemas/PSLSalesItemProduct'
            - description: >-
                Data of the product instance that can be used to instantiate the product on the travel account
        url:
          description: Other URL associated with the product
          type: string
        usablePeriod:
          allOf:
            - $ref: '#/components/schemas/ItemPeriodDetails'
            - description: UsablePeriod instantiation details for the instantiated product
        validPeriod:
          allOf:
            - $ref: '#/components/schemas/ItemPeriodDetails'
            - description: ValidPeriod instantiation details for the instantiated product
    SellablePackagesQueryRequest:
      required:
        - salesChannelType
      type: object
      properties:
        accountDetails:
          allOf:
            - $ref: '#/components/schemas/AccountDetails'
            - description: Items stored in the travel account
        localization:
          allOf:
            - $ref: '#/components/schemas/LocalizationRequired'
            - description: Types of localization to be provided in the response
        productCategories:
          description: Product categories to limit the product query
          type: array
          items:
            type: string
        salesChannelType:
          description: Unique identifier of the sales channel
          type: string
        salesOrderItems:
          description: Items stored in the current sales order
          type: array
          items:
            $ref: '#/components/schemas/SalesOrderItem'
        salesTimestamp:
          format: date-time
          description: >-
            Timestamp to load the tariff version and business rules; if not provided, the current server time is used
          type: string
    SellablePackagesQueryResponse:
      required:
        - sellableItems
      type: object
      properties:
        sellableItems:
          description: >-
            Overview of the sellable items (each representing a sales package available for purchase)
          type: array
          items:
            $ref: '#/components/schemas/SellableItemOverview'
    SeriesConstraint:
      type: object
      properties:
        from:
          allOf:
            - $ref: '#/components/schemas/LocationId'
            - description: start location
        to:
          allOf:
            - $ref: '#/components/schemas/LocationId'
            - description: end location
        vias:
          description: zero or more via locations
          type: array
          items:
            $ref: '#/components/schemas/LocationId'
    TravelEntitlementInstance:
      description: TODO complete
      type: object
    LegDto:
      type: object
      description: >-
        A Leg IS AN object THAT describes a part of a Trip between two Tariff
        Locations
      properties:
        legId:
          type: integer
          description: >-
            A legId IS A unique identifier THAT distinguishes one Leg from all
            other Legs
          format: int64
        inspectionId:
          type: integer
          description: >-
            AN inspectionId IS A unique identifier THAT references the
            inspection event
          format: int64
        inspectorId:
          type: integer
          description: >-
            AN inspectorId IS A unique identifier THAT references the inspection
            officer that conducted the inspection event
          format: int64
        checkinTransactionTimestamp:
          type: string
          description: >-
            A checkInTransactionTimestamp IS A Transaction Timestamp THAT
            describes when the Transaction was created
          format: date-time
        checkoutTransactionTimestamp:
          type: string
          description: >-
            A checkOutTransactionTimestamp IS A Transaction Timestamp THAT
            describes when the Transaction was created
          format: date-time
        checkinLocation:
          description: >-
            A checkInLocation IS A Tariff Location THAT presents the Location at
            which the Leg has started
          $ref: '#/components/schemas/StopDto'
        checkoutLocation:
          description: >-
            A checkOutLocation IS A Tariff Location THAT presents the Location
            at which the Leg has ended
          $ref: '#/components/schemas/StopDto'
        baseRate:
          type: integer
          description: >-
            A baseRate IS AN amount THAT represents the price for the Leg
            without discounts and surcharges
          format: int64
        lineId:
          type: string
          description: >-
            A lineId IS AN identifier THAT references the Line from the CheckIn
            Transaction of the Leg (or from CheckOut in case CheckIn is missing)
        lineName:
          type: string
          description: >-
            A lineName IS A name THAT represent the Line referenced by the Line
            Id in a human-readable form
        networkId:
          type: string
          description: >-
            A networkId IS A unique identifier THAT distinguishes one Network
            from all other Networks
        networkName:
          type: string
          description: >-
            A networkName IS A name THAT represent the Network referenced by the
            Network Id in a human-readable form
        fare:
          type: integer
          description: >-
            A fare IS AN amount THAT represents the price of the Leg with discounts and surcharges
          format: int64
        fareState:
          type: string
          description: >-
            A fareState IS AN enumerated identifier THAT defines if the Fare is
            definitive and can be used for the collection of funds
          enum:
            - CALCULATED
            - PROVISIONAL
            - FALLBACK
        currency:
          type: string
          description: >-
            A currency IS AN enumerated identifier THAT references in which
            currency all amounts within the Leg are expressed
        products:
          type: array
          description: >-
            products IS A collection THAT contains Products that are applied to
            the current Leg
          items:
            $ref: '#/components/schemas/ProductDto'
        auditing:
          type: object
          properties: {}
          description: >-
            AN auditing IS AN object THAT contains Audit data if it is embedded
            in the Leg
        appliedTimePeriods:
          type: array
          description: >-
            appliedTimePeriods IS A collection of Time Periods THAT are applied
            to the current Leg
          items:
            $ref: '#/components/schemas/TimePeriodDto'
        appliedZones:
          type: array
          description: >-
            appliedZones IS A collection of Fare Zones THAT are applied to the
            current Leg
          items:
            $ref: '#/components/schemas/ZoneDto'
        tariffJourneyStart:
          type: boolean
          description: >-
            A tariffJourneyStart IS A boolean THAT indicates if the Leg is the
            start of a new Tariff Journey
        tariffDistance:
          type: number
          description: >-
            tariffDistance IS AN amount THAT describes the accumulated tariff
            distance over all segments of this Leg
        aggrGeoIntervalDistance:
          type: number
          description: >-
            aggrGeoIntervalDistance IS AN amount THAT describes the accumulated
            tariff distance over all legs of the current Tariff Journey that use
            degressive geo-interval pricing
        topoDistance:
          type: integer
          description: >-
            A topoDistance IS AN amount THAT describes the accumulated
            topographical distance over all segments of this Leg
        concessionId:
          type: string
          description: >-
            A concessionId IS AN identifier THAT references the public transport
            concession area the current Leg belongs to
    LineDto:
      type: object
      description: A Line IS A ... THAT ...
      properties:
        lineId:
          type: string
          description: A lineId IS A unique identifier THAT distinguishes this Line instance from all other Line instances
        lineName:
          type: string
          description: A lineName IS A name THAT represent a specific Line in a human-readable way
    ProductDto:
      type: object
      properties:
        productInstanceId:
          type: integer
          description: A productInstanceId IS AN unique identifier THAT distinguishes the implementation of a specific Product from all other instances
          format: int64
        productTemplateId:
          type: string
          description: A productTemplateId IS A unique identifier THAT references the Private Code of a Product in the Product Catalogue or a Sales Package in the Sales Package Catalogue
        productCommercialName:
          description: AN productCommercialName IS A name THAT represents the Product in a human-readable way
          $ref: '#/components/schemas/PropertyBagDto'
        productIcon:
          type: string
          description: A productIcon IS A URL THAT describes where the icon for this specific Product is stored
        validFrom:
          type: string
          description: validFrom IS A date, time and time zone indication THAT describes the start of the Product validity
          format: date-time
        validUntil:
          type: string
          description: validUntil IS A date, time and time zone indication THAT describes the end of the Product validity
          format: date-time
        purchaseDateTime:
          type: string
          description: purchaseDateTime IS A date, time and time zone indication THAT describes the moment when the Sales Package was purchased
          format: date-time
        productPropertyBag:
          description: A productPropertyBag IS A Property Bag THAT contains additional properties as key-value pairs for a Product
          $ref: '#/components/schemas/PropertyBagDto'
        organisationName:
          type: string
          description: AN organisationName IS A name THAT describes the name of the Product Owner
        weight:
          type: integer
          description: A weight IS AN amount THAT determines the contribution of this particular Product to the fare of the Leg
          format: int64
        appliedMetric:
          type: string
          description: appliedMetric IS AN enumerated identifier THAT describes the type of appliedValue
        appliedValue:
          type: integer
          description: appliedValue IS AN amount THAT describes either the base fare price or amount of the discount that has been applied by the Product
          format: int64
        xprofit:
          type: string
          description: AN xprofit IS A token THAT references a Profile instance relating to the Business Entity of the callee
          format: uuid
        xspit:
          type: string
          description: AN xspit IS A token THAT references a Sales Package instance relating to the Business Entity of the callee
          format: uuid
        organisationId:
          type: string
          description: AN organisationId IS AN unique identifier THAT references the Product Owner organisation
        category:
          type: string
          description: A category IS A name THAT describes whether the Product that has been applied as a system default or as a sold item
          enum:
            - SALES
            - INTERNAL
        auditing:
          type: object
          properties: {}
          description: AN auditing IS AN object THAT contains Audit data if it is embedded in the Product instance
        typesOfFareProduct:
          type: array
          description: typesOfFareProduct IS A collection THAT contains a list of Product Category types
          items:
            $ref: '#/components/schemas/TypeOfFareProductDto'
        profileInstance:
          $ref: '#/components/schemas/ProfileInstanceDto'
        xpit:
          type: string
          description: External Product Instance Token
    ProfileInstanceDto:
      type: object
      description: A ProfileInstanceDto IS AN object THAT describes a Profile that is related to a Business Entity
      properties:
        profileType:
          type: string
          description: A profileType IS A unique identifier THAT is used to distinguish this Profile from all other Profiles
          example: 199900102
        name:
          type: string
          description: A profileName IS A name THAT is used to describe the Profile in a human-readable way
          example: Disabled passenger
        description:
          type: string
          description: A description IS A string THAT adds additional context to the Profile
          example: Disabled passenger eligible for disability discounts
        xprofit:
          type: string
          description: AN xprofit IS A token THAT references a Profile instance relating to the Business Entity of the callee
          example: 5d6a84a8-31b0-4be0-9ae8-b254b7abf869
    TimePeriodDto:
      type: object
      description: A TimePeriodDto IS AN object THAT represents a temporal duration
      properties:
        timePeriodId:
          type: string
          description: A timePeriodId IS A unique identifier THAT distinguished an applied Product that has a limited temporal validity
        timePeriodName:
          description: A timePeriodName IS A name THAT represent the Time Period in a human-readable way
          $ref: '#/components/schemas/PropertyBagDto'
    TripDetailDto:
      type: object
      description: A TripDetailDto IS AN object THAT ...
      properties:
        tripId:
          type: integer
          description: A tripId IS AN identifier THAT distinguishes this Trip from all other Trips
          format: int64
        tripVersion:
          type: integer
          description: A tripVersion IS A number THAT represents the version of this Trip
          format: int64
        tripStatus:
          type: string
          description: >-
            A tripStatus IS AN enumerated identifier THAT defines the status of this explicit version of this Trip
            "COMPLETE" - has CKI and CKO, "CORRECTED" - was corrected by cardholder or support personnel, "CKI_EXPECTED" - system is waiting for a Check In transaction, "CKI_MISSING" - system stopped waiting for a Check In transaction, "CKO_EXPECTED" - system is waiting for a Check Out transaction, "CKO_MISSING" - system stopped waiting for a Check Out transaction, "ISN_PENDING" - inspection has taken place, but system is waiting for more transactions, "ISN_ONLY" - Inspection took place, but cardholder has not checked in
          enum:
            - COMPLETE
            - CORRECTED
            - CKI_EXPECTED
            - CKO_EXPECTED
            - CKI_MISSING
            - CKO_MISSING
            - ISN_PENDING
            - ISN_ONLY
        organisationIcon:
          type: string
          description: AN organisationIcon IS A location THAT describes where the icon for this organisation is stored
        organisationId:
          type: string
          description: AN organisationId IS A unique identifier THAT references the specific Public Transport Operator
        organisationName:
          type: string
          description: AN organisationName IS A name THAT describes the name of the Business Entity in the GBO, originates from Tariff Fragment
        appliedValue:
          type: integer
          description: (RFU)
          format: int64
        vat:
          type: integer
          description: A VAT IS AN amount THAT describes the calculated amount of value added tax (RFU)
          format: int64
        supersededByTripIds:
          type: array
          description: A supersededByTripIds IS A collection of identifiers THAT contains references to (a) Trip(s) that replace(s) this Trip
          items:
            type: integer
            format: int64
        supersedesTripIds:
          type: array
          description: A supersedesTripIds IS A collection of identifiers THAT contains references to (a) Trip(s) that this Trip replaces
          items:
            type: integer
            format: int64
        products:
          type: array
          description: >-
            A products IS A collection of Products THAT have been applied to the Trip
            (Auditing is not supported on this level)
          items:
            $ref: '#/components/schemas/ProductDto'
        checkinTransactionTimestamp:
          type: string
          description: A checkInTransactionTimestamp IS A Transaction Timestamp THAT describes when the Transaction was created either by a Device or callee
          format: date-time
        checkoutTransactionTimestamp:
          type: string
          description: A checkOutTransactionTimestamp IS A Transaction Timestamp THAT describes when the Transaction was created either by a Device or callee
          format: date-time
        checkinTransactionReference:
          type: string
          description: >-
            A checkInTransactionReference IS A Transaction Reference THAT is used to distinguish 
            one Transaction from all other Transactions by combining DeviceId, Transaction Sequence Number and EMV or Transaction Id
        checkoutTransactionReference:
          type: string
          description: >-
            A checkOutTransactionReference IS A Transaction Reference THAT is used to distinguish one 
            Transaction from all other Transactions by combining DeviceId, Transaction Sequence Number and EMV or Transaction Id
        checkinLocation:
          description: A checkInLocation IS A Tariff Location THAT presents the Location at which the Trip has started
          $ref: '#/components/schemas/StopDto'
        checkoutLocation:
          description: A checkOutLocation IS A Tariff Location THAT presents the Location at which the Trip has ended
          $ref: '#/components/schemas/StopDto'
        xbot:
          type: string
          description: AN xBOT IS A unique identifier THAT is an external representation of a backoffice Token for a particular Business Entity, inherited from a Transaction used within the Trip construction
          format: uuid
        tokenType:
          type: string
          description: A tokenType IS AN enumerated identifier THAT describes the type of Token
        tokenNumber:
          type: string
          description: Number of the token (RFU)
        tokenNickname:
          type: string
          description: Nickname of the token (RFU)
        transportType:
          type: string
          description: A transportType IS AN enumerated identifier THAT describes the mode of transport
          enum:
            - AIR
            - BUS
            - COACH
            - FUNICULAR
            - METRO
            - RAIL
            - TROLLEYBUS
            - TRAM
            - WATER
            - CABLEWAY
            - OTHER
        lineId:
          type: string
          description: A lineId IS A lineId THAT is taken from the Check In Transaction
        lineName:
          type: string
          description: A lineName IS A name THAT represent a specific Line in a human-readable way
        networkId:
          type: string
          description: A networkId IS A unique identifier THAT distinguishes one Network from all other Networks
        networkName:
          type: string
          description: A networkName IS A name THAT represent the Network referenced by the Network Id in a human-readable form
        currency:
          type: string
          description: A currency IS AN enumerated identifier THAT references in which currency all amounts within the Trip are expressed (ISO 4217)
        transportIcon:
          type: string
          description: A transportIcon IS AN URL THAT describes the location where the icon for the specific transportType is stored
        legs:
          type: array
          description: A legs IS A collection of Leg objects THAT represents the different parts of the Trip
          items:
            $ref: '#/components/schemas/LegDto'
        lastUpdatedTripDateTime:
          type: string
          description: lastUpdatedTripDateTime IS A date, time and time zone indication THAT describes the most recent moment the Trip was updated
          format: date-time
        fare:
          type: integer
          description: A fare IS AN amount in cents THAT represents the total price to be paid for the Trip
          format: int64
        loyaltyOrDiscount:
          type: boolean
          description: A loyaltyOrDiscount IS A boolean THAT represent if a loyalty or discount has been applied to the fare
        supportCode:
          type: string
          description: A supportCode IS A unique identifier THAT combines tripId and tripVersion
        tripVersionReason:
          type: string
          description: >-
            A tripVersionReason IS AN enumerated identifier THAT defines the reason why a specific version of this Trip was created
            "NEW" - New trip, "FARE" - Fare has changed for the trip, "PROPERTY" - Some property of the trip has changed, "STRUCTURE" - Structure of the trip has changed, "OUTDATED" - The trip was outdated, "RECALCULATE" - The trip was recalculated due to tariff change
          enum:
            - NEW
            - FARE
            - PROPERTY
            - STRUCTURE
            - OUTDATED
            - RECALCULATE
        nature:
          type: string
          description: >-
            nature IS AN enumerated identifier THAT defines the special nature of the Trip
            \"ACCESS_DENIED\" - Access for passenger through the gate is denied, \"SAME_LOCATION_EXIT\" - Passenger checks-out at the same location as checked-in, \"OTHERS_RIDE\" - for the PTOs where the wrong check-out was done (aka invalid), \"OTHERS_TAPS\" - for PTOs to know that other TAP was done on the different network (aka autocorrected), \"OTHERS_LEGS\" - for future (shared) trips. Trip will contain transaction taps from both PTOs with synthetic taps somewhere in between
          enum:
            - ACCESS_DENIED
            - SAME_LOCATION_EXIT
            - OTHERS_RIDE
            - OTHERS_TAPS
            - OTHERS_LEGS
        payments:
          type: array
          description: payments IS A collection of Payments THAT are linked to the Trip
          items:
            $ref: '#/components/schemas/PaymentDto'
        checkinTransactionId:
          type: string
          description: A checkInTransactionId IS A Transaction Id THAT represents the Transaction that is used as Check In Transaction
        checkoutTransactionId:
          type: string
          description: A checkOutTransactionId IS A Transaction Id THAT represents the Transaction that is used as Check Out Transaction
        transportSubType:
          type: string
          description: A transportSubType IS AN enumerated identifier THAT specifies the transport more precisely within a given type
        tariffVersionId:
          type: string
          description: A tariffVersionId IS AN identifier THAT references the Tariff Fragment and Tariff Fragment version that was used to create the Trip and calculate the Fare
        correlationId:
          type: string
          description: A correlationId IS A unique identifier THAT references a tripAuditing record
        auditing:
          type: object
          properties: {}
          description: Trip auditing data - if embed auditing is allowed
        settlements:
          type: array
          description: settlements IS A collection of Settlements THAT are linked to the Trip
          items:
            $ref: '#/components/schemas/TripSettlementDto'
        createdAt:
          type: string
          description: A createdAt IS A date, time and time zone indication THAT describes when the Trip was received by the Notification processor
        entryTariffLocation:
          $ref: '#/components/schemas/StopDto'
        traveledLines:
          type: array
          description: traveledLines IS A collection of Lines THAT have been used for this Trip
          items:
            $ref: '#/components/schemas/LineDto'
        tripStartTxnId:
          type: integer
          description: >-
            Trip CKI transaction identifier. Contains value of the CKI backOfficeTxnId attribute
          format: int64
        tripEndTxnId:
          type: integer
          description: >-
            Trip CKO transaction identifier. Contains value of the CKO backOfficeTxnId attribute
          format: int64
        numberOfSyntheticLegs:
          type: integer
          description: >-
            Number of real PTO trip segments (legs) travelled between CKI and CKO
          format: int64
        numberOfSyntheticTrips:
          type: integer
          description: Number of trips at real PTOs made between CKI and CKO
          format: int64
    TripSettlementDto:
      type: object
      description: A TripSettlementDto IS AN object THAT ...
      properties:
        settlementId:
          type: string
          description: >-
            A settlementId IS A unique identifier THAT consists of 
            Trip Id, Trip Version, Settlement File and line item number 
            in the file referencing a settlement record for this Trip
        organisationId:
          type: string
          description: AN organisationId IS AN unique identifier THAT references the specific Public Transport Operator
        organisationName:
          type: string
          description: AN organisationName IS A name THAT describes the name of the Business Entity in the GBO
        fare:
          type: integer
          description: A fare IS AN amount in cents THAT represent the calculated amount to pay for this specific Trip version
          format: int64
        previousPaymentAmount:
          type: integer
          description: A previousPaymentAmount IS AN amount in cents THAT has been settled for the Trip from all previous settlement days excluding the current settlement day
          format: int64
        currentPaymentAmount:
          type: integer
          description: A currentPaymentAmount IS AN amount in cents THAT is settled for the Trip on current settlement day
          format: int64
        outstandingPaymentAmount:
          type: integer
          description: AN outstandingPaymentAmount IS AN amount in cents THAT describes the outstanding amount to be settled for the Trip per current settlement day
          format: int64
        settlementDate:
          type: string
          description: A settlementDate IS A date THAT describes the settlement day
    TypeOfFareProductDto:
      type: object
      description: A TypeOfFareProductDto IS AN object THAT represents a Product Category type
      properties:
        privateCode:
          type: string
          description: A privateCode IS AN identifier THAT describes a type of Product Category
    ZoneDto:
      type: object
      properties:
        zoneId:
          type: string
          description: A zoneId IS A unique identifier THAT distinguished an applied Tariff Zone
        zoneName:
          description: A zoneName IS A name THAT represent the Zone in a human-readable way
          $ref: '#/components/schemas/PropertyBagDto'
    TransactionAdditionalAttributes:
      description: Properties associated with the transaction
      type: object
      properties:
        organisationName:
          description: Name of the PTO organisation
          type: string
        tariffVersionId:
          type: string
          description: EOD version under which the device was operating
        locationId:
          type: string
          description: Location number
        locationType:
          type: string
          description: Location type
        tariffLocation:
          $ref: '#/components/schemas/StopDto'
        tariffLocationId:
          type: string
          description: EOD Location number
        geoLocation:
          type: object
          properties:
            longitude:
              type: number
              description: Longitude
            latitude:
              type: number
              description: Latitude
          description: Geographical location
        previousLocation:
          type: object
          properties:
            tariffLocation:
              $ref: '#/components/schemas/StopDto'
            geoLocation:
              type: object
              properties:
                longitude:
                  type: number
                  description: Longitude
                latitude:
                  type: number
                  description: Latitude
              description: Geographical location
            tariffLocationId:
              type: string
              description: EOD Location number
        agentId:
          type: string
          description: 'Id of operator of device (ie: inspector)'
        shiftId:
          type: string
          description: Shift number of staff or device
        agentType:
          type: string
          description: >-
            Identifier of the function of the personnel operating a handheld device
          enum:
            - OPERATOR
            - SUPERVISOR
            - INSPECTOR
            - MAINTENANCE
            - CASHCOLLECTOR
            - DRIVER
            - BACKOFFICE
            - TRAINEE
        facilityOperatorId:
          minimum: 0
          type: integer
          description: >-
            Business entity operating the facility where the transaction was created
        vehicleDirectionType:
          type: string
          description: Direction Type
          enum:
            - UNDEFINED
            - INBOUND
            - OUTBOUND
            - NORTHBOUND
            - EASTBOUND
            - SOUTHBOUND
            - WESTBOUND
            - CLOCKWISE
            - COUNTER_CLOCKWISE
        entryExitType:
          type: string
          description: Corresponds to TLS Transaction Type
          enum:
            - UNKNOWN
            - ENTRY
            - EXIT
            - INSPECTION
            - PRELIMINARY_ENTRY
            - PRELIMINARY_EXIT
        routeId:
          type: string
          description: >-
            Route Id from the most recent segment, decimal encoded in string encapsulation
        lineName:
          type: string
          description: Line name from the most recent segment
        lineId:
          type: string
          description: >-
            Line Id from the most recent segment, decimal encoded in string encapsulation
        authorizationResult:
          type: string
          description: Result of the authorization
          enum:
            - PERMIT
            - DENY
            - NO_PASS
            - CANCELLED
            - SKIPPED
            - INCOMPLETE
        authorizationLists:
          type: array
          description: Array of authorizationList objects
          items:
            type: object
            properties:
              listName:
                type: string
                description: Corresponds to listId
              listSequenceNo:
                minimum: 0
                type: integer
                description: 'Sequence number the list was at, at the time of validation'
              listUpdateReceived:
                type: string
                description: >-
                  Timestamp of the update of the list was at, at the time of validation
                format: date-time
        denialReason:
          type: string
          description: Reason for the denial
          enum:
            - NOT_REGISTERED
            - CARD_EXPIRED
            - CARD_MISUSE
            - ISSUER_NOT_ACCEPTED
            - CARD_NOT_ALLOWED
            - TOKEN_DENIED
            - NO_TAP_FOUND
            - TRAVELING_IN_INVALID_CLASS
            - ANTI_PASSBACK
            - CONSECUTIVE_TAP
            - DEBOUNCE_HANDLING
            - ALREADY_TAPPED
        vehicleId:
          minimum: 0
          type: integer
          description: Id of the vehicle
        vehicleTripId:
          type: string
          description: Trip Id of the vehicle
        onboardValidation:
          type: boolean
          description: Onboard validation flag
        networkId:
          minimum: 0
          type: integer
          description: Id of the network
        networkName:
          type: string
          description: Name of the network
        degradedFareMode:
          type: string
          description: Means of degraded fare
          enum:
            - UNDEFINED
            - NORMAL
            - TMO
            - EEO
            - INCIDENT
            - DISRUPTION
        relations:
          type: array
          description: Relation between transactions
          items:
            type: object
            properties:
              transactionReference:
                type: string
                description: Reference to another transaction
              relationType:
                type: string
                description: >-
                  The relation the referenced transaction has with this transaction
                enum:
                  - UNKNOWN
                  - ENTRY
                  - EXIT
                  - INSPECTION
                  - PRELIMINARY_ENTRY
                  - PRELIMINARY_EXIT
        routeSegments:
          type: array
          description: Ordered list of RouteSegments
          items:
            type: object
            properties:
              lineName:
                type: string
                description: Name of a line
              linePublicNbr:
                type: string
                description: Public identifier of a line
              routeId:
                type: string
                description: Public identifier of a route
              tripId:
                type: string
                description: >-
                  Trip from a vehicle perspective, decimal in string encapsulation
              tripPublicNbr:
                type: string
                description: Trip as displayed to the public
              tripType:
                type: string
                description: Type of the trip
                enum:
                  - UNDEFINED
                  - COMMERCIAL
                  - NONCOMMERCIAL
              tripDepartTime:
                type: string
                description: Depart timestamp of the trip
              tripDirection:
                type: string
                description: Direction of the trip
                enum:
                  - UNDEFINED
                  - INBOUND
                  - OUTBOUND
                  - NORTHBOUND
                  - EASTBOUND
                  - SOUTHBOUND
                  - WESTBOUND
                  - CLOCKWISE
                  - COUNTER_CLOCKWISE
              from:
                type: string
                description: Corresponds to a tariffLocationId where the segment started
              to:
                type: string
                description: >-
                  Corresponds to a tariffLocationId where the segment ended. If this segment is the current segment, this is equal to the tariffLocationId in the TransactionMetadata
              fromStop:
                $ref: '#/components/schemas/StopDto'
              toStop:
                $ref: '#/components/schemas/StopDto'
              distanceCovered:
                minimum: 0
                type: integer
                description: 'Distance covered in this segment, in meters'
              zonesCrossed:
                minimum: 0
                type: integer
                description: Number of zones crossed
              concession:
                type: string
                description: Identifier of the PTO concession the segment belongs to
              passengerClass:
                type: string
                description: Class of travel
                enum:
                  - UNDEFINED
                  - FIRST
                  - SECOND
                  - SERVICE_PROVIDER
        paymentType:
          type: string
          description: >-
            Enum, which defines the type of the payment. "EMV" - EuroCard, MasterCard, Visa, "DDM" - Direct debit mandate, "SSP" - Self service platform, external payment, "BAL" - Internal account balance, "POSTPAID" - Postpaid payment provider
          enum:
            - EMV
            - DDM
            - SSP
            - BAL
            - POSTPAID
        paymentProof:
          type: string
          description: Base64 encoded hash of the payment
        signature:
          type: object
          properties:
            keyType:
              type: string
              description: Type of the key
              enum:
                - NONE
                - HASH
                - PKI
                - AUTKEY
            keyId:
              type: string
              description: Key Id
            keyVersion:
              type: integer
              description: Key Version
            witness:
              type: string
              description: Signature
            isValid:
              type: boolean
              description: Validity flag
            validationErrorCode:
              type: integer
              description: Validation error code
          description: Signature object
        issuingBank:
          type: string
          description: Bank issuing the card
        issuerCountry:
          type: string
          description: Country of the issuing bank
        emvCardType:
          type: string
          description: Type of the EMV card
        emvBrand:
          type: string
          description: Brand of the card
        receivedAt:
          type: string
          description: Timestamp the transaction was received by back office
          format: date-time
        validationState:
          description: State of the validation
          type: array
          items:
            type: string
        isGoodForSettlement:
          type: boolean
          description: >-
            Flag determining the ability of the transaction to be proccesed for settlement
    TransactionDto:
      type: object
      properties:
        transactionId:
          type: string
          description: A transactionId IS A unique identifier THAT is generated by the GBO and assigned to every Transaction that is received
        transactionReference:
          type: string
          description: >-
            A transactionReference IS AN unique identifier THAT is assigned by the callee
        transactionType:
          type: string
          description: A transactionType IS AN enumerated identifier THAT describes the type of Transaction
        transactionSubtype:
          type: string
          description: A transactionSubType IS AN enumerated identifier THAT describes the nature of the Transaction (actual tap or token not present)
        transportType:
          type: string
          description: A transportType IS AN enumerated identifier THAT describes the type of vehicle
          enum:
            - AIR
            - BUS
            - COACH
            - FUNICULAR
            - METRO
            - RAIL
            - TROLLEYBUS
            - TRAM
            - WATER
            - CABLEWAY
            - OTHER
        transactionTimestamp:
          type: string
          format: date-time
          description: A transactionTimestamp IS A date, time and time zone indication THAT describes when the Transaction was created either by a Device or callee
        transactionBusinessDate:
          type: string
          format: date
          description: Business date of the transaction
        xbot:
          type: string
          description: External BackOffice Token (identifier)
          format: uuid
        tokenType:
          description: >-
            A tokenType IS A enumerated identifier THAT describes the type of Token that is related to the External Backoffice Token
          type: string
        payloadContentType:
          type: string
          description: The content type of the payload
        payload:
          type: string
          description: binary payload
        mediaTxnSeqNumber:
          type: string
          description: >-
            A mediaTxnSequenceNumber IS A counter THAT determines the sequence of events for a specific Medium
        deviceId:
          type: string
          description: A deviceId IS AN unique identifier THAT distinguishes one Device from all other Devices
        deviceSubId:
          type: string
          description: A deviceSubId IS AN identifier THAT is part of optional device configuration
        deviceClassId:
          type: string
          description: A deviceClassId IS AN enumerated identifier THAT describes the type of Device responsible for creating the Transaction
        businessEntityId:
          type: string
          description: >-
            A businessEntityId IS A unique identifier THAT represents a specific Business Entity in the GBO
        additionalAttributes:
          $ref: '#/components/schemas/TransactionAdditionalAttributes'
        createdAt:
          description: >-
            createdAt IS A date, time and time zone indication THAT describes when the Transaction was recorded in the ODS
          type: string
    AlertDetailDto:
      type: object
      properties:
        xbot:
          type: string
          description: External BackOffice Token (identifier)
          format: uuid
        alertId:
          type: string
          description: The alert Id
        alertDateTime:
          type: string
          description: Timestamp of the alert
          format: date-time
        messageTitle:
          type: string
          description: The title of the message
        messageBodies:
          type: array
          description: The bodies of the message
          items:
            $ref: '#/components/schemas/AlertMessageDto'
        link:
          type: string
          description: The link of the alert
        deepLink:
          type: string
          description: The deep link of the alert
        category:
          type: string
          description: 'Enum, which defines the category of the alert'
          enum:
            - CARD
            - ACCOUNT
            - PRODUCT
            - PAYMENT_PROVIDER
            - PAYMENT
            - TRAVEL_SCHEME
            - OTHER
        alertIcon:
          type: string
          description: The icon of the alert
        senderId:
          type: string
          description: The sender Id
        senderName:
          type: string
          description: The name of the sender
        senderIcon:
          type: string
          description: The icon of the sender
        reasonCode:
          type: string
          description: The reason code of the alert
        reasonMessage:
          type: string
          description: The reason message of the alert
    AlertDto:
      type: object
      properties:
        xbot:
          type: string
          description: External BackOffice Token (identifier)
          format: uuid
        alertId:
          type: string
          description: The alert Id
        alertDateTime:
          type: string
          description: Timestamp of the alert
          format: date-time
        messageTitle:
          type: string
          description: The title of the message
        category:
          type: string
          description: 'Enum, which defines the category of the alert'
          enum:
            - CARD
            - ACCOUNT
            - PRODUCT
            - PAYMENT_PROVIDER
            - PAYMENT
            - TRAVEL_SCHEME
            - OTHER
        alertIcon:
          type: string
          description: The icon of the alert
        senderId:
          type: string
          description: The sender Id
        senderName:
          type: string
          description: The name of the sender
        senderIcon:
          type: string
          description: The icon of the sender
    AlertMessageDto:
      type: object
      properties:
        message:
          type: string
          description: The alert message
        language:
          type: string
          description: The language of the alert message
    BlockSamRequest:
      required:
        - description
      type: object
      properties:
        description:
          type: string
          example: Description why SAM was blocked
      description: Sam object for update.
    CreateSamRequest:
      required:
        - businessEntityId
        - samId
      type: object
      properties:
        samId:
          pattern: '[0-9a-fA-F]{8}'
          type: string
          description: SAM's unique hexadecimal identifier
          example: 0189ACEF
        terminalId:
          pattern: \S+
          type: string
          description: terminal identifier the SAM is paired with
          example: '1'
        type:
          type: string
          description: type of SAM
          example: SAMv2
        status:
          type: string
          description: SAM's status
          example: ACTIVE
          enum:
            - NEW
            - IN_PRODUCTION
            - PRODUCED
            - INACTIVE
            - ACTIVE
            - DESTROYED
        blocked:
          type: boolean
          description: 'flag if the SAM is blocked, usually false'
          example: false
        location:
          type: string
          description: location of the SAM
          example: DEVICE
          enum:
            - UNSPECIFIED
            - PRODUCTION
            - STOCK_SYSTEM_OPERATOR
            - STOCK_PTO
            - DEVICE
            - DESTROYED
        businessEntityId:
          pattern: \S+
          type: string
          description: PTO identifier SAM belongs to
          example: '99'
      description: Sam object that should be created.
    Fragment:
      required:
        - networkId
      type: object
      description: A Tariff Fragment IS A data set of business rules THAT describes how to calculate fare prices.
      properties:
        fragmentIdVersion:
          type: string
          description:
            A Tariff Fragment ID IS A data element THAT identifies a Tariff
            Fragment.
        networkId:
          type: integer
          description: A networkId IS A unique identifier THAT distinguishes a Network from all other Networks
          format: int32
        servicePatternId:
          type: string
          description: A servicePatternId IS AN unique identifier THAT references a specific Service Pattern
    Interlining:
      required:
        - syntheticCoLocationId
      type: object
      description: The feature that during a Trip in the same Vehicle the Service Pattern changes, possibly due to a Line change
      properties:
        syntheticCoLocationId:
          type: string
          description: Synthetic CO Location ID.
        syntheticCiLocationId:
          type: string
          description:
            Synthetic CI Location ID. If not specified SyntheticCoLocationId
            is taken instead.
    Product:
      required:
        - templateId
      type: object
      description: Product Information.
      properties:
        templateId:
          type: string
          description: A productTemplateId IS A unique identifier THAT references the Private Code of a Product in the Product Catalogue or a Sales Package in the Sales Package Catalogue.
          example: '46714'
    Tap:
      required:
        - businessEntityId
        - checkIn
        - checkOut
        - fragment
      type: object
      description: Tap Information.
      properties:
        businessEntityId:
          type: integer
          description: A businessEntityId IS A unique identifier THAT represents a specific Business Entity in the GBO.
          format: int32
        fragment:
          $ref: '#/components/schemas/Fragment'
        checkIn:
          $ref: '#/components/schemas/Transaction'
        interlining:
          $ref: '#/components/schemas/Interlining'
        checkOut:
          $ref: '#/components/schemas/Transaction'
    Transaction:
      required:
        - stopId
        - transactionTimestamp
      type: object
      description: A Transaction IS AN immutable snapshot of an event THAT involves a Token and records all relevant and available data to describe the event
      properties:
        vehicleDirectionType:
          type: string
          description: A vehicleDirectionType IS A direction THAT describes the direction in which the Service Pattern is serviced if filled by the Device
        lineId:
          type: string
          description: A lineId IS A identifier THAT distinguishes one line from all other lines in the network.
        transactionTimestamp:
          type: string
          description: A transactionTimestamp IS A date# time and time zone indication THAT describes when the Transaction was created callee.
          format: date-time
        deviceId:
          type: string
          description: A deviceId IS AN unique identifier THAT distinguishes a Device from all other Devices
          example: '982291009'
        deviceClassId:
          type: string
          description: A deviceClassId IS AN enumerated identifier THAT describes the type of Device responsible for creating the Transaction
          default: '9'
        stopId:
          type: string
          description: A stopId IS A unique identifier THAT distinguishes a Tariff Location from all other Tariff Locations
        transactionReference:
          type: string
          description: A transactionReference IS AN unique identifier THAT is assigned by the callee
          example: a0bc0387-bb0c-4d0e-9b4b-50aa32d5d0cb
    TripFce:
      type: object
      description: Trip Information.
      properties:
        tokenType:
          type: string
          description: A tokenType IS A enumerated identifier THAT describes the type of Token that is related to the External Backoffice Token.
          enum:
            - EMV
            - GBO
            - OVC
            - CIBO
            - EMV-CLT
            - GemaltoPure
            - MasterCardWL
        products:
          type: array
          description: A products IS A collection of Products THAT have been applied to the Trip
          items:
            $ref: '#/components/schemas/Product'
        taps:
          type: array
          description: Taps information.
          items:
            $ref: '#/components/schemas/Tap'
    ProductDetail:
      required:
        - templateId
      type: object
      description: Product  Detail Information.
      properties:
        templateId:
          type: string
          description: A productTemplateId IS A unique identifier THAT references the Private Code of a Product in the Product Catalogue or a Sales Package in the Sales Package Catalogue.
          example: '46714'
        instanceId:
          type: integer
          description: A productInstanceId IS AN unique identifier THAT distinguishes the implementation of a specific Product from all other instances
          format: int32
        appliedMetric:
          type: string
          description: AN appliedMetric IS AN enumerated identifier THAT describes the type of appliedValue
          enum:
            - FARE
            - PRODUCT_UNIT
            - PREASSIGNED_RIGHT
            - DISCOUNT
        weight:
          type: integer
          description: A weight IS AN amount THAT determines the contribution of this particular Product to the fare of the Leg
          format: int32
        value:
          type: integer
          description: AN appliedValue IS AN amount THAT describes either the base fare price or amount of the discount that has been applied by the Product
          format: int32
    TapDetail:
      required:
        - baseFare
        - businessEntityId
        - checkIn
        - checkOut
        - fare
        - fareState
        - fragment
      type: object
      description: Trip Detail Information.
      properties:
        businessEntityId:
          type: integer
          description: A businessEntityId IS A unique identifier THAT represents a specific Business Entity in the GBO.
          format: int32
        fragment:
          $ref: '#/components/schemas/Fragment'
        checkIn:
          $ref: '#/components/schemas/Transaction'
        interlining:
          $ref: '#/components/schemas/Interlining'
        checkOut:
          $ref: '#/components/schemas/Transaction'
        fareState:
          type: string
          description: A fareState IS AN enumerated identifier THAT defines if the Fare is definitive and can be used for the collection of funds
          enum:
            - calculated
            - provisional
            - fallback
        baseFare:
          type: integer
          description: Base Fare.
          format: int64
        fare:
          type: integer
          description: A fare IS AN amount in cents THAT represents the total price to be paid for the Trip
          format: int64
    TripDetail:
      type: object
      description: Trip Detail Information.
      properties:
        tokenType:
          type: string
          description: A tokenType IS A enumerated identifier THAT describes the type of Token.
          enum:
            - EMV
            - GBO
            - OVC
            - CIBO
            - EMV-CLT
            - GemaltoPure
            - MasterCardWL
        products:
          type: array
          description: A products IS A collection of Products THAT have been applied to the Trip
          items:
            $ref: '#/components/schemas/ProductDetail'
        taps:
          type: array
          description: Taps information.
          items:
            $ref: '#/components/schemas/TapDetail'
        overallBaseFare:
          type: integer
          description: Overall Base Fare.
          format: int64
        overallFare:
          type: integer
          description: Overall Fare.
          format: int64
    Sam:
      type: object
      description: A Secure Access Module IS AN object THAT contains cryptographic keys
      properties:
        samId:
          pattern: '[0-9a-fA-F]{8}'
          type: string
          description: A samId IS A unique identifier THAT distinguishes a SAM from all other SAMs
          example: 0189ACEF
        orderId:
          type: integer
          description: AN orderId IS A identifier THAT references the Order to which a SAM belongs
          format: int64
          example: 23
        terminalId:
          type: string
          description: A terminalId IS AN identifier THAT references the Terminal to which a SAM is associated
          example: '1'
        type:
          type: string
          description: A type IS A string THAT represents the version of the SAM applet
          example: SAMv2
        status:
          type: string
          description: A status IS AN enumerated identifier THAT represents the operation state of the SAM
          example: ACTIVE
          enum:
            - NEW
            - IN_PRODUCTION
            - PRODUCED
            - INACTIVE
            - ACTIVE
            - DESTROYED
        blocked:
          type: boolean
          description: 'flag if the SAM is blocked, usually false'
          example: false
        location:
          type: string
          description: A location IS AN enumerated identifier THAT represents the asset management status of the SAM
          example: DEVICE
          enum:
            - UNSPECIFIED
            - PRODUCTION
            - STOCK_SYSTEM_OPERATOR
            - STOCK_PTO
            - DEVICE
            - DESTROYED
        businessEntityId:
          type: string
          description: A businessEntityId IS A unique identifier THAT references the Business Entity of the PTO that owns the SAM
          example: '99'
    SamUpdateRequest:
      type: object
      properties:
        terminalId:
          type: string
          description: terminal identifier the SAM is paired with
          example: '1'
        type:
          type: string
          description: type of SAM
          example: SAMv2
        status:
          type: string
          description: SAM's status
          example: ACTIVE
          enum:
            - NEW
            - IN_PRODUCTION
            - PRODUCED
            - INACTIVE
            - ACTIVE
            - DESTROYED
        blocked:
          type: boolean
          description: 'flag if the SAM is blocked, usually false'
          example: false
        location:
          type: string
          description: location of the SAM
          example: DEVICE
          enum:
            - UNSPECIFIED
            - PRODUCTION
            - STOCK_SYSTEM_OPERATOR
            - STOCK_PTO
            - DEVICE
            - DESTROYED
        businessEntityId:
          type: string
          description: PTO identifier SAM belongs to
          example: '99'
      description: Sam object for update.
    CreateOrderRequest:
      required:
        - amount
        - businessEntityId
      type: object
      properties:
        businessEntityId:
          type: string
          example: '99'
        amount:
          minimum: 1
          type: integer
          format: int32
          example: 10
        description:
          type: string
          example: Order description goes here
      description: Order object that should be created.
    GetCancelOrderStatusResponse:
      type: object
      properties:
        id:
          type: integer
          format: int64
        status:
          type: string
          enum:
            - NEW
            - PRODUCTION_REQUEST_CREATED
            - PRODUCTION_RESPONSE_RECEIVED
            - PRODUCTION_RESPONSE_PROCESSED
            - COMPLETED
            - CANCELLED
    GetOrderStatusResponse:
      type: object
      properties:
        id:
          type: integer
          format: int64
        status:
          type: string
          enum:
            - NEW
            - PRODUCTION_REQUEST_CREATED
            - PRODUCTION_RESPONSE_RECEIVED
            - PRODUCTION_RESPONSE_PROCESSED
            - COMPLETED
            - CANCELLED
        processingFailure:
          type: string
          enum:
            - NONE
            - RETRYING_ORDER_CREATION
            - ORDER_CREATION_FAILED
            - RESPONSE_FILE_PROCESSING_FAILED
    OrderResponse:
      type: object
      properties:
        id:
          type: integer
          format: int64
        businessEntityId:
          type: string
          example: '99'
        orderTime:
          type: string
          format: date-time
        amount:
          type: integer
          format: int32
          example: 10
        status:
          type: string
          enum:
            - NEW
            - PRODUCTION_REQUEST_CREATED
            - PRODUCTION_RESPONSE_RECEIVED
            - PRODUCTION_RESPONSE_PROCESSED
            - COMPLETED
            - CANCELLED
        description:
          type: string
          example: Order description goes here
        lastChanged:
          type: string
          format: date-time
    CreateTerminalsRequest:
      required:
        - businessEntityId
        - terminalIds
      type: object
      properties:
        terminalIds:
          type: array
          example:
            - '1'
            - '2'
          items:
            type: string
            example: '["1","2"]'
        businessEntityId:
          type: string
          example: '99'
      description: Terminal objects that should be created.
    Terminal:
      required:
        - businessEntityId
        - terminalId
      type: object
      description: A Terminal IS AN object THAT is a physical thing or software that a callee uses to create Transactions
      properties:
        terminalId:
          type: string
          description: A terminalId IS A unique identifier THAT distinguishes a Terminal from all other Terminals
          example: '1'
        businessEntityId:
          type: string
          description: A businessEntityId IS A unique identifier THAT references the Business Entity of the PTO that owns the Terminal
          example: '99'
    ClusterDeploymentStatus:
      required:
        - deploymentId
        - version
      type: object
      properties:
        deploymentId:
          description: >-
            Unique identifier of the deployed tariff or fragment, assigned at the time of the deployment.
          type: string
        version:
          description: Version of the standalone tariff or fragment.
          type: string
        fragmentId:
          description: >-
            Identifier of the fragment, applicable only in case of fragmented deployment.
          type: string
        deploymentStatus:
          description: Desired deployment status of the tariff / fragment.
          type: string
        isDeploymentInSync:
          description: >-
            True if the desired deployment status of the deployed tariff / fragment has been synchronized to all tariff service instances in the cluster.
          type: boolean
        instances:
          description: >-
            Holds details about the local deployment status of the given tariff / fragment at individual tariff service instances in the cluster.
          type: array
          items:
            $ref: '#/components/schemas/InstanceDeploymentStatus'
    DeploymentStatus:
      enum:
        - active
        - deployed
        - inactive
        - undeployed
        - unknown
      type: string
    Direction:
      type: object
      properties:
        privateCode:
          type: string
    ErrorCode:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
        httpStatus:
          format: int32
          type: integer
        errorCode:
          type: string
        errorMessage:
          type: string
    ErrorObject:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
        errorCode:
          $ref: '#/components/schemas/ErrorCode'
        errorMessage:
          type: string
        status:
          format: int32
          type: integer
    ErrorResponseTariff:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/ErrorObject'
    FailureReasonCode:
      enum:
        - ACTION_HANDLER_INSTANTIATION_FAILED
        - AUTHORIZATION_RULE_EVALUATION_FAILED
        - CANNOT_CREATE_RUNBOOK
        - CANNOT_DETERMINE_TAP_VALIDATION_MODE
        - CANNOT_GET_RUNBOOKS
        - CANNOT_GET_RUNBOOK_JOB
        - CANNOT_GET_RUNBOOK_JOB_RESULT
        - CANNOT_IDENTIFY_NETWORKS
        - CANNOT_START_RUNBOOK
        - DB_OPERATION_FAILED
        - FILESYSTEM_OPERATION_FAILED
        - JOB_CREATION_FAILED
        - JOB_INTERRUPTED
        - JOB_STEP_CREATION_FAILED
        - JOB_STEP_INPUT_PARAMETER_MISSING
        - MISSING_FRAGMENT_METADATA
        - NOT_AUTHORIZED
        - NO_NETWORK_FOUND
        - REFERRED_FRAGMENT_MISSING
        - RUNBOOK_VALIDATION_FAILED
        - TARIFF_ALREADY_DEPLOYED
        - TARIFF_CALCULATE_TIMELINE_FAILED
        - TARIFF_DB_BACKUP_MISSING
        - TARIFF_DB_CREATION_FAILED
        - TARIFF_DB_UPLOAD_FAILED
        - TARIFF_EVALUATE_EXT_REFS_FAILED
        - TARIFF_INPUT_EXTRACTION_FAILED
        - TARIFF_INPUT_HAS_VALIDATION_ERRORS
        - TARIFF_INPUT_PARSING_FAILED
        - TARIFF_INPUT_VALIDATION_FAILED
        - TARIFF_INPUT_ZIP_IS_EMPTY
        - TARIFF_WITH_DIFFERENT_FRAGMENT_ID_ALREADY_DEPLOYED
      type: string
    FileUpload:
      required:
        - file
      type: object
      properties:
        file:
          format: binary
          description: ZIP file to be uploaded
          type: string
    FragmentTimeline:
      type: object
      properties:
        fragmentId:
          description: >-
            Unique identifier of the tariff fragment. In case of standalone deployment, an explicit null value.
          type: string
        timeline:
          description: >-
            Timeline of versions of the given fragment over time. It consists of individual time intervals over which there is always one specific fragment version active.
          type: array
          items:
            $ref: '#/components/schemas/Timeline'
    GroupOfLines:
      type: object
      properties:
        alternativeTexts:
          type: array
          items:
            $ref: '#/components/schemas/AlternativeText'
        name:
          type: string
        description:
          type: string
        transportMode:
          type: string
        transportSubMode:
          type: string
        privateCode:
          type: string
        members:
          type: array
          items:
            $ref: '#/components/schemas/LineMember'
    InstanceDeploymentStatus:
      required:
        - instanceId
      type: object
      properties:
        instanceId:
          description: >-
            Unique identifier of the tariff service instance (e.g. static IP address, hostname or Kubernetes StatefulSet POD name).
          type: string
        status:
          allOf:
            - $ref: '#/components/schemas/DeploymentStatus'
            - description: >-
                Local deployment status of the tariff or fragment at the given tariff service instance.
        updateTimestamp:
          format: date-time
          description: Timestamp of the last status change on the tariff service instance
          type: string
        instanceMessage:
          description: >-
            In case the instance feedback synchronization status indicates problems, this contains the reason message.
          type: string
    JobActionResultMessage:
      description: Result message that is returned by Job action.
      type: object
      allOf:
        - $ref: '#/components/schemas/doValidateJobActionResultMessage'
        - $ref: '#/components/schemas/doDeployJobActionResultMessage'
    JobMessage:
      description: Tariff data job represenation.
      type: object
      properties:
        job:
          $ref: '#/components/schemas/JobView'
    JobStepView:
      description: Single step of job.
      type: object
      properties:
        order:
          format: int32
          description: Step execution order number. The first job step is numbered as 1.
          type: integer
        id:
          format: int64
          type: integer
        action:
          type: string
        status:
          type: string
        outputParameters:
          description: >-
            Final Job execution step may leve here the final result. For instance validation may leave here link to the validation report.
          type: object
    JobView:
      description: Details of a job
      required:
        - action
      type: object
      properties:
        id:
          format: int64
          description: Job unique identifier.
          type: integer
        action:
          description: Action that the job executes.
          type: string
        created:
          format: date-time
          description: Time of Job creation.
          type: string
        triggerType:
          description: Type of interface that triggered the job.
          enum:
            - REST
            - MARKERFILE
          type: string
        status:
          description: Job status.
          enum:
            - CREATED
            - RUNNING
            - FAILED
            - SUCCESS
            - ZOMBIE
          type: string
        failureReasonCode:
          allOf:
            - $ref: '#/components/schemas/FailureReasonCode'
            - description: >-
                Reason code that helps to identify why the job failed (status = 'FAILED')
              enum:
                - ACTION_HANDLER_INSTANTIATION_FAILED
                - AUTHORIZATION_RULE_EVALUATION_FAILED
                - NOT_AUTHORIZED
                - TARIFF_INPUT_PARSING_FAILED
                - TARIFF_INPUT_ZIP_IS_EMPTY
                - TARIFF_INPUT_EXTRACTION_FAILED
                - TARIFF_INPUT_HAS_VALIDATION_ERRORS
                - TARIFF_INPUT_VALIDATION_FAILED
                - TARIFF_DB_UPLOAD_FAILED
                - TARIFF_ALREADY_DEPLOYED
                - TARIFF_DB_CREATION_FAILED
                - TARIFF_DB_BACKUP_MISSING
                - JOB_CREATION_FAILED
                - JOB_STEP_CREATION_FAILED
                - JOB_STEP_INPUT_PARAMETER_MISSING
                - FILESYSTEM_OPERATION_FAILED
                - DB_OPERATION_FAILED
                - MISSING_FRAGMENT_METADATA
                - NO_NETWORK_FOUND
                - CANNOT_IDENTIFY_NETWORKS
                - CANNOT_DETERMINE_TAP_VALIDATION_MODE
                - CANNOT_CREATE_RUNBOOK
                - CANNOT_START_RUNBOOK
                - CANNOT_GET_RUNBOOK_JOB
                - CANNOT_GET_RUNBOOK_JOB_RESULT
                - RUNBOOK_VALIDATION_FAILED
                - JOB_INTERRUPTED
        result:
          $ref: '#/components/schemas/JobActionResultMessage'
        steps:
          description: Job single execution steps
          type: array
          items:
            $ref: '#/components/schemas/JobStepView'
        log:
          type: object
    JobViewId:
      required:
        - id
      type: object
      properties:
        id:
          description: Unique identifier of the job.
          type: string
    JourneyPattern:
      type: object
      properties:
        privateCode:
          type: string
        routeView:
          $ref: '#/components/schemas/RouteView'
        direction:
          $ref: '#/components/schemas/Direction'
        linksInSequence:
          type: array
          items:
            $ref: '#/components/schemas/LinkInSequence'
        typeOfJourneyPattern:
          $ref: '#/components/schemas/TypeOfJourneyPattern'
    JourneyPatternQueryResponse:
      type: object
      properties:
        journeyPatterns:
          uniqueItems: true
          type: array
          items:
            $ref: '#/components/schemas/JourneyPattern'
    Line:
      type: object
      properties:
        alternativeTexts:
          type: array
          items:
            $ref: '#/components/schemas/AlternativeText'
        name:
          type: string
        shortName:
          type: string
        description:
          type: string
        transportMode:
          type: string
        transportSubMode:
          type: string
        privateCode:
          type: string
        publicCode:
          type: string
        operator:
          $ref: '#/components/schemas/Operator'
    LineMember:
      type: object
      properties:
        line:
          $ref: '#/components/schemas/Member'
    LineQueryResponse:
      type: object
      properties:
        lines:
          type: array
          items:
            $ref: '#/components/schemas/Line'
    LinkInSequence:
      type: object
      properties:
        passingThrough:
          type: array
          items:
            $ref: '#/components/schemas/PassingThrough'
    Location:
      type: object
      properties:
        longitude:
          type: number
        latitude:
          type: number
        altitude:
          type: number
    Member:
      type: object
      properties:
        privateCode:
          type: string
    Network:
      type: object
      properties:
        alternativeTexts:
          type: array
          items:
            $ref: '#/components/schemas/AlternativeText'
        name:
          type: string
        description:
          type: string
        transportMode:
          type: string
        transportSubMode:
          type: string
        privateCode:
          type: string
        operator:
          $ref: '#/components/schemas/Operator'
        groupsOfLines:
          type: array
          items:
            $ref: '#/components/schemas/GroupOfLines'
    NetworkResponse:
      type: object
      properties:
        networks:
          type: array
          items:
            $ref: '#/components/schemas/Network'
    Operator:
      type: object
      properties:
        privateCode:
          type: string
    PassingThrough:
      type: object
      properties:
        distanceFromStart:
          type: number
        scheduledStopPoint:
          $ref: '#/components/schemas/ScheduledStopPoint'
    RouteView:
      type: object
      properties:
        line:
          $ref: '#/components/schemas/Line'
    ScheduledStopPoint:
      type: object
      properties:
        alternativeTexts:
          type: array
          items:
            $ref: '#/components/schemas/AlternativeText'
        name:
          type: string
        shortName:
          type: string
        description:
          type: string
        location:
          $ref: '#/components/schemas/Location'
        privateCode:
          type: string
        publicCode:
          type: string
        transportModes:
          type: array
          items:
            type: string
    StopQueryResponse:
      type: object
      properties:
        scheduledStopPoints:
          type: array
          items:
            $ref: '#/components/schemas/ScheduledStopPoint'
    TariffDataDeploymentsListInner:
      required:
        - deploymentId
        - version
        - creationTimestamp
        - status
        - validityStart
        - fingerprint
      type: object
      properties:
        deploymentId:
          description: >-
            Unique identifier of the deployed tariff or fragment, assigned at the time of the deployment.
          type: string
          nullable: false
        version:
          description: Version of the standalone tariff or fragment.
          type: string
          nullable: false
        fragmentId:
          description: >-
            Identifier of the fragment, applicable only in case of fragmented deployment.
          type: string
        creationTimestamp:
          format: date-time
          description: Timestamp when the tariff or fragment has been deployed.
          type: string
        status:
          allOf:
            - $ref: '#/components/schemas/DeploymentStatus'
            - description: >-
                Deployment status of the tariff or fragment in the central repository. Use cluster status synchronization endpoints to see the status of its synchronization with all tariff service instances in the cluster.
        metadata:
          allOf:
            - $ref: '#/components/schemas/TariffMetadata'
            - description: >-
                Key-value pair(s) in which the key is the metadata name and the value is either a string or a list of strings (if multiple values can be associated with the key). Used to query for specific fragments by its key content identifiers. All metadata are project specific. Example metadata are typeOfFrame, organisation, operator, network.
        validityStart:
          format: date-time
          description: >-
            Declared validity start of the tariff data. Used to calculate the timeline of active versions over time.
          type: string
          nullable: false
        validityEnd:
          format: date-time
          description: >-
            Optional declared validity end of the tariff data. Used to calculate the timeline of active versions over time.
          type: string
        description:
          description: Textual description of the tariff data provided by its author.
          type: string
        fingerprint:
          description: >-
            Content fingerprint calculated from the tariff data. Value does not change if the same tariff or fragment is repeatedly deployed and undeployed (unlike the deploymentId which is always newly assigned).
          type: string
        runbookId:
          description: Identifier of a runbook associated to the deployment
          type: string
    TariffMetadata:
      type: object
    TariffVersionStructure:
      type: object
      properties:
        fragment:
          description: >-
            Identifier of the fragment, applicable only in case of fragmented deployment.
          type: string
        version:
          description: Version of the standalone tariff or fragment.
          type: string
    Text:
      type: object
      properties:
        lang:
          type: string
        textIdType:
          type: string
        text:
          type: string
    Timeline:
      required:
        - activeFrom
        - version
        - deploymentId
      type: object
      properties:
        activeFrom:
          format: date-time
          description: Start of the given time interval.
          type: string
        activeUntil:
          format: date-time
          description: >-
            End of the given time interval. May be missing if this timeline entry represents the last time interval without specified end.
          type: string
        fragmentId:
          description: >-
            Unique identifier of the tariff fragment. Explicit null in case of standalone deployment.
          type: string
        version:
          description: >-
            Version of the given tariff / fragment active in the given time interval.
          type: string
        deploymentId:
          description: Unique identifier of the tariff / fragment deployment.
          type: string
    TypeOfJourneyPattern:
      type: object
      properties:
        privateCode:
          type: string
    VehicleJourney:
      type: object
      properties:
        privateCode:
          type: string
        departureTime:
          type: string
        line:
          $ref: '#/components/schemas/Line'
        journeyPattern:
          $ref: '#/components/schemas/JourneyPattern'
    VehicleJourneyQueryResponse:
      type: object
      properties:
        vehicleJourneys:
          uniqueItems: true
          type: array
          items:
            $ref: '#/components/schemas/VehicleJourney'
    doDeployJobActionResultMessage:
      description: Result message that is returned by DODEPLOY Job action.
      type: object
      properties:
        inputZipFile:
          description: Identifies the input file provided in the request.
          type: string
        validationStepsSummary:
          description: 'Count of passed, failed and pending validation steps.'
          type: string
        validationReportResultId:
          format: int64
          description: >-
            Unique identifier of the (Cucumber) HTML validation report within the current deployment job.
          type: integer
        validationJsonResultId:
          format: int64
          description: >-
            Unique identifier of the (Cucumber) JSON validation document within the current deployment job.
          type: integer
        validationErrorResultId:
          format: int64
          description: "Unique identifier of a plain text textual result that contains validation errors and warnings related to the job. File format is:errors: <count>\t<error #1 message>\t...warnings: <count>\t<warning #1 message>\t..."
          type: integer
        tariffVersion:
          allOf:
            - $ref: '#/components/schemas/TariffVersionStructure'
            - description: >-
                Contains the fragment and version identifiers if those could be parsed from the input.
        deploymentId:
          type: string
        runbookValidationResultId:
          format: int64
          description: Unique identifier of the runbook validation result.
          type: integer
    doValidateJobActionResultMessage:
      description: Result message that is returned by DOVALIDATE Job action.
      type: object
      properties:
        inputZipFile:
          description: Identifies the input file provided in the request.
          type: string
        validationStepsSummary:
          description: 'Count of passed, failed and pending validation steps.'
          type: string
        validationReportResultId:
          format: int64
          description: >-
            Unique identifier of the (Cucumber) HTML validation report within the current deployment job.
          type: integer
        validationJsonResultId:
          format: int64
          description: >-
            Unique identifier of the (Cucumber) JSON validation document within the current deployment job.
          type: integer
        validationErrorResultId:
          format: int64
          description: "Unique identifier of a plain text textual result that contains validation errors and warnings related to the job. File format is:errors: <count>\t<error #1 message>\t...warnings: <count>\t<warning #1 message>\t..."
          type: integer
        tariffVersion:
          allOf:
            - $ref: '#/components/schemas/TariffVersionStructure'
            - description: >-
                Contains the fragment and version identifiers if those could be parsed from the input.
    SubscribeToNotification:
      required:
        - notificationType
      type: object
      properties:
        notificationType:
          type: string
          description: Type of notification the client will be subscribed to
          enum:
            - TRIPS
            - PAYMENTS
            - ALERTS
      description: Subscribe to notification type
    Subscription:
      type: object
      properties:
        subscriptionId:
          type: string
        username:
          type: string
        password:
          type: string
        queueName:
          type: string
        vhost:
          type: string
        notificationType:
          type: string
          enum:
            - TRIPS
            - PAYMENTS
            - ALERTS
        businessEntityId:
          type: string
        businessEntityName:
          type: string
        businessEntityRole:
          type: string
    Subscriptions:
      type: object
      properties:
        subscriptions:
          type: array
          items:
            $ref: '#/components/schemas/Subscription'
    Xbots:
      type: object
      properties:
        xbots:
          type: array
          items:
            type: string
    AlertDetailDtoInst:
      type: object
      properties:
        inst:
          type: string
          description: Temporar inspection token
          format: uuid
        alertId:
          type: string
          description: The alert Id
        alertDateTime:
          type: string
          description: Timestamp of the alert
          format: date-time
        messageTitle:
          type: string
          description: The title of the message
        messageBodies:
          type: array
          description: The bodies of the message
          items:
            $ref: '#/components/schemas/AlertMessageDto'
        link:
          type: string
          description: The link of the alert
        deepLink:
          type: string
          description: The deep link of the alert
        category:
          type: string
          description: 'Enum, which defines the category of the alert'
          enum:
            - CARD
            - ACCOUNT
            - PRODUCT
            - PAYMENT_PROVIDER
            - PAYMENT
            - TRAVEL_SCHEME
            - OTHER
        alertIcon:
          type: string
          description: The icon of the alert
        senderId:
          type: string
          description: The sender Id
        senderName:
          type: string
          description: The name of the sender
        senderIcon:
          type: string
          description: The icon of the sender
        reasonCode:
          type: string
          description: The reason code of the alert
        reasonMessage:
          type: string
          description: The reason message of the alert
    InspectionServiceData:
      type: object
      properties:
        inst:
          type: string
          description: Temporar inspection token
          format: uuid
        trips:
          type: array
          items:
            $ref: '#/components/schemas/TripDetailDtoInst'
        tripsTransactions:
          type: array
          description: >-
            Transactions connected to trips via checkinTransactionId or checkoutTransactionId
          items:
            $ref: '#/components/schemas/TransactionDtoInst'
        otherTransactions:
          type: array
          description: >-
            Transactions not connected to trips e.g if trip does not exist yet or invalid transactions
          items:
            $ref: '#/components/schemas/TransactionDtoInst'
        alerts:
          type: array
          items:
            $ref: '#/components/schemas/AlertDetailDtoInst'
    TransactionDtoInst:
      type: object
      properties:
        transactionId:
          type: string
          description: Transaction ID generated by the external source system (e.g. UUID)
        transactionReference:
          type: string
          description: >-
            Reference number of each transaction on a PTO. Recommended value - UUID
        transactionType:
          type: string
          description: The type of the transaction.
        transactionSubtype:
          type: string
          description: Subtype of the transaction (optional)
        transportType:
          type: string
          description: 'Enum, which defines the type of the transport'
          enum:
            - AIR
            - BUS
            - COACH
            - FUNICULAR
            - METRO
            - RAIL
            - TROLLEYBUS
            - TRAM
            - WATER
            - CABLEWAY
            - OTHER
        transactionTimestamp:
          type: string
          format: date-time
          description: Timestamp from the device
        transactionBusinessDate:
          type: string
          format: date
          description: Business date of the transaction
        inst:
          type: string
          description: Temporar inspection token
          format: uuid
        tokenType:
          description: >-
            Type of the token e.g. EMV, GemaltoPure, EMV-CLT, OVC, GBO, Cibo (reserved for future use)
          type: string
        payloadContentType:
          type: string
          description: The content type of the payload
        payload:
          type: string
          description: binary payload
        mediaTxnSeqNumber:
          type: string
          description: >-
            Transaction sequence number as generated by the media, mandatory for EMV. (Transaction context to keep track of transaction sequence)
        deviceId:
          type: string
          description: The device identifier
        deviceSubId:
          type: string
          description: The device subidentifier
        deviceClassId:
          type: string
          description: The device class id
        businessEntityId:
          type: string
          description: >-
            Business Entity ID (or ServiceProviderId) of PTO. List to be provided by the project (TLS) and should be mapped to a list of IDBT Business Entity Ids.
        additionalAttributes:
          type: object
          description: Properties associated with the transaction
        createdAt:
          description: >-
            Datetime with ms part, when transaction was received by Notification processor
          type: string
    TripDetailDtoInst:
      type: object
      properties:
        tripId:
          type: integer
          description: Trip identification number
          format: int64
        tripVersion:
          type: integer
          description: >-
            Trip version number. New trip versions are created if fare has changed, a property other than fare has changed, a tap has been added, the trip has been outdated by another trip.
          format: int64
        tripStatus:
          type: string
          description: >-
            Enum, which defines the status of the trip. "COMPLETE" - has CKI and CKO, "CORRECTED" - was corrected by cardholder or support personnel, "CKI_EXPECTED" - system is waiting for a Check In transaction, "CKI_MISSING" - system stopped waiting for a Check In transaction, "CKO_EXPECTED" - system is waiting for a Check Out transaction, "CKO_MISSING" - system stopped waiting for a Check Out transaction, "ISN_PENDING" - inspection has taken place, but system is waiting for more transactions, "ISN_ONLY" - Inspection took place, but cardholder has not checked in
          enum:
            - COMPLETE
            - CORRECTED
            - CKI_EXPECTED
            - CKO_EXPECTED
            - CKI_MISSING
            - CKO_MISSING
            - ISN_PENDING
            - ISN_ONLY
        organisationIcon:
          type: string
          description: Relative URL to the corresponding icon of the PTO organisation
        organisationId:
          type: string
          description: Organisation identification code
        organisationName:
          type: string
          description: Name of the PTO organisation
        appliedValue:
          type: integer
          description: (RFU)
          format: int64
        vat:
          type: integer
          description: Value added tax (RFU)
          format: int64
        supersededByTripIds:
          type: array
          description: >-
            Present in case this trip has been outdated and replaced by another trips. This occurs if the matching of taps which are part of this trip is reconsidered.
          items:
            type: integer
            format: int64
        supersedesTripIds:
          type: array
          description: >-
            Present in case this trip replaces another outdated trips. This occurs if the matching of taps which are part of the original trip is reconsidered.
          items:
            type: integer
            format: int64
        products:
          type: array
          description: >-
            List of applied products for the whole trip with cumulated appliedValue of internal products used belonging to the sales package.


             Auditing is not supported on this level.
          items:
            $ref: '#/components/schemas/ProductDto'
        checkinTransactionTimestamp:
          type: string
          description: Timestamp of the Check-In
          format: date-time
        checkoutTransactionTimestamp:
          type: string
          description: Timestamp of the Check-Out
          format: date-time
        checkinTransactionReference:
          type: string
          description: Reference to the Check-In transaction
        checkoutTransactionReference:
          type: string
          description: Reference to the Check-Out transaction
        checkinLocation:
          $ref: '#/components/schemas/StopDto'
        checkoutLocation:
          $ref: '#/components/schemas/StopDto'
        inst:
          type: string
          description: Temporar inspection token
          format: uuid
        tokenType:
          type: string
          description: Type of the token
        tokenNumber:
          type: string
          description: Number of the token (RFU)
        tokenNickname:
          type: string
          description: Nickname of the token (RFU)
        transportType:
          type: string
          description: 'Enum, which defines the type of the transport'
          enum:
            - AIR
            - BUS
            - COACH
            - FUNICULAR
            - METRO
            - RAIL
            - TROLLEYBUS
            - TRAM
            - WATER
            - CABLEWAY
            - OTHER
        lineId:
          type: string
          description: >-
            Line identification code. In some networks (e.g. rail) is not available
        lineName:
          type: string
          description: Name of the line
        networkId:
          type: string
          description: >-
            Identifier of the network a validator is part of, optional for on-board and handheld validators
        networkName:
          type: string
          description: Name of the network
        currency:
          type: string
          description: Currency in currency code (ISO 4217)
        transportIcon:
          type: string
          description: Relative URL to the corresponding icon of the means of transport
        legs:
          type: array
          description: List of legs
          items:
            $ref: '#/components/schemas/LegDto'
        lastUpdatedTripDateTime:
          type: string
          description: Timestamp the last update of the trip
          format: date-time
        fare:
          type: integer
          description: >-
            Total fare value from product assignments, in eurocents, to be deducted from the cardholder's account
          format: int64
        loyaltyOrDiscount:
          type: boolean
          description: >-
            Loyalty of discount flag. True if some discount product was applied. (fare is lower than baseRate)
        supportCode:
          type: string
          description: Support code reference in CRM system
        tripVersionReason:
          type: string
          description: >-
            Enum, which defines the reason of the version of the trip. "NEW" - New trip, "FARE" - Fare has changed for the trip, "PROPERTY" - Some property of the trip has changed, "STRUCTURE" - Structure of the trip has changed, "OUTDATED" - The trip was outdated, "RECALCULATE" - The trip was recalculated due to tariff change
          enum:
            - NEW
            - FARE
            - PROPERTY
            - STRUCTURE
            - OUTDATED
            - RECALCULATE
        nature:
          type: string
          description: >-
            Enum, which defines the nature of the trip. \"ACCESS_DENIED\" - Access for passenger through the gate is denied, \"SAME_LOCATION_EXIT\" - Passenger checks-out at the same location as checked-in, \"OTHERS_RIDE\" - for the PTOs where the wrong check-out was done (aka invalid), \"OTHERS_TAPS\" - for PTOs to know that other TAP was done on the different network (aka autocorrected), \"OTHERS_LEGS\" - for future (shared) trips. Trip will contain transaction taps from both PTOs with synthetic taps somewhere in between
          enum:
            - ACCESS_DENIED
            - SAME_LOCATION_EXIT
            - OTHERS_RIDE
            - OTHERS_TAPS
            - OTHERS_LEGS
        payments:
          type: array
          description: List of payments - if embed payments is allowed
          items:
            $ref: '#/components/schemas/PaymentDto'
        checkinTransactionId:
          type: string
          description: ID of the Check-In transaction
        checkoutTransactionId:
          type: string
          description: ID of the Check-Out transaction
        transportSubType:
          type: string
          description: Subtype of the tansport (e.g. local bus)
        tariffVersionId:
          type: string
          description: Id of the used tariff version
        correlationId:
          type: string
          description: ID that links trip audit data
        auditing:
          type: object
          properties: {}
          description: Trip auditing data - if embed auditing is allowed
        settlements:
          type: array
          description: List of settlements - if embed settlement is allowed
          items:
            $ref: '#/components/schemas/TripSettlementDto'
        createdAt:
          type: string
          description: >-
            Datetime with ms part, when trip was received by Notification processor
        entryTariffLocation:
          $ref: '#/components/schemas/StopDto'
        traveledLines:
          type: array
          description: List of lines used along the ride in case of interlining
          items:
            $ref: '#/components/schemas/LineDto'
        tripStartTxnId:
          type: integer
          description: >-
            Trip CKI transaction identifier. Contains value of the CKI backOfficeTxnId attribute
          format: int64
        tripEndTxnId:
          type: integer
          description: >-
            Trip CKO transaction identifier. Contains value of the CKO backOfficeTxnId attribute
          format: int64
        numberOfSyntheticLegs:
          type: integer
          description: >-
            Number of real PTO trip segments (legs) travelled between CKI and CKO
          format: int64
        numberOfSyntheticTrips:
          type: integer
          description: Number of trips at real PTOs made between CKI and CKO
          format: int64
  examples:
    cacheAccessError500:
      value:
        errorMessage:
          referenceId: c4839b50-3be3-4311-b133-e8071b1356e7
          message: 'detail: Failed to retrieve data from cache'
        businessExceptions:
          - code: TM0001
            message: Internal system error
    cacheCastError500:
      value:
        errorMessage:
          referenceId: c4839b50-3be3-4311-b133-e8071b1356e7
          message: 'detail: Invalid entry type assigned.'
        businessExceptions:
          - code: TM0001
            message: Internal system error
    createPassengerAccountNA:
      value:
        externalAccountId: N/A
    createPassengerAccountNormal:
      value:
        externalAccountId: 87d0b0b0-7419-4549-9ec8-15adda9f7ad9
    dbAccessExternalPassengerAccountError500:
      value:
        errorMessage:
          referenceId: c4839b50-3be3-4311-b133-e8071b1356e7
          message: >-
            detail: Failed to load JpaExternalPassengerAccount due to <exceptionType> exception
        businessExceptions:
          - code: TM0001
            message: Internal system error
    dbAccessPassengerAccountError500:
      value:
        errorMessage:
          referenceId: c4839b50-3be3-4311-b133-e8071b1356e7
          message: >-
            detail: Failed to load JpaPassengerAccount due to <exceptionType> exception
        businessExceptions:
          - code: TM0001
            message: Internal system error
    dbAccessTransitAccountError500:
      value:
        errorMessage:
          referenceId: c4839b50-3be3-4311-b133-e8071b1356e7
          message: >-
            detail: Failed to load JpaTransitAccount due to <exceptionType> exception
        businessExceptions:
          - code: TM0001
            message: Internal system error
    emptyPassengerAccount200:
      value:
        externalAccountId: 7aecc75e-14c1-4ef2-9156-de838d0573b7
        status: ACTIVE
        externalTransitAccounts: []
    internalSystemError500:
      value:
        errorMessage:
          referenceId: d0a0e112-01c5-4d2a-9a24-cc245fceae57
          message: Internal system error
        businessExceptions:
          - code: TM0001
            message: Internal system error
    invalidInputDataPAT400:
      value:
        errorMessage:
          referenceId: 305dd6ce-fa6c-11eb-9a03-0242ac130003
          message: 'detail: Invalid format of provided PAT.'
        businessExceptions:
          - code: TM0002
            message: Invalid input data
    missingMandatoryInputsError400:
      value:
        errorMessage:
          referenceId: d0a0e112-01c5-4d2a-9a24-cc245fceae57
          message: Missing mandatory input(s)
        businessExceptions:
          - code: TM0003
            message: Missing mandatory input(s)
    notBountTATtoPAT400:
      value:
        errorMessage:
          referenceId: 305dd6ce-fa6c-11eb-9a03-0242ac130003
          message: >-
            detail: Transit account is not bound to the specified passenger account.
        businessExceptions:
          - code: TM0223
            message: Transit account is not bound to the specified passenger account.
    passengerAccountWith3TAs200:
      value:
        externalAccountId: 7aecc75e-14c1-4ef2-9156-de838d0573b7
        status: ACTIVE
        externalTransitAccounts:
          - xtat: 7d241f0b-3028-413f-8d37-909ae8d4e1bf
          - xtat: f3bad573-dfb9-4bf2-83bf-bef0f7447d2b
          - xtat: 45de7af4-4547-4e92-bf45-0cc016343d4a
    unknownBusinessEentityNotFound400:
      value:
        errorMessage:
          referenceId: 5efcdd70-fa6e-11eb-9a03-0242ac130003
          message: 'detail: Unknown external ID'
        businessExceptions:
          - code: TM0202
            message: Unknown business entity.
    unknownBusinessEntityMissingInput400:
      value:
        errorMessage:
          referenceId: 305dd6ce-fa6c-11eb-9a03-0242ac130003
          message: 'detail: Missing business entity external ID'
        businessExceptions:
          - code: TM0202
            message: Unknown business entity.
    unknownExternalPAT400:
      value:
        errorMessage:
          referenceId: 305dd6ce-fa6c-11eb-9a03-0242ac130003
          message: 'detail: Invalid format of provided xPAT.'
        businessExceptions:
          - code: TM0222
            message: Unknown external passenger account token.
    unknownExternalTAT400:
      value:
        errorMessage:
          referenceId: 305dd6ce-fa6c-11eb-9a03-0242ac130003
          message: 'detail: Invalid format of provided xTAT.'
        businessExceptions:
          - code: TM0207
            message: Unknown external transit account token.
    getGBOV1:
      value:
        status: ACTIVE
        media:
          - mediumType: GBO
            trueTokenId: 79514dbd-8981-4236-8f35-2cdb946d61f7
            engravedId: 70e0cf43-9a10-465f-870b-198ad1b330a0
            formFactor: phone
            status: Active
            reason: Registered
            xbot: ed471c5c-6d1f-4d0d-a3b1-dbf9e3560317
        paymentMethodInstances:
          - paymentMethodId: 05ebfa81-1d5a-48a9-a9f3-bfc74fd97379
            paymentMethodMode: post-paid
            status: Active
            externalAccountId: ce105e39-eb0b-4e12-803e-44964d7e23ee
            paymentProviderName: ARR_POSTPAID
            businessEntityId: '600005'
            order: 2
            xpmit: 9bfb1874-af02-4225-92c2-1bcdebda51ac
        salesPackages:
          - packageTemplateId: N/A
            packageAmount:
              amount: 0
              currency: EUR
            salesChannelType: SYSTEM
            products:
              - localization:
                  - language: nl-NL
                    textType: publicName
                    text: Pay As You Go Program (NL)
                  - language: en-US
                    textType: publicName
                    text: Pay As You Go Program
                salesItemProduct:
                  productTemplateId: '1010'
                  validPeriod:
                    fromInclusive: '2021-07-15T13:32:23Z'
                    untilInclusive: '2099-12-31T23:59:59Z'
                  status: ACTIVE
                  itemType: TRAVEL_PRODUCT
                  nameInfo:
                    name: Pay-As-You-Go Program
                    description: Pay-As-You-Go Program
                  itemAmount:
                    amount: 0
                    currency: EUR
                  xpit: 799a43c1-a2d2-435c-ab58-e54aca5f16b4
                typesOfFareProduct:
                  - privateCode: payg
            salesTimestamp: '2021-07-15T13:32:23Z'
            xspit: e7ff6c8a-43e1-4cb3-871c-f3f38cd48a57
        profileInstances: []
    getTACiboV1_NANO:
      value:
        status: ACTIVE
        swipedIn: true
        entrainmentData: >-
          [{"type":"ADULTS","count":1},{"type":"CHILDREN","count":5},{"type":"BIKES","count":6}]
        sdkId: PKO4FJWQ84VW
        media:
          - mediumType: Cibo
            trueTokenId: 3643646813597105935ARRIVA
            engravedId: '34536543985634.1'
            formFactor: phone
            status: Active
            reason: Registered
            xbot: e1307c73-676a-4d07-967b-6141276f7c7c
            propertyBag:
              items:
                - key: sub
                  value: '3643646813597105935'
                - key: value
                  value: ARRIVA
        paymentMethodInstances:
          - paymentMethodId: 66d7e618-f4c6-4f5b-bfe0-74373e465e5b
            paymentMethodMode: post-paid
            status: Active
            paymentProviderName: CIBO_POSTPAID
            order: 1
            xpmit: bbf5a287-880f-4a43-90be-0467790b3ccf
        salesPackages:
          - packageTemplateId: N/A
            packageAmount:
              amount: 0
              currency: EUR
            salesChannelType: SYSTEM
            products:
              - salesItemProduct:
                  productTemplateId: '1010'
                  validPeriod:
                    fromInclusive: '2021-08-20T10:28:26Z'
                    untilInclusive: '2099-12-31T23:59:59Z'
                  xpit: 3c4392d6-67ae-43b1-b977-b1e9f4cb6d6b
                  status: ACTIVE
                  itemType: TRAVEL_PRODUCT
                  itemAmount:
                    amount: 0
                    currency: EUR
            salesTimestamp: '2021-08-20T10:28:26Z'
            xspit: b1084193-3aec-4e22-b07c-0cf91b9c402e
        profileInstances: []
    getTAEmvV1:
      value:
        status: CREATED
        media:
          - mediumType: EMV
            trueTokenId: 673703*********6342/2311
            status: Active
            reason: AutoCreated
            xbot: 5914b070-46e3-4b02-b032-4550ad42e26a
            expirationDate: '2023-11-30T23:59:00+01:00'
        paymentMethodInstances:
          - paymentMethodId: d23ea548-1a33-4880-9dce-c02c18f90c73
            paymentMethodMode: EMV_TRANSIT
            status: Active
            paymentProviderName: EMV Transit
            businessEntityId: '500001'
            order: 1
            pmit: d3452bd4-4ae8-476b-ba33-e92b5c2b2cae
        salesPackages:
          - packageTemplateId: N/A
            packageAmount:
              amount: 0
              currency: EUR
            salesChannelType: SYSTEM
            products:
              - salesItemProduct:
                  productTemplateId: '1010'
                  validPeriod:
                    fromInclusive: '2021-04-07T15:38:15+02:00'
                    untilInclusive: '2100-01-01T00:59:59+01:00'
                  tariffVersionId: '1'
                  status: ACTIVE
                  itemType: TRAVEL_PRODUCT
                  nameInfo:
                    name: Pay-As-You-Go Program
                    description: Pay-As-You-Go Program
                  itemAmount:
                    amount: 0
                    currency: EUR
                  xpit: fc98aaab-99bf-4b6e-b90c-980771dbfb61
                localization:
                  - language: nl-NL
                    textType: publicName
                    text: Pay As You Go Program (NL)
                  - language: en-US
                    textType: publicName
                    text: Pay As You Go Program
                typesOfFareProduct:
                  - privateCode: payg
            salesTimestamp: '2021-04-07T15:38:15+02:00'
            xspit: 1c345237-4d84-47f0-93c2-7b94338e3355
        profileInstances: []
    getTAMastercardWithProductsV1:
      value:
        status: ACTIVE
        media:
          - mediumType: GemaltoPure
            trueTokenId: 310671*********1060/2512
            engravedId: 352810******1136
            serviceToken: 4fa4d-1ro4d-c389f
            status: Active
            reason: NotAvailable
            expirationDate: '2025-12-31T23:59:00Z'
            xbot: 13060c16-88ac-4e23-85e8-a17a513046ec
        paymentMethodInstances:
          - paymentMethodId: 66d7e618-f4c6-4f5b-bfe0-74373e465e5b
            paymentMethodMode: post-paid
            status: Active
            externalAccountId: bee3e638-ebec-4834-b093-3f4aea5b635e
            paymentProviderName: NS_POSTPAID
            businessEntityId: '600001'
            order: 1
            xpmit: 4d1c3f24-8fbd-41be-99f8-dacc6ea3814b
        salesPackages:
          - image: icons/salespackages/sp09001.svg
            url: salespackages/sp09001
            packageTemplateId: sp09001
            tariffVersionId: 'PC:7'
            packageAmount:
              amount: 0
              currency: EUR
            name: Yearly BTM discount product Almere (from retailer Keolis)
            description: >-
              For bus fares in Almere, the product gives 40% discount during peak period for one calendar year from purchase.
            salesChannelType: '21001'
            retailerId: '9'
            localization:
              - language: nl-NL
                textType: publicName
                text: >-
                  Jaarabonnement Bus kortingsprodukt Almere (van verkoper Keolis)
              - language: en-US
                textType: publicName
                text: Yearly BTM discount product Almere (from retailer Keolis)
            products:
              - localization:
                  - language: nl-NL
                    textType: publicName
                    text: Keolis kortingsprodukt Almere
                  - language: en-US
                    textType: publicName
                    text: Keolis discount product Almere
                  - language: nl-NL
                    textType: description
                    text: >-
                      Het produkt geeft 40% korting in de spits bij allGo en Rnet busreizen in Almere.
                  - language: en-US
                    textType: description
                    text: >-
                      The product gives 40% discount during peak period while travelling with allGo and Rnet in Almere.
                salesItemProduct:
                  productTemplateId: '09001'
                  validPeriod:
                    fromInclusive: '2021-07-05T09:41:08Z'
                    untilInclusive: '2022-07-05T09:41:08Z'
                  productOwnerId: '9'
                  usablePeriod:
                    fromInclusive: '2021-07-05T09:41:08Z'
                    untilInclusive: '2022-07-05T09:41:08Z'
                  status: ACTIVE
                  itemType: TRAVEL_PRODUCT
                  nameInfo:
                    name: Keolis Bus kortingsprodukt
                    description: >-
                      Het produkt geeft 40% korting in de spits bij allGo en Rnet busreizen in Almere.
                  itemAmount:
                    amount: 0
                    currency: EUR
                  xpit: 0074f6b0-2783-4cfc-93dd-ca1d9f7c2f52
                typesOfFareProduct:
                  - privateCode: discount
            salesTimestamp: '2021-07-05T09:41:08Z'
            xspit: 8ed13c1b-5a8d-477f-aefc-7eaa7683247e
          - packageTemplateId: N/A
            packageAmount:
              amount: 0
              currency: EUR
            salesChannelType: SYSTEM
            products:
              - localization:
                  - language: nl-NL
                    textType: publicName
                    text: Pay As You Go Program (NL)
                  - language: en-US
                    textType: publicName
                    text: Pay As You Go Program
                salesItemProduct:
                  productTemplateId: '1010'
                  validPeriod:
                    fromInclusive: '2021-07-05T08:38:03Z'
                    untilInclusive: '2099-12-31T23:59:59Z'
                  status: ACTIVE
                  itemType: TRAVEL_PRODUCT
                  nameInfo:
                    name: Pay-As-You-Go Program
                    description: Pay-As-You-Go Program
                  itemAmount:
                    amount: 0
                    currency: EUR
                  xpit: 2e93c841-8759-430f-b75c-3e1b15435ae0
                typesOfFareProduct:
                  - privateCode: payg
            salesTimestamp: '2021-07-05T08:38:03Z'
            xspit: 586def05-c0c0-4ccb-8368-1e71730ec313
        profileInstances:
          - profileType: '199900100'
            validPeriod:
              fromInclusive: '2021-09-18T13:11:11+02:00'
              untilInclusive: '2026-01-01T01:00:00+01:00'
            xprofit: ad7c62d0-2fc0-47d4-9307-cf03bf53ef4b
    getTAOvcV1:
      value:
        status: ACTIVE
        media:
          - mediumType: OVC
            trueTokenId: '3200484346.0'
            engravedId: '3528083200484346'
            status: Active
            reason: Registered
            expirationDate: '2025-07-20T10:07:00Z'
            xbot: 80457aaa-9604-485a-855a-c65dba4572eb
        paymentMethodInstances:
          - paymentMethodId: fd0a16a0-c5b4-4921-b22a-9e7088eec8af
            paymentMethodMode: post-paid
            status: Active
            externalAccountId: '3528083200484346'
            paymentProviderName: OVC_POSTPAID
            businessEntityId: '600002'
            order: 1
            xpmit: 62339c1c-7e84-47b3-bf2b-74f844d5a4b1
        salesPackages:
          - image: icons/salespackages/NS_Dal40.svg
            url: salespackages/NS_Dal40
            packageTemplateId: sp_NS_Dal40
            tariffVersionId: 'PC:22'
            packageAmount:
              amount: 500
              currency: EUR
            name: OffPeak Benefit
            description: 40% discount at weekends and outside peak hours
            salesChannelType: OVCR-504
            retailerId: '504'
            localization:
              - language: nl-NL
                textType: publicName
                text: Dal 40
              - language: en-US
                textType: publicName
                text: OffPeak Benefit
            products:
              - localization:
                  - language: nl-NL
                    textType: publicName
                    text: Dal 40% Korting
                  - language: en-US
                    textType: publicName
                    text: OffPeak 40% Discount
                salesItemProduct:
                  productTemplateId: NS_Dal40
                  validPeriod:
                    fromInclusive: '2021-08-10T22:00:00Z'
                    untilInclusive: '2022-05-31T21:59:59Z'
                  productOwnerId: '504'
                  usablePeriod:
                    fromInclusive: '2021-08-10T22:00:00Z'
                    untilInclusive: '2022-05-31T21:59:59Z'
                  status: ACTIVE
                  itemType: TRAVEL_PRODUCT
                  nameInfo:
                    name: OffPeak 40% Discount
                    description: The product gives 40% discount outside peak hours
                  itemAmount:
                    amount: 500
                    currency: EUR
                  xpit: 40b9f753-8c75-444a-9c9a-e491648516f4
                typesOfFareProduct:
                  - privateCode: discount
            salesTimestamp: '2021-08-11T12:46:27Z'
            xspit: ba6a4ba3-d030-40ff-9ec9-552f3cd3f0fb
          - image: icons/salespackages/NS_weekend_40.svg
            url: salespackages/NS_weekend40
            packageTemplateId: sp_NS_Weekend40
            tariffVersionId: 'PC:22'
            packageAmount:
              amount: 500
              currency: EUR
            name: OffPeak Benefit
            description: 40% discount at weekends and outside peak hours
            salesChannelType: OVCR-504
            retailerId: '504'
            localization:
              - language: nl-NL
                textType: publicName
                text: Weekend 40
              - language: en-US
                textType: publicName
                text: Weekend 40
            products:
              - localization:
                  - language: nl-NL
                    textType: publicName
                    text: Weekend 40% Korting
                  - language: en-US
                    textType: publicName
                    text: Weekend 40% Discount
                salesItemProduct:
                  productTemplateId: NS_Weekend40
                  validPeriod:
                    fromInclusive: '2021-08-10T22:00:00Z'
                    untilInclusive: '2022-05-31T21:59:59Z'
                  productOwnerId: '504'
                  usablePeriod:
                    fromInclusive: '2021-08-10T22:00:00Z'
                    untilInclusive: '2022-05-31T21:59:59Z'
                  status: ACTIVE
                  itemType: TRAVEL_PRODUCT
                  nameInfo:
                    name: Weekend 40% Discount
                    description: The product gives 40% discount at weekend
                  itemAmount:
                    amount: 500
                    currency: EUR
                  xpit: a09dcb62-1edd-4d5b-8045-a9a3020945f1
                typesOfFareProduct:
                  - privateCode: discount
            salesTimestamp: '2021-08-11T12:46:27Z'
            xspit: 873b27a7-54d0-453a-85e4-8a9b58de4413
          - image: icons/salespackages/TrajectVrij2eKl.svg
            url: salespackages/TrajectVrij2eKl
            packageTemplateId: sp_NS_TrajectVrij2eKl
            tariffVersionId: 'PC:22'
            packageAmount:
              amount: 1000
              currency: EUR
            name: Trajectory Free 2nd class
            description: >-
              Gives 100% discount from 2nd class fare on the specified trajectory at all times
            salesChannelType: OVCR-504
            retailerId: '504'
            localization:
              - language: nl-NL
                textType: publicName
                text: Traject Vrij 2e klas
              - language: en-US
                textType: publicName
                text: Trajectory Free 2nd class
            products:
              - localization:
                  - language: nl-NL
                    textType: publicName
                    text: Traject Vrij 2e klas
                  - language: en-US
                    textType: publicName
                    text: Trajectory Free 2nd class
                salesItemProduct:
                  productTemplateId: NS_TrajectVrij2eKl
                  validPeriod:
                    fromInclusive: '2021-08-10T22:00:00Z'
                    untilInclusive: '2022-05-31T21:59:59Z'
                  productOwnerId: '504'
                  usablePeriod:
                    fromInclusive: '2021-08-10T22:00:00Z'
                    untilInclusive: '2022-05-31T21:59:59Z'
                  status: ACTIVE
                  itemType: TRAVEL_PRODUCT
                  nameInfo:
                    name: Trajectory Free 2nd class
                    description: >-
                      The product gives 100% discount from 2nd class fare on the specified trajectory at all times
                  itemAmount:
                    amount: 1000
                    currency: EUR
                  parameters:
                    seriesConstraint:
                      from:
                        tariffLocationId: '58'
                      to:
                        tariffLocationId: '530'
                  xpit: e09cb30e-c7ec-4030-be9e-241b1779159b
                typesOfFareProduct:
                  - privateCode: discount
            salesTimestamp: '2021-08-11T12:46:27Z'
            xspit: f76b24fe-12ce-4140-b86e-f44064c3b3e9
          - packageTemplateId: N/A
            packageAmount:
              amount: 0
              currency: EUR
            salesChannelType: SYSTEM
            products:
              - localization:
                  - language: nl-NL
                    textType: publicName
                    text: Pay As You Go Program (NL)
                  - language: en-US
                    textType: publicName
                    text: Pay As You Go Program
                salesItemProduct:
                  productTemplateId: '1010'
                  validPeriod:
                    fromInclusive: '2021-07-05T07:21:03Z'
                    untilInclusive: '2099-12-31T23:59:59Z'
                  status: ACTIVE
                  itemType: TRAVEL_PRODUCT
                  nameInfo:
                    name: Pay-As-You-Go Program
                    description: Pay-As-You-Go Program
                  itemAmount:
                    amount: 0
                    currency: EUR
                  xpit: 740723bb-ac1a-4306-a050-1a7212bad7b7
                typesOfFareProduct:
                  - privateCode: payg
            salesTimestamp: '2021-07-05T07:21:03Z'
            xspit: bbaf6b57-8bc6-48a0-8141-824a812caa03
        profileInstances: []
    GetXbotDetailsAndDebtAndListStatus:
      value:
        mediumType: GemaltoPure
        trueTokenId: '4012888888881881'
        engravedId: '4012888888881881'
        serviceToken: 8bZxy-Zy6Ey-S5gN2
        status: Active
        expirationDate: '2019-07-16T11:00:00+02:00'
        activationCode: asd480
        propertyBag:
          items:
            - key: string
              value: string
        formFactor: card
        externalUUID: 6a9c03d4-1512-4be5-87c2-77d86929c040
        debt: 120
        trips:
          - businessEntityId: '1'
            debt: 120
            tripId: 13645
            tripVersion: 1
            transportType: BUS
            lineId: '125'
            lineName: Airport shuttle
            tripStatus: COMPLETE
            tokenType: EMV
            tokenNumber: '12'
            fare: 120
            currency: EUR
            lastUpdatedTripDateTime: '2019-11-25T17:39:45.000Z'
            checkinLocation:
              stopId: 14
              stopCode: '145'
              stopName:
                items:
                  - key: en-US
                    value: Central Airport Station
              stopDesc: Central Airport Station
              stopLat: 38.8889
              stopLon: 14.58889
              stopUrl: /icons/stops/stop.svg
              locationType: 0
              locationDescription: main location
              parentStation: 123
            checkoutLocation:
              stopId: 14
              stopCode: '145'
              stopName:
                items:
                  - key: en-US
                    value: Central Airport Station
              stopDesc: Central Airport Station
              stopLat: 38.8889
              stopLon: 14.58889
              stopUrl: /icons/stops/stop.svg
              locationType: 0
              locationDescription: main location
              parentStation: 123
            loyaltyOrDiscount: false
            transportIcon: /icons/bus/bus.svg
            transportSubType: local bus
            additionalProp1: {}
            xbot: 6a9c03d4-1512-4be5-87c2-77d86929c040
        additionalProp1: {}
        xbot: 6a9c03d4-1512-4be5-87c2-77d86929c040
        allowListed: false
        denyListed: true
    dbAccessError500:
      value:
        errorMessage:
          referenceId: c4839b50-3be3-4311-b133-e8071b1356e7
          message: 'detail: Failed to load Business Entity'
        businessExceptions:
          - code: TM0001
            message: Internal system error
    dbAccessMediumError500:
      value:
        errorMessage:
          referenceId: c4839b50-3be3-4311-b133-e8071b1356e7
          message: 'detail: Failed to load JpaMedium due to <exceptionType> exception'
        businessExceptions:
          - code: TM0001
            message: Internal system error
    emitEventToOrchestratorError500:
      value:
        errorMessage:
          referenceId: d0a0e112-01c5-4d2a-9a24-cc245fceae57
          message: Failed to fire and persist failed event!
        businessExceptions:
          - code: TM0001
            message: Internal system error
    getMediaByXBotResponseBarcode:
      value:
        mediumType: Barcode
        status: Active
        reason: AutoCreated
        xbot: e1307c73-676a-4d07-967b-6141276f7c7c
    getMediaByXBotResponseCiboNano:
      value:
        mediumType: Cibo
        trueTokenId: 8632983369136338741ARRIVA
        formFactor: phone
        status: Active
        reason: Registered
        xbot: e1307c73-676a-4d07-967b-6141276f7c7c
        propertyBag:
          items:
            - key: sub
              value: '8632983369136338741'
            - key: value
              value: ARRIVA
    getMediaByXBotResponseCiboTera:
      value:
        mediumType: Cibo
        trueTokenId: '34536543985634.1'
        engravedId: '34536543985634.1'
        formFactor: phone
        status: Active
        reason: Registered
        bot: e1307c73-676a-4d07-967b-6141276f7c7c
    getMediaByXBotResponseEMV:
      value:
        mediumType: EMV
        trueTokenId: 442114******4484/2205
        status: Active
        reason: AutoCreated
        xbot: e1307c73-676a-4d07-967b-6141276f7c7c
        expirationDate: '2022-05-31T23:59:00+02:00'
        bin: '123456'
        issuerCountryCode: '008'
    getMediaByXBotResponseGBO:
      value:
        mediumType: GBO
        trueTokenId: 7a56cf24-19a0-4b7c-b25c-d0f8b30cac52
        engravedId: e8b26e45-b724-436a-a96c-da84bc25d240
        formFactor: phone
        status: Active
        reason: Registered
        xbot: e1307c73-676a-4d07-967b-6141276f7c7c
    getMediaByXBotResponseGemaltoPure:
      value:
        mediumType: GemaltoPure
        trueTokenId: 665878******8573/2205
        status: OnStock
        reason: CardImported
        xbot: e1307c73-676a-4d07-967b-6141276f7c7c
        expirationDate: '2022-05-31T23:59:00+02:00'
        bin: '123456'
        issuerCountryCode: '008'
    getMediaByXBotResponseMasterCardWL:
      value:
        mediumType: MasterCardWL
        trueTokenId: 546413******4233/2205
        status: OnStock
        reason: CardImported
        xbot: e1307c73-676a-4d07-967b-6141276f7c7c
        expirationDate: '2022-05-31T23:59:00+02:00'
        bin: '123456'
        issuerCountryCode: '008'
    getMediaByXBotResponseOVC:
      value:
        mediumType: OVC
        trueTokenId: '3846739593.0'
        engravedId: '3528893435729013'
        status: Active
        reason: Registered
        xbot: e1307c73-676a-4d07-967b-6141276f7c7c
    getMediaByXBotResponseQRCodeV2:
      value:
        mediumType: qrcode
        trueTokenId: 91F7AD206F394361A747
        engravedId: vjVR6M.mXP.cw
        expirationDate: '2024-08-31T23:59:00Z'
        status: Active
        reason: AutoCreated
        xbot: e1307c73-676a-4d07-967b-6141276f7c7c
        propertyBag:
          items:
            - key: validationCode
              value: D2P43Y.ekJ
            - key: qrCodeContent
              value: 0291F7AD206F394361A74734080202000E437573746F6D205061796C6F61643045022010DD4C02042C99AC8CDF6C69F56CB2ECB89EC48379AD451EB7357F222E1B645A022100F64EDF87F166620C54E3A73177916BC19A3B8A87D84E8141360FD1DC60AE74E1
    getMediaByXBotResponseSwissPass:
      value:
        mediumType: SwissPass
        status: Active
        reason: AutoCreated
        xbot: e1307c73-676a-4d07-967b-6141276f7c7c
    invalidInputDataxBOT400:
      value:
        errorMessage:
          referenceId: 305dd6ce-fa6c-11eb-9a03-0242ac130003
          message: 'detail: Invalid format of provided xBOT.'
        businessExceptions:
          - code: TM0002
            message: Invalid input data
    mediaNotBoundError400:
      value:
        errorMessage:
          referenceId: d0a0e112-01c5-4d2a-9a24-cc245fceae57
          message: Media is not associated with transit account.
        businessExceptions:
          - code: TM0230
            message: Media is not associated with transit account.
    mediumTypeMissmatchError400:
      value:
        errorMessage:
          referenceId: d0a0e112-01c5-4d2a-9a24-cc245fceae57
          message: >-
            Medium type in the request doesn't match the mediumType in TokenVault.
        businessExceptions:
          - code: TM0231
            message: >-
              Medium type in the request doesn't match the mediumType in TokenVault.
    persistenceError500:
      value:
        errorMessage:
          referenceId: d0a0e112-01c5-4d2a-9a24-cc245fceae57
          message: Persistence exception occured.
        businessExceptions:
          - code: TM0001
            message: Internal system error
    unknownExternalBackOfficeToken400:
      value:
        errorMessage:
          referenceId: 305dd6ce-fa6c-11eb-9a03-0242ac130003
          message: Unknown external back-office token.
        businessExceptions:
          - code: TM0204
            message: Unknown external back-office token.
    unknownXBotError400:
      value:
        errorMessage:
          referenceId: d0a0e112-01c5-4d2a-9a24-cc245fceae57
          message: Unknown External BackOffice Token.
        businessExceptions:
          - code: TM0203
            message: Unknown External BackOffice Token.
    paymentMethodPostPaid:
      value:
        paymentMethodId: 66d7e618-f4c6-4f5b-bfe0-74373e465e5b
        status: Active
        externalAccountId: PAY_7f2a99a3-aec7-4d75-8586-bdf20dc8d6af
        order: 1
        contractStartDate: '2032-04-02'
        minimalContractEndDateInclusive: '2034-04-02'
    paymentMethodWithFundingSource:
      value:
        paymentMethodId: 7aecc75e-14c1-4ef2-9156-de838d0573b7
        status: Active
        externalAccountId: PAY_7f2a99a3-aec7-4d75-8586-bdf20dc8d6af
        order: 1
        fundingSourceId: c4839b50-3be3-4311-b133-e8071b1356e7
        billingCycle:
          minimalDueAmount: 50
          forcePaymentAfterPeriods: 1
          paymentExecutionDateDelayInDays: 10
          dueDateDelayInDays: 15
          recurrence:
            period: MONTHLY
            every: 2
  securitySchemes:
    OAuthAuthorization:
      type: oauth2
      description: >
        API security used for securing machine-to-machine comunication using OAuth2.0 protocol <BR>

        For now users will *not be* authorized with OAuth2.0

      flows:
        clientCredentials:
          tokenUrl: /auth/oauth2/token
          scopes:
            default: scope is configured by role assigned to client credentials
