openapi: 3.0.3
info:
  title: debiX API
  version: 1.14.0
servers:
  - url: https://api.six-group.com/api/debix/bank/v1
    description: PROD - Internet
  - url: https://api-preprod.np.six-group.com/api/debix-qa/bank/v1
    description: TEST - Internet
  - url: https://api.six.ssfn.ch/api/debix/bank/v1
    description: PROD - SSFN
  - url: https://api-preprod.np.six.ssfn.ch/api/debix-qa/bank/v1
    description: TEST - SSFN
  - url: https://api.p2p.six-group.com/api/debix/bank/v1
    description: PROD - P2P
  - url: https://api-preprod.np.p2p.six-group.com/api/debix-qa/bank/v1
    description: TEST - P2P
tags:
  - name: Health check
    description: >-
      Allows to verify the availability of the API, the access to it across all
      layers, as well as the client authentication.
  - name: Card lifecycle
    description: Orders new cards, retrieves and updates card data.
  - name: PIN management
    description: Sets and manages the PIN for a card.
  - name: Sensitive card data
    description: Retrieves sensitive card data.
  - name: 3DS lifecycle
    description: >-
      Allows card registrations and deregistrations for 3DS and updates
      3DS-related card data.
  - name: Provisioning wallet encryption
    description: >-
      Provides encrypted card data for the Wallet In-App provisioning of cards
      via Thales SDK.
  - name: Provisioning C2P encryption
    description: >-
      Provides encrypted card data for the provisioning of cards for Click to
      Pay via Thales SDK.
  - name: Token lifecycle management
    description: Retrieves and manages digital cards (tokens) for cards.
  - name: Transaction list
    description: Retrieves not expired transactions for cards and digital cards.
  - name: Merchant logo
    description: Retrieves merchant logo for transactions.
  - name: Beta
    description: Feature under development, subject to change.
