Till Payments Direct PCI-enabled API

The Till Payments Direct PCI-enabled Payment Platform V3 API for merchants that are PCI DSS certified to collect and transmit raw cardholder data. Requests are sent over HTTPS (TLS 1.2+) with JSON bodies to the secure host for direct transaction processing.

OpenAPI Specification

till-payments-direct-pci.yml Raw ↑
openapi: 3.0.0
info:
  title: 'tillpayments.com Payment Platform'
  description: 'tillpayments.com Payment Platform'
  termsOfService: ''
  contact:
    email: ''
  license:
    name: MIT
  version: 3.0.0
externalDocs:
  description: 'tillpayments.com Payment Platform Documentation'
  url: https://tillpayments.com/documentation/json-direct-pci-enabled-api
servers:
  - url: https://secure.tillpayments.com/api/v3
tags:
  - name: transaction
    description: Process transactions
    externalDocs:
      description: Find out more about the transaction API
      url: https://tillpayments.com/documentation/apiv3
paths:
  /transaction/{apiKey}/debit:
    post:
      tags:
        - transaction
      summary: Process a debit
      operationId: processDebit
      parameters:
        - name: apiKey
          in: path
          description: API Key of Connector
          required: true
          schema:
            type: string
      requestBody:
        description: Data which is required to process a debit
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Debit'
            example:
              merchantTransactionId: 2019-09-02-0001
              additionalId1: x0001
              additionalId2: y0001
              extraData:
                someKey: someValue
                otherKey: otherValue
              merchantMetaData: merchantRelevantData
              cardDetailsUpdate: cardDetailsUpdateData
              surchargeAmount: '0.99'
              amount: '9.99'
              currency: EUR
              successUrl: http://example.com/success
              cancelUrl: http://example.com/cancel
              errorUrl: http://example.com/error
              callbackUrl: http://example.com/callback
              transactionToken: ix::tRaNsAcT1OnToK3N
              description: Example Product
              customer:
                identification: c0001
                firstName: John
                lastName: Doe
              threeDSecureData:
                3dsecure: MANDATORY
              referenceSchemeTransactionIdentifier: IXHKDJRR462950
              language: en
        required: true
      responses:
        '200':
          description: Transaction response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionResponse'
              examples:
                finished:
                  value:
                    success: true
                    uuid: abcde12345abcde12345
                    purchaseId: 20190927-abcde12345abcde12345
                    returnType: FINISHED
                    paymentMethod: Creditcard
                redirect:
                  value:
                    success: true
                    uuid: abcde12345abcde12345
                    purchaseId: 20190927-abcde12345abcde12345
                    returnType: REDIRECT
                    redirectUrl: http://redirectComesUrlHere.com
                    redirectQRCode: data:image/png;base64,ABCDEFGHIJKLMNOPQRSTUVWXYZ
                    paymentMethod: Creditcard
                processing error:
                  value:
                    success: false
                    uuid: abcde12345abcde12345
                    purchaseId: 20200924-abcde12345abcde12345
                    returnType: ERROR
                    paymentMethod: Dummy
                    errors:
                      - errorMessage: Dummy error
                        errorCode: 1003
                        adapterMessage: Dummy adapter error
                general error, e.g. duplicate:
                  value:
                    success: false
                    errorMessage: The transaction ID '20190823062178' already exists!
                    errorCode: 3004
                general error, e.g. validation:
                  value:
                    success: false
                    errorMessage: 'root: ''amount'' is required'
                    errorCode: 1002
  /transaction/{apiKey}/preauthorize:
    post:
      tags:
        - transaction
      summary: 'Process a preauthorize: reserves the payment amount on the customer''s payment instrument'
      operationId: processPreauthorize
      parameters:
        - name: apiKey
          in: path
          description: API Key of Connector
          required: true
          schema:
            type: string
      requestBody:
        description: Data which is required to process a preauthorize
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Preauthorize'
            example:
              merchantTransactionId: 2019-09-02-0002
              extraData:
                someKey: someValue
                otherKey: otherValue
              merchantMetaData: merchantRelevantData
              cardDetailsUpdate: cardDetailsUpdateData
              surchargeAmount: '0.99'
              amount: '9.99'
              currency: EUR
              successUrl: http://example.com/success
              cancelUrl: http://example.com/cancel
              errorUrl: http://example.com/error
              callbackUrl: http://example.com/callback
              description: Example Product
              customer:
                identification: c0001
                firstName: John
                lastName: Doe
              threeDSecureData:
                3dsecure: MANDATORY
              referenceSchemeTransactionIdentifier: IXHKDJRR462950
              language: en
        required: true
      responses:
        '200':
          description: Transaction response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionResponse'
              examples:
                finished:
                  value:
                    success: true
                    uuid: abcde12345abcde12345
                    purchaseId: 20190927-abcde12345abcde12345
                    returnType: FINISHED
                    paymentMethod: Creditcard
                redirect:
                  value:
                    success: true
                    uuid: abcde12345abcde12345
                    purchaseId: 20190927-abcde12345abcde12345
                    returnType: REDIRECT
                    redirectUrl: http://redirectComesUrlHere.com
                    redirectQRCode: data:image/png;base64,ABCDEFGHIJKLMNOPQRSTUVWXYZ
                    paymentMethod: Creditcard
                processing error:
                  value:
                    success: false
                    uuid: abcde12345abcde12345
                    purchaseId: 20200924-abcde12345abcde12345
                    returnType: ERROR
                    paymentMethod: Dummy
                    errors:
                      - errorMessage: Dummy error
                        errorCode: 1003
                        adapterMessage: Dummy adapter error
                general error, e.g. duplicate:
                  value:
                    success: false
                    errorMessage: The transaction ID '20190823062178' already exists!
                    errorCode: 3004
                general error, e.g. validation:
                  value:
                    success: false
                    errorMessage: 'root: ''amount'' is required'
                    errorCode: 1002
  /transaction/{apiKey}/incrementalAuthorization:
    post:
      tags:
        - transaction
      summary: Increases or prolongs the authorization on a customer's payment instrument (made with Preauthorize before)
      operationId: processIncrementalAuthorization
      parameters:
        - name: apiKey
          in: path
          description: API Key of Connector
          required: true
          schema:
            type: string
      requestBody:
        description: Data which is required to process a incremental auth
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IncrementalAuthorization'
            example:
              merchantTransactionId: 2019-09-02-0002
              referenceUuid: uuid_of_preauth
              extraData:
                someKey: someValue
                otherKey: otherValue
              merchantMetaData: merchantRelevantData
              amount: '9.99'
              currency: EUR
              successUrl: http://example.com/success
              cancelUrl: http://example.com/cancel
              errorUrl: http://example.com/error
              callbackUrl: http://example.com/callback
              description: Example Product
              language: en
        required: true
      responses:
        '200':
          description: Transaction response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionResponse'
              examples:
                finished:
                  value:
                    success: true
                    uuid: abcde12345abcde12345
                    purchaseId: 20190927-abcde12345abcde12345
                    returnType: FINISHED
                    paymentMethod: Creditcard
                redirect:
                  value:
                    success: true
                    uuid: abcde12345abcde12345
                    purchaseId: 20190927-abcde12345abcde12345
                    returnType: REDIRECT
                    redirectUrl: http://redirectComesUrlHere.com
                    redirectQRCode: data:image/png;base64,ABCDEFGHIJKLMNOPQRSTUVWXYZ
                    paymentMethod: Creditcard
                processing error:
                  value:
                    success: false
                    uuid: abcde12345abcde12345
                    purchaseId: 20200924-abcde12345abcde12345
                    returnType: ERROR
                    paymentMethod: Dummy
                    errors:
                      - errorMessage: Dummy error
                        errorCode: 1003
                        adapterMessage: Dummy adapter error
                general error, e.g. duplicate:
                  value:
                    success: false
                    errorMessage: The transaction ID '20190823062178' already exists!
                    errorCode: 3004
                general error, e.g. validation:
                  value:
                    success: false
                    errorMessage: 'root: ''amount'' is required'
                    errorCode: 1002
  /transaction/{apiKey}/capture:
    post:
      tags:
        - transaction
      summary: 'Process a capture: completes a payment previously authorized through Preauthorize'
      operationId: processCapture
      parameters:
        - name: apiKey
          in: path
          description: API Key of Connector
          required: true
          schema:
            type: string
      requestBody:
        description: Data which is required to process a capture
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Capture'
            example:
              merchantTransactionId: 2019-09-02-0003
              referenceUuid: bcdef23456bcdef23456
              amount: '9.99'
              currency: EUR
        required: true
      responses:
        '200':
          description: Transaction response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionResponse'
              examples:
                finished:
                  value:
                    success: true
                    uuid: abcde12345abcde12345
                    purchaseId: 20190927-abcde12345abcde12345
                    returnType: FINISHED
                    paymentMethod: Creditcard
                redirect:
                  value:
                    success: true
                    uuid: abcde12345abcde12345
                    purchaseId: 20190927-abcde12345abcde12345
                    returnType: REDIRECT
                    redirectUrl: http://redirectComesUrlHere.com
                    redirectQRCode: data:image/png;base64,ABCDEFGHIJKLMNOPQRSTUVWXYZ
                    paymentMethod: Creditcard
                processing error:
                  value:
                    success: false
                    uuid: abcde12345abcde12345
                    purchaseId: 20200924-abcde12345abcde12345
                    returnType: ERROR
                    paymentMethod: Dummy
                    errors:
                      - errorMessage: Dummy error
                        errorCode: 1003
                        adapterMessage: Dummy adapter error
                general error, e.g. duplicate:
                  value:
                    success: false
                    errorMessage: The transaction ID '20190823062178' already exists!
                    errorCode: 3004
                general error, e.g. validation:
                  value:
                    success: false
                    errorMessage: 'root: ''amount'' is required'
                    errorCode: 1002
  /transaction/{apiKey}/void:
    post:
      tags:
        - transaction
      summary: 'Process a void: cancels a previously authorized Preauthorize'
      operationId: processVoid
      parameters:
        - name: apiKey
          in: path
          description: API Key of Connector
          required: true
          schema:
            type: string
      requestBody:
        description: Data which is required to process a void
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Void'
            example:
              merchantTransactionId: 2019-09-02-0004
              referenceUuid: bcdef23456bcdef23456
        required: true
      responses:
        '200':
          description: Transaction response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionResponse'
              examples:
                finished:
                  value:
                    success: true
                    uuid: abcde12345abcde12345
                    purchaseId: 20190927-abcde12345abcde12345
                    returnType: FINISHED
                    paymentMethod: Creditcard
                redirect:
                  value:
                    success: true
                    uuid: abcde12345abcde12345
                    purchaseId: 20190927-abcde12345abcde12345
                    returnType: REDIRECT
                    redirectUrl: http://redirectComesUrlHere.com
                    redirectQRCode: data:image/png;base64,ABCDEFGHIJKLMNOPQRSTUVWXYZ
                    paymentMethod: Creditcard
                processing error:
                  value:
                    success: false
                    uuid: abcde12345abcde12345
                    purchaseId: 20200924-abcde12345abcde12345
                    returnType: ERROR
                    paymentMethod: Dummy
                    errors:
                      - errorMessage: Dummy error
                        errorCode: 1003
                        adapterMessage: Dummy adapter error
                general error, e.g. duplicate:
                  value:
                    success: false
                    errorMessage: The transaction ID '20190823062178' already exists!
                    errorCode: 3004
                general error, e.g. validation:
                  value:
                    success: false
                    errorMessage: 'root: ''referenceUuid'' is required'
                    errorCode: 1002
  /transaction/{apiKey}/register:
    post:
      tags:
        - transaction
      summary: 'Process a register: registers a customer''s payment instrument for future use (Debit or Preauthorize)'
      operationId: processRegister
      parameters:
        - name: apiKey
          in: path
          description: API Key of Connector
          required: true
          schema:
            type: string
      requestBody:
        description: Data which is required to process a register
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Register'
            example:
              merchantTransactionId: 2019-09-02-0005
              merchantMetaData: merchantRelevantData
              successUrl: http://example.com/success
              cancelUrl: http://example.com/cancel
              errorUrl: http://example.com/error
              callbackUrl: http://example.com/callback
              customer:
                identification: 1234
                firstName: John
                lastName: Doe
                paymentData:
                  ibanData:
                    iban: AT11111111111111111111
                    bic: ABC
              description: This is a register
              language: en
        required: true
      responses:
        '200':
          description: Transaction response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionResponse'
              examples:
                finished:
                  value:
                    success: true
                    uuid: abcde12345abcde12345
                    purchaseId: 20190927-abcde12345abcde12345
                    returnType: FINISHED
                    paymentMethod: Creditcard
                redirect:
                  value:
                    success: true
                    uuid: abcde12345abcde12345
                    purchaseId: 20190927-abcde12345abcde12345
                    returnType: REDIRECT
                    redirectUrl: http://redirectComesUrlHere.com
                    redirectQRCode: data:image/png;base64,ABCDEFGHIJKLMNOPQRSTUVWXYZ
                    paymentMethod: Creditcard
                processing error:
                  value:
                    success: false
                    uuid: abcde12345abcde12345
                    purchaseId: 20200924-abcde12345abcde12345
                    returnType: ERROR
                    paymentMethod: Dummy
                    errors:
                      - errorMessage: Dummy error
                        errorCode: 1003
                        adapterMessage: Dummy adapter error
                general error, e.g. duplicate:
                  value:
                    success: false
                    errorMessage: The transaction ID '20190823062178' already exists!
                    errorCode: 3004
                general error, e.g. validation:
                  value:
                    success: false
                    errorMessage: 'root: ''amount'' is required'
                    errorCode: 1002
  /transaction/{apiKey}/deregister:
    post:
      tags:
        - transaction
      summary: 'Process a deregister: deletes a previously registered payment instrument'
      operationId: processDeregister
      parameters:
        - name: apiKey
          in: path
          description: API Key of Connector
          required: true
          schema:
            type: string
      requestBody:
        description: Data which is required to process a deregister
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Deregister'
            example:
              merchantTransactionId: 2019-09-02-0006
              merchantMetaData: merchantRelevantData
              referenceUuid: bcdef23456bcdef23456
        required: true
      responses:
        '200':
          description: Transaction response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionResponse'
              examples:
                finished:
                  value:
                    success: true
                    uuid: abcde12345abcde12345
                    purchaseId: 20190927-abcde12345abcde12345
                    returnType: FINISHED
                    paymentMethod: Creditcard
                processing error:
                  value:
                    success: false
                    uuid: abcde12345abcde12345
                    purchaseId: 20200924-abcde12345abcde12345
                    returnType: ERROR
                    paymentMethod: Dummy
                    errors:
                      - errorMessage: Dummy error
                        errorCode: 1003
                        adapterMessage: Dummy adapter error
                general error, e.g. duplicate:
                  value:
                    success: false
                    errorMessage: The transaction ID '20190823062178' already exists!
                    errorCode: 3004
                general error, e.g. validation:
                  value:
                    success: false
                    errorMessage: 'root: ''referenceUuid'' is required'
                    errorCode: 1002
  /transaction/{apiKey}/refund:
    post:
      tags:
        - transaction
      summary: Process a refund
      operationId: processRefund
      parameters:
        - name: apiKey
          in: path
          description: API Key of Connector
          required: true
          schema:
            type: string
      requestBody:
        description: Data which is required to process a refund
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Refund'
            example:
              merchantTransactionId: 2019-09-02-0007
              referenceUuid: bcdef23456bcdef23456
              amount: '9.99'
              currency: EUR
              callbackUrl: http://example.com/callback
              description: Refund money
        required: true
      responses:
        '200':
          description: Transaction response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionResponse'
              examples:
                finished:
                  value:
                    success: true
                    uuid: abcde12345abcde12345
                    purchaseId: 20190927-abcde12345abcde12345
                    returnType: FINISHED
                    paymentMethod: Creditcard
                processing error:
                  value:
                    success: false
                    uuid: abcde12345abcde12345
                    purchaseId: 20200924-abcde12345abcde12345
                    returnType: ERROR
                    paymentMethod: Dummy
                    errors:
                      - errorMessage: Dummy error
                        errorCode: 1003
                        adapterMessage: Dummy adapter error
                general error, e.g. duplicate:
                  value:
                    success: false
                    errorMessage: The transaction ID '20190823062178' already exists!
                    errorCode: 3004
                general error, e.g. validation:
                  value:
                    success: false
                    errorMessage: 'root: ''amount'' is required'
                    errorCode: 1002
  /transaction/{apiKey}/payout:
    post:
      tags:
        - transaction
      summary: Process a payout
      operationId: processPayout
      parameters:
        - name: apiKey
          in: path
          description: API Key of Connector
          required: true
          schema:
            type: string
      requestBody:
        description: Data which is required to process a payout
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Payout'
            example:
              merchantTransactionId: 2019-09-02-0008
              amount: '9.99'
              currency: EUR
              callbackUrl: http://example.com/callback
              transactionToken: ix::a1A2B3b4c5C6D7d
              description: Payout
        required: true
      responses:
        '200':
          description: Transaction response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionResponse'
              examples:
                finished:
                  value:
                    success: true
                    uuid: abcde12345abcde12345
                    purchaseId: 20190927-abcde12345abcde12345
                    returnType: FINISHED
                    paymentMethod: Creditcard
                processing error:
                  value:
                    success: false
                    uuid: abcde12345abcde12345
                    purchaseId: 20200924-abcde12345abcde12345
                    returnType: ERROR
                    paymentMethod: Dummy
                    errors:
                      - errorMessage: Dummy error
                        errorCode: 1003
                        adapterMessage: Dummy adapter error
                general error, e.g. duplicate:
                  value:
                    success: false
                    errorMessage: The transaction ID '20190823062178' already exists!
                    errorCode: 3004
                general error, e.g. validation:
                  value:
                    success: false
                    errorMessage: 'root: ''amount'' is required'
                    errorCode: 1002
