TabaPay Transaction API

This resource represents a Client's Transaction.

Operations 5

PATCH /v1/clients/{ClientID}/transactions/{TransactionID} Capture Transaction #
DELETE /v1/clients/{ClientID}/transactions/{TransactionID} Delete Transaction #
GET /v1/clients/{ClientID}/transactions/{TransactionID} Retrieve Transaction #
POST /v1/clients/{ClientID}/transactions Create Transaction #
DELETE /v2/clients/{ClientID}/transactions/rtp/{RTPNetworkID} Delete RTP 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/tabapay-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 email required.

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

OpenAPI Specification

tabapay-transaction-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: TabaPay APIs 3D Secure Transaction API
  description: TabaPay Resource and Service Operations
  version: 1.0.0
  license:
    name: All rights reserved
servers:
- url: https://{FQDN}:{PORT}
  description: TabaPay APIs
  variables:
    FQDN:
      default: FQDN
      description: Contact [TabaPay Support](https://tabapay.zendesk.com/hc/en-us/requests/new) for the Fully Qualified Domain Name you should be using.
    PORT:
      default: PORT
      description: Ensure you have the capability to access the PORT TabaPay specifies in your credentials file.
security:
- bearerAuth: []
tags:
- name: Transaction
  description: This resource represents a Client's Transaction.
paths:
  /v1/clients/{ClientID}/transactions/{TransactionID}:
    patch:
      tags:
      - Transaction
      summary: Capture Transaction
      description: Captures the Authorized Transaction.
      operationId: transactionCapture
      parameters:
      - $ref: '#/components/parameters/ClientID'
      - $ref: '#/components/parameters/TransactionID'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
      responses:
        '200':
          description: The Transaction is Captured.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/transactionCaptureResponse'
              examples:
                Completed:
                  value:
                    SC: 200
                    EC: '0'
                    status: CAPTURED
    delete:
      tags:
      - Transaction
      summary: Delete Transaction
      description: "Tries to request a reverse of a previous Pull Transaction.\n Note: Delete Transaction is NOT eligible to be used for an <<glossary:ACH>> Transaction."
      operationId: transactionDelete
      parameters:
      - $ref: '#/components/parameters/ClientID'
      - $ref: '#/components/parameters/TransactionID'
      - $ref: '#/components/parameters/reversal'
      - $ref: '#/components/parameters/void'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/deleteTransaction'
        required: false
      responses:
        '200':
          description: A Request for a Reversal of the previous Transaction is successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/transactionReversed'
              examples:
                Transaction Reversed:
                  value:
                    SC: 200
                    EC: '0'
                    status: COMPLETED
                    reversal:
                      networkRC: '00'
                Dual Message Network:
                  value:
                    SC: 200
                    EC: '0'
                    status: COMPLETED
                    reversal:
                      networkRC: '21'
                      networkRC2: '00'
        '207':
          description: One or more Failures occurred while processing the Request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiResponseSCECStatus'
              example:
                SC: 207
                EC: Internal Error Code
                status: UNKNOWN
    get:
      tags:
      - Transaction
      summary: Retrieve Transaction
      description: 'Retrieves the Transaction.


        In circumstances where you fail to receive a transactionID from us, you can do a [retrieve via referenceID](https://developers.tabapay.com/reference/retrieve-via-referenceid). *(Allowed only up to 24 hours after original request)*'
      operationId: transactionRetrieve
      parameters:
      - $ref: '#/components/parameters/ClientID'
      - $ref: '#/components/parameters/TransactionID'
      responses:
        '200':
          description: The Transaction is retrieved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/transactionRetrieveResponse'
              examples:
                Retrieve Completed Transaction:
                  value:
                    SC: 200
                    EC: '0'
                    referenceID: '1'
                    network: Visa
                    networkRC: '00'
                    status: COMPLETED
                    approvalCode: '000000'
                    amount: '0.10'
                    fees:
                      interchange: '0.50'
                      network: '0.50'
                      tabapay: '0.25'
                Auth & Capture:
                  value:
                    SC: 200
                    EC: '0'
                    referenceID: 1kdev22334
                    network: Visa
                    networkRC: '00'
                    networkID: '2026030423552107102'
                    status: CAPTURED
                    approvalCode: '235521'
                    amount: '3.50'
                    last4: '1111'
                Reversal/Void:
                  value:
                    SC: 200
                    EC: '0'
                    referenceID: 1kdev072925
                    network: MasterCard
                    networkRC: '00'
                    networkID: '2025073118562721941'
                    status: COMPLETED
                    approvalCode: '185627'
                    amount: '3.00'
                    last4: '8210'
                    reversalStatus: REVERSED
                    reversal:
                      networkRC: '00'
                    reversals:
                    - reversalStatus: REVERSED
                      networkRC: '00'
                      reversalAmount: '3.00'
                Multiple Reversals:
                  value:
                    SC: 200
                    EC: '0'
                    referenceID: '20250804162555'
                    network: Visa
                    networkRC: '00'
                    networkID: '521623174049'
                    status: COMPLETED
                    approvalCode: '174049'
                    amount: '0.90'
                    last4: '1111'
                    reversalStatus: REVERSED
                    reversal:
                      networkRC: '00'
                      reversalAmount: '0.09'
                    reversals:
                    - reversalStatus: REVERSED
                      networkRC: '00'
                      reversalAmount: '0.09'
                    - reversalStatus: REVERSED
                      networkRC: '00'
                      reversalAmount: '0.02'
                    - reversalStatus: REVERSED
                      networkRC: '00'
                      reversalAmount: '0.06'
        '421':
          description: Too late to Retrieve Transaction by ReferenceID. Use TransactionID.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiResponseSCECEM'
              example:
                SC: 421
                EC: InternalErrorCode
                EM: ReferenceID
  /v1/clients/{ClientID}/transactions:
    post:
      tags:
      - Transaction
      summary: Create Transaction
      description: 'Creates a Transaction.


        In circumstances where you fail to receive a transactionID from us, you can do a [retrieve via referenceID](https://developers.tabapay.com/reference/retrieve-via-referenceid). *(Allowed only up to 24 hours after original request)*'
      operationId: transactionCreate
      parameters:
      - $ref: '#/components/parameters/ClientID'
      - $ref: '#/components/parameters/authorize'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/createTransaction'
            examples:
              Push Using AccountIDs:
                value:
                  referenceID: '1'
                  type: push
                  accounts:
                    sourceAccountID: SettlementAccountID_22
                    destinationAccountID: TabaPay_AccountID_22-c
                  amount: '0.25'
              Pull Using AccountIDs:
                value:
                  referenceID: '1'
                  type: pull
                  accounts:
                    sourceAccountID: TabaPay_AccountID_22-c
                    destinationAccountID: SettlementAccountID_22
                  amount: '0.25'
              Pull using Card Info:
                value:
                  referenceID: '5'
                  type: pull
                  accounts:
                    sourceAccount:
                      card:
                        accountNumber: '4111111111111111'
                        expirationDate: '202708'
                        securityCode: '232'
                      owner:
                        name:
                          first: Test
                          last: Name
                        address:
                          line: 123 Street
                          city: San Francisco
                          state: CA
                          zipcode: '94103'
                          country: '840'
                    destinationAccountID: TabaPay_AccountID_22-c
                  amount: '0.25'
              Pull using RSA Key:
                value:
                  referenceID: '6'
                  type: pull
                  accounts:
                    sourceAccount:
                      card:
                        keyID: TabaPay_22_CharacterID
                        data: mNxVazaXkJL7JNH0BiHGaohgO5azjxTq-2fBP8eaf-6-Bv_Ev3aRruvxazWcrYg59tvT94oNoHSqWBAG3DRiEuFKvJpJ6Y-6BoBO895WniiP9pwpWXsFQbpkmwLSQu0MDdvYFeTqweMKmUKn_NVzfzOvytBnjGA2Fz_sWxlJ7kC4zSYOnCNZWh03bLVB0CdfbXDHUePO0gbHpDc3H7N2tII4dpAVRgA9NOudBGaFxCgU5KcOy84ovxGsFvi6YNBeCCd4CVVuyhpLOzjdRovb9P5_f5kC1Rh8hEu8f_hY44TiK7M7Nbba6FfJmLHhvosqbCwM8GerhE-HvbQc7OAOlQ
                      owner:
                        name:
                          first: Test
                          last: Name
                        address:
                          line: 123 Street
                          city: San Francisco
                          state: CA
                          zipcode: '94103'
                          country: '840'
                    destinationAccountID: TabaPay_AccountID_22-c
                  amount: '0.25'
              Pull using iFrame Token:
                value:
                  referenceID: '7'
                  type: pull
                  accounts:
                    sourceAccount:
                      card:
                        token: 80di7pLqLIAjagqBIjdUeyGvos1Yjs-tzIgnHbXUwObg-vR48OumErarFEypJg6ghQwoYNFaV_zv3LKogdGOfKylpZHl7HG4rPEe2LyzY1vBdzEBm1UubBAAeo_iKvnrMwObBTRMxbsvlJVwsFpJZ879wp0jnO8sYCXop3yp0w5LaqlQoyfbSloxOi5ZkX9jOCxfuKWf4uXcvWiBCeYtIr78_rldk5SvjMpp4u2eBN6gAcnjczMxIYIJD_zrI1zGYRq8SJwhVdYr2C8VYbkgoHnT1JDyDdwspVtQ1NP9vesNdEF_1qc_9MpogQeM-O3G09WWivDchJscJbbTZnjU6BaQ
                      owner:
                        name:
                          first: Test
                          last: Name
                        address:
                          line: 123 Street
                          city: San Francisco
                          state: CA
                          zipcode: '94103'
                          country: '840'
                    destinationAccountID: TabaPay_AccountID_22-c
                  amount: '0.25'
              Pull with Visa Card:
                value:
                  accounts:
                    sourceAccount:
                      card:
                        accountNumber: '4000001240000000'
                        expirationDate: '202708'
                        securityCode: '232'
                      owner:
                        name:
                          first: Test
                          last: Name
                    destinationAccountID: goQUGYYEiApnc6wC0iBDZQ
                  referenceID: 1kdevt01142024
                  type: pull
                  amount: '0.25'
              Pull with MC Card:
                value:
                  accounts:
                    sourceAccount:
                      card:
                        accountNumber: '5200828282828210'
                        expirationDate: '202708'
                        securityCode: '999'
                      owner:
                        name:
                          first: Test
                          last: Name
                    destinationAccountID: goQUGYYEiApnc6wC0iBDZQ
                  referenceID: 1kdevt02142024
                  type: pull
                  amount: '0.25'
              ACH API Push (Credit):
                value:
                  referenceID: 15_chars8910121
                  type: push
                  accounts:
                    sourceAccountID: Nkd2UKfhVcQW6AJAvmhv4v
                    destinationAccount:
                      bank:
                        routingNumber: '123456789'
                        accountNumber: '123456789'
                        accountType: C
                      owner:
                        name:
                          first: Receiver
                          middle: Name
                  amount: '2.00'
                  achOptions: S
                  achEntryType: PPD
                  memo: Corresponding PUSH Transaction
              RTP Push:
                value:
                  referenceID: myUniqueRefID3
                  corresponding:
                    name:
                      first: Ultimate
                      last: Debtor
                  type: push
                  accounts:
                    sourceAccountID: '*redacted*'
                    destinationAccount:
                      bank:
                        accountNumber: '111111111'
                        routingNumber: '011001234'
                        accountType: C
                      owner:
                        name:
                          first: CreditorFirstName
                          last: CreditorLastName
                  achOptions: R
                  amount: '100.00'
              Visa MIT:
                value:
                  accounts:
                    sourceAccountID: gqghgkVdQRDUZrwadoUk78
                    destinationAccountID: FuXx8zMqjKHL4CZ6jiTcaN
                  pullOptions:
                    recurringData:
                      initiator: M
                      type: S
                      id: hqMZ-UEE2YEiYOj6HPxEXQ
                      networkID: '407903181027'
                    recurring: true
                  referenceID: 1kdev082124
                  type: pull
                  amount: '3.00'
              MC MIT:
                value:
                  accounts:
                    sourceAccountID: sQv2gEG4ocY71h3dg0CGIx
                    destinationAccountID: SN4h2RmBJAYLff8Yr9weFh
                  pullOptions:
                    recurringData:
                      initiator: M
                      type: S
                      networkID: '2024082620550593291'
                    recurring: true
                  referenceID: 1kdev082124
                  type: pull
                  amount: '3.00'
        required: true
      responses:
        '200':
          description: A Transaction is created and processing is completed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/createTransactionResponse'
              examples:
                Completed:
                  value:
                    SC: 200
                    EC: '0'
                    transactionID: TabaPay_TransactionID_
                    network: Visa
                    networkID: '123454646545645'
                    networkRC: '00'
                    status: COMPLETED
                    approvalCode: '000000'
                Partial Approval:
                  value:
                    SC: 200
                    EC: '0'
                    transactionID: TabaPay_TransactionID_
                    network: Visa
                    networkID: '123454646545645'
                    networkRC: '00'
                    partialAmount: '0.01'
                    status: PARTIAL_COMPLETED
                    approvalCode: '000000'
                Visa Enriched TP Shield Attributes:
                  value:
                    SC: 200
                    EC: '0'
                    transactionID: TabaPay_TransactionID_
                    network: Visa
                    networkID: '123454646545645'
                    networkRC: '00'
                    status: COMPLETED
                    approvalCode: '000000'
                    additional:
                      codeUCAF: '2'
                      codeACI: U
                      codeECI: '05'
                      par: V0010056422073825495104907179
                MC Downgrade - Enriched TP Shield Attributes:
                  value:
                    SC: 200
                    EC: '0'
                    transactionID: TabaPay_TransactionID_
                    network: MasterCard
                    networkID: '123454646545645'
                    networkRC: '00'
                    status: COMPLETED
                    approvalCode: '000000'
                    additional:
                      codeUCAF: '2'
                      par: '5001005642207382549510767179'
                MC MAC - Enriched TP Shield Attributes:
                  value:
                    SC: 200
                    EC: '0'
                    transactionID: TabaPay_TransactionID_
                    network: MasterCard
                    networkID: '123454646545645'
                    networkRC: '00'
                    status: ERROR
                    approvalCode: '000000'
                    additional:
                      par: '5001005642207382549510767179'
                      codeMAC: '02'
                RTP:
                  value:
                    SC: 200
                    EC: '0'
                    transactionID: A0oH0E4EiWloxnwr75liQg
                    networkID: 5BABCD1111111111
                    network: RTP
                    networkRC: '000'
                    status: COMPLETED
                Real Time Monitoring - Rejected:
                  value:
                    SC: 200
                    EC: '0'
                    transactionID: Bts65zXOrnK5XjoQG64z08
                    network: Visa
                    networkRC: ZB
                    status: ERROR
                    additional:
                      par: V41111111114589CED5703G232F79
                    RTM:
                      status: REJECTED
                      ruleIDs:
                      - uniqueruleID123
                    card:
                      last4: '4242'
                      expirationDate: '209910'
                      nameFI: Simple Bank
        '201':
          description: A Transaction is created, but the transaction is waiting to be processed (batch).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/createTransactionResponsePending'
              examples:
                Pending:
                  value:
                    SC: 201
                    EC: '0'
                    transactionID: TabaPay_TransactionID_
                    network: CreditCards
                    status: Pending
                ACH Batch:
                  value:
                    SC: 201
                    EC: '0'
                    transactionID: BhAatYvE0SvZYcnEGwb4nB
                    network: ACH
                    status: BATCH
        '207':
          description: One or more Failures occurred while processing the Request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiResponseSCECTxnIDStatus'
              example:
                SC: 207
                EC: InternalErrorCode
                status: UNKNOWN
                transactionID: ''
        '429':
          description: Over your Daily (24-hour rolling) Approximation Limit.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiResponseSCECEM'
              example:
                SC: 429
                EC: InternalErrorCode
                EM: Limit
  /v2/clients/{ClientID}/transactions/rtp/{RTPNetworkID}:
    delete:
      tags:
      - Transaction
      summary: Delete RTP Transaction
      description: 'If using`?request`: Requests a return of a previously sent RTP push transaction.

        If using `?response`: Responds to a request of a previously received Request for Return of Funds (for a previously received RTP transaction).'
      operationId: transactionRTPDelete
      parameters:
      - $ref: '#/components/parameters/ClientID'
      - $ref: '#/components/parameters/RTPNetworkID'
      - $ref: '#/components/parameters/RTPRequest'
      - $ref: '#/components/parameters/RTPResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/deleteRTPTransaction'
        required: true
      responses:
        '200':
          description: A response to a request for return of funds was accepted (and if applicable, the reimbursement was accepted).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/transactionRTPDeleteResponse'
              examples:
                RTP Response to Reversal Request:
                  value:
                    SC: 200
                    EC: '0'
                    status: COMPLETED
                    networkRC: '000'
                    networkID: M20220808103100195T1BSCA20000003002
                    reimbursement:
                      networkRC: '000'
                      networkID: 20220808101115315T1BSCAH20000003001
        '202':
          description: A request for return of funds was accepted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/transactionRTPDeleteRequest'
              examples:
                RTP Reversal Request:
                  value:
                    SC: 202
                    EC: '0'
                    status: ACCEPTED
                    networkRC: '000'
                    networkID: M20220808103100195T1BSCA20000003002
        '207':
          description: One or more Failures occurred while processing the Request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiResponseSCEC'
              example:
                SC: 207
                EC: Internal Error Code
components:
  schemas:
    referenceID:
      type: string
      format: string
      description: 1-15 character unique [referenceID](https://developers.tabapay.com/docs/glossary#reference-id). Used for [Retrieve via ReferenceID](https://developers.tabapay.com/reference/retrieve-via-referenceid) in case of an HTTP timeout, or any scenario where you fail to get a response body. *Not case sensitive*
      pattern: ^[a-zA-Z0-9_-]{1,15}$
    owner:
      type: object
      required:
      - name
      description: Owner Details
      properties:
        name:
          $ref: '#/components/schemas/name'
        address:
          type: object
          description: 'Address.


            *All fields optional.* However, if you''re planning on using AVS in [QueryCard](https://developers.tabapay.com/reference/cardquery#/), provide an accurate `zipcode` at the minimum. And, if you can, provide an accurate `line1` value as well.'
          properties:
            line1:
              $ref: '#/components/schemas/line1'
            line2:
              type: string
              description: Address Line 2
              pattern: ^[ a-zA-Z0-9._-]+$
            city:
              $ref: '#/components/schemas/city'
            state:
              $ref: '#/components/schemas/state'
            zipcode:
              $ref: '#/components/schemas/zipcode'
            country:
              $ref: '#/components/schemas/country'
        phone:
          type: object
          required:
          - number
          description: Phone *object*
          properties:
            countryCode:
              type: string
              description: '1-3 digit Country Calling Code


                *Optional.* Default is `1`.'
              pattern: ^[0-9]{3}$
              example: '1'
            number:
              type: string
              description: 'Phone Number.


                For phone numbers with `countryCode` equal to `1` (or blank), provide a 10-digit phone number. For all `countryCodes`, other than `1`, a 4-14 digit phone number is accepted.'
              pattern: ^[0-9]{4,14}$
              example: '5555555555'
    currency:
      type: string
      description: '[ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) 3-Digit [Currency Code](https://developers.tabapay.com/reference/currency-numbers#/).


        *Optional. Default is `840`*'
      pattern: ^[0-9]{3}$
      example: '840'
    processor:
      type: object
      required:
      - name
      - token
      description: 'Tokenized Card Payment Data From an Issuing Processor


        Incompatible with all other card objects and fields'
      properties:
        name:
          type: string
          pattern: ^[0-9A-Za-z]+$
          description: 'Processor Name


            Currently supported `name`s are:

            - `Galileo`

            - `Q2`'
        token:
          type: string
          pattern: ^[0-9]+$
          description: 'Token from issuing processor

            - `Galileo` integrations use a CAD (preferred) or PRN

            - `Q2` integrations use a CardID'
        customerID:
          type: string
          pattern: ^[0-9]+$
          description: 'Customer Identifier.


            Required if `name` is `Q2`, omit otherwise.'
    softDescriptor:
      type: object
      required:
      - name
      - address
      description: 'Soft Descriptor.


        ***Card Network Mandates for Soft Descriptor:*** To avoid fines or to avoid declines, when providing `zipCode` and `state`, please ensure they match i.e. `zipCode` must correspond to the `state` values.


        *Optional*'
      properties:
        name:
          type: string
          description: 'Name.


            *To set the company name in ACH transactions, use this field (the first 16 characters will be used).*'
          pattern: ^[ a-zA-Z0-9_-]+$
        address:
          type: object
          required:
          - line1
          - city
          - state
          - county
          - zipcode
          - country
          properties:
            line1:
              type: string
              description: Address Line 1
              pattern: ^[ a-zA-Z0-9._-]+$
            line2:
              type: string
              description: 'Address Line 2


                *Optional*'
              pattern: ^[ a-zA-Z0-9._-]+$
            city:
              type: string
              description: City
              pattern: ^[ a-zA-Z0-9_-]+$
            county:
              type: string
              description: 3-character County Code
              pattern: ^[ a-zA-Z0-9_-]{3}$
            state:
              type: string
              description: 'State Code


                [State Code](https://developers.tabapay.com/reference/us-state-codes) must be a valid 2-character code if `country` is [840](https://developers.tabapay.com/reference/country-codes) or [Canadian 2-char code](https://developers.tabapay.com/reference/canadian-province-codes#/) if [124](https://developers.tabapay.com/reference/country-codes#/).'
              pattern: ^[ a-zA-Z0-9_-]+$
            zipcode:
              type: string
              description: 'Zip Code


                If `country` is `840`, `zipcode` must be 5 or 9 digits.

                If country is `124`, `zipcode` must be in the *A1A 1A1* format.

                Zip codes from other countries will not be checked.'
              pattern: ^[ a-zA-Z0-9_-]+$
            country:
              type: string
              description: '[Country Code](https://developers.tabapay.com/reference/country-codes#/)


                *Optional. Default is `840`*'
              pattern: ^[0-9]{3}$
              example: '840'
        phone:
          type: object
          required:
          - number
          description: Phone *object*
          properties:
            countryCode:
              type: string
              description: '1-3 digit Country Calling Code


                *Optional.* Default is `1`.'
              pattern: ^[0-9]{3}$
              example: '1'
            number:
              type: string
              description: 'Phone Number.


                For phone numbers with `countryCode` equal to `1` (or blank), provide a 10-digit phone number. For all `countryCodes`, other than `1`, a 4-14 digit phone number is accepted.'
              pattern: ^[0-9]{4,14}$
              example: '5555555555'
        mcc:
          type: string
          description: 'MCC


            For American Express Bill Pay Provider program:

            - Merchant''s/Seller''s MCC (4-digits)


            *Note: This is not the processing MCC. This is for reporting purposes only (Amex Bill Pay Provider)*'
        email:
          type: string
          description: 'Email Address


            For American Express Bill Pay Provider program:

            - Seller Email Address (max of 40 characters)'
    apiResponseSCECTxnIDStatus:
      type: object
      properties:
        SC:
          $ref: '#/components/schemas/SC'
        EC:
          $ref: '#/components/schemas/EC'
        transactionID:
          $ref: '#/components/schemas/transactionID'
        status:
          type: string
    ofacValue:
      type: string
      description: 'OFAC Value from [Query OFAC](https://developers.tabapay.com/reference/ofacquery#/)


        *Optional*'
      pattern: ^[a-zA-Z0-9_-]+$
    device:
      type: object
      description: 'Card Data

        - From a [Secure Device](https://developers.tabapay.com/docs/card-present-transactions)

        - From a [GooglePay PaymentMethodToken](https://developers.tabapay.com/reference/googlepay#/y)


        Incompatible with any other `card` object(s) or field(s)'
      required:
      - id
      - blob
      properties:
        id:
          type: string
          description: 'Either a:

            - TabaPay-assigned device ID

            - [GooglePay|gatewayMerchantId](https://developers.tabapay.com/reference/googlepay#/)'
        blob:
          $ref: '#/components/schemas/blob'
    EC:
      type: string
      description: Internal Error Code. This is used to help TabaPay team members trace an error.
    tokeniFrame:
      type: string
      pattern: ^[A-Za-z0-9_+=-]{344}$
      format: byte
      description: 'Card Token (from the [PCI-compliant iFrame](https://developers.tabapay.com/reference/browser-sdk#/basic-custom-iframe))


        Incompatible with any other `card` field.'
    createTransaction:
      type: object
      required:
      - referenceID
      - type
      - amount
      - accounts
      properties:
        referenceID:
          $ref: '#/components/schemas/referenceID'
        correspondingID:
          $ref: '#/components/schemas/correspondingID'
        corresponding:
          $ref: '#/components/schemas/corresponding'
        type:
          type: string
          pattern: ^(?:push|pull)$
          description: "4-character Transaction Type\n\n `push` and `pull` are the only valid values. This is used to verify that your Source and Destination Accounts are valid"
        accounts:
          type: object
          description: Accounts
          properties:
            sourceAccountID:
              $ref: '#/components/schemas/sourceAccountID'
            sourceAccount:
              $ref: '#/components/schemas/sourceAccount'
            destinationAccountID:
              $ref: '#/components/schemas/destinationAccountID'
            destinationAccount:
              $ref: '#/components/schemas/destinationAccount'
        currency:
          $ref: '#/components/schemas/currency'
        amount:
          $ref: '#/components/schemas/amount'
        ofacValue:
          $ref: '#/components/schemas/ofacValue'
        avsID:
          type: string
          descr

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