openapi: 3.0.1
info:
  title: QR Invoice REST API
  description: >-
    The QR Invoice REST API provides various services for creation and
    processing of Swiss QR Invoices. This API is available as a Cloud Service
    but is also available as a self-hosted solution.<br /><h3>Product
    Website</h3><a href="https://www.qr-invoice.ch">www.qr-invoice.ch</a><h3>API
    Key</h3>This API requires an API Key for authorization on the Cloud. You may
    use the following Demo API Key or request a trial API on our website: <a
    href="https://www.qr-invoice.ch/bestellung-trial/">QrInvoice - Order Trial
    Key</a><pre>582c9ea9-741a-4bb6-acae-cf92f8805864</pre><br
    /><strong>Important:</strong> Use of Demo API Key comes with a few
    restrictions!<br /><h3>Hints</h3><ul><li>Please note, that you can retrieve
    JSON example documents in the «00 Example Data» section using the respective
    Endpoints. E.g.:
    https://rest.qr-invoice.cloud/v2/examples/qr-invoice/with-qr-reference</li><li>Handle
    error responses correctly by checking HTTP status and read detailed
    error/validation message from response body</li><li>Check all
    parameters</li><li>Check out length limitation</li><li>Consult official
    standards / specification if you need more detailed information regarding
    QR-Bill specification</li></ul><br /><h3>Standards /
    Specifications</h3>Overview of official specs <a
    href="https://www.qr-invoice.ch/dokumentation/standards-merkblaetter/">www.qr-invoice.ch/dokumentation/standards-merkblaetter/</a><br
    /><h3>QR Invoice Layers</h3><img
    src="https://rest.qr-invoice.cloud/qrinvoice-layers.png" width="550" /><br
    /><h3>QR Invoice Model</h3><img
    src="https://rest.qr-invoice.cloud/qrinvoice-model.png" width="700" /><br
    /><br />Product Version: 1.21-SNAPSHOT
  contact:
    name: Codeblock GmbH
    url: https://www.qr-invoice.ch
    email: contact@codeblock.ch
  license:
    name: Commercial license
    url: https://www.qr-invoice.ch/licenses/
  version: '2.0'
servers:
  - url: https://rest.qr-invoice.cloud
    description: Generated server url
security:
  - X-API-Key: []
  - api_key: []
tags:
  - name: 00 Example Data
    description: Various example data that can be used as example input to other services
  - name: 10 QR Invoice Documents including Payment Part & Receipt (QR Bill)
  - name: 11 Payment Part & Receipt (QR Bill)
  - name: 12 Swiss QR Code
  - name: 13 Swiss Payments Code
  - name: 20 IBAN
  - name: 21 QR Reference (QRR)
  - name: 22 Creditor Reference (SCOR)
  - name: 23 Country Codes
    description: According to ISO 3166-1 alpha-2
  - name: 30 Bill Information
  - name: 31 Alternative Schemes
  - name: 90 PDF
  - name: 99 Authentication
  - name: XX Deprecated QR Invoice Operations v1
    description: Version 1 of QR Invoice REST API