security: []
paths:
  /healthcheck:
    get:
      tags:
        - Health check
      summary: Health check using GET method.
      description: Returns a status message of the system.
      operationId: healthcheckForGet
      parameters:
        - $ref: '#/components/parameters/RequestIdHeader'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HealthCheckResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
    post:
      tags:
        - Health check
      summary: Health check using POST method.
      description: Returns the request body. This operation will not modify the system.
      operationId: healthCheckForPost
      parameters:
        - $ref: '#/components/parameters/RequestIdHeader'
      requestBody:
        description: Any message which is expected in the response.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HealthCheckRequest'
        required: true
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HealthCheckResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
    put:
      tags:
        - Health check
      summary: Health check using PUT method.
      description: Returns the request body. This operation will not modify the system.
      operationId: healthCheckForPut
      parameters:
        - $ref: '#/components/parameters/RequestIdHeader'
      requestBody:
        description: Any message which is expected in the response.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HealthCheckRequest'
        required: true
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HealthCheckResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
  /cards:
    post:
      tags:
        - Card lifecycle
      summary: Orders a new card.
      description: >
        Orders a new virtual card optionally with a reference to an existing
        parent card.


        In case the feature toggle values are not specified in the request,
        either directly, or by referencing a parentCard with the
        takeoverFeatureToggles set to true, the 

        feature toggles will receive the following default values:

        | Feature Flag                 | Default Value            |

        |------------------------------|--------------------------|

        | eCommerceAllowed             | true                     |

        | trxOnlyAsChipAndPin          | false                    |

        | magStripePaymentAllowed      | true                     |

        | automaticBilling             | true                     |

        | purchaseWithCashBackAllowed  | true                     |

        | merchantInitiatedTrxAllowed  | true                     |

        | atmAllowed                   | true                     |

        | posAllowed                   | true                     |

        | motoAllowed                  | true                     |

        | bypassGeoblocking            | true                     |

        | moneySendReceiveAccepted     | true                     |

        | moneySendReceiveAllowance    | RECEIVE_AND_SEND_ALLOWED |

        | reservationAllowed           | true                     |

        | transactionPushEnabled       | true                     |

        | gamblingAndBettingAllowance  | ALLOWED                  |

        | blockedMerchantCategoryCodes | (empty List)             |


        If both moneySendReceiveAccepted (deprecated) and
        moneySendReceiveAllowance are set, moneySendReceiveAccepted will be
        ignored.


        In addition to standard application error codes, following codes can be
        returned:

        * 4432: BANK_CLEARING_NUMBER_NOT_CONFIGURED

        * 4443: UNKNOWN_PARENT_CARD

        * 4444: VIRTUAL_CARD_EQUALS_PARENT_CARD

        * 4445: CARD_ALREADY_EXISTING

        * 4446: DELIVERY_INFORMATION_FOR_OTRC_MISSING
      operationId: orderCard
      parameters:
        - $ref: '#/components/parameters/RequestIdHeader'
      requestBody:
        description: Configuration specifying the new card to be ordered.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CardOrderRequest'
        required: true
      responses:
        '202':
          description: Accepted
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        '404':
          description: Not found or card is deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
  /cards/encrypt-card-data:
    post:
      tags:
        - Provisioning wallet encryption
      summary: Returns encrypted card data.
      description: >
        Returns the encrypted card data for the provisioning of a funding debit
        card, specified by its cardId, into a wallet with Thales SDK.


        In addition to standard application error codes, following codes can be
        returned:

        * 4430 - UNKNOWN_CARD

        * 4432 - BANK_CLEARING_NUMBER_NOT_CONFIGURED

        * 4436 - CARD_INACTIVE

        * 4449 - TOKENIZATION_NOT_SUPPORTED
      operationId: getEncryptedCardData
      parameters:
        - $ref: '#/components/parameters/RequestIdHeader'
      requestBody:
        description: Card data to encrypt.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CardEncryptionRequest'
        required: true
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardEncryptionResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        '404':
          description: Not found or card is deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
  /cards/encrypt-card-data/click-to-pay:
    post:
      tags:
        - Provisioning C2P encryption
      summary: Returns encrypted card data for click to pay.
      description: >
        Returns the encrypted card data for the provisioning of a funding debit
        card for click to pay into a wallet with Thales SDK.


        In addition to standard application error codes, following codes can be
        returned:

        * 4430 - UNKNOWN_CARD

        * 4432 - BANK_CLEARING_NUMBER_NOT_CONFIGURED

        * 4436 - CARD_INACTIVE

        * 4449 - TOKENIZATION_NOT_SUPPORTED

        * 4460 - ECOMMERCE_FEATURE_TOGGLE_NOT_ACTIVATED

        * 4461 - INCOMPLETE_OR_MISSING_ADDRESS_DATA
      operationId: getEncryptedCardDataClickToPay
      parameters:
        - $ref: '#/components/parameters/RequestIdHeader'
      requestBody:
        description: Card data to encrypt.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClickToPayCardEncryptionRequest'
        required: true
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClickToPayCardEncryptionResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
  /cards/click-to-pay/status:
    post:
      tags:
        - Provisioning C2P encryption
      summary: Checks for existing click-to-pay registrations.
      description: >
        Returns the DPAN associated with the given arguments for click-to-pay.
        Will return no DPAN if no association exists.


        In addition to standard application error codes, following codes can be
        returned:

        * 4430 - UNKNOWN_CARD

        * 4432 - BANK_CLEARING_NUMBER_NOT_CONFIGURED

        * 4449 - TOKENIZATION_NOT_SUPPORTED
      operationId: getClickToPayStatus
      parameters:
        - $ref: '#/components/parameters/RequestIdHeader'
      requestBody:
        description: Identifier of the card for which to return the registered DPAN.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClickToPayStatusRequest'
        required: true
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClickToPayStatusResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        '404':
          description: Card not found or deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
  /cards/generate-authorization-code:
    post:
      tags:
        - Provisioning wallet encryption
        - Provisioning C2P encryption
      summary: Returns an authorization code.
      description: >
        Returns an authorization code for the provisioning of a funding debit
        card, specified by its cardId, into a wallet with Thales SDK. The code
        is valid for five minutes.  


        In addition to standard application error codes, following codes can be
        returned:

        * 4430 - UNKNOWN_CARD

        * 4432 - BANK_CLEARING_NUMBER_NOT_CONFIGURED

        * 4433 - UNKNOWN_WALLET_PROVIDER

        * 4436 - CARD_INACTIVE

        * 4449 - TOKENIZATION_NOT_SUPPORTED

        * 4454 - EXCLUDED_WALLET_PROVIDER
      operationId: getAuthorizationCode
      parameters:
        - $ref: '#/components/parameters/RequestIdHeader'
      requestBody:
        description: >-
          Card identifier and wallet for the generation of the authorization
          code.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthorizationCodeRequest'
        required: true
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorizationCodeResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        '404':
          description: Not found or card is deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
  /cards/3ds:
    post:
      tags:
        - 3DS lifecycle
      summary: Registers the card for 3DS.
      description: >
        If a card with the provided card data is not yet registered for 3DS, the
        registration will take place.


        In addition to standard application error codes, following codes can be
        returned:

        * 4430 - UNKNOWN_CARD

        * 4434 - THREE_DS_NOT_ENABLED_FOR_ISSUER

        * 4435 - CARD_ALREADY_REGISTERED_FOR_THREE_DS

        * 4436 - CARD_INACTIVE

        * 4453 - THREE_DS_OOB_NOT_ENABLED_FOR_ISSUER
      operationId: threeDsRegister
      parameters:
        - $ref: '#/components/parameters/RequestIdHeader'
      requestBody:
        description: Card and 3DS-related data.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ThreeDsRegisterRequest'
        required: true
      responses:
        '204':
          description: The card was successfully registered for 3DS.
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        '404':
          description: Not found or card is deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
    put:
      tags:
        - 3DS lifecycle
      summary: Updates the 3DS data.
      description: >
        If the request contains new information, the 3DS data will be updated
        for the given card.


        In addition to standard application error codes, following codes can be
        returned:

        * 4430 - UNKNOWN_CARD

        * 4434 - THREE_DS_NOT_ENABLED_FOR_ISSUER

        * 4453 - THREE_DS_OOB_NOT_ENABLED_FOR_ISSUER
      operationId: threeDsUpdate
      parameters:
        - $ref: '#/components/parameters/RequestIdHeader'
      requestBody:
        description: Card and 3DS-related data.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ThreeDsUpdateRequest'
        required: true
      responses:
        '204':
          description: >-
            The request was successfully processed (regardless of whether or not
            an update took place).
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        '404':
          description: Not found or card is deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
  /cards/3ds/delete:
    post:
      tags:
        - 3DS lifecycle
      summary: Deregisters a card from 3DS and deletes the corresponding data.
      description: >
        If a card with the provided identifier is known to debiX, it will be
        deregistered from 3DS and the corresponding data deleted.


        In addition to standard application error codes, following codes can be
        returned:

        * 4430 - UNKNOWN_CARD
      operationId: threeDsDelete
      parameters:
        - $ref: '#/components/parameters/RequestIdHeader'
      requestBody:
        description: Identifier of the card to be deregistered from 3DS.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ThreeDsDeleteRequest'
        required: true
      responses:
        '204':
          description: >-
            The request was successfully processed (regardless of whether an
            actual deregistration occurred).
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        '404':
          description: Not found or card is deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
  /cards/credentials:
    post:
      tags:
        - Sensitive card data
      summary: Get card credentials.
      description: >
        Get credentials (PAN, CVV) of the specified card.


        In addition to standard application error codes, following codes can be
        returned:

        * 4430 - UNKNOWN_CARD

        * 4450 - NO_CERTIFICATE_FOUND

        * 4451 - INVALID_JWS_SIGNATURE
      operationId: getCardCredentials
      parameters:
        - $ref: '#/components/parameters/RequestIdHeader'
      requestBody:
        description: >-
          Signed request for the credentials, containing card identifier and
          encryption parameters.
        content:
          text/plain:
            schema:
              $ref: '#/components/schemas/CardCredentialsRequest'
            examples:
              JWS Header (decoded):
                value:
                  alg: ES256 (example)
                  typ: JWT
                  x5t#S256: 0vx7agoebGcQSuuPiLJXZptN9nndrQmbXEp
              JWS Payload (decoded):
                value:
                  cardId:
                    bankClearingNumber: 5000
                    cardNumber: 123456
                    cardType: 1
                    cardSeqNumber: 1
                    cardExpiry:
                      month: 6
                      year: 23
                  clientEphPubKey: SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        required: true
      responses:
        '200':
          description: Successful
          headers:
            X-Request-ID:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardCredentialsResponse'
              examples:
                JWS Header (decoded):
                  value:
                    alg: none
                    typ: JWT
                JWS Payload (decoded):
                  value:
                    serverEphPubKey: QbTKxwRJSMeKKF2Q_T4fwpMeJf36POk6yJVadQssZi9
                    encryptedData: TG9yZW0gaXBzdW0gZG9sciBzaXI=
                Card Credentials (decrypted):
                  value:
                    fpan: 1234567812345678
                    cvc: 123
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
  /cards/start-set-pin:
    post:
      tags:
        - PIN management
      summary: Start a PIN set operation.
      description: >
        First call to be able to set the PIN for the specified card. debiX
        returns an ephemeral public key to encrypt the PIN on the issuer's side
        for the '/set-pin' call.


        In addition to standard application error codes, the following codes can
        be returned:

        * 4430 - UNKNOWN_CARD

        * 4440 - SET_PIN_NOT_ALLOWED_FOR_BLOCKED_OR_DELETED_CARD

        * 4442 - PIN_PREVIOUSLY_PASSED_TO_NEWER_CARD

        * 4450 - NO_CERTIFICATE_FOUND

        * 4451 - INVALID_JWS_SIGNATURE
      operationId: startSetPin
      parameters:
        - $ref: '#/components/parameters/RequestIdHeader'
      requestBody:
        description: >-
          Signed request to get debiX's ephemeral public key, it contains a card
          identifier.
        content:
          text/plain:
            schema:
              $ref: '#/components/schemas/StartSetPinRequest'
            examples:
              JWS Header (decoded):
                value:
                  alg: ES256 (example)
                  typ: JWT
                  x5t#S256: 0vx7agoebGcQSuuPiLJXZptN9nndrQmbXEp
              JWS Payload (decoded):
                value:
                  cardId:
                    bankClearingNumber: 5000
                    cardNumber: 123456
                    cardType: 1
                    cardSeqNumber: 1
                    cardExpiry:
                      month: 6
                      year: 23
        required: true
      responses:
        '200':
          description: Successful
          headers:
            X-Request-ID:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StartSetPinResponse'
              examples:
                JWS Header (decoded):
                  value:
                    alg: ES256 (example)
                    typ: JWT
                JWS Payload (decoded):
                  value:
                    serverEphPubKey: QbTKxwRJSMeKKF2Q_T4fwpMeJf36POk6yJVadQssZi9
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
  /cards/set-pin:
    post:
      tags:
        - PIN management
      summary: Sets the PIN for the specified card.
      description: >
        Sets the PIN for the specified card. The PIN is encrypted with the
        shared key derived from debiX's ephemeral public key from the
        '/start-set-pin' request 

        and the issuer's ephemeral private key corresponding to the issuer's
        ephemeral public key in this request (clientEphPubKey).  


        In addition to standard application error codes, following codes can be
        returned:

        * 4430 - UNKNOWN_CARD

        * 4440 - SET_PIN_NOT_ALLOWED_FOR_BLOCKED_OR_DELETED_CARD

        * 4442 - PIN_PREVIOUSLY_PASSED_TO_NEWER_CARD

        * 4450 - NO_CERTIFICATE_FOUND

        * 4451 - INVALID_JWS_SIGNATURE

        * 4452 - START_SET_PIN_NOT_CALLED
      operationId: setPin
      parameters:
        - $ref: '#/components/parameters/RequestIdHeader'
      requestBody:
        description: >-
          Signed request for the PIN set operation, containing card identifier,
          encryption parameters and encrypted PIN.
        content:
          text/plain:
            schema:
              $ref: '#/components/schemas/SetPinRequest'
            examples:
              JWS Header (decoded):
                value:
                  alg: ES256 (example)
                  typ: JWT
                  x5t#S256: 0vx7agoebGcQSuuPiLJXZptN9nndrQmbXEp
              JWS Payload (decoded):
                value:
                  cardId:
                    bankClearingNumber: 5000
                    cardNumber: 123456
                    cardType: 1
                    cardSeqNumber: 1
                    cardExpiry:
                      month: 6
                      year: 23
                  clientEphPubKey: SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
                  encryptedData: TG9yZW0gaXBzdW0gZG9sciBzaXI=
        required: true
      responses:
        '204':
          description: Set PIN was successful.
          headers:
            X-Request-ID:
              schema:
                type: string
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
  /cards/details:
    post:
      tags:
        - Card lifecycle
      summary: Returns the card details.
      description: >
        Returns the status and the details of the specified card.


        In addition to standard application error codes, following codes can be
        returned:

        * 4430 - UNKNOWN_CARD

        * 4447 - NO_CARD_DETAILS_AVAILABLE
      operationId: getCardDetails
      parameters:
        - $ref: '#/components/parameters/RequestIdHeader'
      requestBody:
        description: Identifier of the card for which to return the details.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CardDetailsRequest'
        required: true
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardDetailsResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        '404':
          description: Not found or card is deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
  /cards/status:
    put:
      tags:
        - Card lifecycle
      summary: Modifies the status of a card.
      description: >
        Modifies the status of the specified card.


        In addition to standard application error codes, following codes can be
        returned:

        * 4430 - UNKNOWN_CARD

        * 4438 - CARD_STATUS_UPDATE_NOT_ALLOWED

        * 4439 - CARD_HAS_PENDING_STATUS
      operationId: updateCardStatus
      parameters:
        - $ref: '#/components/parameters/RequestIdHeader'
      requestBody:
        description: >-
          Contains the new status to be set on the card. In case of a blocking
          action, contains also the block reason.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCardStatusRequest'
        required: true
      responses:
        '202':
          description: Accepted
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        '404':
          description: Not found or card is deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
  /transactions/search:
    post:
      tags:
        - Transaction list
      summary: Returns a list of transactions.
      description: >
        Returns a list of transactions using filter arguments. The list is
        ordered by transaction date from newest to oldest.


        In addition to standard application error codes, following codes can be
        returned:

        * 4430 - UNKNOWN_CARD

        * 4432 - BANK_CLEARING_NUMBER_NOT_CONFIGURED

        * 4433 - UNKNOWN_WALLET_PROVIDER
      operationId: getTransactions
      parameters:
        - $ref: '#/components/parameters/RequestIdHeader'
      requestBody:
        description: Filter arguments for the transaction search.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionSearchRequestFilter'
        required: true
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionsResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        '404':
          description: Not found or card is deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
  /digitalcards/{dpan}/transactions:
    post:
      tags:
        - Transaction list
      summary: Returns a list of transactions for a digital card.
      description: >
        Returns a list of transactions for a digital card, specified by the
        dpan, using filter arguments. The list is ordered by transaction date
        from newest to oldest.


        In addition to standard application error codes, following codes can be
        returned:

        * 4430 - UNKNOWN_CARD
      operationId: getTransactionsForDigitalCard
      parameters:
        - $ref: '#/components/parameters/RequestIdHeader'
        - in: path
          name: dpan
          description: Digital card number.
          required: true
          schema:
            $ref: '#/components/schemas/Dpan'
      requestBody:
        description: Filter arguments for the transaction search.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DigitalCardTransactionSearchRequestFilter'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionsResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
  /digitalcards/{dpan}:
    get:
      tags:
        - Token lifecycle management
      summary: Returns a digital card.
      description: >
        Returns the digital card specified by the dpan in the request.


        In addition to standard application error codes, following codes can be
        returned:

        * 4430 - UNKNOWN_CARD
      operationId: getDigitalCard
      parameters:
        - $ref: '#/components/parameters/RequestIdHeader'
        - in: path
          name: dpan
          description: Digital card number.
          required: true
          schema:
            $ref: '#/components/schemas/Dpan'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DigitalCard'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
  /digitalcards/search:
    post:
      tags:
        - Token lifecycle management
      summary: Returns a list of digital cards.
      description: >
        Returns a list of digital cards using filter arguments.


        In addition to standard application error codes, following codes can be
        returned:

        * 4430 - UNKNOWN_CARD

        * 4433 - UNKNOWN_WALLET_PROVIDER
      operationId: getDigitalCards
      parameters:
        - $ref: '#/components/parameters/RequestIdHeader'
      requestBody:
        description: Filter for the digital card search.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DigitalCardSearchRequestFilter'
        required: true
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DigitalCardSearchResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
  /digitalcards/status:
    put:
      tags:
        - Token lifecycle management
      summary: Updates the status of digital cards of a card.
      description: >
        Updates the status of the digital cards of a funding debit card,
        specified by its shortCardId. The status update is triggered only for
        those digital cards which can be updated.


        In addition to standard application error codes, following codes can be
        returned:

        * 4430 - UNKNOWN_CARD

        * 4431 - DIGITAL_CARD_STATUS_UPDATE_NOT_ALLOWED

        * 4437 - DIGITAL_CARD_HAS_PENDING_STATUS
      operationId: updateDigitalCardsStatus
      parameters:
        - $ref: '#/components/parameters/RequestIdHeader'
      requestBody:
        description: Update request for the status of digital cards of a card.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DigitalCardsStatusUpdateRequest'
        required: true
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DigitalCardStatusUpdateResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
  /digitalcards/{dpan}/status:
    put:
      tags:
        - Token lifecycle management
      summary: Updates the status of a digital card.
      description: >
        Triggers the status update of the digital card specified by the dpan in
        the request.


        In addition to standard application error codes, following codes can be
        returned:

        * 4430 - UNKNOWN_CARD

        * 4431 - DIGITAL_CARD_STATUS_UPDATE_NOT_ALLOWED

        * 4437 - DIGITAL_CARD_HAS_PENDING_STATUS
      operationId: updateDigitalCardStatus
      parameters:
        - $ref: '#/components/parameters/RequestIdHeader'
        - in: path
          name: dpan
          description: Digital card number.
          required: true
          schema:
            $ref: '#/components/schemas/Dpan'
      requestBody:
        description: Update request for the status of the digital card.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DigitalCardStatusUpdateRequest'
        required: true
      responses:
        '202':
          description: Accepted
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
  /presentments/search:
    post:
      tags:
        - Transaction list
      summary: Returns a list of presentments
      description: >
        Returns a list of presentments using filter arguments. The list is
        ordered by transaction date from newest to oldest.


        In addition to standard application error codes, the following codes can
        be returned:

        * 4430 - UNKNOWN_CARD

        * 4432 - BANK_CLEARING_NUMBER_NOT_CONFIGURED

        * 4456 - UNKNOWN_WALLET_TYPE
      operationId: getPresentments
      parameters:
        - $ref: '#/components/parameters/RequestIdHeader'
      requestBody:
        description: Filter arguments for the presentment search.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PresentmentSearchRequestFilter'
        required: true
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PresentmentsResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        '404':
          description: Not found or card is deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
  /merchants/{merchantId}/logo:
    get:
      tags:
        - Merchant logo
      summary: Get merchant logo of given merchant id.
      description: >
        Retrieves the merchant logo for a given merchant id, including

        its version. The logo is only returned, if the version given

        in the ImageVersionHeader parameter does not correspond to the version
        in debiX.


        In addition to standard application error codes, following codes can be
        returned:

        * 4455 - UNKNOWN_MERCHANT
      operationId: getMerchantLogo
      parameters:
        - $ref: '#/components/parameters/RequestIdHeader'
        - $ref: '#/components/parameters/MerchantId'
        - $ref: '#/components/parameters/ImageVersionHeader'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MerchantLogoResponse'
        '304':
          description: The given merchant logo version corresponds to the version in debiX.
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        '404':
          description: No merchant or merchant logo found for given merchant id.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankApiError'