components:
  schemas:
    Debit:
      type: object
      required:
        - merchantTransactionId
        - amount
        - currency
      properties:
        merchantTransactionId:
          type: string
          minLength: 1
          maxLength: 50
        additionalId1:
          type: string
          minLength: 1
          maxLength: 50
        additionalId2:
          type: string
          minLength: 1
          maxLength: 50
        extraData:
          $ref: '#/components/schemas/ExtraData'
        pspPassthroughData:
          $ref: '#/components/schemas/PspPassthroughData'
        merchantMetaData:
          type: string
          maxLength: 255
        cardDetailsUpdate:
          $ref: '#/components/schemas/CardDetailsUpdateData'
        referenceUuid:
          type: string
          minLength: 1
          maxLength: 50
        amount:
          $ref: '#/components/schemas/Amount'
        surchargeAmount:
          $ref: '#/components/schemas/Amount'
        currency:
          $ref: '#/components/schemas/Currency'
        paymentToken:
          oneOf:
            - $ref: '#/components/schemas/ExternallyProvisionedApplePayToken'
            - $ref: '#/components/schemas/ExternallyProvisionedGooglePayToken'
            - $ref: '#/components/schemas/ExternallyProvisionedNetworkToken'
          discriminator:
            propertyName: type
            mapping:
              EXTERNAL-APPLEPAY: '#/components/schemas/ExternallyProvisionedApplePayToken'
              EXTERNAL-GOOGLEPAY: '#/components/schemas/ExternallyProvisionedGooglePayToken'
              EXTERNAL-NETWORK: '#/components/schemas/ExternallyProvisionedNetworkToken'
        successUrl:
          type: string
          maxLength: 65535
        cancelUrl:
          type: string
          maxLength: 65535
        errorUrl:
          type: string
          maxLength: 65535
        callbackUrl:
          type: string
          maxLength: 65535
        transactionToken:
          type: string
        description:
          type: string
          maxLength: 255
        items:
          $ref: '#/components/schemas/Items'
        splits:
          $ref: '#/components/schemas/Splits'
        withRegister:
          type: boolean
        transactionIndicator:
          type: string
          enum:
            - SINGLE
            - INITIAL
            - RECURRING
            - FIRST-CARDONFILE
            - CARDONFILE
            - CARDONFILE-MERCHANT-INITIATED
            - MOTO
        customer:
          $ref: '#/components/schemas/Customer'
        schedule:
          $ref: '#/components/schemas/Schedule'
        customerProfileData:
          $ref: '#/components/schemas/CustomerProfileData'
        threeDSecureData:
          $ref: '#/components/schemas/ThreeDSecureData'
        language:
          type: string
          minLength: 2
          maxLength: 2
        requestDcc:
          type: boolean
        dccData:
          $ref: '#/components/schemas/DccData'
        l2l3Data:
          $ref: '#/components/schemas/L2L3Data'
        cardData:
          $ref: '#/components/schemas/CardData'
        publicData:
          $ref: '#/components/schemas/PublicData'
        referenceSchemeTransactionIdentifier:
          type: string
          maxLength: 50
        includeTracing:
          type: boolean
      additionalProperties: false
    Preauthorize:
      type: object
      required:
        - merchantTransactionId
        - amount
        - currency
      properties:
        merchantTransactionId:
          type: string
          minLength: 1
          maxLength: 50
        additionalId1:
          type: string
          minLength: 1
          maxLength: 50
        additionalId2:
          type: string
          minLength: 1
          maxLength: 50
        captureInMinutes:
          type: integer
          minimum: 1
        extraData:
          $ref: '#/components/schemas/ExtraData'
        pspPassthroughData:
          $ref: '#/components/schemas/PspPassthroughData'
        merchantMetaData:
          type: string
          maxLength: 255
        cardDetailsUpdate:
          $ref: '#/components/schemas/CardDetailsUpdateData'
        referenceUuid:
          type: string
          minLength: 1
          maxLength: 50
        amount:
          $ref: '#/components/schemas/Amount'
        surchargeAmount:
          $ref: '#/components/schemas/Amount'
        currency:
          $ref: '#/components/schemas/Currency'
        paymentToken:
          oneOf:
            - $ref: '#/components/schemas/ExternallyProvisionedApplePayToken'
            - $ref: '#/components/schemas/ExternallyProvisionedGooglePayToken'
            - $ref: '#/components/schemas/ExternallyProvisionedNetworkToken'
          discriminator:
            propertyName: type
            mapping:
              EXTERNAL-APPLEPAY: '#/components/schemas/ExternallyProvisionedApplePayToken'
              EXTERNAL-GOOGLEPAY: '#/components/schemas/ExternallyProvisionedGooglePayToken'
              EXTERNAL-NETWORK: '#/components/schemas/ExternallyProvisionedNetworkToken'
        successUrl:
          type: string
          maxLength: 65535
        cancelUrl:
          type: string
          maxLength: 65535
        errorUrl:
          type: string
          maxLength: 65535
        callbackUrl:
          type: string
          maxLength: 65535
        transactionToken:
          type: string
        description:
          type: string
          maxLength: 255
        items:
          $ref: '#/components/schemas/Items'
        splits:
          $ref: '#/components/schemas/Splits'
        withRegister:
          type: boolean
        transactionIndicator:
          type: string
          enum:
            - SINGLE
            - INITIAL
            - RECURRING
            - FIRST-CARDONFILE
            - CARDONFILE
            - CARDONFILE-MERCHANT-INITIATED
            - MOTO
        customer:
          $ref: '#/components/schemas/Customer'
        schedule:
          $ref: '#/components/schemas/Schedule'
        customerProfileData:
          $ref: '#/components/schemas/CustomerProfileData'
        threeDSecureData:
          $ref: '#/components/schemas/ThreeDSecureData'
        language:
          type: string
          minLength: 2
          maxLength: 2
        requestDcc:
          type: boolean
        dccData:
          $ref: '#/components/schemas/DccData'
        l2l3Data:
          $ref: '#/components/schemas/L2L3Data'
        cardData:
          $ref: '#/components/schemas/CardData'
        publicData:
          $ref: '#/components/schemas/PublicData'
        referenceSchemeTransactionIdentifier:
          type: string
          maxLength: 50
        includeTracing:
          type: boolean
        requestPartialAuthorization:
          type: boolean
          description: >
            Request a partial authorization when the full amount cannot be authorized.
            The actual authorized amount may be less than the requested amount.
            Available on: CheckoutCom, StripeExtended, WorldLine
      additionalProperties: false
    IncrementalAuthorization:
      type: object
      required:
        - merchantTransactionId
        - referenceUuid
        -

# --- truncated at 32 KB (70 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/till-payments/refs/heads/main/openapi/till-payments-direct-pci.yml