Till Payments Transaction API

Process transactions

Operations 9

POST /transaction/{apiKey}/debit Process a debit #
POST /transaction/{apiKey}/preauthorize Process a preauthorize: reserves the payment amount on the customer's payment instrument #
POST /transaction/{apiKey}/incrementalAuthorization Increases or prolongs the authorization on a customer's payment instrument (made with Preauthorize before) #
POST /transaction/{apiKey}/capture Process a capture: completes a payment previously authorized through Preauthorize #
POST /transaction/{apiKey}/void Process a void: cancels a previously authorized Preauthorize #
POST /transaction/{apiKey}/register Process a register: registers a customer's payment instrument for future use (Debit or Preauthorize) #
POST /transaction/{apiKey}/deregister Process a deregister: deletes a previously registered payment instrument #
POST /transaction/{apiKey}/refund Process a refund #
POST /transaction/{apiKey}/payout Process a payout #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/till-payments-transaction-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

till-payments-transaction-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Till Payments Transaction API
  version: 3.0.0
  contact:
    email: ''
  license:
    name: MIT
  termsOfService: ''
  description: 'Operations tagged transaction across 2 of this provider''s published API definitions: till-payments-direct-pci.yml, till-payments-gateway.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://secure.tillpayments.com/api/v3
- url: https://gateway.tillpayments.com/api/v3
security:
- basicAuth: []
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
    servers:
    - url: https://secure.tillpayments.com/api/v3
  /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
    servers:
    - url: https://secure.tillpayments.com/api/v3
  /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
    servers:
    - url: https://secure.tillpayments.com/api/v3
  /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
    servers:
    - url: https://secure.tillpayments.com/api/v3
  /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
    servers:
    - url: https://secure.tillpayments.com/api/v3
  /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
    servers:
    - url: https://secure.tillpayments.com/api/v3
  /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
    servers:
    - url: https://secure.tillpayments.com/api/v3
  /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
    servers:
    - url: https://secure.tillpayments.com/api/v3
  /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
    servers:
    - url: https://secure.tillpayments.com/api/v3
components:
  schemas:
    Payout:
      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
        referenceUuid:
          type: string
          minLength: 1
          maxLength: 50
        amount:
          $ref: '#/components/schemas/Amount'
        currency:
          $ref: '#/components/schemas/Currency'
        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'
        customer:
          $ref: '#/components/schemas/Customer'
        language:
          type: string
          minLength: 2
          maxLength: 2
        transactionIndicator:
          type: string
          enum:
          - SINGLE
          - INITIAL
          - RECURRING
          - CARDONFILE
          - CARDONFILE-MERCHANT-INITIATED
          - MOTO
        l2l3Data:
          $ref: '#/components/schemas/L2L3Data'
        cardData:
          $ref: '#/components/schemas/CardData'
        publicData:
          $ref: '#/components/schemas/PublicData'
        includeTracing:
          type: boolean
        allowUnlinkedRefund:
          type: boolean
          description: 'When true, processes this payout as an unlinked (unreferenced) refund instead of a standard payout. No reference to an original transaction is required. Available on: Axepta, CheckoutCom, StripeExtended, WorldLine.

            '
      additionalProperties: false
    Register:
      type: object
      required:
      - merchantTransactionId
      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
        referenceUuid:
          type: string
          minLength: 1
          maxLength: 50
          description: UUID of a previous register transaction on the same merchant. Used by the expiry-update register flow to point at the existing token whose expiry date should be patched.
        successUrl:
          type: string
          maxLength: 65535
        cancelUrl:
          type: string
          maxLength: 65535
        errorUrl:
          type: string
          maxLength: 65535
        callbackUrl:
          type: string
          maxLength: 65535
        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'
        transactionToken:
          type: string
        description:
          type: string
          maxLength: 255
        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
        l2l3Data:
          $ref: '#/components/schemas/L2L3Data'
        cardData:
          $ref: '#/components/schemas/CardData'
        publicData:
          $ref: '#/components/schemas/PublicData'
      additionalProperties: false
    DccData:
      type: object
      properties:
        remoteIdentifier:
          type: string
        originalAmount:
          $ref: '#/components/schemas/Amount'
        originalCurrency:
          $ref: '#/components/schemas/Currency'
        convertedAmount:
          $ref: '#/components/schemas/Amount'
        convertedCurrency:
          $ref: '#/components/schemas/Currency'
        conversionRate:
          type: number
        selectedCurrency:
          type: string
        markUp:
          type: number
    WalletData:
      type: object
      properties:
        walletData:
          type: object
          properties:
            walletReferenceId:
              type: string
              maxLength: 255
            walletOwner:
              type: string
              maxLength: 255
            walletType:
              type: string
              maxLength: 255
          additionalProperties: false
      additionalProperties: false
    ExternallyProvisionedNetworkToken:
      allOf:
      - $ref: '#/components/schemas/BaseExternallyProvisionedToken'
      type: object
      properties:
        cardHolder:
          type: string
        panUniqueReference:
          type: string
        tokenUniqueReference:
          type: string
        panLastFourDigits:
          type: string
          maxLength: 4
        tokenRequestorId:
          type: string
    Customer:
      type: object
      properties:
        identification:
          type: string
          maxLength: 36
        firstName:
          type: string
          maxLength: 50
        lastName:
          type: string
          maxL

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