components:
  parameters:
    RequestIdHeader:
      in: header
      name: x-request-id
      description: A unique identifier for a request and response pair.
      schema:
        type: string
    MerchantId:
      description: A unique identifier corresponding to a merchant in debiX.
      name: merchantId
      in: path
      required: true
      schema:
        type: string
    ImageVersionHeader:
      description: Version of the image currently stored in the client.
      name: If-None-Match
      in: header
      schema:
        type: number
  schemas:
    DigitalCardSearchRequestFilter:
      description: >-
        Contains the optional filters for the digital card search. Expiry and
        provisioning date lower and upper bounds are inclusive.
      type: object
      required:
        - shortCardId
      properties:
        shortCardId:
          $ref: '#/components/schemas/ShortCardId'
        wallet:
          $ref: '#/components/schemas/WalletProvider'
        tokenRequestor:
          $ref: '#/components/schemas/TokenRequestor'
        digitalCardExpiryRange:
          $ref: '#/components/schemas/YearMonthRange'
        provisioningDateTimeRange:
          $ref: '#/components/schemas/DateTimeRange'
        status:
          $ref: '#/components/schemas/DigitalCardStatus'
        paging:
          $ref: '#/components/schemas/Paging'
    TransactionsResponse:
      description: >-
        Contains a list of transactions, ordered by transaction date from newest
        to oldest.
      type: object
      properties:
        transactions:
          type: array
          items:
            $ref: '#/components/schemas/Transaction'
        totalRecords:
          description: Total available records.
          type: integer
          format: int64
          example: 1021
    DigitalCardSearchResponse:
      description: >-
        Contains a list of digital cards corresponding to the request filter,
        sorted by provisioning date from newest to oldest.
      type: object
      properties:
        digitalCards:
          description: List of digital cards found.
          type: array
          items:
            $ref: '#/components/schemas/DigitalCard'
        totalRecords:
          description: Total available records.
          type: integer
          format: int64
          example: 1021
    DateRange:
      description: Date range lower and upper bounds (both inclusive).
      type: object
      properties:
        from:
          description: Start date (inclusive).
          type: string
          format: date
          example: '2024-01-01'
        to:
          description: End date (inclusive).
          type: string
          format: date
          example: '2024-12-31'
    DateTimeRange:
      description: Date-time range lower and upper bounds (both inclusive).
      type: object
      properties:
        from:
          description: Date-time lower bound (inclusive).
          type: string
          format: date-time
          example: 2022-01-01T00:00:00.000+02.00
        to:
          description: Date-time upper bound (inclusive).
          type: string
          format: date-time
          example: 2022-12-31T23:59:59.999+02.00
    YearMonthRange:
      description: Year-month range lower and upper bounds (both inclusive).
      type: object
      properties:
        from:
          $ref: '#/components/schemas/YearMonth'
        to:
          $ref: '#/components/schemas/YearMonth'
    DigitalCardsStatusUpdateRequest:
      description: >-
        Contains the shortCardId, the new digital card status and the update
        reason.
      type: object
      required:
        - shortCardId
        - status
        - reason
      properties:
        shortCardId:
          $ref: '#/components/schemas/ShortCardId'
        status:
          $ref: '#/components/schemas/DigitalCardStatus'
        reason:
          $ref: '#/components/schemas/DigitalCardStatusUpdateReason'
    DigitalCardStatusUpdateRequest:
      description: Contains the new digital card status and the update reason.
      type: object
      required:
        - status
        - reason
      properties:
        status:
          $ref: '#/components/schemas/DigitalCardStatus'
        reason:
          $ref: '#/components/schemas/DigitalCardStatusUpdateReason'
    DigitalCardStatusUpdateResponse:
      description: >-
        Contains two lists of digital cards; one contains those for which the
        update was triggered, the other contains those for which the update is
        not possible due to business rules. Both lists are sorted in ascending
        order by the Dpan.
      type: object
      properties:
        commissionedDigitalCards:
          description: Lists of digital cards for which the update was triggered.
          type: array
          items:
            $ref: '#/components/schemas/Dpan'
        rejectedDigitalCards:
          description: >-
            Lists of digital cards for which the update is not possible due to
            business rules.
          type: array
          items:
            $ref: '#/components/schemas/RejectedDigitalCard'
    PresentmentSearchRequestFilter:
      description: >-
        Contains the filters for the presentment search. The date range lower
        and upper bounds are inclusive.
      type: object
      required:
        - shortCardId
      properties:
        shortCardId:
          $ref: '#/components/schemas/ShortCardId'
        walletType:
          $ref: '#/components/schemas/WalletType'
        transactionDateRange:
          $ref: '#/components/schemas/DateRange'
        paging:
          $ref: '#/components/schemas/Paging'
    PresentmentsResponse:
      description: >-
        Contains a list of presentments, ordered by transaction date from newest
        to oldest.
      type: object
      properties:
        presentments:
          type: array
          items:
            $ref: '#/components/schemas/Presentment'
        totalRecords:
          description: Total available records.
          type: integer
          format: int64
          example: 1021
    HealthCheckRequest:
      type: object
      required:
        - message
      properties:
        message:
          description: Expected response message from health check.
          type: string
          minLength: 1
          maxLength: 100
          example: Any string
    HealthCheckResponse:
      type: object
      required:
        - message
        - requestDateTime
        - receivedHeaders
        - apiVersion
      properties:
        message:
          description: Response message from health check.
          type: string
          minLength: 1
          maxLength: 100
          example: The healthcheck GET request was successfully received and processed.
        requestDateTime:
          description: Date and time of the request.
          type: string
          format: date-time
          example: '2021-10-03T16:03:09.101+02:00'
        receivedHeaders:
          description: The headers received by the api backend.
          type: array
          items:
            $ref: '#/components/schemas/ReceivedHeader'
        apiVersion:
          description: Version of this API.
          type: string
          example: 1.0.0
    ReceivedHeader:
      type: object
      properties:
        headerName:
          description: Name of the received header.
          type: string
          example: x-correlation-id
        headerValue:
          description: Value of the received header.
          type: string
          example: 9bcd4351-4b7b-4017-9b63-9613414c6ff1
    Paging:
      description: Contains paging properties.
      type: object
      properties:
        pageNumber:
          description: Page number for paging starting with zero.
          type: integer
          format: int32
          default: 0
          example: 0
        pageSize:
          description: Limitation of the page size.
          type: integer
          format: int32
          minimum: 20
          maximum: 100
          default: 100
          example: 50
    Transaction:
      description: Transaction authorization notification.
      type: object
      required:
        - proceessingType
        - transactionDateTime
        - transactionClass
        - transactionType
        - useCase
        - cardAcceptor
        - cardId
      properties:
        id:
          $ref: '#/components/schemas/TransactionId'
        proceessingType:
          description: |-
            - 0: Normal Trx/Presentment
            - 1: Representment
            - 2: Reversal/Storno
            - 3: Reversal of Representment
            - 4: Chargeback
            - 5: Reversal of Chargeback
            - 6: Partial Reversal
            - 7: Partial Chargeback
            - 8: Partial Representment
          type: integer
          format: int32
        dpan:
          $ref: '#/components/schemas/Dpan'
        wallet:
          $ref: '#/components/schemas/WalletProvider'
        transactionDateTime:
          description: Date and time of the transaction.
          type: string
          format: date-time
          example: '2021-10-03T16:03:09.101+02:00'
        issuerResponseCode:
          description: Internal response code of SPS Issuing Frontoffice.
          type: integer
          format: int32
          example: 2103
        transactionState:
          description: >-
            - 0: Transaction purpose fulfilled, service performed

            - 1: Transaction purpose not fulfilled, for technical reasons, e.g.
            timeout

            - 2: Transaction purpose not fulfilled, for other reasons, e.g.
            incorrect PIN
          type: integer
          format: int32
        transactionClass:
          description: |-
            - 0: Authorisation & Capture
            - 1: Capture only
            - 2: Authorisation only
            - 3: Advice
            - 4: Authorisation & Capture (Clearing already done)
            - 5: Capture only (Clearing already done)
            - 9: Other
          type: integer
          format: int32
        transactionType:
          description: |-
            - 100: Cash withdrawal
            - 101: Retail purchase
            - 102: Credit
            - 103: ATM operator refund
            - 109: Deposit (ATM)
            - 117: P2P funding/debit transaction with IBAN
            - 118: P2P unload/credit with IBAN
            - 120: Balance query
            - 121: PIN change
            - 122: Check PIN/Amount/Blocking
            - 123: Check PIN/Blocking
            - 124: Check PIN
            - 125: Check Blocking
            - 127: PIN unblock
            - 128: EMV R script result advice
            - 130: Data capture after reservation
            - 132: Data capture mail order
            - 133: Data capture phone order
            - 136: Cash advance
            - 140: Reservation
            - 141: Reservation increase
            - 142: Authorization
            - 152: Recurring Authorization
            - 158: Purchase with Cashback
            - 160: Prepaid Mobile
            - 176: POS preauthorization
            - 189: P2P Payment
            - 194: Account verification
            - 212: Funding
            - 217: international POS preauthorization
            - 218: international POS preauthorization capture
            - 400: ATM card verification
            - 401: ATM account statements
            - 402: ATM inquiry exchange rate withdrawal
            - 403: ATM exchange rate deposit
            - 406: ATM inquiry general deposit data
            - 901: Normal topup transaction
          type: integer
          format: int32
          minimum: 0
          maximum: 999
          example: 101
        useCase:
          description: |-
            - 1  cash_withdrawal_atm
            - 4  mobile_voucher_atm
            - 5  balance_inquiry
            - 6  pin_check
            - 8  purchase_of_goods
            - 9  offline_purchase_of_goods
            - 10 preauthorization
            - 14 credit
            - 15 cash_advance
            - 19 atm_foreign_withdrawal
            - 20 foreign_purchase_of_goods
            - 21 foreign_cash_advance
            - 22 foreign_credit
            - 23 foreign_purchase_with_cashback
            - 24 payment_transaction
            - 26 foreign_preauthorization
            - 27 foreign_offline_purchase_of_goods
            - 29 international_pos_account_status_inquiry
            - 30 international_blocking_advice
            - 32 atm_operator_refund
            - 37 purchase_with_cash_back
            - 40 pin_change
            - 42 emv_script_confirmation
            - 43 card_verification_atm
            - 44 reservation
            - 45 foreign_reservation
            - 49 globaldepositdata
            - 51 notes_deposit
            - 52 coins_deposit
            - 53 pos_reservation_increase
          type: integer
          format: int32
        authorizationExpiryDate:
          description: The last date (inclusive) on which the authorization is valid.
          type: string
          format: date
          example: '2021-10-03'
        amount:
          $ref: '#/components/schemas/Amount'
        cardAcceptor:
          $ref: '#/components/schemas/CardAcceptor'
        merchant:
          $ref: '#/components/schemas/Merchant'
        cardholderAuthentication:
          description: >-
            - 0: n/a – not applicable (unknown)

            - 1: PBT (PIN Based Trx)

            - 2: no CVM (no Cardholder Verification Method)

            - 4: Mail/Telephone or electronic Commerce without authentication

            - 5: SBT (Signature Based Trx)

            - 6: e-commerce Transaction authenticated by cardholder certificate

            - 7: e-commerce Transaction authenticated by chip crypto (cardholder
            certificate not used)

            - 8: in-app or mobile eCom trx authenticated
          type: integer
          format: int32
        retrievalReference:
          $ref: '#/components/schemas/RetrievalReference'
        acquiringInstitutionId:
          description: Scheme's acquiring institution id.
          type: integer
          format: int64
          minimum: 0
          maximum: 99999999999
          example: 13445
        cardId:
          $ref: '#/components/schemas/CardId'
        cardDataSource:
          description: Code that indicates where the card data originates from.
          type: integer
          format: int32
          minimum: 0
          maximum: 99
          example: 1
        threeDsAuthenticationLevel:
          description: |-
            - 2140: 3DS Authentication OTP SMS
            - 2141: 3DS Authentication TA
            - 2142: 3DS Authentication OOB
            - 2143: 3DS Authentication PWD
            - 2144: 3DS Authentication Frictionless
          type: integer
          format: int32
    CardEncryptionRequest:
      description: Contains data for the card encryption.
      type: object
      required:
        - cardId
        - cardholderName
      properties:
        cardId:
          $ref: '#/components/schemas/CardId'
        cardholderName:
          $ref: '#/components/schemas/CardHolderName'
    CardEncryptionResponse:
      description: >-
        Contains the encrypted card data for the provisioning of the card with
        Thales SDK.
      type: object
      required:
        - encryptedCardData
        - panSuffix
      properties:
        encryptedCardData:
          description: |
            Encrypted card data in PKCS#7 format as specified by Thales SDK.
            Once deciphered, the JSON payload contains the following fields:
            - issuerCardRefId
            - fpan
            - exp
            - cardholderName
          type: string
          maxLength: 1500
        primaryAccountIdentifier:
          description: >-
            Primary account id; currently only for Apple Pay and only if the
            card has already been digitized on at least one Apple device.
          type: string
          minLength: 1
        panSuffix:
          description: Last four digits of the pan.
          type: string
          minLength: 4
          maxLength: 4
          example: '0123'
    ClickToPayCardEncryptionRequest:
      description: Contains data for the card encryption.
      type: object
      required:
        - cardId
        - cardholderName
        - emailAddress
        - phoneNumber
        - phoneNumberCountryCode
        - address
        - issuerClientInformation
      properties:
        cardId:
          $ref: '#/components/schemas/CardId'
        cardholderName:
          $ref: '#/components/schemas/CardHolderName'
        emailAddress:
          description: Email address to identify the customer.
          type: string
          minLength: 1
          example: peter.schweizer@mailbox.org
        phoneNumber:
          description: The phone number without country code.
          type: string
          pattern: ^[0-9]{5,12}$
          example: '795625655'
        phoneNumberCountryCode:
          description: The country code of the phone number.
          type: string
          pattern: ^[1-9][0-9]{1,3}$
          example: '41'
        address:
          $ref: '#/components/schemas/ClickToPayCardholderPostalAddress'
        issuerClientInformation:
          $ref: '#/components/schemas/ClickToPayIssuerClientInformation'
    ClickToPayCardholderPostalAddress:
      description: >-
        Postal address of cardholder as specified by the TSH Token Push and
        Control specification.
      required:
        - line1
        - city
        - postalCode
        - country
      type: object
      properties:
        line1:
          description: First line of address containing the street and street number.
          type: string
          minLength: 1
          maxLength: 64
          example: Hardturmstrasse 201
        city:
          description: The city of the address.
          type: string
          minLength: 1
          maxLength: 32
          example: Zürich
        postalCode:
          description: Postal or zip code of the address.
          type: string
          minLength: 1
          maxLength: 10
          example: '8005'
        country:
          description: 3-letter (alpha-3) country code as defined in ISO 3166-1.
          type: string
          minLength: 3
          maxLength: 3
          example: CHE
    ClickToPayIssuerClientInformation:
      type: object
      required:
        - firstName
        - lastName
      properties:
        issuerAccountID:
          description: This is not the card's PAN. It is required by VISA.
          type: string
          maxLength: 24
          example: '1234567890'
        firstName:
          type: string
          minLength: 1
          maxLength: 80
          example: Peter
        lastName:
          type: string
          minLength: 1
          maxLength: 80
          example: Meier
        locale:
          description: >
            Language in which to communicate with the customer. 

            This is the ISO639-1 language code followed by "_" separator then
            ISO 3166-1 alpha-2 country code.
          type: string
          minLength: 5
          maxLength: 5
          example: de_CH
        country:
          description: |
            2-letter (alpha-2) country code as defined in ISO 3166-1.
          type: string
          minLength: 2
          maxLength: 2
          example: CH
    ClickToPayCardEncryptionResponse:
      description: >-
        Contains the encrypted card data for the provisioning of the card with
        Thales SDK.
      type: object
      required:
        - encryptedCardData
        - scheme
        - publicKeyId
        - tokenRequestorId
      properties:
        encryptedCardData:
          description: |
            Encrypted card data in PKCS#7 format as specified by Thales SDK.
            Once deciphered, the JSON payload contains the following fields:
            - issuerCardRefId
            - fpan
            - exp
            - cardholderName
            - postalAddress
            - phoneNumber
            - phoneNumberCountryCode
            - email
            - issuerClientInformation
          type: string
        scheme:
          $ref: '#/components/schemas/Scheme'
        publicKeyId:
          description: Id of the public key used to encrypt the card data
          type: string
          example: tshKid
        tokenRequestorId:
          description: The Click to Pay token requestor id.
          type: string
          example: '40010075338'
    AuthorizationCodeRequest:
      description: >-
        Contains the card identifier and wallet for the generation of the
        authorization code.
      type: object
      required:
        - cardId
        - wallet
      properties:
        cardId:
          $ref: '#/components/schemas/CardId'
        wallet:
          $ref: '#/components/schemas/WalletProvider'
    AuthorizationCodeResponse:
      description: >-
        Contains the authorization code for the provisioning of a card into a
        wallet with Thales SDK.
      type: object
      required:
        - authorizationCode
      properties:
        authorizationCode:
          description: A signed JSON Web Token (JWT/JWS) as specified by Thales SDK.
          type: string
    CardOrderRequest:
      description: Configuration specifying the new card to be ordered.
      type: object
      required:
        - cardOrderData
      properties:
        cardOrderData:
          $ref: '#/components/schemas/CardOrderData'
        parentCardReference:
          $ref: '#/components/schemas/ParentCardReference'
        bccData:
          $ref: '#/components/schemas/BccData'
        fraudConfiguration:
          $ref: '#/components/schemas/FraudConfiguration'
    ParentCardReference:
      description: Reference to a card from which settings can be inherited.
      type: object
      required:
        - cardId
        - shareLimits
        - deleteAfterFirstUse
        - takeoverPin
        - takeoverContactlessActivationStatus
        - takeoverFeatureToggles
        - takeoverBillingUpdater
      properties:
        cardId:
          $ref: '#/components/schemas/CardId'
        shareLimits:
          description: Indicates if the limits should be shared with the parent card.
          type: boolean
        deleteAfterFirstUse:
          description: >-
            Indicates if the parent card shall be deleted after first use of new
            card.
          type: boolean
        takeoverPin:
          description: Indicates if the PIN shall be taken over from the parent card.
          type: boolean
        takeoverContactlessActivationStatus:
          description: >-
            Indicates if the contactless activation status shall be taken over
            from the parent card.
          type: boolean
        takeoverFeatureToggles:
          description: >-
            Indicates if the feature toggles shall be taken over from the parent
            card.
          type: boolean
        takeoverBillingUpdater:
          type: boolean
          description: >-
            Indicates if the new card shall be linked to the account of the
            parent card within the Mastercard automated billing updater (ABU)
            resp. the VISA Account Updater (VAU).
    CardOrderData:
      description: >-
        Card data needed to order the card. Online limits are required if they
        should not be taken over from the parent card. In this version, only
        cardMaterial VIRTUAL is supported.
      type: object
      required:
        - cardId
        - accountNumber
        - onlineLimits
        - iban
        - cardMaterial
        - language
        - transactionAuthorizer
        - cardPlasticCode
      properties:
        cardId:
          $ref: '#/components/schemas/CardId'
        accountNumber:
          $ref: '#/components/schemas/AccountNumber'
        iban:
          $ref: '#/components/schemas/Iban'
        cardMaterial:
          $ref: '#/components/schemas/CardMaterial'
        language:
          $ref: '#/components/schemas/Language'
        branchNumber:
          $ref: '#/components/schemas/BranchNumber'
        transactionAuthorizer:
          $ref: '#/components/schemas/TransactionAuthorizer'
        subCardType:
          $ref: '#/components/schemas/SubCardType'
        onlineLimits:
          $ref: '#/components/schemas/OnlineLimits'
        featureToggles:
          $ref: '#/components/schemas/FeatureToggles'
        cardPlasticCode:
          $ref: '#/components/schemas/CardPlasticCode'
        otrcDelivery:
          $ref: '#/components/schemas/OtrcDelivery'
        otrcDatamailerDelivery:
          $ref: '#/components/schemas/OtrcDatamailerDelivery'
        otrcDatamailerExpressCode:
          $ref: '#/components/schemas/OtrcDatamailerExpressCode'
        deliveryInformation:
          description: >-
            Delivery address of card, PIN and OTRC; only required with
            otrcDelivery DATAMAILER.
          type: object
          properties:
            address:
              $ref: '#/components/schemas/UnstructuredAddress'
            country:
              $ref: '#/components/schemas/Country'
    CardCredentialsRequest:
      type: string
      description: >
        JSON Web Token signed by the issuer, containing all parameters for
        securely retrieving sensitive card credentials. 

        * The algorithm of the JWS signature can be one of RS256/384/512,
        PS256/384/512, ES256/384/512 or EdDsa/Ed25519. ES256 is recommended.

        * The JOSE header must contain a 'x5t#S256' parameter with the X.509
        certificate SHA-256 thumbprint of the key used to sign the token.
        (https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.8)
      example: see "#/components/schemas/CardCredentialsRequestJwsPayload"
    CardCredentialsRequestJwsPayload:
      type: object
      required:
        - cardId
        - clientEphPubKey
      properties:
        cardId:
          $ref: '#/components/schemas/CardId'
        clientEphPubKey:
          description: >-
            Ephemeral public key (base64-encoded) of the issuer. Used for
            Diffie-Hellman key exchange.
          type: string
          minLength: 1
          example: SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
    CardCredentialsResponse:
      type: string
      description: >
        JSON Web Token containing the encrypted card credentials and an
        ephemeral public key to complete the Diffie-Hellman key exchange. 

        * The algorithm of the JWS signature is 'none'.
      example: >-
        see unencrypted object at 
        "#/components/schemas/CardCredentialsResponseJwsPayload".
    CardCredentialsResponseJwsPayload:
      type: object
      required:
        - serverEphPubKey
        - encryptedData
      properties:
        serverEphPubKey:
          description: >-
            Ephemeral public key (base64-encoded) of the debiX backend. Used for
            the Diffie-Hellman key exchange.
          type: string
          minLength: 1
          example: QbTKxwRJSMeKKF2Q_T4fwpMeJf36POk6yJVadQssZi9
        encryptedData:
          description: >-
            Card credentials, symmetrically encrypted with the shared
            Diffie-Hellman key and base64-encoded.
          type: string
          minLength: 1
          example: >-
            see unencrypted object at
            "#/components/schemas/CardCredentialsResponseUnencryptedData".
    CardCredentialsResponseUnencryptedData:
      type: object
      required:
        - fpan
        - cvv
      properties:
        fpan:
          description: Funding Primary Account Number of the card.
          type: string
          pattern: ^\d{16}$
          example: '1234567812345678'
        cvv:
          description: Card Verification Value of the card.
          type: string
          pattern: ^\d{3}$
          example: '123'
    StartSetPinRequest:
      type: string
      description: >
        JSON Web Token signed by the issuer to get an ephemeral public key from
        debiX for the given cardId. 

        * The algorithm of the JWS signature can be one of RS256/384/512,
        PS256/384/512, ES256/384/512 or EdDsa/Ed25519. ES256 is recommended.

        * The JOSE header must contain a 'x5t#S256' parameter with the X.509
        certificate SHA-256 thumbprint of the key used to sign the token.
        (https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.8)
      example: see "#/components/schemas/StartSetPinRequestJwsPayload"
    StartSetPinRequestJwsPayload:
      type: object
      required:
        - cardId
      properties:
        cardId:
          $ref: '#/components/schemas/CardId'
    StartSetPinResponse:
      type: string
      description: >
        JSON Web Token containing a ephemeral public key to complete the
        Diffie-Hellman key exchange, used to encrypt the new PIN to be set for
        this card. 

        * The algorithm of the JWS signature is 'none'.
      example: >-
        see unencrypted object at 
        "#/components/schemas/StartSetPinResponseJwsPayload"
    StartSetPinResponseJwsPayload:
      type: object
      required:
        - serverEphPubKey
      properties:
        serverEphPubKey:
          description: >-
            Ephemeral public key (base64-encoded) of the debiX backend. Used for
            the Diffie-Hellman key exchange.
          type: string
          minLength: 1
          example: QbTKxwRJSMeKKF2Q_T4fwpMeJf36POk6yJVadQssZi9
    SetPinRequest:
      type: string
      description: >
        JSON Web Token signed by the issuer to set the PIN for the given card.

        * The algorithm of the JWS signature can be one of RS256/384/512,
        PS256/384/512, ES256/384/512 or EdDsa/Ed25519. ES256 is recommended.

        * The JOSE header must contain a 'x5t#S256' parameter with the X.509
        certificate SHA-256 thumbprint of the key used to sign the token.
        (https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.8)
      example: see '#/components/schemas/SetPinRequestJwsPayload'
    SetPinRequestJwsPayload:
      type: object
      required:
        - cardId
        - clientEphPubKey
        - encryptedData
      properties:
        cardId:
          $ref: '#/components/schemas/CardId'
        clientEphPubKey:
          description: >-
            Ephemeral public key (base64 encoded) of the issuer. Used for the
            Diffie-Hellman key exchange.
          type: string
          minLength: 1
          example: SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        encryptedData:
          description: New PIN, symmetrically encrypted with the shared Diffie-Hellman key.
          type: string
          minLength: 1
          example: >-
            see unencrypted object at
            '#/components/schemas/SetPinRequestUnencryptedData'
    SetPinRequestUnencryptedData:
      type: object
      required:
        - pin
      properties:
        pin:
          type: string
          pattern: ^\d{4,6}$
          example: 123456
    ThreeDsRegisterRequest:
      description: >-
        Contains the card identifier and 3DS-related data for the registration
        of a card.
      type: object
      required:
        - cardId
        - threeDsData
      properties:
        cardId:
          $ref: '#/components/schemas/CardId'
        threeDsData:
          $ref: '#/components/schemas/ThreeDsData'
    ThreeDsUpdateRequest:
      description: Contains the card identifier, as well as 3DS-related data to be updated.
      type: object
      required:
        - shortCardId
        - threeDsData
      properties:
        shortCardId:
          $ref: '#/components/schemas/ShortCardId'
        threeDsData:
          $ref: '#/components/schemas/PartialThreeDsData'
    ThreeDsDeleteRequest:
      description: Contains the card identifier to perform a 3DS deregistration.
      type: object
      required:
        - shortCardId
      properties:
        shortCardId:
          $ref: '#/components/schemas/ShortCardId'
    CardDetailsRequest:
      description: Contains the identifier of the card for which to return the details.
      type: object
      required:
        - cardId
      properties:
        cardId:
          $ref: '#/components/schemas/CardId'
    CardDetailsResponse:
      description: Contains detailed information about the card.
      type: object
      required:
        - commonCardInformation
        - onlineLimits
        - contactlessActivationStatus
        - threeDsInformation
      properties:
        commonCardInformation:
          $ref: '#/components/schemas/CommonCardInformation'
        onlineLimits:
          $ref: '#/components/schemas/OnlineLimits'
        bccData:
          $ref: '#/components/schemas/BccData'
        fraudConfiguration:
          $ref: '#/components/schemas/FraudConfiguration'
        contactlessActivationStatus:
          $ref: '#/components/schemas/ContactlessActivationStatus'
        featureToggles:
          $ref: '#/components/schemas/FeatureToggles'
        threeDsInformation:
          $ref: '#/components/schemas/ThreeDsInformation'
    CommonCardInformation:
      description: Common information about the card.
      type: object
      required:
        - accountNumber
        - iban
        - cardMaterial
      properties:
        accountNumber:
          $ref: '#/components/schemas/AccountNumber'
        iban:
          $ref: '#/components/schemas/Iban'
        cardMaterial:
          $ref: '#/components/schemas/CardMaterial'
        plasticCode:
          $ref: '#/components/schemas/CardPlasticCode'
        subCardType:
          $ref: '#/components/schemas/SubCardType'
        language:
          $ref: '#/components/schemas/Language'
        status:
          $ref: '#/components/schemas/CardStatus'
        statusUpdateReason:
          $ref: '#/components/schemas/StatusUpdateReason'
        blockReason:
          $ref: '#/components/schemas/CardBlockReason'
        blockOrigin:
          $ref: '#/components/schemas/CardBlockOrigin'
        blockInterface:
          $ref: '#/components/schemas/CardBlockInterface'
        blockedCardReplacement:
          $ref: '#/components/schemas/BlockedCardReplacement'
        unblockCardByCardholderAllowed:
          description: |
            Defines if the cardholder is allowed to unblock the card.
          type: boolean
          example: true
        pinRemainingRetries:
          description: The number of remaining PIN retries.
          type: integer
          format: int32
          minimum: 0
          maximum: 3
          example: 2
        pinRecoveryStatus:
          $ref: '#/components/schemas/PinRecoveryStatus'
    OnlineLimits:
      deprecated: true
      description: >-
        The monthly and daily retail and cash transactions limits. Deprecated,
        will be removed in V2.
      type: object
      required:
        - totalLimitPerMonth
        - cashLimitPerMonth
        - totalLimitPerDay
        - cashLimitPerDay
      properties:
        totalLimitPerMonth:
          description: >-
            Total limit per month for retail and money in cash transactions in
            whole Swiss Francs.
          type: integer
          format: int32
          maximum: 99999999
          example: 20000
        cashLimitPerMonth:
          description: >-
            Limit per month for money in cash transactions in whole Swiss
            Francs.
          type: integer
          format: int32
          maximum: 99999999
          example: 10000
        totalLimitPerDay:
          description: >-
            Total limit per day for retail and money in cash transactions in
            whole Swiss Francs.
          type: integer
          format: int32
          maximum: 99999999
          example: 5000
        cashLimitPerDay:
          description: Limit per day for money in cash transactions in whole Swiss Francs.
          type: integer
          format: int32
          maximum: 99999999
          example: 1000
    BccData:
      description: Information about the cardholder from the bank card central.
      type: object
      required:
        - salutation
        - firstName
        - familyName
        - street
        - city
        - postalCode
        - country
      properties:
        salutation:
          $ref: '#/components/schemas/Salutation'
        firstName:
          $ref: '#/components/schemas/FirstName'
        familyName:
          $ref: '#/components/schemas/FamilyName'
        street:
          description: Street name.
          type: string
          maxLength: 25
          example: Bahnhofstrasse
        streetNo:
          description: Street number.
          type: string
          maxLength: 5
          example: '1'
        city:
          description: Location city.
          type: string
          maxLength: 25
          example: Zürich
        postalCode:
          description: Postal code.
          type: string
          maxLength: 10
          example: '8001'
        country:
          $ref: '#/components/schemas/Country'
        phoneNumber:
          $ref: '#/components/schemas/PhoneNumber'
        birthdate:
          description: Birthdate to identify the customer.
          type: string
          format: date
          example: '2000-12-31'
        emailAddress:
          description: Email address to identify the customer.
          type: string
          example: peter.schweizer@mailbox.org
        customerRelationshipOpeningDate:
          description: >-
            Date when the customer relationship was opened; used to identify the
            customer.
          type: string
          format: date
          example: '2021-12-31'
        accountOpeningDate:
          description: Date when the account was opened; used to identify the customer.
          type: string
          format: date
          example: '2021-12-31'
        accountAuthority:
          type: array
          minItems: 0
          maxItems: 4
          items:
            $ref: '#/components/schemas/AccountAuthority'
        individualIdentificationTag:
          description: Individual tag to identify the customer.
          type: string
          maxLength: 80
          example: Owner of a sailing boat
        ebankingContractNo:
          description: Ebanking contract number to identify the customer.
          type: string
          maxLength: 15
          example: ABC-56789012345
    Salutation:
      description: Salutation code of a cardholder.
      type: string
      enum:
        - NOT_SET
        - MR
        - MS
        - FIRM
    TransactionAuthorizer:
      type: string
      description: Authorizer for retail and ATM transactions.
      enum:
        - ALWAYS_SIX
        - ISSUER_WITH_FALLBACK_SIX
        - SIX_WITH_FALLBACK_ISSUER
        - ISSUER_WITH_FALLBACK_SIX_AND_OTHER_LIMITS
    FraudConfiguration:
      description: >-
        The fraud configuration, containing restrictions for countries and
        regions. Authorizations from a country will be declined if the country
        itself, or the region it belongs to, is restricted.
      type: object
      properties:
        restrictedRegions:
          description: A list of regions from which authorizations will be declined.
          type: array
          minItems: 1
          maxItems: 10
          items:
            $ref: '#/components/schemas/Region'
        restrictedCountries:
          description: A list of countries from which authorizations will be declined.
          type: array
          minItems: 1
          maxItems: 300
          items:
            $ref: '#/components/schemas/Country'
    Region:
      description: Region from where an authorization is requested.
      type: string
      enum:
        - SWITZERLAND_AND_LIECHTENSTEIN
        - EUROPE
        - RUSSIA
        - AFRICA
        - CANADA
        - USA_AND_MEXICO
        - LATIN_AMERICA_AND_CARIBBEAN
        - MIDDLE_EAST_ASIA_PACIFIC_AUSTRALIA
    Country:
      description: Country code in format ISO 3166-1 alpha 2.
      type: string
      pattern: '[A-Z]{2}'
      example: CH
    UnstructuredAddress:
      description: Unstructured address of simple address lines.
      type: array
      minItems: 1
      maxItems: 6
      items:
        type: string
        maxLength: 35
      example:
        - Peter Schweizer
        - Bahnhofstrasse 1
        - 8000 Zürich
    ContactlessActivationStatus:
      description: Describes the contactless activation status of the card.
      type: string
      enum:
        - UNKNOWN
        - ACTIVATED_CONFIRMED
        - CARD_WITHOUT_CONTACTLESS
        - DEACTIVATED_UNCONFIRMED
        - DEACTIVATED_CONFIRMED
        - DEACTIVATION_PENDING
        - ACTIVATED_UNCONFIRMED
        - ACTIVATION_PENDING
        - NEVER_ACTIVATED
    FeatureToggles:
      description: Contains the values of the feature toggles for the card.
      type: object
      required:
        - eCommerceAllowed
        - trxOnlyAsChipAndPin
        - magStripePaymentAllowed
        - automaticBilling
        - purchaseWithCashBackAllowed
        - merchantInitiatedTrxAllowed
        - atmAllowed
        - posAllowed
        - motoAllowed
        - bypassGeoblocking
        - moneySendReceiveAccepted
        - reservationAllowed
        - transactionPushEnabled
        - gamblingAndBettingAllowance
      properties:
        eCommerceAllowed:
          description: Indicates if the use of ecommerce is allowed.
          type: boolean
        trxOnlyAsChipAndPin:
          description: >-
            Indicates if cvm is active, i.e. card can do transaction only as
            Chip and PIN.
          type: boolean
        magStripePaymentAllowed:
          description: Defines if magnetic stripe payments are allowed.
          type: boolean
        automaticBilling:
          description: >-
            Indicates if the cardholder participates to the automatic billing
            update.
          type: boolean
        purchaseWithCashBackAllowed:
          description: Defines if purchase with cash back is allowed.
          type: boolean
        allowedMerchantCategoryCodes:
          description: >-
            List of blocked merchant category codes. Deprecated due to wrong
            property name.
          deprecated: true
          type: array
          minItems: 1
          maxItems: 10
          items:
            $ref: '#/components/schemas/MerchantCategoryCode'
        blockedMerchantCategoryCodes:
          description: List of blocked merchant category codes.
          type: array
          minItems: 1
          maxItems: 10
          items:
            $ref: '#/components/schemas/MerchantCategoryCode'
        merchantInitiatedTrxAllowed:
          description: >-
            Indicates if merchant initiated transactions - such as Recurring,
            Installment, Unscheduled - are allowed.
          type: boolean
        atmAllowed:
          description: Defines if withdrawals are allowed at ATMs.
          type: boolean
        posAllowed:
          description: Defines if payments are allowed at POS terminals.
          type: boolean
        motoAllowed:
          description: Defines if mail or phone orders are allowed.
          type: boolean
        bypassGeoblocking:
          description: Defines if geo blocking is ignored for the card.
          type: boolean
        moneySendReceiveAccepted:
          description: >-
            Defines if money sent by another cardholder is accepted. Deprecated
            because replaced by new field moneySendReceiveAllowance.
          type: boolean
        moneySendReceiveAllowance:
          $ref: '#/components/schemas/MoneySendReceiveAllowance'
        reservationAllowed:
          description: Defines if reservation transactions are allowed.
          type: boolean
        transactionPushEnabled:
          description: Defines if transactions are pushed to debiX.
          type: boolean
        gamblingAndBettingAllowance:
          $ref: '#/components/schemas/GamblingAndBettingAllowance'
    TransactionSearchRequestFilter:
      description: >-
        Contains the filters for the transaction search. The date range lower
        and upper bounds are inclusive.
      type: object
      required:
        - shortCardId
      properties:
        shortCardId:
          $ref: '#/components/schemas/ShortCardId'
        wallet:
          $ref: '#/components/schemas/WalletProvider'
        onlyDigitalCardBased:
          description: >-
            Determines if only digital card based transactions should be
            returned.
          type: boolean
          default: true
        transactionDateRange:
          $ref: '#/components/schemas/DateRange'
        paging:
          $ref: '#/components/schemas/Paging'
    DigitalCardTransactionSearchRequestFilter:
      description: >-
        Contains the filters for the transaction search. The date range lower
        and upper bounds are inclusive.
      type: object
      properties:
        transactionDateRange:
          $ref: '#/components/schemas/DateRange'
        paging:
          $ref: '#/components/schemas/Paging'
    UpdateCardStatusRequest:
      description: >-
        Contains the request to update the status of the card. The card block
        reason is required when blocking the card. Only when blocking a card,
        the information in card block reason, card block origin and blocked card
        replacement are taken into account; in other cases, they are ignored.
      type: object
      required:
        - action
        - cardId
        - reason
      properties:
        action:
          $ref: '#/components/schemas/UpdateCardStatusAction'
        cardId:
          $ref: '#/components/schemas/CardId'
        reason:
          $ref: '#/components/schemas/StatusUpdateReason'
        cardBlockReason:
          $ref: '#/components/schemas/CardBlockReason'
        cardBlockOrigin:
          $ref: '#/components/schemas/CardBlockOriginViaBank'
        blockedCardReplacement:
          $ref: '#/components/schemas/BlockedCardReplacement'
    ClickToPayStatusRequest:
      description: >-
        Contains the short card id and email address for which to return the
        DPAN.
      type: object
      required:
        - shortCardId
        - emailAddress
      properties:
        shortCardId:
          $ref: '#/components/schemas/ShortCardId'
        emailAddress:
          $ref: '#/components/schemas/EmailAddress'
    ClickToPayStatusResponse:
      description: The DPAN associated with the given arguments. None if none exists.
      type: object
      properties:
        dpan:
          $ref: '#/components/schemas/Dpan'
    UpdateCardStatusAction:
      description: Distinguishes the type of the card update.
      type: string
      enum:
        - BLOCK
        - UNBLOCK
    DigitalCard:
      description: Contains data of a digital card.
      type: object
      required:
        - digitalCardId
        - dpan
        - shortCardId
        - scheme
        - status
        - digitalCardExpiry
        - wallet
        - tokenRequestor
        - productId
        - provisioningDate
      properties:
        digitalCardId:
          $ref: '#/components/schemas/DigitalCardId'
        dpan:
          $ref: '#/components/schemas/Dpan'
        shortCardId:
          $ref: '#/components/schemas/ShortCardId'
        scheme:
          $ref: '#/components/schemas/Scheme'
        status:
          $ref: '#/components/schemas/DigitalCardStatus'
        pendingStatus:
          $ref: '#/components/schemas/DigitalCardPendingStatus'
        digitalCardExpiry:
          $ref: '#/components/schemas/YearMonth'
        wallet:
          $ref: '#/components/schemas/WalletProvider'
        tokenRequestor:
          $ref: '#/components/schemas/TokenRequestor'
        productId:
          description: Name of the card product.
          type: string
          example: Bank Card Gold
        provisioningDate:
          description: Provisioning date.
          type: string
          format: date-time
          example: '2021-10-03T16:03:09.101+02:00'
        deviceType:
          $ref: '#/components/schemas/DeviceType'
        deviceName:
          description: Name of the device that the device owner may use to identify it.
          type: string
          example: Peter's iPhone
        digitalCardStatusUpdateReason:
          $ref: '#/components/schemas/DigitalCardStatusUpdateReason'
    Presentment:
      description: Contains the data of a presentment.
      type: object
      required:
        - shortCardId
        - settlementData
        - transactionDataDetails
      properties:
        transactionType:
          description: |-
            - 100: Cash withdrawal
            - 101: Purchase of goods and services
            - 102: Refund to the cardholder
            - 103: ATM operator refund
            - 104: Cardholder change
            - 109: Deposit
            - 117: P2P payment charge sender
            - 118: P2P payment credit recipient
            - 132: Mail order
            - 133: Phone order
            - 136: Cash advance
            - 158: Purchase with Cashback (PwCB)
            - 189: Payment credit / Receive
            - 200: DCC cash withdrawal
            - 203: ATM operator refund DCC
          type: integer
          format: int32
          minimum: 0
          maximum: 999
          example: 101
        transactionDateTime:
          description: Date and time of the transaction.
          type: string
          format: date-time
          example: '2021-10-03T16:03:09.101+02:00'
        shortCardId:
          $ref: '#/components/schemas/ShortCardId'
        cardSeqNumber:
          $ref: '#/components/schemas/CardSeqNumber'
        cardExpiry:
          $ref: '#/components/schemas/YearMonth'
        settlementData:
          $ref: '#/components/schemas/SettlementData'
        transactionDataDetails:
          $ref: '#/components/schemas/TransactionDataDetails'
        originalCurrencyData:
          $ref: '#/components/schemas/OriginalCurrencyData'
        reversalData:
          $ref: '#/components/schemas/ReversalData'
        matchFlag:
          description: >-
            Indicates if the presentment was successfully matched with a
            transaction authorization.
          type: boolean
          example: true
        authorizationReference:
          description: >-
            The authorization which is referenced by this presentment. This is
            equal to the TransactionId of the referenced transaction returned by
            the transaction endpoint.
          type: string
          example: 6f4a6efe-fd8e-411a-8f23-adbf4bc4a6b6
    SettlementData:
      type: object
      description: Data pertaining to the settlement of a presentment.
      properties:
        clearingDate:
          description: Date of the settlement clearing.
          type: string
          format: date
          example: '2023-12-31'
        totalAmountClearingType:
          $ref: '#/components/schemas/ClearingType'
        transactionAmountClearingType:
          $ref: '#/components/schemas/ClearingType'
        feesProcessingType:
          $ref: '#/components/schemas/ClearingType'
        feesType:
          description: >-
            - 0: None

            - 1: Interchange or service fee: Commission in favor of / at the
            expense of the issuer bank

            - 2: Compensation to the location bank for transactions with foreign
            cards
          type: integer
          format: int32
          minimum: 0
          maximum: 9
          example: 1
        settlementAmounts:
          $ref: '#/components/schemas/SettlementAmounts'
    SettlementAmounts:
      type: object
      description: Settlement amounts in card currency.
      required:
        - totalAmount
      properties:
        totalAmount:
          $ref: '#/components/schemas/Amount'
        transactionAmount:
          $ref: '#/components/schemas/Amount'
        feesAmount:
          $ref: '#/components/schemas/Amount'
        transactionCashbackAmount:
          $ref: '#/components/schemas/Amount'
        transactionSurchargeAmount:
          $ref: '#/components/schemas/Amount'
        transactionTipAmount:
          $ref: '#/components/schemas/Amount'
    TransactionDataDetails:
      type: object
      properties:
        retrievalReference:
          $ref: '#/components/schemas/RetrievalReference'
        schemeTransactionId:
          description: >-
            Transaction id assigned by the scheme during the first
            authorization.
          type: string
          maxLength: 36
          example: MDSJ9CC6I1134
        approvalCode:
          description: >-
            Series of characters that can be set by the issuer when the
            authorization takes place.
          type: string
          maxLength: 6
          example: '803051'
        retrievalSituation:
          description: |-
            Customer and location transaction context.
            - "SIS": Swiss in Switzerland / Liechtensteiner in Liechtenstein
            - "AIS": Foreigner in Switzerland / Foreigner in Liechtenstein
            - "SIA": Swiss abroad / Liechtensteiner abroad
          type: string
          maxLength: 3
        transactionCapture:
          description: >-
            Information about the place of authorization and the conclusion of
            the transaction.

            - "ONL": Online (authorized by SIX)

            - "OFF": Offline (authorized at the terminal)

            - "PIA": Authorized via PIA link at the issuer

            - "SAF": Store and forward

            - "VIS": Authorized via Visa network at the issuer

            - "SIE": Stand-In authorized through MCI

            - "SIP": Stand-In authorized through SIX

            - "MCI": Authorized via MCI net authorized by issuer
          type: string
          maxLength: 3
        captureMethod:
          description: |-
            Method by which the card was captured.
            - "MAG": Magnetic stripe
            - "EMV": Chip
            - "EFB": EMV fallback
            - "MAN": Manual entering 
            - "ECO": Electronic acquisition (e-commerce)
            - "CLS": Contactless
            - "QRC": QR code reader
            - "COF": Credential on file
          type: string
          maxLength: 3
        cardDataSource:
          description: |-
            Source of the card data
            - "CPR": Cardholder present
            - "CNP": Cardholder not present or unknown
            - "MOR": Order via mail
            - "TOR": Order via telephone
            - "MTO": Order via mail or telephone
            - "REC": Recurring transaction
            - "ECO": E-commerce
          type: string
          maxLength: 3
        multipleClearingIndicator:
          description: Indicates whether multiple clearings exist or it is a single booking
          type: boolean
          example: true
        settlementIndicator:
          description: Indicates whether the transaction is a settlement
          type: boolean
          example: true
        paymentTransactionType:
          description: |-
            - 0: Unknown
            - 1: Person to person
            - 2: Account to account
            - 3: Agent cash out
            - 4: Credit card bill payment
            - 5: Business disbursement
            - 6: Government/non-profit disbursement
            - 7: Merchant settlement
            - 8: Online gambling payout
            - 9: Other
            - 10: Business to business transfer
            - 11: Payroll pension disbursements
            - 12: Loyalty payments
            - 13: Gambling payout
            - 14: Cash to card
            - 901: Person to business
          type: integer
          format: int32
          minimum: 0
          maximum: 999
          example: 1
        cardAcceptor:
          $ref: '#/components/schemas/CardAcceptor'
        merchant:
          $ref: '#/components/schemas/Merchant'
        dpan:
          $ref: '#/components/schemas/Dpan'
        walletType:
          $ref: '#/components/schemas/WalletType'
        threeDsIndicator:
          description: |-
            - 0: 3DS not supported by merchant
            - 1: 3DS supported by merchant but not provided by issuer
            - 2: Full 3DS transaction
            - 3: 3DS supported by merchant (Maestro Adv.Reg.Prog)
            - 4: Data only
            - 5: Issuer risk-based decisioning (only for Wallet transactions)
            - 6: Merchant risk-based decisioning
            - 7: Partial shipment or recurring payment
            - 8: ACQ SCA exemption no authentication
            - 9: Not applicable
          type: integer
          format: int32
          minimum: 0
          maximum: 9
          example: 1
    OriginalCurrencyData:
      type: object
      properties:
        originalTransactionAmounts:
          type: object
          properties:
            originalAmount:
              $ref: '#/components/schemas/Amount'
            cashbackAmount:
              $ref: '#/components/schemas/Amount'
            surchargeAmount:
              $ref: '#/components/schemas/Amount'
            tipAmount:
              $ref: '#/components/schemas/Amount'
        exchangeRate:
          description: Customer exchange rate for the original transaction
          type: string
          maxLength: 12
          example: '1.211226'
        referenceCountryCode:
          description: Country code of reference country according to ISO 3166
          type: integer
          format: int32
          minimum: 1
          maximum: 999
          example: 756
    ReversalData:
      type: object
      properties:
        reversalType:
          description: |-
            - 0: Normal booking
            - 1: Second presentment
            - 2: (Partial) Reversal of presentment
            - 3: Reversal of second presentment
            - 4: Chargeback
            - 5: Reversal of chargeback
            - 7: Partial chargeback
            - 8: Partial second presentment
          type: integer
          format: int32
          maximum: 9
          example: 7
        originalTransactionDateTime:
          description: Datetime of the original transaction
          type: string
          format: date-time
          example: '2021-10-03T16:03:09.101+02:00'
        issuerReference:
          description: Card issuer reference
          type: integer
          format: int32
          maximum: 999999
          example: 230776
        chargebackReasonCode:
          description: Reason for a chargeback transaction
          type: integer
          format: int32
          maximum: 9999
          example: 4555
    DeviceType:
      description: |-
        Type of the device where the digital card is stored. 
        - "HCE"
        - "SPAY_PHONE"
        - "SPAY_TABLET"
        - "SPAY_WATCH"
        - "SPAY_TV"
        - "IPHONE"
        - "IWATCH"
        - "APPLE_WATCH"
        - "IPAD"
        - "MAC_BOOK"
        - "ANDROID_PHONE"
        - "ANDROID_TABLET"
        - "ANDROID_WATCH"
        - "MOBILE_PHONE"
        - "TABLET"
        - "WATCH"
        - "MOBILE_PHONE_OR_TABLET"
        - "BRACELET"
        - "PC"
        - "HOUSEHOLD"
        - "WEARABLE"
        - "AUTOMOBILE"
        - "UNKNOWN"
      type: string
      example: IPHONE
    CardId:
      description: >-
        Complex object representing a card consisting of bank clearing number,
        card number, card type, card sequence number and card expiry.
      type: object
      required:
        - bankClearingNumber
        - cardNumber
        - cardType
        - cardSeqNumber
        - cardExpiry
      properties:
        bankClearingNumber:
          $ref: '#/components/schemas/BankClearingNumber'
        cardNumber:
          $ref: '#/components/schemas/CardNumber'
        cardType:
          $ref: '#/components/schemas/CardType'
        cardSeqNumber:
          $ref: '#/components/schemas/CardSeqNumber'
        cardExpiry:
          $ref: '#/components/schemas/YearMonth'
    ShortCardId:
      description: >-
        Complex object representing a card consisting of bank clearing number,
        card number and card type.
      type: object
      required:
        - bankClearingNumber
        - cardNumber
        - cardType
      properties:
        bankClearingNumber:
          $ref: '#/components/schemas/BankClearingNumber'
        cardNumber:
          $ref: '#/components/schemas/CardNumber'
        cardType:
          $ref: '#/components/schemas/CardType'
    BankClearingNumber:
      description: >-
        Unique number used to identify each bank agency or branch in the bank
        directory.
      type: integer
      format: int32
      minimum: 100
      maximum: 99999
      example: 50000
    AccountNumber:
      description: Unique number identifying a bank account.
      type: string
      minLength: 1
      maxLength: 16
      example: AB-4567890123456
    Iban:
      description: IBAN of the bank account for which the card was issued.
      type: string
      minLength: 21
      maxLength: 21
      example: CH3456789012345678901
    CardMaterial:
      description: Distinguishes physical from virtual cards.
      type: string
      enum:
        - PHYSICAL
        - VIRTUAL
    CardPlasticCode:
      description: Plastic code of the card.
      type: string
      minLength: 2
      maxLength: 2
      example: F0
    BranchNumber:
      description: Branch number of the site where the account was initially created.
      type: integer
      format: int32
      minimum: 0
      maximum: 9999
      example: 1
    SubCardType:
      description: >-
        Sub card type that is linked to the BIN range and specifies a product
        like 'Platinum', 'Gold', 'Student' etc.
      type: string
      minLength: 2
      maxLength: 2
      example: A1
    CardStatus:
      description: The status of the card.
      type: string
      enum:
        - ACTIVE
        - SUSPENDED
        - DELETED
        - SUSPENSION_PENDING
        - RESUMPTION_PENDING
    CardNumber:
      type: integer
      format: int32
      minimum: 1
      maximum: 99999999
      example: 12345678
    CardType:
      description: |-
        A single digit that distinguishes the card types of the schemes.
        - 1: Debit mastercard
        - 3: Visa debit
      type: integer
      format: int32
      minimum: 1
      maximum: 3
    CardSeqNumber:
      type: integer
      format: int32
      minimum: 0
      maximum: 9
      example: 2
    DigitalCardStatusUpdateReason:
      description: The reason for the status update of the digital card.
      type: string
      enum:
        - ISSUER_DECISION
        - USER_DECISION
    StatusUpdateReason:
      description: The reason for the status update of the card.
      type: string
      enum:
        - ISSUER_DECISION
        - USER_DECISION
    CardBlockReason:
      description: The reason why the card was blocked.
      type: string
      enum:
        - NO_INFORMATION
        - CARD_LOST_WITHOUT_PIN
        - CARD_STOLEN_WITHOUT_PIN
        - FRAUD
        - CREDIT_STANDING
        - TOO_MANY_INVALID_PIN_ATTEMPTS
        - CARD_LOST_WITH_PIN
        - CARD_STOLEN_WITH_PIN
        - PICK_UP_BM_TM
        - CARD_DID_NOT_ARRIVE
        - PIN_DID_NOT_ARRIVE
        - TECHNICAL_REASON
        - DEFECTIVE_CARD
    CardBlockOrigin:
      description: Initiator and channel of the card blocking.
      type: string
      enum:
        - ONLINE_BANKING_BY_CARDHOLDER
        - MOBILE_BANKING_BY_CARDHOLDER
        - THREE_DS_CARDMANAGEMENT_APP_BY_CARDHOLDER
        - BACKEND_OF_BANK_BY_BANK
        - BACKEND_OF_BANK_BY_CARDHOLDER
        - BANK_DEBIT_ONLINE_WEB_BY_BANK
        - BANK_DEBIT_ONLINE_WEB_BY_CALL_CARDHOLDER
        - SIX_CALLCENTER_BY_CALL_CARDHOLDER
        - SIX_CALLCENTER_DEBIT_ONLINE_WEB_VIA_BLOCKING_MASK_BY_CALL_CARDHOLDER
        - SIX_BY_THIRD_PARTY_ORDER
        - SIX_DEBIT_ONLINE_WEB_VIA_BLOCKING_MASK_BY_THIRD_PARTY_ORDER
        - SIX_DEBIT_ONLINE_WEB_VIA_CARD_MASK_BY_THIRD_PARTY_ORDER
        - SIX_FRAUD_BY_RISKSHIELD_MANUAL
        - SIX_FRAUD_BY_RISKSHIELD_AUTOMATIC
        - SIX_BY_BLOCKING_APPLICATION
    CardBlockOriginViaBank:
      description: >-
        Initiator and channel of the card blocking when the card is blocked via
        the bank.
      type: string
      enum:
        - ONLINE_BANKING_BY_CARDHOLDER
        - MOBILE_BANKING_BY_CARDHOLDER
        - THREE_DS_CARDMANAGEMENT_APP_BY_CARDHOLDER
        - BACKEND_OF_BANK_BY_BANK
        - BACKEND_OF_BANK_BY_CARDHOLDER
    CardBlockInterface:
      description: The interface used for blocking the card.
      type: string
      enum:
        - DEBIX_API
        - DEBIX_APP
        - DEBIX_PORTAL
        - DEBIT_ONLINE_WEB
        - DEBIT_ONLINE_XML
        - BLOCKING_APPLICATION_GENERATED_BY_SIX
    BlockedCardReplacement:
      description: The need of a card replacement when the card has been blocked.
      type: string
      enum:
        - NO_REPLACEMENT
        - CARD
        - CARD_WITH_PIN_MAILER
        - CARD_WITH_PIN_AND_OTRC_MAILER
        - CARD_WITH_OTRC_MAILER
        - CARD_WITH_UNKNOWN_MAILER
    PinRecoveryStatus:
      description: The status of the PIN recovery.
      type: string
      enum:
        - NO_PIN_ORDERED
        - NEW_PIN_ORDERED_PIN_CHANGE_REQUIRED
        - NEW_PIN_ORDERED_RECOVERY_PROCESSED
        - NEW_PIN_ORDERED_RECOVERY_CONFIRMED
        - NEW_PIN_ORDERED_RECOVERY_NOK
    DigitalCardStatus:
      description: The status of the digital card.
      type: string
      enum:
        - ACTIVE
        - SUSPENDED
        - DELETED
    DigitalCardPendingStatus:
      description: The requested but pending status of the digital card.
      type: string
      enum:
        - RESUMPTION_PENDING
        - SUSPENSION_PENDING
        - DELETION_PENDING
    MerchantCategoryCode:
      description: >-
        The merchant category code. In a whitelist, the presence of 0 signifies
        that all merchant category codes are allowed.
      type: integer
      format: int32
      minimum: 0
      maximum: 9999
      example: 7995
    MoneySendReceiveAllowance:
      description: >-
        Defines conditions if money send to and receive from another cardholder
        is allowed.
      type: string
      enum:
        - NOT_ALLOWED
        - RECEIVE_ALLOWED
        - SEND_ALLOWED
        - RECEIVE_AND_SEND_ALLOWED
    GamblingAndBettingAllowance:
      description: Defines condition when gambling and betting transactions are allowed.
      type: string
      enum:
        - ALLOWED
        - NOT_ALLOWED
        - CARD_NOT_PRESENT_NOT_ALLOWED
        - CARD_PRESENT_NOT_ALLOWED
    WalletProvider:
      description: |-
        - "WALLET"
        - "ECOM"
        - "APPLE_PAY"
        - "SAMSUNG_PAY"
        - "GOOGLE_PAY"
        - "GARMIN_PAY"
        - "FITBIT_PAY"
        - "FACEBOOK"
        - "VISA_CHECKOUT"
        - "NETFLIX"
        - "ASIA_PAY_LIMITED"
        - "CYBERSOURCE"
        - "CHERRI_TECH"
        - "ADYEN"
        - "AMAZON"
        - "MENA_FZ_LLC"
        - "GLOBAL_PYT_AUSTRALIA"
        - "PAYSCOUT"
        - "SAFECHARGE"
        - "SECURECO"
        - "WORLDPAY"
        - "PAYPAL"
        - "BAMBORA_ONLINE"
        - "MYOB"
        - "HUAWEI_PAY"
      type: string
      example: APPLE_PAY
    WalletType:
      description: |-
        - "A": Apple Pay
        - "F": Fitbit
        - "G": G&D Wallet ErsteBank
        - "I": Raipay
        - "L": LAKS/Disiseq
        - "M": Merchant Tokenization
        - "O": Google Pay
        - "P": PSA-Wallet
        - "R": Garmin/Fitpay
        - "S": Samsung Pay
        - "T": Tappy
        - "W": Fidesmo
        - "X": Xiaomi
        - "Z": Zepp1
        - "?": Unknown Wallet Type
      type: string
      maxLength: 1
      example: A
    TokenRequestor:
      description: Information about the token requestor.
      type: object
      properties:
        id:
          description: The id of the token requestor.
          type: string
          maxLength: 11
          example: 1111111111
        name:
          description: The name of the token requestor.
          type: string
          maxLength: 64
          example: Zalando
    YearMonth:
      type: object
      required:
        - month
        - year
      properties:
        month:
          description: The two digit number of the month starting at 01 for January.
          type: string
          example: '01'
        year:
          description: The last two digits of the year.
          type: string
          example: '21'
    Scheme:
      description: Scheme of the card.
      type: string
      enum:
        - MASTERCARD
        - VISA
    Dpan:
      description: Number of the digital card.
      type: integer
      format: int64
      minimum: 1000000000000000
      maximum: 10000000000000000
      example: 1234567890123456
    RejectedDigitalCard:
      type: object
      properties:
        dpan:
          $ref: '#/components/schemas/Dpan'
        error:
          $ref: '#/components/schemas/ErrorDetail'
    DigitalCardId:
      description: debiX id of the digital card.
      type: string
      example: eb404f8d-656b-4e51-8872-88c42fa55536
    TransactionId:
      description: Worldline unique id of the transaction.
      type: string
      maxLength: 36
      example: 9e19df54-47cb-494b-84dc-1c126e95a05c
    Amount:
      description: Original transaction amount.
      type: object
      required:
        - currency
        - unscaledAmount
        - scale
      properties:
        currency:
          description: Original transaction currency according to ISO 4217.
          type: string
          maxLength: 3
          example: CHF
        unscaledAmount:
          description: Original unscaled transaction amount.
          type: integer
          format: int64
          example: 2000
        scale:
          description: Scale of transaction amount.
          type: integer
          format: int32
          example: 1
    CardAcceptor:
      description: The card acceptor, e.g. merchant, as assigned by the acquirer.
      type: object
      required:
        - id
        - merchantCategoryCode
      properties:
        id:
          description: Identification of the card acceptor.
          type: string
          minLength: 1
          maxLength: 15
          example: '87040'
        name:
          description: Name.
          type: string
          example: Meier Gmbh
        streetName:
          description: Location street name.
          type: string
        postalCode:
          description: Location postal code.
          type: string
        city:
          description: Location city.
          type: string
        regionCode:
          description: Location region code.
          type: string
        countryCode:
          description: Location country code.
          type: string
        merchantCategoryCode:
          description: Category code of the merchant.
          type: string
    Merchant:
      description: >-
        The enriched merchant data, only delivered if the issuer is enabled for
        enriched merchant data.
      type: object
      required:
        - id
        - logoAvailable
      properties:
        id:
          description: Identification of the merchant.
          type: string
          minLength: 1
          maxLength: 36
          example: '496'
        name:
          description: Pretty name of the merchant.
          type: string
          example: Yallo
        merchantCategory:
          description: Merchant category name.
          type: string
          example: Telco
        logoAvailable:
          description: Indicates if a merchant logo is available.
          type: boolean
          example: true
        address:
          $ref: '#/components/schemas/Address'
        location:
          $ref: '#/components/schemas/Location'
        contact:
          $ref: '#/components/schemas/Contact'
    Location:
      type: object
      required:
        - longitude
        - latitude
      properties:
        longitude:
          description: Longitude
          type: number
          format: double
          example: 8.5426102
        latitude:
          description: Latitude
          type: number
          format: double
          example: 47.3717597
    Contact:
      type: object
      properties:
        website:
          description: Website
          type: string
          minLength: 1
          example: www.myshop.ch
        phoneNumber:
          description: Phone number
          type: string
          minLength: 1
          example: 41795625655
    Address:
      type: object
      properties:
        street:
          description: Street name and street number
          type: string
          minLength: 1
          example: Hardturmstrasse 201
        postalCode:
          description: Postal code
          type: string
          minLength: 1
          example: 8004
        city:
          description: City name
          type: string
          minLength: 1
          example: Zürich
        countryCode:
          description: Country code (ISO 3166 alpha-2 or alpha-3)
          type: string
          minLength: 2
          maxLength: 3
          example: CH
    MerchantLogoResponse:
      type: object
      properties:
        merchantLogo:
          $ref: '#/components/schemas/Image'
    RetrievalReference:
      description: Reference number assigned by acquirer.
      type: string
      maxLength: 12
      example: '120909092386'
    ClearingType:
      description: Payment clearing type.
      type: string
      enum:
        - DEBIT
        - CREDIT
    Image:
      description: Image used for the merchant logo.
      required:
        - image
        - version
        - mimeType
      type: object
      properties:
        image:
          description: Base64 encoded image
          type: string
          format: byte
          pattern: ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$
          example: >-
            2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT
        width:
          description: Width of the image in number of pixels.
          type: integer
          example: 1000
        height:
          description: Height of the image in number of pixels.
          type: integer
          example: 600
        version:
          description: >-
            Version of the current image. Field is increased by 1, when image is
            changed. This value will be compared with value from 'If-None-Match'
            to find out if the image is in sync with the client.
          type: integer
          example: 1
        mimeType:
          description: MIME type of the current image.
          type: string
          example: image/svg+xml
    FirstName:
      description: First name
      type: string
      maxLength: 25
      example: Peter
    FamilyName:
      description: Family name
      type: string
      maxLength: 25
      example: Schweizer
    OtrcDatamailerDelivery:
      description: Defines the delivery of the OTRC datamailer.
      type: string
      enum:
        - DELIVER_TO_BANK
        - DELIVER_TO_CARDHOLDER
    OtrcDatamailerExpressCode:
      description: Defines the express code of the OTRC datamailer delivery.
      type: string
      enum:
        - A_POST
        - B_POST
        - REGISTERED
    OtrcDelivery:
      description: Delivery type of OTRC. Currently not used for virtual cards.
      type: string
      enum:
        - NONE
        - DATAMAILER
        - ONLINE
      default: NONE
    Birthdate:
      description: Date of birth.
      type: string
      format: date
      example: '2000-12-31'
    AccountAuthority:
      description: Indicates who has the right to draw on the account.
      type: object
      properties:
        firstName:
          $ref: '#/components/schemas/FirstName'
        familyName:
          $ref: '#/components/schemas/FamilyName'
        birthdate:
          $ref: '#/components/schemas/Birthdate'
    PhoneNumber:
      description: >-
        Mobile or landline phone number. Note: phoneNumber is a mandatory
        parameter which must be provided to register a card with authentication
        method SMS_ONLY, PIN, BIOMETRIC or BIOMETRIC_WITH_PIN_FALLBACK.
        Furthermore, phoneNumber must also be provided in case the issuer
        desires to register a card for DELEGATED as primary authentication
        method, with additionally SMS as fallback (as secondary authentication
        method).
      type: string
      pattern: ^([+]|00)[1-9][0-9]{8,18}$
      example: '+41797778899'
    Language:
      description: Correspondence language.
      type: string
      enum:
        - DE
        - FR
        - IT
        - EN
    ThreeDsInformation:
      description: Contains 3DS data provided by Worldline.
      type: object
      required:
        - paymentAuthenticationMethods
      properties:
        paymentAuthenticationMethods:
          $ref: '#/components/schemas/PaymentAuthenticationMethods'
        mobilePhoneNumber:
          $ref: '#/components/schemas/PhoneNumber'
    PaymentAuthenticationMethods:
      description: Container for the available authentication methods.
      type: object
      required:
        - oob
        - ta
        - otp
        - password
      properties:
        oob:
          description: Details of the Out Of Band (OOB) authentication method.
          type: object
          required:
            - status
          properties:
            status:
              $ref: '#/components/schemas/AuthenticationMethodStatus'
            id:
              description: OOB id.
              type: string
              maxLength: 36
        ta:
          description: >-
            Details of the Trusted Authentication via separate app (TA)
            authentication method.
          type: object
          required:
            - status
          properties:
            status:
              $ref: '#/components/schemas/AuthenticationMethodStatus'
            id:
              description: TA user id.
              type: string
              maxLength: 36
        otp:
          type: object
          description: Details of the One Time Password (OTP) authentication method.
          required:
            - status
          properties:
            status:
              $ref: '#/components/schemas/AuthenticationMethodStatus'
        password:
          type: object
          description: Details about the password authentication method.
          required:
            - status
          properties:
            status:
              $ref: '#/components/schemas/AuthenticationMethodStatus'
    AuthenticationMethodStatus:
      description: Status of an authentication method.
      type: string
      enum:
        - ENABLED
        - DISABLED
        - BLOCKED
    ThreeDsData:
      description: >-
        Relevant data to register a card for 3DS with a specific authentication
        method based on the setup desired by the issuer. Authentication method
        DELEGATED additionally requires an authId and SMS_ONLY additionally
        requires a phoneNumber.
      type: object
      required:
        - language
        - authenticationMethod
      properties:
        userId:
          description: >-
            Identifier assigned to a particular user by the issuer. Note: userId
            is a mandatory parameter when registering a card with authentication
            method PIN, BIOMETRIC or BIOMETRIC_WITH_PIN_FALLBACK.
          type: string
          minLength: 1
          example: '2345872'
        phoneNumber:
          $ref: '#/components/schemas/PhoneNumber'
        language:
          $ref: '#/components/schemas/Language'
        authId:
          $ref: '#/components/schemas/AuthId'
        emCertId:
          $ref: '#/components/schemas/EmCertId'
        authenticationMethod:
          $ref: '#/components/schemas/AuthenticationMethod'
        biometricType:
          $ref: '#/components/schemas/BiometricType'
        pinCode:
          $ref: '#/components/schemas/PinCode'
    PartialThreeDsData:
      description: Partial data pertaining to a 3DS registration.
      type: object
      properties:
        userId:
          description: >-
            Identifier assigned to a particular user by the issuer. Note: userId
            is a mandatory parameter when registering a card with authentication
            method PIN, BIOMETRIC or BIOMETRIC_WITH_PIN_FALLBACK.
          type: string
          minLength: 1
          example: '2345872'
        phoneNumber:
          $ref: '#/components/schemas/PhoneNumber'
        language:
          $ref: '#/components/schemas/Language'
        authId:
          $ref: '#/components/schemas/AuthId'
        emCertId:
          $ref: '#/components/schemas/EmCertId'
        authenticationMethod:
          $ref: '#/components/schemas/AuthenticationMethod'
        biometricType:
          $ref: '#/components/schemas/BiometricType'
        pinCode:
          $ref: '#/components/schemas/PinCode'
    AuthenticationMethod:
      description: >-
        User authentication method. For 3DS Out-of-Band (OOB), authentication
        method DELEGATED must be selected
      type: string
      enum:
        - PIN
        - BIOMETRIC
        - BIOMETRIC_WITH_PIN_FALLBACK
        - DELEGATED
        - SMS_ONLY
        - NONE
    AuthId:
      description: >-
        Identifier for the device used for 3DS. Note: authId is a mandatory
        parameter which must be provided when registering a card with
        authentication method PIN, BIOMETRIC, BIOMETRIC_WITH_PIN_FALLBACK or
        DELEGATED.
      type: string
      minLength: 1
      maxLength: 36
      example: '480463608'
    EmCertId:
      description: >-
        Identifier for the device used for 3DS. Deprecated, will be replaced by
        AuthId.
      deprecated: true
      type: string
      minLength: 1
      example: '480463608'
    BiometricType:
      description: >-
        Type of biometric authentication; required for authentication method
        BIOMETRIC and BIOMETRIC_WITH_PIN_FALLBACK.
      type: string
      enum:
        - ANDROID_BIOMETRIC
        - IOS_BIOMETRIC
    PinCode:
      description: >-
        PIN code used for 3DS authentication; required for authentication method
        PIN and BIOMETRIC_WITH_PIN_FALLBACK.
      type: string
      minLength: 1
      example: '12345'
    CardHolderName:
      description: The cardholder name as printed on the card.
      type: string
      minLength: 2
      maxLength: 26
      example: Peter Meier
    EmailAddress:
      description: Email address to identify the customer.
      type: string
      minLength: 1
      example: peter.schweizer@mailbox.org
    BankApiError:
      description: Information about an error on API requests.
      type: object
      required:
        - applicationError
        - errorCode
      properties:
        applicationError:
          description: The name of the application error.
          type: string
          example: OPERATION_FAILED
        errorCode:
          description: Code describing the error.
          type: integer
          format: int32
          example: 5001
        description:
          description: >-
            A human readable explanation specific to this occurrence of the
            problem.
          type: string
          example: The requested operation failed.
        errors:
          description: List of error details.
          type: array
          items:
            $ref: '#/components/schemas/ErrorDetail'
        errorToken:
          description: >-
            A generated error token referencing the actual error and logged on
            the server.
          type: string
          example: 618503aa-7beb-4d3d-986e-36f1fdbd0e13
    ErrorDetail:
      type: object
      required:
        - errorCode
      properties:
        errorCode:
          description: Code describing the error.
          type: integer
          format: int32
          example: 42
        description:
          description: The message describing the error.
          type: string
          example: >-
            The answer to the great question of Life, the Universe and
            Everything.
