Helcim Payment API

The Payment API from Helcim — 7 operation(s) for payment.

Operations 7

POST /payment/purchase Process a Purchase Transaction #
POST /payment/preauth Process a Preauth Transaction #
POST /payment/capture Process a Capture Transaction #
POST /payment/verify Process a Verify Transaction #
POST /payment/refund Process a Refund Transaction #
POST /payment/reverse Process a Reverse Transaction #
POST /payment/withdraw Process a Withdraw Transaction #

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/helcim-payment-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 email required.

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

OpenAPI Specification

helcim-payment-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: This API covers publicly accessible merchant actions
  version: 2.2.0
  title: Helcim Payment API
servers:
- url: https://api.helcim.com/v2
- url: https://api.helcim.test/v2
tags:
- name: Payment
paths:
  /payment/purchase:
    post:
      tags:
      - Payment
      summary: Process a Purchase Transaction
      operationId: purchase
      parameters:
      - in: header
        name: idempotency-key
        description: A UUID-formatted idempotency key. Accepted format is 25-36 alphanumeric characters (including '-' and '_').
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/PaymentRequest'
              - $ref: '#/components/schemas/CardData'
            example:
              ipAddress: 192.168.1.1
              ecommerce: true
              terminalId: 3215
              currency: CAD
              amount: 100.99
              customerCode: ''
              invoiceNumber: ''
              cardData:
                cardNumber: '5454545454545454'
                cardExpiry: '1257'
                cardCVV: '100'
                cardHolderName: John Doe
              billingAddress:
                name: John Smith / Helcim
                street1: 21 Jump Street
                street2: Suite 400
                city: Calgary
                province: AB
                country: CAN
                postalCode: H0H0H0
                phone: '4031231234'
                email: john@example.com
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessfulPaymentResponse'
        default:
          description: Failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FailedPaymentResponse'
      security:
      - ApiAccessAuth: []
  /payment/preauth:
    post:
      tags:
      - Payment
      summary: Process a Preauth Transaction
      operationId: preauth
      parameters:
      - in: header
        name: idempotency-key
        description: A UUID-formatted idempotency key. Accepted format is 25-36 alphanumeric characters (including '-' and '_').
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/PreauthRequest'
              - $ref: '#/components/schemas/CardData'
            example:
              ipAddress: 192.168.1.1
              ecommerce: true
              terminalId: 3215
              currency: CAD
              amount: 100.99
              customerCode: ''
              invoiceNumber: ''
              cardData:
                cardNumber: '5454545454545454'
                cardExpiry: '1257'
                cardCVV: '100'
                cardHolderName: John Doe
              billingAddress:
                name: John Smith / Helcim
                street1: 21 Jump Street
                street2: Suite 400
                city: Calgary
                province: AB
                country: CAN
                postalCode: H0H0H0
                phone: '4031231234'
                email: john@example.com
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessfulPaymentResponse'
        default:
          description: Failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FailedPaymentResponse'
      security:
      - ApiAccessAuth: []
  /payment/capture:
    post:
      tags:
      - Payment
      summary: Process a Capture Transaction
      operationId: capture
      parameters:
      - in: header
        name: idempotency-key
        description: A UUID-formatted idempotency key. Accepted format is 25-36 alphanumeric characters (including '-' and '_').
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CaptureRequest'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessfulPaymentResponse'
        default:
          description: Failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FailedPaymentResponse'
      security:
      - ApiAccessAuth: []
  /payment/verify:
    post:
      tags:
      - Payment
      summary: Process a Verify Transaction
      operationId: verify
      parameters:
      - in: header
        name: idempotency-key
        description: A UUID-formatted idempotency key. Accepted format is 25-36 alphanumeric characters (including '-' and '_').
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VerifyRequest'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessfulPaymentResponse'
        default:
          description: Failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FailedPaymentResponse'
      security:
      - ApiAccessAuth: []
  /payment/refund:
    post:
      tags:
      - Payment
      summary: Process a Refund Transaction
      operationId: refund
      parameters:
      - in: header
        name: idempotency-key
        description: A UUID-formatted idempotency key. Accepted format is 25-36 alphanumeric characters (including '-' and '_').
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              title: Refund Request
              type: object
              required:
              - originalTransactionId
              - amount
              - ipAddress
              properties:
                originalTransactionId:
                  type: integer
                  example: 198763
                  description: The transaction ID of the purchase/capture transaction.  In-person debit transactions cannot be refunded through payment API
                amount:
                  type: number
                  example: 100.99
                  description: The amount to refund. Must be less or equal to the original purchase/capture amount.
                ipAddress:
                  type: string
                  example: 192.168.1.1
                  description: IP address of the customer making the transaction, used as part of fraud detection.
                ecommerce:
                  type: boolean
                  example: true
                  description: Set to indicate that the transaction is e-commerce. When set, the Helcim Fraud Defender will provide further analysis.
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessfulPaymentResponse'
        default:
          description: Failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FailedPaymentResponse'
      security:
      - ApiAccessAuth: []
  /payment/reverse:
    post:
      tags:
      - Payment
      summary: Process a Reverse Transaction
      operationId: reverse
      parameters:
      - in: header
        name: idempotency-key
        description: A UUID-formatted idempotency key. Accepted format is 25-36 alphanumeric characters (including '-' and '_').
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              title: Refund Request
              type: object
              required:
              - cardTransactionId
              - ipAddress
              properties:
                cardTransactionId:
                  type: integer
                  example: 198763
                  description: The transaction ID of the original transaction.
                ipAddress:
                  type: string
                  example: 192.168.1.1
                  description: IP address of the customer making the transaction, used as part of fraud detection.
                ecommerce:
                  type: boolean
                  example: true
                  description: Set to indicate that the transaction is e-commerce. When set, the Helcim Fraud Defender will provide further analysis.
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessfulPaymentResponse'
        default:
          description: Failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FailedPaymentResponse'
      security:
      - ApiAccessAuth: []
  /payment/withdraw:
    post:
      deprecated: true
      tags:
      - Payment
      summary: Process a Withdraw Transaction
      operationId: withdraw
      parameters:
      - in: header
        name: idempotency-key
        description: A UUID-formatted idempotency key. Accepted format is 25-36 alphanumeric characters (including '-' and '_').
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/PaymentRequest'
              - $ref: '#/components/schemas/BankData'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessfulAchTransactionResponse'
        default:
          description: Failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FailedPaymentResponse'
      security:
      - ApiAccessAuth: []