paths:
  /v2/swiss-qr-code:
    get:
      tags:
        - 12 Swiss QR Code
      summary: Create Swiss QR Code - Prefer POST endpoint if possible
      operationId: create_4
      parameters:
        - name: format
          in: query
          description: Output Format
          required: false
          schema:
            type: string
            default: application/pdf
        - name: resolution
          in: query
          description: Output Resolution.
          required: false
          schema:
            type: string
            default: MEDIUM_300_DPI
            enum:
              - LOW_150_DPI
              - MEDIUM_300_DPI
              - HIGH_600_DPI
        - name: size
          in: query
          description: >-
            Desired QR Code size (in pixels). This is an alternative to Output
            Resolution. This is only relevant for raster graphics (e.g. PNG).
            Please note that it is only a hint.
          required: false
          content:
            '*/*':
              schema:
                type: string
                example: 500
        - name: normalizeInput
          in: query
          description: >-
            If true, input gets normalized. This means strings are trimmed,
            special quotations replaced with ASCII ones and special characters
            replaced with semantically equal ones (e.g. œ -> oe)
          required: false
          schema:
            type: boolean
            default: false
        - name: qrInvoice
          in: query
          description: QrInvoice json document, URL encoded using UTF8
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The QR code in the requested output format.
          content:
            application/pdf:
              schema:
                type: object
            image/png:
              schema:
                type: object
            image/gif:
              schema:
                type: object
            image/jpeg:
              schema:
                type: object
            image/bmp:
              schema:
                type: object
            image/tiff:
              schema:
                type: object
            image/svg+xml:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
    post:
      tags:
        - 12 Swiss QR Code
      summary: Create Swiss QR Code
      operationId: create
      parameters:
        - name: resolution
          in: query
          description: Output Resolution.
          required: false
          schema:
            type: string
            default: MEDIUM_300_DPI
            enum:
              - LOW_150_DPI
              - MEDIUM_300_DPI
              - HIGH_600_DPI
        - name: size
          in: query
          description: >-
            Desired QR Code size (in pixels). This is an alternative to Output
            Resolution. This is only relevant for raster graphics (e.g. PNG).
            Please note that it is only a hint.
          required: false
          content:
            '*/*':
              schema:
                type: string
                example: 500
        - name: normalizeInput
          in: query
          description: >-
            If true, input gets normalized. This means strings are trimmed,
            special quotations replaced with ASCII ones and special characters
            replaced with semantically equal ones (e.g. œ -> oe)
          required: false
          schema:
            type: boolean
            default: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QrInvoice'
        required: true
      responses:
        '200':
          description: The QR code in the requested output format.
          content:
            application/pdf:
              schema:
                type: object
            image/png:
              schema:
                type: object
            image/gif:
              schema:
                type: object
            image/jpeg:
              schema:
                type: object
            image/bmp:
              schema:
                type: object
            image/tiff:
              schema:
                type: object
            image/svg+xml:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/swiss-qr-code/validate:
    post:
      tags:
        - 12 Swiss QR Code
      summary: Validate file containing a single Swiss QR Code
      operationId: validate
      requestBody:
        content:
          multipart/form-data:
            schema:
              required:
                - file
              type: object
              properties:
                file:
                  type: string
                  description: QrInvoice
                  format: binary
      responses:
        '200':
          description: The validation result
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/swiss-qr-code/parse:
    post:
      tags:
        - 12 Swiss QR Code
      summary: >-
        Parse / extract Swiss QR Code from document (Returns first code if
        multiple present)
      operationId: parse
      parameters:
        - name: expandBillInformation
          in: query
          description: If true, bill information will be expanded as object if present
          required: false
          schema:
            type: boolean
            default: false
        - name: effortLevel
          in: query
          description: >-
            If HARDER, service tries harder to detect QR codes. Operation is
            slower when efforts are strengthened, but detection rate is higher.
          required: false
          schema:
            type: string
            default: DEFAULT
            enum:
              - DEFAULT
              - HARDER
      requestBody:
        content:
          multipart/form-data:
            schema:
              required:
                - file
              type: object
              properties:
                file:
                  type: string
                  description: >-
                    QR bill to parse. Supported are PDFs and raster graphics
                    such as JPEG and PNG.
                  format: binary
      responses:
        '200':
          description: The parsed QR Invoice structure
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QrInvoice'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: No Swiss QR Code could be parsed / extracted from the given document
          content:
            application/json:
              schema:
                type: object
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/swiss-qr-code/parseAll:
    post:
      tags:
        - 12 Swiss QR Code
      summary: Parse / extract all Swiss QR Code from document in an array
      operationId: parseAll
      parameters:
        - name: expandBillInformation
          in: query
          description: If true, bill information will be expanded as object if present
          required: false
          schema:
            type: boolean
            default: false
        - name: effortLevel
          in: query
          description: >-
            If HARDER, service tries harder to detect QR codes. Operation is
            slower when efforts are strengthened, but detection rate is higher.
          required: false
          schema:
            type: string
            default: DEFAULT
            enum:
              - DEFAULT
              - HARDER
      requestBody:
        content:
          multipart/form-data:
            schema:
              required:
                - file
              type: object
              properties:
                file:
                  type: string
                  description: >-
                    QR bill to parse. Supported are PDFs and raster graphics
                    such as JPEG and PNG.
                  format: binary
      responses:
        '200':
          description: The parsed QR Invoices structure
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QrInvoice'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: No Swiss QR Code could be parsed / extracted from the given document
          content:
            application/json:
              schema:
                type: object
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/swiss-payments-code:
    post:
      tags:
        - 13 Swiss Payments Code
      summary: Create Swiss Payments Code
      operationId: create_1
      parameters:
        - name: normalizeInput
          in: query
          description: >-
            If true, input gets normalized. This means strings are trimmed,
            special quotations replaced with ASCII ones and special characters
            replaced with semantically equal ones (e.g. œ -> oe)
          required: false
          schema:
            type: boolean
            default: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QrInvoice'
        required: true
      responses:
        '200':
          description: The raw Swiss Payments Code (SPC)
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/swiss-payments-code/validate:
    post:
      tags:
        - 13 Swiss Payments Code
      summary: Validates the given Swiss Payments Code
      operationId: validate_1
      requestBody:
        content:
          text/plain:
            schema:
              type: string
              description: Swiss Payments Code
        required: true
      responses:
        '200':
          description: The validation result
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/swiss-payments-code/parse:
    post:
      tags:
        - 13 Swiss Payments Code
      summary: Parse Swiss Payments Code
      operationId: parse_1
      requestBody:
        content:
          text/plain:
            schema:
              type: string
              description: Swiss Payments Code
        required: true
      responses:
        '200':
          description: The QrInvoice Object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QrInvoice'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/qr-reference/validate:
    post:
      tags:
        - 21 QR Reference (QRR)
      summary: Validate a QR reference
      operationId: validate_2
      requestBody:
        content:
          text/plain:
            schema:
              type: string
              description: QR reference
        required: true
      responses:
        '200':
          description: Valid QR reference
          content:
            '*/*':
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/qr-reference/normalize:
    post:
      tags:
        - 21 QR Reference (QRR)
      summary: Normalize a QR reference
      operationId: normalize
      requestBody:
        content:
          text/plain:
            schema:
              type: string
              description: QR reference
        required: true
      responses:
        '200':
          description: Normalized QR reference
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/qr-reference/modulo10recursive:
    post:
      tags:
        - 21 QR Reference (QRR)
      summary: Calculate Check Digit by Modulo 10 recursive
      operationId: modulo10recursive
      requestBody:
        content:
          text/plain:
            schema:
              type: string
              description: number
        required: true
      responses:
        '200':
          description: Check Digit for Input
          content:
            text/plain:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/qr-reference/format:
    post:
      tags:
        - 21 QR Reference (QRR)
      summary: Format a QR reference
      operationId: format
      requestBody:
        content:
          text/plain:
            schema:
              type: string
              description: QR reference
        required: true
      responses:
        '200':
          description: Valid QR reference
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/qr-reference/extract:
    post:
      tags:
        - 21 QR Reference (QRR)
      summary: Extract the actual reference number from a QR Reference
      operationId: extract
      parameters:
        - name: stripLeadingZeroes
          in: query
          description: If true, leading zeroes (0) are stripped away
          required: false
          schema:
            type: boolean
            default: true
      requestBody:
        content:
          text/plain:
            schema:
              type: string
              description: QR reference
        required: true
      responses:
        '200':
          description: Actual reference number without checksum
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/qr-reference/create:
    post:
      tags:
        - 21 QR Reference (QRR)
      summary: >-
        Create a QR reference with an optional customer ID. If the passed QR
        reference is missing checksum, it is calculated and appended.
      operationId: create_2
      parameters:
        - name: formatQrReference
          in: query
          description: If true, QR reference is formatted in response
          required: false
          schema:
            type: boolean
            default: false
        - name: customerId
          in: query
          description: Optional customer ID as prefix to the reference
          required: false
          schema:
            type: string
            default: ''
      requestBody:
        content:
          text/plain:
            schema:
              type: string
              description: QR reference
        required: true
      responses:
        '200':
          description: Valid QR reference including checksum
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/qr-iban/validate:
    post:
      tags:
        - 20 IBAN
      summary: >-
        Validate a QR IBAN. QR IBANs are regular IBANs. The only special thing
        is that the IID (institutional identification) is in the QR-IID range.
        QR-IIDs consist exclusively of numbers from 30000 to 31999.
      operationId: validateQrIban
      requestBody:
        content:
          text/plain:
            schema:
              type: string
              description: QR-IBAN
        required: true
      responses:
        '200':
          description: QR-IBAN  is valid
          content:
            '*/*':
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/pdf/merge:
    post:
      tags:
        - 90 PDF
      summary: Merge
      operationId: merge
      parameters:
        - name: onPage
          in: query
          description: Page number on which to place the payment part receipt
          required: false
          schema:
            type: integer
            format: int32
            default: 1
      requestBody:
        content:
          multipart/form-data:
            schema:
              required:
                - file
                - file2
              type: object
              properties:
                file:
                  type: string
                  description: Base PDF file
                  format: binary
                file2:
                  type: string
                  description: >-
                    PDF file (single page) which should get merged onto the
                    first document
                  format: binary
      responses:
        '200':
          description: The merged PDF file
          content:
            application/pdf:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/pdf/append:
    post:
      tags:
        - 90 PDF
      summary: Append
      operationId: append
      requestBody:
        content:
          multipart/form-data:
            schema:
              required:
                - file
                - file2
              type: object
              properties:
                file:
                  type: string
                  description: Base PDF file
                  format: binary
                file2:
                  type: string
                  description: PDF file which should be appended to the base file
                  format: binary
      responses:
        '200':
          description: The appended PDF file
          content:
            application/pdf:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/payment-part-receipt:
    get:
      tags:
        - 11 Payment Part & Receipt (QR Bill)
      summary: Create Payment Part & Receipt - Prefer POST endpoint if possible
      operationId: createPaymentPartReceipt_1
      parameters:
        - name: language
          in: query
          description: Locale
          required: false
          schema:
            type: string
            default: de
            enum:
              - de
              - fr
              - en
              - it
        - name: fontFamily
          in: query
          description: Font Family
          required: false
          schema:
            type: string
            default: LIBERATION_SANS
            enum:
              - HELVETICA
              - ARIAL
              - FRUTIGER
              - LIBERATION_SANS
        - name: fontsEmbedded
          in: query
          description: Embed Fonts in PDF
          required: false
          schema:
            type: boolean
            default: true
        - name: pageSize
          in: query
          description: Page Size
          required: false
          schema:
            type: string
            default: DIN_LANG
            enum:
              - A4
              - A5
              - DIN_LANG
              - DIN_LANG_CROPPED
        - name: format
          in: query
          description: Output Format
          required: false
          schema:
            type: string
            default: application/pdf
        - name: resolution
          in: query
          description: Output Resolution
          required: false
          schema:
            type: string
            default: MEDIUM_300_DPI
            enum:
              - LOW_150_DPI
              - MEDIUM_300_DPI
              - HIGH_600_DPI
        - name: boundaryLines
          in: query
          description: >-
            If a line should be printed to mark the payment parts and receipts
            boundary. This should be true in all cases except the invoice is
            printed to perforated paper.
          required: false
          schema:
            type: boolean
            default: true
        - name: boundaryLinesMargins
          in: query
          description: >-
            If the boundary lines should include a margin and not extend to the
            border of the page. Printers usually are unable to print the lines
            completely otherwise.
          required: false
          schema:
            type: boolean
            default: false
        - name: boundaryLineScissors
          in: query
          description: >-
            If scissors should be printed on the boundary lines. Only to be set
            to true if parameter boundaryLines is set to true.
          required: false
          schema:
            type: boolean
            default: true
        - name: boundaryLineSeparationText
          in: query
          description: >-
            If a separation label should be printed above the payment part. This
            can be used as an alternative or in addition to
            boundaryLineScissors.
          required: false
          schema:
            type: boolean
            default: false
        - name: additionalPrintMargin
          in: query
          description: >-
            If an additional print margin (1mm) should be added to the left,
            right and bottom of the payment part & receipt. If set, 6mm instead
            of 5mm print margin is used. This may be needed some printers and
            print services
          required: false
          schema:
            type: boolean
            default: false
        - name: normalizeInput
          in: query
          description: >-
            If true, input gets normalized. This means strings are trimmed,
            special quotations replaced with ASCII ones and special characters
            replaced with semantically equal ones (e.g. œ -> oe)
          required: false
          schema:
            type: boolean
            default: false
        - name: qrInvoice
          in: query
          description: QrInvoice json document, URL encoded using UTF8
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The payment part & receipt in the requested output format.
          content:
            application/pdf:
              schema:
                type: object
            image/png:
              schema:
                type: object
            image/gif:
              schema:
                type: object
            image/jpeg:
              schema:
                type: object
            image/bmp:
              schema:
                type: object
            image/tiff:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
    post:
      tags:
        - 11 Payment Part & Receipt (QR Bill)
      summary: Create Payment Part & Receipt
      operationId: createPaymentPartReceipt
      parameters:
        - name: Accept-Language
          in: header
          description: Locale
          required: false
          schema:
            type: string
            default: de
            enum:
              - de
              - fr
              - en
              - it
        - name: fontFamily
          in: query
          description: Font Family
          required: false
          schema:
            type: string
            default: LIBERATION_SANS
            enum:
              - HELVETICA
              - ARIAL
              - FRUTIGER
              - LIBERATION_SANS
        - name: fontsEmbedded
          in: query
          description: Embed Fonts in PDF
          required: false
          schema:
            type: boolean
            default: true
        - name: pageSize
          in: query
          description: Page Size
          required: false
          schema:
            type: string
            default: DIN_LANG
            enum:
              - A4
              - A5
              - DIN_LANG
              - DIN_LANG_CROPPED
        - name: resolution
          in: query
          description: Output Resolution
          required: false
          schema:
            type: string
            default: MEDIUM_300_DPI
            enum:
              - LOW_150_DPI
              - MEDIUM_300_DPI
              - HIGH_600_DPI
        - name: boundaryLines
          in: query
          description: >-
            If a line should be printed to mark the payment parts and receipts
            boundary. This should be true in all cases except the invoice is
            printed to perforated paper.
          required: false
          schema:
            type: boolean
            default: true
        - name: boundaryLinesMargins
          in: query
          description: >-
            If the boundary lines should include a margin and not extend to the
            border of the page. Printers usually are unable to print the lines
            completely otherwise.
          required: false
          schema:
            type: boolean
            default: false
        - name: boundaryLineScissors
          in: query
          description: >-
            If scissors should be printed on the boundary lines. Only to be set
            to true if parameter boundaryLines is set to true.
          required: false
          schema:
            type: boolean
            default: true
        - name: boundaryLineSeparationText
          in: query
          description: >-
            If a separation label should be printed above the payment part. This
            can be used as an alternative or in addition to
            boundaryLineScissors.
          required: false
          schema:
            type: boolean
            default: false
        - name: additionalPrintMargin
          in: query
          description: >-
            If an additional print margin (1mm) should be added to the left,
            right and bottom of the payment part & receipt. If set, 6mm instead
            of 5mm print margin is used. This may be needed some printers and
            print services
          required: false
          schema:
            type: boolean
            default: false
        - name: normalizeInput
          in: query
          description: >-
            If true, input gets normalized. This means strings are trimmed,
            special quotations replaced with ASCII ones and special characters
            replaced with semantically equal ones (e.g. œ -> oe)
          required: false
          schema:
            type: boolean
            default: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QrInvoice'
        required: true
      responses:
        '200':
          description: The payment part & receipt in the requested output format.
          content:
            application/pdf:
              schema:
                type: object
            image/png:
              schema:
                type: object
            image/gif:
              schema:
                type: object
            image/jpeg:
              schema:
                type: object
            image/bmp:
              schema:
                type: object
            image/tiff:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/payment-part-receipt/merge:
    post:
      tags:
        - 11 Payment Part & Receipt (QR Bill)
      summary: Create Payment Part & Receipt and merge it with a PDF
      operationId: createAndMergePaymentPartReceipt
      parameters:
        - name: Accept-Language
          in: header
          description: Locale
          required: false
          schema:
            type: string
            default: de
            enum:
              - de
              - fr
              - en
              - it
        - name: fontFamily
          in: query
          description: Font Family
          required: false
          schema:
            type: string
            default: LIBERATION_SANS
            enum:
              - HELVETICA
              - ARIAL
              - FRUTIGER
              - LIBERATION_SANS
        - name: fontsEmbedded
          in: query
          description: Embed Fonts in PDF
          required: false
          schema:
            type: boolean
            default: true
        - name: boundaryLines
          in: query
          description: >-
            If a line should be printed to mark the payment parts and receipts
            boundary. This should be true in all cases except the invoice is
            printed to perforated paper.
          required: false
          schema:
            type: boolean
            default: true
        - name: boundaryLinesMargins
          in: query
          description: >-
            If the boundary lines should include a margin and not extend to the
            border of the page. Printers usually are unable to print the lines
            completely otherwise.
          required: false
          schema:
            type: boolean
            default: false
        - name: boundaryLineScissors
          in: query
          description: >-
            If scissors should be printed on the boundary lines. Only to be set
            to true if parameter boundaryLines is set to true.
          required: false
          schema:
            type: boolean
            default: true
        - name: boundaryLineSeparationText
          in: query
          description: >-
            If a separation label should be printed above the payment part. This
            can be used as an alternative or in addition to
            boundaryLineScissors.
          required: false
          schema:
            type: boolean
            default: false
        - name: additionalPrintMargin
          in: query
          description: >-
            If an additional print margin (1mm) should be added to the left,
            right and bottom of the payment part & receipt. If set, 6mm instead
            of 5mm print margin is used. This may be needed some printers and
            print services
          required: false
          schema:
            type: boolean
            default: false
        - name: normalizeInput
          in: query
          description: >-
            If true, input gets normalized. This means strings are trimmed,
            special quotations replaced with ASCII ones and special characters
            replaced with semantically equal ones (e.g. œ -> oe)
          required: false
          schema:
            type: boolean
            default: false
        - name: onPage
          in: query
          description: Page number on which to place the payment part receipt
          required: false
          schema:
            type: integer
            format: int32
            default: 1
      requestBody:
        content:
          multipart/form-data:
            schema:
              required:
                - QrInvoice
                - pdf
              type: object
              properties:
                QrInvoice:
                  $ref: '#/components/schemas/QrInvoice'
                pdf:
                  type: string
                  description: PDF file to be merged
                  format: binary
      responses:
        '200':
          description: The merged payment part as PDF.
          content:
            application/pdf:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/payment-part-receipt/clone:
    post:
      tags:
        - 11 Payment Part & Receipt (QR Bill)
      summary: >-
        Clones / recreates a given Payment Part & Receipt based on an existing
        Swiss QR Code of a given document
      operationId: createAndAppendPaymentPartReceipt
      parameters:
        - name: Accept-Language
          in: header
          description: Locale
          required: false
          schema:
            type: string
            default: de
            enum:
              - de
              - fr
              - en
              - it
        - name: fontFamily
          in: query
          description: Font Family
          required: false
          schema:
            type: string
            default: LIBERATION_SANS
            enum:
              - HELVETICA
              - ARIAL
              - FRUTIGER
              - LIBERATION_SANS
        - name: fontsEmbedded
          in: query
          description: Embed Fonts in PDF
          required: false
          schema:
            type: boolean
            default: true
        - name: boundaryLines
          in: query
          description: >-
            If a line should be printed to mark the payment parts and receipts
            boundary. This should be true in all cases except the invoice is
            printed to perforated paper.
          required: false
          schema:
            type: boolean
            default: true
        - name: boundaryLinesMargins
          in: query
          description: >-
            If the boundary lines should include a margin and not extend to the
            border of the page. Printers usually are unable to print the lines
            completely otherwise.
          required: false
          schema:
            type: boolean
            default: false
        - name: boundaryLineScissors
          in: query
          description: >-
            If scissors should be printed on the boundary lines. Only to be set
            to true if parameter boundaryLines is set to true.
          required: false
          schema:
            type: boolean
            default: true
        - name: boundaryLineSeparationText
          in: query
          description: >-
            If a separation label should be printed above the payment part. This
            can be used as an alternative or in addition to
            boundaryLineScissors.
          required: false
          schema:
            type: boolean
            default: false
        - name: additionalPrintMargin
          in: query
          description: >-
            If an additional print margin (1mm) should be added to the left,
            right and bottom of the payment part & receipt. If set, 6mm instead
            of 5mm print margin is used. This may be needed some printers and
            print services
          required: false
          schema:
            type: boolean
            default: false
        - name: replaceLastPage
          in: query
          description: >-
            If true, last page is expected to contain only the Swiss QR Code and
            should be replaced with the newly generated payment part & receipt.
            Only works for PDF
          required: false
          schema:
            type: boolean
            default: false
      requestBody:
        content:
          multipart/form-data:
            schema:
              required:
                - file
              type: object
              properties:
                file:
                  type: string
                  description: Document to clone the payment part & receipt from
                  format: binary
      responses:
        '200':
          description: The payment part & receipt in the requested output format.
          content:
            application/pdf:
              schema:
                type: object
            image/png:
              schema:
                type: object
            image/gif:
              schema:
                type: object
            image/jpeg:
              schema:
                type: object
            image/bmp:
              schema:
                type: object
            image/tiff:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/payment-part-receipt/bulk/list:
    post:
      tags:
        - 11 Payment Part & Receipt (QR Bill)
      summary: Create Payment Part & Receipts for a list of QrInvoices
      operationId: createPaymentPartReceipts
      parameters:
        - name: Accept-Language
          in: header
          description: Locale
          required: false
          schema:
            type: string
            default: de
            enum:
              - de
              - fr
              - en
              - it
        - name: fontFamily
          in: query
          description: Font Family
          required: false
          schema:
            type: string
            default: LIBERATION_SANS
            enum:
              - HELVETICA
              - ARIAL
              - FRUTIGER
              - LIBERATION_SANS
        - name: fontsEmbedded
          in: query
          description: Embed Fonts in PDF
          required: false
          schema:
            type: boolean
            default: true
        - name: pageSize
          in: query
          description: Page Size
          required: false
          schema:
            type: string
            default: DIN_LANG
            enum:
              - A4
              - A5
              - DIN_LANG
              - DIN_LANG_CROPPED
        - name: resolution
          in: query
          description: Output Resolution
          required: false
          schema:
            type: string
            default: MEDIUM_300_DPI
            enum:
              - LOW_150_DPI
              - MEDIUM_300_DPI
              - HIGH_600_DPI
        - name: boundaryLines
          in: query
          description: >-
            If a line should be printed to mark the payment parts and receipts
            boundary. This should be true in all cases except the invoice is
            printed to perforated paper.
          required: false
          schema:
            type: boolean
            default: true
        - name: boundaryLinesMargins
          in: query
          description: >-
            If the boundary lines should include a margin and not extend to the
            border of the page. Printers usually are unable to print the lines
            completely otherwise.
          required: false
          schema:
            type: boolean
            default: false
        - name: boundaryLineScissors
          in: query
          description: >-
            If scissors should be printed on the boundary lines. Only to be set
            to true if parameter boundaryLines is set to true.
          required: false
          schema:
            type: boolean
            default: true
        - name: boundaryLineSeparationText
          in: query
          description: >-
            If a separation label should be printed above the payment part. This
            can be used as an alternative or in addition to
            boundaryLineScissors.
          required: false
          schema:
            type: boolean
            default: false
        - name: additionalPrintMargin
          in: query
          description: >-
            If an additional print margin (1mm) should be added to the left,
            right and bottom of the payment part & receipt. If set, 6mm instead
            of 5mm print margin is used. This may be needed some printers and
            print services
          required: false
          schema:
            type: boolean
            default: false
        - name: normalizeInput
          in: query
          description: >-
            If true, input gets normalized. This means strings are trimmed,
            special quotations replaced with ASCII ones and special characters
            replaced with semantically equal ones (e.g. œ -> oe)
          required: false
          schema:
            type: boolean
            default: false
      requestBody:
        content:
          application/json:
            schema:
              type: array
              description: QrInvoices
              items:
                $ref: '#/components/schemas/QrInvoice'
        required: true
      responses:
        '200':
          description: >-
            The payment part & receipts in the requested output format. Result
            is either a multi page PDF file or a ZIP file containing files for
            each list entry.
          content:
            application/pdf:
              schema:
                type: object
            application/zip:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/payment-part-receipt/bulk/file:
    post:
      tags:
        - 11 Payment Part & Receipt (QR Bill)
      summary: >-
        Create Payment Part & Receipts as a bulk operation based on a given
        input file (CSV or XLSX). Result is either a multi page PDF file or a
        ZIP file containing files for each list entry.
      operationId: bulk
      requestBody:
        content:
          multipart/form-data:
            schema:
              required:
                - file
              type: object
              properties:
                csvSeparator:
                  type: string
                  description: CSV separator - only relevant for CSV files
                file:
                  type: string
                  description: >-
                    File containing the list of data to generate from (CSV or
                    XLSX)
                  format: binary
      responses:
        '200':
          description: The payment part & receipts in the requested output format.
          content:
            application/pdf:
              schema:
                type: object
            application/zip:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/payment-part-receipt/append:
    post:
      tags:
        - 11 Payment Part & Receipt (QR Bill)
      summary: Create Payment Part & Receipt and append it to a PDF on a new page
      operationId: createAndAppendPaymentPartReceipt_1
      parameters:
        - name: Accept-Language
          in: header
          description: Locale
          required: false
          schema:
            type: string
            default: de
            enum:
              - de
              - fr
              - en
              - it
        - name: fontFamily
          in: query
          description: Font Family
          required: false
          schema:
            type: string
            default: LIBERATION_SANS
            enum:
              - HELVETICA
              - ARIAL
              - FRUTIGER
              - LIBERATION_SANS
        - name: fontsEmbedded
          in: query
          description: Embed Fonts in PDF
          required: false
          schema:
            type: boolean
            default: true
        - name: boundaryLines
          in: query
          description: >-
            If a line should be printed to mark the payment parts and receipts
            boundary. This should be true in all cases except the invoice is
            printed to perforated paper.
          required: false
          schema:
            type: boolean
            default: true
        - name: boundaryLinesMargins
          in: query
          description: >-
            If the boundary lines should include a margin and not extend to the
            border of the page. Printers usually are unable to print the lines
            completely otherwise.
          required: false
          schema:
            type: boolean
            default: false
        - name: boundaryLineScissors
          in: query
          description: >-
            If scissors should be printed on the boundary lines. Only to be set
            to true if parameter boundaryLines is set to true.
          required: false
          schema:
            type: boolean
            default: true
        - name: boundaryLineSeparationText
          in: query
          description: >-
            If a separation label should be printed above the payment part. This
            can be used as an alternative or in addition to
            boundaryLineScissors.
          required: false
          schema:
            type: boolean
            default: false
        - name: additionalPrintMargin
          in: query
          description: >-
            If an additional print margin (1mm) should be added to the left,
            right and bottom of the payment part & receipt. If set, 6mm instead
            of 5mm print margin is used. This may be needed some printers and
            print services
          required: false
          schema:
            type: boolean
            default: false
        - name: normalizeInput
          in: query
          description: >-
            If true, input gets normalized. This means strings are trimmed,
            special quotations replaced with ASCII ones and special characters
            replaced with semantically equal ones (e.g. œ -> oe)
          required: false
          schema:
            type: boolean
            default: false
      requestBody:
        content:
          multipart/form-data:
            schema:
              required:
                - QrInvoice
                - pdf
              type: object
              properties:
                QrInvoice:
                  $ref: '#/components/schemas/QrInvoice'
                pdf:
                  type: string
                  description: PDF file to be appended to
                  format: binary
      responses:
        '200':
          description: The PDF with the payment part & receipt appended.
          content:
            application/pdf:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/invoice-document:
    post:
      tags:
        - 10 QR Invoice Documents including Payment Part & Receipt (QR Bill)
      summary: Create a QR Invoice Document (QR Bill)
      operationId: createInvoiceDocument
      parameters:
        - name: Accept-Language
          in: header
          description: Locale
          required: false
          schema:
            type: string
            default: de
            enum:
              - de
              - fr
              - en
              - it
        - name: boundaryLines
          in: query
          description: >-
            If a line should be printed to mark the payment parts and receipts
            boundary. This should be true in all cases except the invoice is
            printed to perforated paper.
          required: false
          schema:
            type: boolean
            default: true
        - name: boundaryLinesMargins
          in: query
          description: >-
            If the boundary lines should include a margin and not extend to the
            border of the page. Printers usually are unable to print the lines
            completely otherwise.
          required: false
          schema:
            type: boolean
            default: false
        - name: boundaryLineScissors
          in: query
          description: >-
            If scissors should be printed on the boundary lines. Only to be set
            to true if parameter boundaryLines is set to true.
          required: false
          schema:
            type: boolean
            default: true
        - name: boundaryLineSeparationText
          in: query
          description: >-
            If a separation label should be printed above the payment part. This
            can be used as an alternative or in addition to
            boundaryLineScissors.
          required: false
          schema:
            type: boolean
            default: false
        - name: additionalPrintMargin
          in: query
          description: >-
            If an additional print margin (1mm) should be added to the left,
            right and bottom of the payment part & receipt. If set, 6mm instead
            of 5mm print margin is used. This may be needed some printers and
            print services
          required: false
          schema:
            type: boolean
            default: false
        - name: normalizeInput
          in: query
          description: >-
            If true, input gets normalized. This means strings are trimmed,
            special quotations replaced with ASCII ones and special characters
            replaced with semantically equal ones (e.g. œ -> oe)
          required: false
          schema:
            type: boolean
            default: false
        - name: logoResource
          in: query
          description: >-
            The Logo to be used - must be previously uploaded as customer
            resource
          required: false
          schema:
            type: string
        - name: templateId
          in: query
          description: Invoice Document Template
          required: false
          schema:
            type: string
            default: STANDARD_RECIPIENT_RIGHT_V1
        - name: calculateAmount
          in: query
          description: >-
            True if the total amount in the QR Payment Part & Receipt should be
            calculated
          required: false
          schema:
            type: boolean
            default: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvoiceDocument'
        required: true
      responses:
        '200':
          description: The QR Invoice Document as PDF
          content:
            application/pdf:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/invoice-document/xml-template-model:
    post:
      tags:
        - 10 QR Invoice Documents including Payment Part & Receipt (QR Bill)
      summary: Create an InvoiceDocument xml template model
      operationId: createInvoiceDocumentTemplateModel
      parameters:
        - name: Accept-Language
          in: header
          description: Locale
          required: false
          schema:
            type: string
            default: de
            enum:
              - de
              - fr
              - en
              - it
        - name: boundaryLines
          in: query
          description: >-
            If a line should be printed to mark the payment parts and receipts
            boundary. This should be true in all cases except the invoice is
            printed to perforated paper.
          required: false
          schema:
            type: boolean
            default: true
        - name: boundaryLinesMargins
          in: query
          description: >-
            If the boundary lines should include a margin and not extend to the
            border of the page. Printers usually are unable to print the lines
            completely otherwise.
          required: false
          schema:
            type: boolean
            default: false
        - name: boundaryLineScissors
          in: query
          description: >-
            If scissors should be printed on the boundary lines. Only to be set
            to true if parameter boundaryLines is set to true.
          required: false
          schema:
            type: boolean
            default: true
        - name: boundaryLineSeparationText
          in: query
          description: >-
            If a separation label should be printed above the payment part. This
            can be used as an alternative or in addition to
            boundaryLineScissors.
          required: false
          schema:
            type: boolean
            default: false
        - name: additionalPrintMargin
          in: query
          description: >-
            If an additional print margin (1mm) should be added to the left,
            right and bottom of the payment part & receipt. If set, 6mm instead
            of 5mm print margin is used. This may be needed some printers and
            print services
          required: false
          schema:
            type: boolean
            default: false
        - name: normalizeInput
          in: query
          description: >-
            If true, input gets normalized. This means strings are trimmed,
            special quotations replaced with ASCII ones and special characters
            replaced with semantically equal ones (e.g. œ -> oe)
          required: false
          schema:
            type: boolean
            default: false
        - name: logoResource
          in: query
          description: >-
            The Logo to be used - must be previously uploaded as customer
            resource
          required: false
          schema:
            type: string
        - name: templateId
          in: query
          description: Invoice Document Template
          required: false
          schema:
            type: string
            default: STANDARD_RECIPIENT_RIGHT_V1
        - name: calculateAmount
          in: query
          description: >-
            True if the total amount in the QR Payment Part & Receipt should be
            calculated
          required: false
          schema:
            type: boolean
            default: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvoiceDocument'
        required: true
      responses:
        '200':
          description: The InvoiceDocument xml template model
          content:
            text/xml:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/invoice-document/resources/{filename}:
    post:
      tags:
        - 10 QR Invoice Documents including Payment Part & Receipt (QR Bill)
      summary: Add new customer resource
      operationId: addCustomerResource
      parameters:
        - name: filename
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              required:
                - file
              type: object
              properties:
                file:
                  type: string
                  description: Base PDF file
                  format: binary
      responses:
        '200':
          description: Resource created or updated successfully
          content:
            application/pdf:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/iban/validate:
    post:
      tags:
        - 20 IBAN
      summary: Validate an IBAN
      operationId: validateIban
      requestBody:
        content:
          text/plain:
            schema:
              type: string
              description: IBAN
        required: true
      responses:
        '200':
          description: IBAN is valid
          content:
            '*/*':
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/iban/normalize:
    post:
      tags:
        - 20 IBAN
      summary: Normalize an IBAN. Works for QR-IBAN too.
      operationId: normalize_1
      requestBody:
        content:
          text/plain:
            schema:
              type: string
              description: IBAN
        required: true
      responses:
        '200':
          description: Normalized IBAN
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/iban/format:
    post:
      tags:
        - 20 IBAN
      summary: Format an IBAN. Works for QR-IBAN too.
      operationId: format_1
      requestBody:
        content:
          text/plain:
            schema:
              type: string
              description: IBAN
        required: true
      responses:
        '200':
          description: Valid IBAN
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/creditor-reference/validate:
    post:
      tags:
        - 22 Creditor Reference (SCOR)
      summary: Validate a creditor reference number
      operationId: validate_3
      requestBody:
        content:
          text/plain:
            schema:
              type: string
              description: creditor reference
        required: true
      responses:
        '200':
          description: Creditor reference is valid
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/creditor-reference/normalize:
    post:
      tags:
        - 22 Creditor Reference (SCOR)
      summary: Normalize a Creditor Reference
      operationId: normalize_2
      requestBody:
        content:
          text/plain:
            schema:
              type: string
              description: Creditor Reference
        required: true
      responses:
        '200':
          description: Normalized Creditor Reference
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/creditor-reference/modulo97:
    post:
      tags:
        - 22 Creditor Reference (SCOR)
      summary: >-
        Calculate Check Digits using Modulo 97 if the given input would be added
        to creditor reference RF[checkdigits][input]
      operationId: modulo97
      requestBody:
        content:
          text/plain:
            schema:
              type: string
              description: number
        required: true
      responses:
        '200':
          description: Check Digits for Input
          content:
            text/plain:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/creditor-reference/format:
    post:
      tags:
        - 22 Creditor Reference (SCOR)
      summary: Format a Creditor Reference
      operationId: format_2
      requestBody:
        content:
          text/plain:
            schema:
              type: string
              description: Creditor Reference
        required: true
      responses:
        '200':
          description: Valid Creditor Reference
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/creditor-reference/extract:
    post:
      tags:
        - 22 Creditor Reference (SCOR)
      summary: Extract the actual reference number from a Creditor Reference
      operationId: extract_1
      parameters:
        - name: stripLeadingZeroes
          in: query
          description: If true, leading zeroes (0) are stripped away
          required: false
          schema:
            type: boolean
            default: true
      requestBody:
        content:
          text/plain:
            schema:
              type: string
              description: Creditor reference
        required: true
      responses:
        '200':
          description: Actual reference number without checksum
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/creditor-reference/create:
    post:
      tags:
        - 22 Creditor Reference (SCOR)
      summary: >-
        Create a creditor reference. If the passed creditor reference is missing
        prefix and checksum, it is calculated and appended.
      operationId: create_3
      parameters:
        - name: formatCreditorReference
          in: query
          description: If true, creditor reference is formatted in response
          required: false
          schema:
            type: boolean
            default: false
      requestBody:
        content:
          text/plain:
            schema:
              type: string
              description: Creditor reference
        required: true
      responses:
        '200':
          description: Valid creditor reference including checksum
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/country/validate:
    post:
      tags:
        - 23 Country Codes
      summary: Validate a Country Code against list of ISO 3166-1 alpha-2
      operationId: validate_4
      requestBody:
        content:
          text/plain:
            schema:
              type: string
              description: Country Code
              example: CH
        required: true
      responses:
        '200':
          description: Valid Country Code
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/bill-information/swicos1v12/validate:
    post:
      tags:
        - 30 Bill Information
      summary: Validate a SwicoS1v12 object
      operationId: validate_5
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SwicoS1v12'
        required: true
      responses:
        '200':
          description: Valid Swico S1 v1.2 data
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/bill-information/swicos1v12/parse:
    post:
      tags:
        - 30 Bill Information
      summary: Parse Bill Information as SwicoS1v12
      operationId: parseSwicoS1v12
      requestBody:
        content:
          text/plain:
            schema:
              type: string
              description: Bill Information
        required: true
      responses:
        '200':
          description: The parsed Bill Information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SwicoS1v12'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/bill-information/swicos1v12/create:
    post:
      tags:
        - 30 Bill Information
      summary: Serialize a SwicoS1v12 into Bill Information string
      operationId: createBillInformation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SwicoS1v12'
        required: true
      responses:
        '200':
          description: The Bill Information string
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/bill-information/parse:
    post:
      tags:
        - 30 Bill Information
      summary: Parse Bill Information including optional Swico information
      operationId: parseBillInformation
      requestBody:
        content:
          text/plain:
            schema:
              type: string
              description: Bill Information
        required: true
      responses:
        '200':
          description: The parsed Bill Information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillInformation'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/bill-information/parse/raw:
    post:
      tags:
        - 30 Bill Information
      summary: Parse Raw Bill Information
      operationId: parseRawBillInformation
      requestBody:
        content:
          text/plain:
            schema:
              type: string
              description: Bill Information
        required: true
      responses:
        '200':
          description: The parsed Bill Information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillInformation'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/alternative-schemas/parse:
    post:
      tags:
        - 31 Alternative Schemes
      summary: Parse Alternative Schema including
      operationId: parseAlternativeScheme
      requestBody:
        content:
          text/plain:
            schema:
              type: string
              description: Alternative Scheme
        required: true
      responses:
        '200':
          description: The parsed Alternative Scheme
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlternativeSchemeParameter'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/alternative-schemas/parse/raw:
    post:
      tags:
        - 31 Alternative Schemes
      summary: Parse Raw Alternative Schema
      operationId: parseRawAltPmt
      requestBody:
        content:
          text/plain:
            schema:
              type: string
              description: Alternative Schema
        required: true
      responses:
        '200':
          description: The parsed Alternative Schema
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlternativeSchemeParameter'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/alternative-schemas/ebill/validate:
    post:
      tags:
        - 31 Alternative Schemes
      summary: Validate a EBill object
      operationId: validate_6
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EBill'
        required: true
      responses:
        '200':
          description: Valid EBill data
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/alternative-schemas/ebill/parse:
    post:
      tags:
        - 31 Alternative Schemes
      summary: Parse Alternative Scheme as EBill
      operationId: parseEBill
      requestBody:
        content:
          text/plain:
            schema:
              type: string
              description: Alternative Scheme
        required: true
      responses:
        '200':
          description: The parsed Alternative Scheme
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EBill'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /v2/alternative-schemas/ebill/create:
    post:
      tags:
        - 31 Alternative Schemes
      summary: Serialize a EBill into Alternative Scheme string
      operationId: createAlternativeSchemeParameter
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EBill'
        required: true
      responses:
        '200':
          description: The Alternative Scheme string
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
  /qr-invoice/swiss-qr-code:
    post:
      tags:
        - XX Deprecated QR Invoice Operations v1
      summary: Create the Swiss QR Code from the given parameters
      operationId: swissQrCode
      parameters:
        - name: resolution
          in: query
          description: Output Resolution
          required: false
          schema:
            type: string
            default: MEDIUM_300_DPI
            enum:
              - LOW_150_DPI
              - MEDIUM_300_DPI
              - HIGH_600_DPI
        - name: size
          in: query
          description: Desired QR Code size (in pixels)
          required: false
          schema:
            type: integer
            format: int32
          example: 500
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QrInvoice'
        required: true
      responses:
        '200':
          description: The QR code in the requested output format.
          content:
            application/pdf: {}
            image/png: {}
            image/gif: {}
            image/jpeg: {}
            image/bmp: {}
            image/tiff: {}
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
      deprecated: true
  /qr-invoice/swiss-payments-code:
    post:
      tags:
        - XX Deprecated QR Invoice Operations v1
      summary: Create the Swiss Payments Code from the given parameters
      operationId: swissPaymentsCode
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QrInvoice'
        required: true
      responses:
        '200':
          description: The raw Swiss Payments Code (SPC)
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
      deprecated: true
  /qr-invoice/payment-part:
    post:
      tags:
        - XX Deprecated QR Invoice Operations v1
      summary: Create the Payment Part & Receipt from the given parameters
      operationId: paymentPartReceipt
      parameters:
        - name: Accept-Language
          in: header
          description: Locale
          required: false
          schema:
            type: string
            default: de
            enum:
              - de
              - fr
              - en
              - it
        - name: fontFamily
          in: query
          description: Font Family
          required: false
          schema:
            type: string
            default: LIBERATION_SANS
            enum:
              - HELVETICA
              - ARIAL
              - FRUTIGER
              - LIBERATION_SANS
        - name: pageSize
          in: query
          description: Page Size
          required: false
          schema:
            type: string
            default: DIN_LANG
            enum:
              - A4
              - A5
              - DIN_LANG
              - DIN_LANG_CROPPED
        - name: resolution
          in: query
          description: Output Resolution
          required: false
          schema:
            type: string
            default: MEDIUM_300_DPI
            enum:
              - LOW_150_DPI
              - MEDIUM_300_DPI
              - HIGH_600_DPI
        - name: boundaryLines
          in: query
          description: >-
            If a line should printed to mark the payment parts and receipts
            boundary
          required: false
          schema:
            type: boolean
            default: true
        - name: boundaryLineScissors
          in: query
          description: If scissors should be printed on the boundary lines
          required: false
          schema:
            type: boolean
            default: true
        - name: boundaryLineSeparationText
          in: query
          description: If a separation label should be printed above the payment part
          required: false
          schema:
            type: boolean
            default: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QrInvoice'
        required: true
      responses:
        '200':
          description: The payment part in the requested output format.
          content:
            application/pdf: {}
            image/png: {}
            image/gif: {}
            image/jpeg: {}
            image/bmp: {}
            image/tiff: {}
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '406':
          description: >-
            Not acceptable - please check content negotiation. Either
            'Content-Type'- or 'Accept'-Header might not match this endpoint.
        '422':
          description: Unprocessable entity - invalid or unsupported data.
      deprecated: true
  /apikey:
    head:
      tags:
        - 99 Authentication
      summary: Check if API key is valid
      operationId: checkApiKey
      responses:
        '200':
          description: The API Key exists and is valid
        '401':
          description: The API Key does not exist or is invalid
  /v2/invoice-document/templates:
    get:
      tags:
        - 10 QR Invoice Documents including Payment Part & Receipt (QR Bill)
      summary: List Available Invoice Document Templates
      operationId: listTemplates
      responses:
        '200':
          description: List of templates successfully returned
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /v2/invoice-document/resources:
    get:
      tags:
        - 10 QR Invoice Documents including Payment Part & Receipt (QR Bill)
      summary: List customer resources
      operationId: listCustomerResources
      responses:
        '200':
          description: TODO
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /v2/examples/swiss-payments-code/without-reference:
    get:
      tags:
        - 00 Example Data
      summary: Swiss Payments Code - Example without Reference Number
      operationId: nonReference
      responses:
        '200':
          description: Swiss Payments Code (SPC)
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /v2/examples/swiss-payments-code/without-amount:
    get:
      tags:
        - 00 Example Data
      summary: Swiss Payments Code - Example without Amount
      operationId: withoutAmount
      responses:
        '200':
          description: Swiss Payments Code (SPC)
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /v2/examples/swiss-payments-code/with-qr-reference:
    get:
      tags:
        - 00 Example Data
      summary: Swiss Payments Code - Example with QR Reference
      operationId: qrReference
      responses:
        '200':
          description: Swiss Payments Code (SPC)
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /v2/examples/swiss-payments-code/with-creditor-reference:
    get:
      tags:
        - 00 Example Data
      summary: Swiss Payments Code - Example with Creditor Reference
      operationId: creditorReference
      responses:
        '200':
          description: Swiss Payments Code (SPC)
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /v2/examples/swiss-payments-code/blank:
    get:
      tags:
        - 00 Example Data
      summary: Swiss Payments Code - Example without Amount and Debtor (blank)
      operationId: blank
      responses:
        '200':
          description: Swiss Payments Code (SPC)
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /v2/examples/swicos1v12:
    get:
      tags:
        - 00 Example Data
      summary: Swico S1 v1.2
      operationId: swicos1v12
      responses:
        '200':
          description: Swico S1 v1.2
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /v2/examples/qr-reference:
    get:
      tags:
        - 00 Example Data
      summary: QR Reference
      operationId: qrReference_1
      responses:
        '200':
          description: QR Reference
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /v2/examples/qr-invoice/without-reference:
    get:
      tags:
        - 00 Example Data
      summary: QrInvoice - Example without Reference Number
      operationId: nonReference_1
      responses:
        '200':
          description: QrInvoice
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QrInvoice'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /v2/examples/qr-invoice/without-amount:
    get:
      tags:
        - 00 Example Data
      summary: QrInvoice - Example without Amount
      operationId: withoutAmount_1
      responses:
        '200':
          description: QrInvoice
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QrInvoice'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /v2/examples/qr-invoice/with-qr-reference:
    get:
      tags:
        - 00 Example Data
      summary: QrInvoice - Example with QR Reference
      operationId: qrReference_2
      responses:
        '200':
          description: QrInvoice
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QrInvoice'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /v2/examples/qr-invoice/with-creditor-reference:
    get:
      tags:
        - 00 Example Data
      summary: QrInvoice - Example with Creditor Reference
      operationId: creditorReference_1
      responses:
        '200':
          description: QrInvoice
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QrInvoice'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /v2/examples/qr-invoice/combined-address:
    get:
      tags:
        - 00 Example Data
      summary: QrInvoice - Example with combined address
      operationId: qrReferenceCombinedAddress
      responses:
        '200':
          description: QrInvoice
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QrInvoice'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      deprecated: true
  /v2/examples/qr-invoice/bulk/xlsx:
    get:
      tags:
        - 00 Example Data
      summary: >-
        QrInvoice - Example Excel (XLSX) file that is used as input for bulk
        operation
      operationId: xlsx
      responses:
        '200':
          description: QrInvoice
          content:
            application/vnd.openxmlformats-officedocument.spreadsheetml.sheet:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /v2/examples/qr-invoice/bulk/list:
    get:
      tags:
        - 00 Example Data
      summary: QrInvoice - Example with a list of QR invoices
      operationId: list
      responses:
        '200':
          description: QrInvoices
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/QrInvoice'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /v2/examples/qr-invoice/bulk/csv:
    get:
      tags:
        - 00 Example Data
      summary: QrInvoice - Example CSV file that is used as input for bulk operation
      operationId: csv
      responses:
        '200':
          description: QrInvoice
          content:
            text/plain:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /v2/examples/qr-invoice/blank:
    get:
      tags:
        - 00 Example Data
      summary: QrInvoice - Example without Amount and Debtor (blank)
      operationId: blank_1
      responses:
        '200':
          description: QrInvoice
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QrInvoice'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /v2/examples/qr-iban:
    get:
      tags:
        - 00 Example Data
      summary: QR-IBAN
      operationId: qrIban
      responses:
        '200':
          description: QR-IBAN
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /v2/examples/invoice-document/mixed-vat:
    get:
      tags:
        - 00 Example Data
      summary: Invoice Document - Example with QR Reference
      operationId: mixedVat
      responses:
        '200':
          description: Invoice Document
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceDocument'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /v2/examples/invoice-document/gtin:
    get:
      tags:
        - 00 Example Data
      summary: Invoice Document - Example with QR Reference
      operationId: gtin
      responses:
        '200':
          description: Invoice Document
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceDocument'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /v2/examples/invoice-document/discounts:
    get:
      tags:
        - 00 Example Data
      summary: Invoice Document - Example with QR Reference
      operationId: discounts
      responses:
        '200':
          description: Invoice Document
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceDocument'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /v2/examples/iban:
    get:
      tags:
        - 00 Example Data
      summary: IBAN
      operationId: iban
      responses:
        '200':
          description: IBAN
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /v2/examples/creditor-reference:
    get:
      tags:
        - 00 Example Data
      summary: Creditor Reference
      operationId: creditorReference_2
      responses:
        '200':
          description: Creditor Reference
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /v2/examples/charset/lteV2_2:
    get:
      tags:
        - 00 Example Data
      summary: Valid Characters IG 2.0 - 2.2
      description: >-
        Valid characters according to specification 2.0 - 2.2 (Implementation
        Guidelines for the QR-bill)
      operationId: charsetLteV2_2
      responses:
        '200':
          description: Supported Charset v2.2
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /v2/examples/charset/gteV2_3:
    get:
      tags:
        - 00 Example Data
      summary: Valid Characters IG 2.3
      description: >-
        Valid characters according to specification 2.3 (Implementation
        Guidelines for the QR-bill). Newly added characters be used after
        21.11.2025
      operationId: charsetGteV2_3
      responses:
        '200':
          description: Supported Charset v2.3
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /v2/examples/charset/addedInV2_3:
    get:
      tags:
        - 00 Example Data
      summary: Added Characters in IG 2.3
      description: >-
        Added characters to allowed set of characters in specification 2.3
        (Implementation Guidelines for the QR-bill). Newly added characters be
        used after 21.11.2025
      operationId: addedCharsV2_3
      responses:
        '200':
          description: Additionally Supported Charset v2.3
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /v2/country:
    get:
      tags:
        - 23 Country Codes
      summary: List Countries
      operationId: list_1
      responses:
        '200':
          description: List of Countries according to ISO 3166-1 alpha-2
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Country'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /v2/country/codes:
    get:
      tags:
        - 23 Country Codes
      summary: List Country Codes
      operationId: listCodes
      responses:
        '200':
          description: List of Country Codes according to ISO 3166-1 alpha-2
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
components:
  schemas:
    AdditionalInformation:
      type: object
      properties:
        unstructuredMessage:
          maxLength: 140
          minLength: 0
          type: string
          description: >-
            Unstructured message<br>Unstructured information can be used to
            indicate the payment purpose or for additional textual information
            about payments with a structured reference.<br>Maximum 140
            characters
          example: Bill No. 3139 for garden work and disposal of cuttings
        billInformation:
          maxLength: 140
          minLength: 0
          type: string
          description: >-
            Bill information contain coded information for automated booking of
            the payment. The data is not forwarded with the payment.
          example: >-
            //S1/10/10201409/11/190512/20/1400.000-53/30/106017086/31/180508/32/7.7/40/2:10;0:30
        billInformationObject:
          $ref: '#/components/schemas/BillInformation'
    AlternativeSchemes:
      type: object
      properties:
        alternativeSchemeParameters:
          type: array
          items:
            type: string
            description: >-
              Alternative scheme parameters<br>Parameter character chain of the
              alternative scheme according to the syntax definition in the
              “Alternative scheme” section<br>Can be currently delivered a
              maximum of two times.<br>Maximum 100 characters
            example: eBill/B/john.doe@example.com
        alternativeSchemeParameterObjects:
          type: array
          description: >-
            Alternative scheme parameters as object - same information as in
            alternativeSchemeParameters. See type EBill for example value
          readOnly: true
          items:
            type: object
            description: >-
              Alternative scheme parameters as object - same information as in
              alternativeSchemeParameters. See type EBill for example value
            readOnly: true
    BillInformation:
      type: object
      description: Interface type, see SwicoS1v12 or RawBillInformation
    Creditor:
      required:
        - addressType
        - city
        - country
        - name
        - postalCode
      type: object
      properties:
        addressType:
          maxLength: 1
          minLength: 1
          type: string
          description: >-
            Address type<br>The address type is specified using a code. The
            following codes are defined:<br>"S" - structured address<br>"K" -
            combined address elements (2 lines). DEPRECATED - discontinued and
            no longer supported after 21.11.2025
          example: STRUCTURED
          enum:
            - STRUCTURED
            - COMBINED
        name:
          maxLength: 70
          minLength: 1
          type: string
          description: >-
            The creditor's name or company according to the account
            name.<br>Comment: always matches the account holder<br>Maximum 70
            characters permitted<br>First name (optional, if available) + last
            name or company name
          example: Robert Schneider AG
        streetName:
          maxLength: 70
          minLength: 1
          type: string
          description: >-
            Street/P.O. box of the creditor<br>Maximum 70 characters permitted,
            may not include any house or building number.
          example: Rue du Lac
        houseNumber:
          maxLength: 16
          minLength: 1
          type: string
          description: House number of the creditor<br>Maximum 16 characters permitted
          example: 1268/2/22
        postalCode:
          maxLength: 16
          minLength: 1
          type: string
          description: >-
            Postal code of the creditor<br>Maximum 16 characters permitted. The
            postal code is always to be entered without a country code prefix.
          example: '2501'
        city:
          maxLength: 35
          minLength: 1
          type: string
          description: City of the creditor<br>Maximum 35 characters permitted
          example: Biel
        addressLine1:
          maxLength: 70
          minLength: 1
          type: string
          description: >-
            Address line 1 including street and building number or P.O.
            Box<br>Maximum 70 characters permitted
          example: Rue du Lac 1268/2/22
          deprecated: true
        addressLine2:
          maxLength: 70
          minLength: 1
          type: string
          description: >-
            Address line 2 including postal code and town from creditor’s
            address<br>Maximum 70 characters permitted<br>Must be provided for
            address type "K".
          example: 2501 Biel
          deprecated: true
        country:
          maxLength: 2
          minLength: 2
          type: string
          description: >-
            Country of the creditor<br>Two-digit country code according to ISO
            3166-1
          example: CH
    CreditorInformation:
      required:
        - creditor
        - iban
      type: object
      properties:
        iban:
          maxLength: 21
          minLength: 21
          type: string
          description: >-
            IBAN or QR-IBAN of the creditor.<br>Fixed length: 21 alphanumeric
            characters, only IBANs with CH or LI country code permitted.
          example: CH3908704016075473007
        creditor:
          $ref: '#/components/schemas/Creditor'
    PaymentAmountInformation:
      required:
        - currency
      type: object
      properties:
        amount:
          maximum: 999999999
          minimum: 0
          type: number
          description: >-
            The payment amount<br>The amount element is to be entered without
            leading zeroes, including decimal separators and two decimal
            places.<br><br>Decimal, maximum 12-digits permitted, including
            decimal separators. Only decimal points (".") are permitted as
            decimal separators.
          example: 199.95
        currency:
          maxLength: 3
          minLength: 3
          type: string
          description: >-
            The payment currency, 3-digit alphanumeric currency code according
            to ISO 4217<br>Only CHF and EUR are permitted.
          example: CHF
          enum:
            - EUR
            - CHF
    PaymentReference:
      required:
        - referenceType
      type: object
      properties:
        referenceType:
          maxLength: 4
          minLength: 3
          type: string
          description: >-
            Reference type (QR, ISO)<br>The following codes are
            permitted:<br>QRR – QR reference<br>SCOR – Creditor Reference (ISO
            11649)<br>NON – without reference<br>Maximum four characters,
            alphanumeric<br>Must contain the code QRR where a QR-IBAN is
            used;<br>where the IBAN is used, either the SCOR or NON code can be
            entered
          example: SCOR
          enum:
            - QRR
            - SCOR
            - NON
        reference:
          maxLength: 27
          minLength: 0
          type: string
          description: >-
            Reference number<br>Structured payment reference<br>The reference is
            either a QR reference or a Creditor Reference (ISO 11649)<br>Maximum
            27 characters, alphanumeric;<br>must be filled if a QR-IBAN is
            used.<br>QR reference: 27 characters, numeric, check sum calculation
            according to Modulo 10 recursive (27th position of the
            reference)<br>Creditor Reference (ISO 11649): max 25 characters,
            alphanumeric<br>The element may not be filled for the NON reference
            type.<br><br>REST API<br>On the REST API automatic creation of both
            QRR and SCOR reference numbers can be used. To do so, wrap the
            reference number in curly brackets `{42}`. In case of the QRR,
            customerId can be passed as well, separated by a colon, e.g.
            `{123456:42}`, whereas 123456 is the customerId
          example: RF18539007547034
        additionalInformation:
          $ref: '#/components/schemas/AdditionalInformation'
    QrInvoice:
      required:
        - creditorInformation
        - paymentAmountInformation
        - paymentReference
      type: object
      properties:
        creditorInformation:
          $ref: '#/components/schemas/CreditorInformation'
        ultimateCreditor:
          $ref: '#/components/schemas/UltimateCreditor'
        paymentAmountInformation:
          $ref: '#/components/schemas/PaymentAmountInformation'
        ultimateDebtor:
          $ref: '#/components/schemas/UltimateDebtor'
        paymentReference:
          $ref: '#/components/schemas/PaymentReference'
        alternativeSchemes:
          $ref: '#/components/schemas/AlternativeSchemes'
      description: QrInvoice
    UltimateCreditor:
      required:
        - addressType
      type: object
      properties:
        addressType:
          maxLength: 1
          minLength: 1
          type: string
          description: >-
            Address type<br>The address type is specified using a code. The
            following codes are defined:<br>"S" - structured address<br>"K" -
            combined address elements (2 lines). DEPRECATED - discontinued and
            no longer supported after 21.11.2025
          example: STRUCTURED
          enum:
            - STRUCTURED
            - COMBINED
        name:
          maxLength: 70
          minLength: 1
          type: string
          description: >-
            Name or company of the ultimate creditor<br>Maximum 70 characters
            permitted. first name (optional, if available) and last name or
            company name.
          example: Robert Schneider Services Switzerland AG
        streetName:
          maxLength: 70
          minLength: 1
          type: string
          description: >-
            Street/P.O. box of the ultimate creditor<br>Maximum 70 characters
            permitted; may not include any house or building number.
          example: Rue du Lac
        houseNumber:
          maxLength: 16
          minLength: 1
          type: string
          description: >-
            House number of the ultimate creditor<br>Maximum 16 characters
            permitted
          example: 1268/3/1
        postalCode:
          maxLength: 16
          minLength: 1
          type: string
          description: >-
            Postal code of the ultimate creditor<br>Maximum 16 characters
            permitted; is always to be entered without a country code prefix.
          example: '2501'
        city:
          maxLength: 35
          minLength: 1
          type: string
          description: City of the ultimate creditor<br>Maximum 35 characters permitted
          example: Biel
        addressLine1:
          maxLength: 70
          minLength: 1
          type: string
          description: >-
            Address line 1 including street and building number or P.O.
            Box<br>Maximum 70 characters permitted
          example: Rue du Lac 1268/3/1
          deprecated: true
        addressLine2:
          maxLength: 70
          minLength: 1
          type: string
          description: >-
            Address line 2 including postal code and town from ultimate
            creditor’s address<br>Maximum 70 characters permitted<br>Must be
            provided for address type "K".
          example: 2501 Biel
          deprecated: true
        country:
          maxLength: 2
          minLength: 2
          type: string
          description: >-
            Country of the ultimate creditor<br>Two-digit country code according
            to ISO 3166-1
          example: CH
    UltimateDebtor:
      required:
        - addressType
      type: object
      properties:
        addressType:
          maxLength: 1
          minLength: 1
          type: string
          description: >-
            Address type<br>The address type is specified using a code. The
            following codes are defined:<br>"S" - structured address<br>"K" -
            combined address elements (2 lines). DEPRECATED - discontinued and
            no longer supported after 21.11.2025
          example: STRUCTURED
          enum:
            - STRUCTURED
            - COMBINED
        name:
          maxLength: 70
          minLength: 1
          type: string
          description: >-
            Name or company of the ultimate debtor<br>Maximum 70 characters
            permitted; first name (optional, if available) and last name or
            company name.
          example: Pia-Maria Rutschmann-Schnyder
        streetName:
          maxLength: 70
          minLength: 1
          type: string
          description: >-
            Street/P.O. Box of the ultimate debtor<br>Maximum 70 characters
            permitted; may not include any house or building number.
          example: Grosse Marktgasse
        houseNumber:
          maxLength: 16
          minLength: 1
          type: string
          description: >-
            House number of the ultimate debtor<br>Maximum 16 characters
            permitted
          example: '28'
        postalCode:
          maxLength: 16
          minLength: 1
          type: string
          description: >-
            Postal code of the ultimate debtor<br>Maximum 16 characters
            permitted; is always to be entered without a country code prefix.
          example: '9400'
        city:
          maxLength: 35
          minLength: 1
          type: string
          description: City of the ultimate debtor<br>Maximum 35 characters permitted
          example: Rorschach
        addressLine1:
          maxLength: 70
          minLength: 1
          type: string
          description: >-
            Address line 1 including street and building number or P.O.
            Box<br>Maximum 70 characters permitted
          example: Rue du Lac 1268/3/1
          deprecated: true
        addressLine2:
          maxLength: 70
          minLength: 1
          type: string
          description: >-
            Address line 2 including postal code and town from ultimate
            creditor’s address<br>Maximum 70 characters permitted<br>Must be
            provided for address type "K".
          example: 2501 Biel
          deprecated: true
        country:
          maxLength: 2
          minLength: 2
          type: string
          description: >-
            Country of the ultimate debtor<br>Two-digit country code according
            to ISO 3166-1
          example: CH
    AdditionalProperty:
      type: object
      properties:
        key:
          type: string
          example: propertyName
        value:
          type: string
          example: propertyValue
      description: Additional properties that may be used in custom templates
    Address:
      type: object
      properties:
        addressLines:
          type: array
          items:
            type: string
      description: Bill recipient
    Amount:
      type: object
      properties:
        vatExclusive:
          type: number
          description: >-
            Amount that does not include VAT (net). Either provide vatExclusive
            or vatInclusive
          example: 10
        vatInclusive:
          type: number
          description: >-
            Amount that does include VAT (gross). Either provide vatExclusive or
            vatInclusive
          example: 10.77
        vatPercentage:
          type: number
          description: VAT percentage
          example: 7.7
      description: An absolute discount value
    ContactPerson:
      type: object
      properties:
        name:
          type: string
          example: John Doe
        email:
          type: string
          example: john.doe@example.com
        phoneNr:
          type: string
          example: +41 00 000 00 00
      description: The billers contact person
    InvoiceDocument:
      required:
        - positions
        - qrInvoice
        - sender
      type: object
      properties:
        sender:
          $ref: '#/components/schemas/Address'
        recipient:
          $ref: '#/components/schemas/Address'
        contactPerson:
          $ref: '#/components/schemas/ContactPerson'
        customerNr:
          type: string
          description: Customer number
          example: '0001839'
        customerReference:
          type: string
          description: If given a customers reference
        invoiceDate:
          type: string
          description: The invoice date
          format: date
          example: '2020-11-15'
        invoiceDueDate:
          type: string
          description: >-
            The date this invoice is due / is to be paid. Should be invoice date
            + termOfPaymentDays
          format: date
          example: '2020-12-14'
        termOfPaymentDays:
          type: integer
          description: The number of days the invoice is to be paid
          format: int32
          example: 30
        invoiceNr:
          type: string
          description: The invoice number
          example: inv-001532
        title:
          type: string
          description: The invoice title
          example: Online Order 11.11.2020
        prefaceText:
          type: string
          description: Text which is added after the table of invoice positions
          example: |-
            Dear Sir or Madam

            We thank you for your order.
        endingText:
          type: string
          description: Closing text which is added after the table of invoice positions
          example: |-
            Please do not hesitate to contact us if you have any questions.

            Kind regards

            John Doe
        positions:
          type: array
          items:
            $ref: '#/components/schemas/Position'
        currency:
          type: string
          description: >-
            Currency of the invoice which has to match the one specified in
            QrInvoice
          enum:
            - EUR
            - CHF
        additionalProperties:
          type: array
          items:
            $ref: '#/components/schemas/AdditionalProperty'
        qrInvoice:
          $ref: '#/components/schemas/QrInvoice'
      description: The InvoiceDocument
    Position:
      type: object
      properties:
        position:
          type: string
          description: Position Nr.
          example: '1'
        description:
          type: string
          description: The positions description
          example: QR Invoice Cloud REST Services - Basic 100 / Monthly fee
        quantity:
          type: number
          description: How many units (or fractions) of the current position
          format: double
          example: 1
        unitPrice:
          $ref: '#/components/schemas/Amount'
        unit:
          type: string
          description: An optional unit specification, e.g. pcs / hrs
          example: pcs
        discountAbsolute:
          $ref: '#/components/schemas/Amount'
        discountPercentage:
          type: number
          description: A discount as percentage
          example: 10
        additionalProperties:
          type: array
          items:
            $ref: '#/components/schemas/AdditionalProperty'
      description: List of positions
    SwicoS1v12:
      type: object
      properties:
        billInformationType:
          type: string
          description: A unique identifier of the current BillInformation Subtype
          example: SwicoS1v12
        invoiceReference:
          type: string
          description: >-
            See Tag 10 of Swico Syntax Definition S1 v1.2 -
            http://swiss-qr-invoice.org/
          example: '10201409'
        invoiceDate:
          type: string
          description: >-
            See Tag 11 of Swico Syntax Definition S1 v1.2 -
            http://swiss-qr-invoice.org/
          format: date
          example: '2019-05-12'
        customerReference:
          type: string
          description: >-
            See Tag 20 of Swico Syntax Definition S1 v1.2 -
            http://swiss-qr-invoice.org/
          example: 1400.000-53
        uidNumber:
          type: string
          description: >-
            See Tag 30 of Swico Syntax Definition S1 v1.2 -
            http://swiss-qr-invoice.org/
          example: '106017086'
        vatDateStart:
          type: string
          description: >-
            See Tag 31 of Swico Syntax Definition S1 v1.2 -
            http://swiss-qr-invoice.org/
          format: date
          example: '2018-05-08'
        vatDateEnd:
          type: string
          description: >-
            See Tag 31 of Swico Syntax Definition S1 v1.2 -
            http://swiss-qr-invoice.org/
          format: date
          example: '2018-05-10'
        vatDetails:
          type: array
          items:
            $ref: '#/components/schemas/SwicoS1v12VatDetails'
        importTaxes:
          type: array
          items:
            $ref: '#/components/schemas/SwicoS1v12ImportTaxPosition'
        paymentConditions:
          type: array
          items:
            $ref: '#/components/schemas/SwicoS1v12PaymentCondition'
      description: Swico S1 v1.2
    SwicoS1v12ImportTaxPosition:
      type: object
      properties:
        taxPercentage:
          type: number
          description: >-
            See Tag 33 of Swico Syntax Definition S1 v1.2 -
            http://swiss-qr-invoice.org/
          example: 7.7
        taxAmount:
          type: number
          description: >-
            See Tag 33 of Swico Syntax Definition S1 v1.2 -
            http://swiss-qr-invoice.org/
          example: 1000
    SwicoS1v12PaymentCondition:
      type: object
      properties:
        eligiblePaymentPeriodDays:
          type: integer
          description: >-
            See Tag 40 of Swico Syntax Definition S1 v1.2 -
            http://swiss-qr-invoice.org/
          format: int32
          example: 10
        cashDiscountPercentage:
          type: number
          description: >-
            See Tag 40 of Swico Syntax Definition S1 v1.2 -
            http://swiss-qr-invoice.org/
          example: 2
    SwicoS1v12VatDetails:
      type: object
      properties:
        taxPercentage:
          type: number
          description: >-
            See Tag 32 of Swico Syntax Definition S1 v1.2 -
            http://swiss-qr-invoice.org/
          example: 7.7
        taxedNetAmount:
          type: number
          description: >-
            See Tag 32 of Swico Syntax Definition S1 v1.2 -
            http://swiss-qr-invoice.org/
          example: 185.65
    AlternativeSchemeParameter:
      type: object
      description: Interface type, see EBill
    EBill:
      type: object
      properties:
        type:
          type: string
          description: The identifier of the business case type
          example: BILL
          enum:
            - BILL
            - REMINDER
        recipientEmailAddress:
          type: string
          description: E-mail address of the invoice recipient
          example: john.doe@example.com
        recipientId:
          type: string
          description: Unique identification of the invoice recipient (e.g. PID)
          example: '41010560425610173'
        recipientEnterpriseIdentificationNumber:
          type: string
          description: >-
            Enterprise identification number (UID) for companies as invoice
            recipients (in the eBill for Business context).
          example: CHE123456789
        referencedBill:
          type: string
          description: >-
            invoice number of the referenced business case: This sub-element is
            optional. It only has to be filled for reminders and rolled over
            invoices in order to identify the original invoice.
          example: 2018-123456-22
      description: EBill
    Country:
      required:
        - code
      type: object
      properties:
        code:
          type: string
          description: The alpha-2 value
          example: CH
        english:
          type: string
          description: English name
          example: Switzerland
        german:
          type: string
          description: German name
          example: Schweiz
        french:
          type: string
          description: French name
          example: Suisse
        italian:
          type: string
          description: Italian name
          example: Svizzera
  securitySchemes:
    X-API-Key:
      type: apiKey
      description: API Key via Header
      name: X-API-Key
      in: header
    api_key:
      type: apiKey
      description: API Key via Parameter
      name: api_key
      in: query