components:
  schemas:
    InvoiceBase:
      title: Invoice Base
      type: object
      properties:
        invoiceNumber:
          type: string
          example: ''
          description: Invoice number of invoice to be created. Will be generated if blank
        notes:
          type: string
          example: No vegetables please
          description: Comment to appear at the bottom of the invoice, visible to the customer.
    SuccessfulAchTransactionResponse:
      title: Ach Transaction Response
      type: object
      properties:
        transactionId:
          type: number
          example: 10
          description: The transaction id
        batchId:
          type: number
          example: 11
          description: The id of associated card batch
        dateCreated:
          type: string
          example: '2020-01-01 00:00:00'
          description: The date(Mountain Time) when the transaction is created.
        statusAuth:
          type: string
          example: APPROVED
          description: The status of the transaction. possible values are APPROVED | DECLINED | IN_PROGRESS | CANCELLED | PENDING
        statusClearing:
          type: string
          example: OPENED
          description: The status of the transaction. possible values are OPENED | CLEARED | REJECTED | CONTESTED | RETURNED
        type:
          type: string
          example: WITHDRAWAL
          description: The type of the transaction. possible values are WITHDRAWAL | DEPOSIT | SETTLE | REVERSE | REFUND
        amount:
          type: number
          example: 11.99
          description: The amount of processed transaction
        currency:
          type: string
          example: CAD
          description: The abbreviation of the transaction's currency
        approvalCode:
          type: string
          example: HCMAPPRV
          description: Approval Code
        bankAccountNumber:
          type: string
          example: A1B2C3D4E5F6G7
          description: Bank account number
        bankToken:
          type: string
          example: -A1B2C3D4E5F6G7*
          description: Bank Token associated with bankAccount
        invoiceNumber:
          type: string
          example: INV2022
          description: Invoice number associated to the transaction
    PaymentRequest:
      title: PaymentRequest
      allOf:
      - $ref: '#/components/schemas/PaymentRequestBase'
      - type: object
        properties:
          invoice:
            allOf:
            - $ref: '#/components/schemas/InvoiceWithTip'
            - $ref: '#/components/schemas/InvoiceCreateAfterProcessing'
            description: To be filled when creating new invoice to be associated to transaction. Will be linked to Customer owning the Card used
    LineItem:
      title: Line Item Data
      type: object
      required:
      - description
      - quantity
      - price
      properties:
        description:
          type: string
          description: 'A short description of the product or service.

            '
          example: Red Hat
        quantity:
          type: number
          format: float
          description: 'The quantity of the line item. Can have up to 2 decimal places.

            '
          example: 10.5
        price:
          type: number
          format: float
          description: 'The unit price for a single quantity of this line item, before tax or discounts.

            '
          example: 10.55
        taxAmount:
          type: number
          format: float
          description: 'The tax amount for this line item.

            '
          example: 0
        discountAmount:
          type: number
          format: float
          description: 'The discount amount applied to this line item.

            '
          example: 0
        sku:
          type: string
          description: 'The stock keeping unit (SKU) code for this product (or service).

            '
          example: ITM1434
    Card:
      title: Card
      type: object
      required:
      - cardNumber
      - cardExpiry
      - cardCVV
      - cardHolderName
      properties:
        cardNumber:
          type: string
          example: 5454545454545454
          description: The full card number (13 to 16 digits) from merchant to process "purchase", "pre-auth", and "verify" transactions.
        cardExpiry:
          type: string
          example: 1257
          description: The card expiry date, in MMYY format (total of 4 digits without spaces or slashes).
        cardCVV:
          type: string
          example: 100
          description: The card CVV (3-4 digits on back of credit card).
        cardHolderName:
          type: string
          example: John Doe
          description: The name of the card holder as it appears on the card.
    SuccessfulPaymentResponse:
      title: Payment Response
      type: object
      properties:
        transactionId:
          type: number
          example: 10
          description: The transaction id
        cardBatchId:
          type: number
          example: 11
          description: The id of associated card batch
        dateCreated:
          type: string
          example: '2020-01-01 00:00:00'
          description: The date(Mountain Time) when the transaction is created.
        status:
          type: string
          example: APPROVED
          description: The status of the transaction. possible values are APPROVED | DECLINED
        user:
          type: string
          example: Helcim System
          description: Full name of the user who processed the transaction. Default value is Helcim System
        type:
          type: string
          example: purchase
          description: The type of the transaction. possible values are purchase | preauth | verify
        amount:
          type: number
          example: 11.99
          description: The amount of processed transaction
        currency:
          type: string
          example: CAD
          description: The abbreviation of the transaction's currency
        avsResponse:
          type: string
          example: M
          description: AVS Response
        cvvResponse:
          type: string
          example: Y
          description: CVV Response
        cardType:
          type: string
          example: Visa
          description: "Abbreviated card issuer name\n  * `VI` - Visa\n  * `MC` - MasterCard\n  * `AX` - American Express\n  * `DI` - Discover\n  * `DCI` - Diners Club\n  * `JCB` - JCB\n  * `UP` - China Union Pay\n  * `MR` - Maestro\n  * `AF` - AFFN\n  * `AO` - Alaska Option\n  * `CU` - Credit Union 24\n  * `EB` - EBT Network\n  * `EX` - Accel\n  * `IL` - Interlink\n  * `NT` - Nets\n  * `NY` - NYCE\n  * `PS` - Pulse\n  * `ST` - Star\n  * `SZ` - Shazam\n  * `AT` - ATH\n  * `IN` - Interac\n  * `DB` - Debit\n"
        approvalCode:
          type: string
          example: HCMAPPRV
          description: Approval Code
        cardToken:
          type: string
          example: 5454HCMXTEST5454
          description: Card token associated to the transaction
        cardNumber:
          type: string
          example: 5454545454
          description: First-6 Last-4 numbers of the card number associated to the transaction
        cardHolderName:
          type: string
          example: John Smith
          description: Cardholdername associated to the transaction
        customerCode:
          type: string
          example: CST1010
          description: Customer code associated to the transaction
        invoiceNumber:
          type: string
          example: INV2022
          description: Invoice number associated to the transaction
        warning:
          type: string
          example: Failed to link customer to invoice
          description: Warnings
    Tax:
      title: Tax Data
      type: object
      required:
      - amount
      - details
      properties:
        amount:
          type: number
          format: float
          description: 'The total tax amount applied at the invoice level.  This does not include item-level taxes.

            '
          example: 5.99
        details:
          type: string
          description: 'A description of the tax or tax breakdown.

            '
          example: GST 5%
    PreauthRequest:
      title: PreauthRequest
      allOf:
      - $ref: '#/components/schemas/PaymentRequestBase'
      - type: object
        properties:
          invoice:
            allOf:
            - $ref: '#/components/schemas/InvoiceBase'
            - $ref: '#/components/schemas/InvoiceCreateAfterProcessing'
            description: To be filled when creating new invoice to be associated to transaction. Will be linked to Customer owning the Card used
    Pickup:
      title: Pickup Data
      type: object
      required:
      - date
      properties:
        date:
          type: string
          description: 'The scheduled pickup date and time in the format: `YYYY-MM-DD HH:MM:SS`.

            '
          example: '2022-01-25 13:55:55'
        name:
          type: string
          readOnly: true
          description: 'Read-only. Derived from the linked customer''s contact name (empty when no customer is linked to the invoice). A `name` supplied in a create or update request is ignored — only `date` is writable. To change the displayed pickup name, update the linked customer''s contact name.

            '
          example: Jane Smith
    InvoiceCreateAfterProcessing:
      title: Invoice Create after transaction processing
      type: object
      properties:
        shipping:
          $ref: '#/components/schemas/Shipping'
        pickup:
          $ref: '#/components/schemas/Pickup'
        tax:
          $ref: '#/components/schemas/Tax'
        discount:
          $ref: '#/components/schemas/Discount'
        lineItems:
          type: array
          maxItems: 10
          items:
            $ref: '#/components/schemas/LineItem'
    Shipping:
      title: Shipping Data
      type: object
      required:
      - amount
      - details
      - address
      properties:
        amount:
          type: number
          format: float
          description: 'The total shipping amount for the invoice.

            '
          example: 10.99
        details:
          type: string
          description: 'A description of the shipping method. This information appears on the invoice.

            '
          example: Canada Post 1-day shipping
        address:
          allOf:
          - $ref: '#/components/schemas/Address'
          description: 'The destination shipping address for this invoice.

            '
    Discount:
      title: Discount Data
      type: object
      required:
      - amount
      - details
      properties:
        amount:
          type: number
          format: float
          description: 'The total discount amount applied at the invoice level.  This does not include item-level discounts.

            '
          example: 10.99
        details:
          type: string
          description: 'A description or code identifying the discount.

            '
          example: DISC100
    FailedPaymentResponse:
      type: object
      properties:
        errors:
          type: array
          description: List of errors
          items:
            type: string
            example: An error occurred
    CaptureRequest:
      title: Capture Request
      type: object
      required:
      - preAuthTransactionId
      - amount
      - ipAddress
      properties:
        preAuthTransactionId:
          type: integer
          example: 198763
          description: The transaction ID of the original pre-authorization transaction.
        amount:
          type: number
          example: 100.99
          description: The amount to capture. Must be less or equal to the original pre-authorization amount.
        ipAddress:
          type: string
          example: 192.168.1.1
          description: IP address of the customer making the transaction, used as part of fraud detection.
        ecommerce:
          type: boolean
          example: true
          description: Set to indicate that the transaction is e-commerce. When set, the Helcim Fraud Defender will provide further analysis.
    Address:
      title: Address
      type: object
      required:
      - name
      - street1
      - postalCode
      properties:
        name:
          type: string
          description: 'The recipient''s name or business name for this address.

            '
          example: John Smith / Helcim
        street1:
          type: string
          description: 'The primary street address.

            '
          example: 21 Jump Street
        street2:
          type: string
          description: 'Additional address details, such as unit or suite number.

            '
          example: Suite 400
        city:
          type: string
          description: 'The city for this address.

            '
          example: Calgary
        province:
          type: string
          description: 'The two-letter province or state code (e.g., AB, BC, CA).  Required if the country is CAN or USA.

            '
          example: AB
        country:
          type: string
          description: 'The three-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code (e.g., CAN, USA).

            '
          example: CAN
        postalCode:
          type: string
          description: 'The postal or ZIP code for this address.

            '
          example: H0H0H0
        phone:
          type: string
          description: 'Contact phone number (10 to 15 digits).

            '
          example: 4031231234
        email:
          type: string
          description: 'Contact email address for this address.

            '
          example: john@example.com
    VerifyRequest:
      title: Verify Request
      type: object
      required:
      - amount
      - currency
      - cardData
      - billingAddress
      - ipAddress
      properties:
        ipAddress:
          type: string
          example: 192.168.1.1
          description: IP address of the customer making the transaction, used as part of fraud detection.
        ecommerce:
          type: boolean
          example: true
          description: Set to indicate that the transaction is e-commerce. When set, the Helcim Fraud Defender will provide further analysis.
        currency:
          type: string
          example: CAD
          description: The currency abbreviation of the transaction.
        amount:
          type: number
          example: 100
          description: Amount to be verified
        customerCode:
          type: string
          example: ''
          description: Existing customer code associated with the transaction
        invoiceNumber:
          type: string
          example: ''
          description: To be filled when associating transaction to existing invoice. Invoice should be associated to the same customer linked to the card
        invoice:
          allOf:
          - $ref: '#/components/schemas/InvoiceBase'
          - $ref: '#/components/schemas/InvoiceCreateAfterProcessing'
        cardData:
          $ref: '#/components/schemas/Card'
        billingAddress:
          $ref: '#/components/schemas/Address'
    BankAccount:
      title: BankAccount
      type: object
      required:
      - firstName
      - lastName
      - companyName
      - bankAccountNumber
      - accountType
      - accountCorporate
      - streetAddress
      - city
      - country
      - province
      - postalCode
      properties:
        firstName:
          type: string
          example: John
          description: The bank account holder first name
        lastName:
          type: string
          example: Smith
          description: The bank account holder last name
        companyName:
          type: string
          example: Microsoft
          description: The company name
        bankAccountNumber:
          type: string
          example: 999999999
          description: Bank account number
        accountType:
          type: string
          example: CHECKING
          description: CHECKING - Chequing, SAVINGS - Savings
        accountCorporate:
          type: string
          example: PERSONAL
          description: PERSONAL - Personal Bank Account, CORPORATE - Corporate Bank Account
        bankIdNumber:
          type: string
          example: 888
          description: Required for Canadian Bank Account Holder, the institution number - three digits - identifies your bank.
        transitNumber:
          type: string
          example: 55555
          description: Required for Canadian Bank Account Holder, the transit number - five digits - shows which branch you opened your account at.
        routingNumber:
          type: string
          example: 123456789
          description: Required for US Bank Account Holder, a nine-digit code printed on the bottom of checks to identify the financial institution on which it was drawn.
        streetAddress:
          type: string
          example: 440 - something
        city:
          type: string
          example: Calgary
        country:
          type: string
          example: CAN
          description: Only allow CAN - Canada, USA - United States
        province:
          type: string
          example: AB
        postalCode:
          type: string
          example: T2T2T2
        padAgreement:
          type: boolean
          example: true
          description: Customer given permission for a company or financial institution to debit a bank account when the payment is due.
    CardData:
      title: CardData
      type: object
      required:
      - cardData
      properties:
        cardData:
          oneOf:
          - $ref: '#/components/schemas/Card'
          - $ref: '#/components/schemas/CardToken'
    CardToken:
      title: Card Token
      type: object
      required:
      - cardToken
      properties:
        cardToken:
          type: string
          example: HGKHJK5647698HGJJK
          description: The token for the card on file. If Customer Code is filled, The card should must be owned by a passed customer code
    BankToken:
      title: Bank Token
      type: object
      required:
      - bankToken
      properties:
        bankToken:
          type: string
          example: HGKHJK5647698HGJJK
          description: The token for the bank account on file.
    PaymentRequestBase:
      title: PaymentRequestBase
      type: object
      required:
      - amount
      - currency
      - cardData
      - ipAddress
      properties:
        ipAddress:
          type: string
          example: 192.168.1.1
          description: IP address of the customer making the transaction, used as part of fraud detection.
        ecommerce:
          type: boolean
          example: true
          description: Set to indicate that the transaction is e-commerce. When set, the Helcim Fraud Defender will provide further analysis.
        terminalId:
          type: integer
          example: 3215
          description: For card transactions only. Id of the terminal you would want to use. Default terminal for of the currency will be used if you dont send this.
        currency:
          type: string
          example: CAD
          description: The currency abbreviation of the invoice, such as CAD or USD. This should match currency of existing invoice.
        amount:
          type: number
          example: 100.99
          description: Amount to be processed
        customerCode:
          type: string
          example: ''
          description: Existing customer code associated with the transaction
        invoiceNumber:
          type: string
          example: ''
          description: To be filled when associating transaction to existing invoice. Invoice should be associated to the same customer linked to the card
        cardData:
          $ref: '#/components/schemas/Card'
        billingAddress:
          $ref: '#/components/schemas/Address'
    InvoiceWithTip:
      title: InvoiceWithTip
      allOf:
      - $ref: '#/components/schemas/InvoiceBase'
      - type: object
        properties:
          tipAmount:
            type: number
            example: 0.99
            description: Tip amount
    BankData:
      title: BankData
      type: object
      required:
      - bankData
      properties:
        bankData:
          oneOf:
          - $ref: '#/components/schemas/BankAccount'
          - $ref: '#/components/schemas/BankToken'
  securitySchemes:
    ApiAccessAuth:
      description: API Token with required permissions
      type: apiKey
      in: header
      name: api-token