Finix Transfers API

{'$ref': 'api-descriptions/tags/transfers.md'}

OpenAPI Specification

finix-transfers-api-openapi.yml Raw ↑
openapi: 3.0.2
info:
  title: Finix Authorizations Transfers API
  description:
    $ref: api-descriptions/main.md
  contact:
    name: Finix
    url: https://finix.com
    email: support@finixpayments.com
  version: '2022-02-01'
servers:
- description: Sandbox server to be used for testing and development
  url: https://finix.sandbox-payments-api.com
security:
- BasicAuth: []
tags:
- name: Transfers
  description:
    $ref: api-descriptions/tags/transfers.md
paths:
  /transfers:
    post:
      tags:
      - Transfers
      description: Create a `Transfer`.
      summary: Create a Transfer
      operationId: createTransfer
      requestBody:
        $ref: '#/components/requestBodies/CreateTransferRequest'
      responses:
        '201':
          $ref: '#/components/responses/Transfer'
        '400':
          $ref: '#/components/responses/ErrorUnprocessableEntity'
        '401':
          $ref: '#/components/responses/ErrorUnauthorized'
        '402':
          $ref: '#/components/responses/ErrorTransfers402'
        '403':
          $ref: '#/components/responses/ErrorForbidden403'
        '404':
          $ref: '#/components/responses/ErrorNotFound'
        '406':
          $ref: '#/components/responses/Error406NotAcceptable'
        '422':
          $ref: '#/components/responses/Error422InvalidField'
      x-java-method-name: create
      parameters:
      - schema:
          type: string
          default: '2018-01-01'
          example: '2022-02-01'
        in: header
        name: Finix-Version
        description: Specify the API version of your request. For more details, see [Versioning.](/guides/developers/versioning/)
      x-python-method-name: create
    get:
      tags:
      - Transfers
      description: Retrieve a list of `Transfers`.
      summary: List Transfers
      operationId: listTransfers
      parameters:
      - $ref: '#/components/parameters/QueryAfterCursor'
      - $ref: '#/components/parameters/QueryLimit'
      - $ref: '#/components/parameters/QueryAmountFilter'
      - $ref: '#/components/parameters/QueryAmountGteFilter'
      - $ref: '#/components/parameters/QueryAmountGtFilter'
      - $ref: '#/components/parameters/QueryAmountLteFilter'
      - $ref: '#/components/parameters/QueryAmountLtFilter'
      - $ref: '#/components/parameters/QueryCreatedAtGteFilter'
      - $ref: '#/components/parameters/QueryCreatedAtLteFilter'
      - $ref: '#/components/parameters/QueryIdempotencyIdFilter'
      - $ref: '#/components/parameters/QueryIdFilter'
      - $ref: '#/components/parameters/QuerySettlementReadyToSettleAtGteFilter'
      - $ref: '#/components/parameters/QuerySettlementReadyToSettleAtLteFilter'
      - in: query
        name: state
        description: Filter by Transaction state.
        schema:
          enum:
          - ALL
          - SUCCEEDED
          - FAILED
          - PENDING
          - CANCELED
      - $ref: '#/components/parameters/QueryStatementDescriptorFilter'
      - $ref: '#/components/parameters/QueryTraceIdFilter'
      - $ref: '#/components/parameters/QueryUpdatedAtGteFilter'
      - $ref: '#/components/parameters/QueryUpdatedAtLteFilter'
      - in: query
        name: instrument_bin
        description: Filter by Bank Identification Number (BIN). The BIN is the first 6 digits of the masked number.
        schema:
          type: string
      - schema:
          type: string
        in: query
        name: instrument_account_last4
        description: "Filter Transactions by the last 4 digits of the bank account. The bank account last 4 are the last 4 digits of the masked number\tinstrument_account_last4=9444 BIN."
      - schema:
          type: string
        in: query
        name: instrument_brand_type
        description: Filter by card brand. Available card brand types can be found in the drop-down.
      - schema:
          type: string
        in: query
        name: merchant_identity_id
        description: Filter by `Identity` ID.
      - schema:
          type: string
        in: query
        name: merchant_identity_name
        description: Filter Transactions by `Identity` name. The name is not case-sensitive.
      - schema:
          type: string
        in: query
        name: instrument_name
        description: Filter Transactions by `Payment Instrument` name.
      - schema:
          type: string
        in: query
        name: instrument_type
        description: 'Filter Transactions by `Payment Instrument` type. Available instrument types include: Bank Account or Payment Card'
      - schema:
          type: string
        in: query
        name: merchant_id
        description: Filter by `Merchant` ID.
      - schema:
          type: string
        in: query
        name: merchant_mid
        description: Filter by Merchant Identification Number (MID).
      - schema:
          type: string
        in: query
        name: instrument_card_last4
        description: Filter by the payment card last 4 digits.
      - schema:
          type: string
        in: query
        name: merchant_processor_id
        description: Filter by `Processor` ID.
      - schema:
          type: string
          enum:
          - ALL
          - DEBITS
          - CREDITS
          - REVERSAL
          - SETTLEMENT
          example: REVERSAL
        in: query
        name: type
        description: 'Filter by `Transfer` type. Available type filters include: All, Debits, Refunds, or Credits.'
      - $ref: '#/components/parameters/QueryBeforeCursor'
      - $ref: '#/components/parameters/TagsKey'
      - $ref: '#/components/parameters/TagsValue'
      responses:
        '200':
          $ref: '#/components/responses/TransfersList'
        '401':
          $ref: '#/components/responses/ErrorUnauthorized'
        '403':
          $ref: '#/components/responses/ErrorForbidden403'
        '404':
          $ref: '#/components/responses/ErrorNotFound'
        '406':
          $ref: '#/components/responses/Error406NotAcceptable'
      x-java-method-name: list
      x-group-parameters: true
      x-codeSamples:
      - lang: cURL
        label: curl
        source: "curl \"https://finix.sandbox-payments-api.com/transfers\" \\\n  -H \"Finix-Version: 2022-02-01\" \\\n  -u USsRhsHYZGBPnQw8CByJyEQW:8a14c2f9-d94b-4c72-8f5c-a62908e5b30e\n"
      x-python-method-name: list
      x-returns-list: true
  /transfers/{transfer_id}:
    parameters:
    - description: ID of `Transfer` resource.
      required: true
      in: path
      name: transfer_id
      schema:
        type: string
    get:
      tags:
      - Transfers
      description: Retrieve a `Transfer`.
      summary: Fetch a Transfer
      operationId: getTransfer
      responses:
        '200':
          $ref: '#/components/responses/Transfer'
        '401':
          $ref: '#/components/responses/ErrorUnauthorized'
        '403':
          $ref: '#/components/responses/ErrorForbidden403'
        '404':
          $ref: '#/components/responses/ErrorNotFound'
        '406':
          $ref: '#/components/responses/Error406NotAcceptable'
      x-java-method-name: get
      x-codeSamples:
      - lang: cURL
        label: curl
        source: "curl \"https://finix.sandbox-payments-api.com/transfers/TRvypRNBeqM597Zi4DcqJ2Vh\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Finix-Version: 2022-02-01\" \\\n  -u USsRhsHYZGBPnQw8CByJyEQW:8a14c2f9-d94b-4c72-8f5c-a62908e5b30e\n"
      x-python-method-name: get
    put:
      tags:
      - Transfers
      description: Update a `Transfer`.
      summary: Update a Transfer
      operationId: updateTransfer
      responses:
        '200':
          $ref: '#/components/responses/Transfer'
        '401':
          $ref: '#/components/responses/ErrorUnauthorized'
        '403':
          $ref: '#/components/responses/ErrorForbidden403'
        '404':
          $ref: '#/components/responses/ErrorNotFound'
        '406':
          $ref: '#/components/responses/Error406NotAcceptable'
      requestBody:
        $ref: '#/components/requestBodies/UpdateTransferRequest'
      x-java-method-name: update
      x-codeSamples:
      - lang: cURL
        label: curl
        source:
          $ref: xcode/curl/transfers/updatetransfer.md
      x-python-method-name: update
  /transfers/{transfer_id}/reversals:
    parameters:
    - description: ID of `Transfer` object.
      required: true
      in: path
      name: transfer_id
      schema:
        type: string
    post:
      tags:
      - Transfers
      description: "Reverse a transfer with a `type` of **DEBIT**. This reversal creates a new `Transfer` resource with a `type` of **REVERSAL**. \n\nRelated Guides: [Refunding Payments](/guides/after-the-payment/refunding-and-cancelling-payments/)"
      summary: Refund or Reverse a Transfer
      operationId: createTransferReversal
      requestBody:
        $ref: '#/components/requestBodies/CreateReversalRequest'
      responses:
        '201':
          $ref: '#/components/responses/Transfer'
        '400':
          $ref: '#/components/responses/ErrorUnprocessableEntity'
        '401':
          $ref: '#/components/responses/ErrorUnauthorized'
        '403':
          $ref: '#/components/responses/ErrorForbidden403'
        '404':
          $ref: '#/components/responses/ErrorNotFound'
        '406':
          $ref: '#/components/responses/Error406NotAcceptable'
        '422':
          $ref: '#/components/responses/ErrorUnprocessableEntity'
      parameters:
      - schema:
          type: string
          default: '2018-01-01'
          example: '2022-02-01'
        in: header
        name: Finix-Version
        description: Specify the API version of your request. For more details, see [Versioning.](/guides/developers/versioning/)
      x-java-method-name: create_transfer_reversal
      x-python-method-name: create_transfer_reversal
    get:
      tags:
      - Transfers
      description: Retrieve a list of reversals for a `Transfer`.
      summary: List Reversals on a Transfer
      operationId: listTransferReversals
      parameters:
      - required: false
        in: query
        name: limit
        schema:
          type: integer
          format: int64
        description: The number of entries to return.
      - $ref: '#/components/parameters/QueryAfterCursor'
      - $ref: '#/components/parameters/QueryBeforeCursor'
      responses:
        '200':
          $ref: '#/components/responses/ReversalsList'
        '401':
          $ref: '#/components/responses/ErrorUnauthorized'
        '403':
          $ref: '#/components/responses/ErrorForbidden403'
        '404':
          $ref: '#/components/responses/ErrorNotFound'
        '406':
          $ref: '#/components/responses/Error406NotAcceptable'
      x-java-method-name: listTransfersReversals
      x-group-parameters: true
      x-codeSamples:
      - lang: cURL
        label: curl
        source: "curl \"https://finix.sandbox-payments-api.com/transfers/TRacB6Q6GcW6yvFUKawSnMEP/reversals\" \\\n  -H \"Finix-Version: 2022-02-01\" \\\n  -u USsRhsHYZGBPnQw8CByJyEQW:8a14c2f9-d94b-4c72-8f5c-a62908e5b30e\n"
      x-python-method-name: list_transfers_reversals
      x-returns-list: true
components:
  schemas:
    L3AdditionalPurchaseData:
      title: L3AdditionalPurchaseData
      x-stoplight:
        id: 7xbmc1d9p49or
      type: object
      description: Additional information about the purchase. Used for [Level 2 and Level 3 Processing](/guides/payments/modify/level-2-and-level-3-processing/).
      properties:
        customer_reference_number:
          type: string
          description: The customer reference for the purchase (max 17 characters).
          maxLength: 17
        customs_duty_amount:
          type: integer
          description: The duty in cents on the total purchase amount for the order
        destination_country_code:
          type: string
          description: The ISO country code of the order destination.
        destination_postal_code:
          type: string
          description: The postal code of the order destination (10 characters)
          maxLength: 10
        discount_amount:
          type: integer
          description: The amount in cents of the discount for the order.
        invoice_reference_number:
          type: string
          description: The order's invoice number (max 15 characters)
          maxLength: 15
        item_data:
          type: array
          description: Additional information about the transaction. Used for Level 2 and Level 3 Processing.
          items:
            type: object
            properties:
              amount_excluding_sales_tax:
                type: integer
                description: '- Total cost of the line item in cents, excluding tax.

                  - Must align with `sales_tax` so `amount_excluding_sales_tax` + `sales_tax` = `amount_including_sales_tax`.'
              amount_including_sales_tax:
                type: integer
                description: '- Total cost of the line item in cents, including tax.

                  - Must align with `sales_tax` so `amount_excluding_sales_tax` + `sales_tax` = `amount_including_sales_tax`.'
              commodity_code:
                type: string
                description: A commodity code is a numeric code representing a particular product or service as defined by the National Institute of Governmental Purchasing. The code can be 3, 5, 7, or 11 digits in length. The longer the code the more granular the description of the product/service. (max 12 characters).
                maxLength: 12
              cost_per_unit:
                type: integer
                description: The price in cents of one unit of the item purchased
              item_description:
                type: string
                description: Required when `item_data` is supplied (max 25 characters)
                maxLength: 25
              item_discount_amount:
                type: integer
                description: 'Item discount amount in cents

                  '
              merchant_product_code:
                type: string
                description: Merchant defined product code (max 12 characters).
                maxLength: 12
              quantity:
                type: integer
                description: The number of items purchased. Must be greater than 0.
                minimum: 1
                maximum: 99
              unit_of_measure:
                type: string
                description: The unit of measure of the purchased item (max 3 characters).
                maxLength: 3
            required:
            - amount_excluding_sales_tax
            - amount_including_sales_tax
            - commodity_code
            - cost_per_unit
            - item_description
            - item_discount_amount
            - merchant_product_code
            - quantity
            - unit_of_measure
        order_date:
          type: object
          properties:
            day:
              type: integer
              description: Day of purchase (between 1 and 31)
            month:
              type: integer
              description: Month of purchase (between 1 and 12)
            year:
              type: integer
              description: Year of purchase (4-digit)
              minimum: 1990
        sales_tax:
          type: integer
          description: "- Total aggregate tax amount in cents for the entire purchase. Field is automatically calculated if you pass in the itemized tax amounts. \n- For non-taxable transactions either set `sales_tax` to 0 or omit from payload and also set `tax_exempt` to **True**.\n- Request must align so `amount_excluding_sales_tax` + `sales_tax` = `amount_including_sales_tax`.e**."
        ship_from_postal_code:
          type: string
          description: The postal code from where order is shipped (10 characters)
          maxLength: 10
        shipping_amount:
          type: integer
          description: 'The shipping cost in cents for the order.

            '
        tax_exempt:
          type: boolean
          description: '- For tax exempt purchases set to **True**.

            - If set to **True**, request can''t include `sales_tax`.'
      required:
      - customer_reference_number
      - customs_duty_amount
      - discount_amount
      - item_data
      - sales_tax
      - shipping_amount
    CreateTransferRequest:
      type: object
      properties:
        additional_buyer_charges:
          $ref: '#/components/schemas/AdditionalBuyerCharges'
        additional_purchase_data:
          $ref: '#/components/schemas/AdditionalPurchaseData'
        adjustment_request:
          type: boolean
          description: Details if the `transfer` was created to adjust funds.
          nullable: true
        amount:
          type: integer
          format: int64
          description: The total amount that will be debited from the buyer in cents (e.g. 100 cents to debit $1.00).
        currency:
          $ref: '#/components/schemas/Currency'
        destination:
          type: string
          description: ID of the `Payment Instrument` where funds will be sent.
          nullable: true
        device:
          type: string
          description: The ID of the activated device.
          nullable: true
        fee:
          type: integer
          format: int64
          description: "The minimum amount of the `Transfer` you'd like to collect as your fee in cents. Defaults to zero (must be less than or equal to the `amount`).\n- If the fees applied by the 'Fee Profile' are ***higher*** than the value passed in 'fee', 'fee' will not be applied and have no effect.\n- If the fees applied by the 'Fee Profile' are ***lower*** than the value passed in 'fee', an additional fee is be applied, in addition to the fees generated by the `Fee Profile`.\n    - The additional fee is equal to the difference between the value passed in 'fee' and the fees generated by the `Fee Profile`."
        fraud_session_id:
          $ref: '#/components/schemas/FraudSessionID'
        hsa_fsa_payment:
          $ref: '#/components/schemas/HSAFSAPayment'
        idempotency_id:
          type: string
          description: A randomly generated value that gets tied with the request.
          nullable: true
        merchant:
          type: string
          description: "- ID of the primary `Merchant` that's processing the `Transfer` for the buyer. \n- In Split Transactions, the `Merchant` specified in the `Transfer` request is the primary `Merchant`."
          nullable: true
        operation_key:
          type: string
          enum:
          - CARD_PRESENT_DEBIT
          - CARD_PRESENT_UNREFERENCED_REFUND
          - MERCHANT_CREDIT_ADJUSTMENT
          - MERCHANT_DEBIT_ADJUSTMENT
          - PULL_FROM_CARD
          - PUSH_TO_CARD
          - SALE
          - UNREFERENCED_REFUND
          description: Details the operation that's be performed in the transaction.
          nullable: true
        processor:
          type: string
          description: Name of the transaction processor.
        source:
          type: string
          description: ID of the `Payment Instrument` where funds get debited.
        security_code:
          type: string
          description: The 3-4 digit security code for the card (i.e. CVV code). Include the CVV code of the card to include [Card Verification Checks](/guides/payments/making-a-payment/card-verification-checks/) with the created `Transfer`.
          nullable: true
        statement_descriptor:
          type: string
          description: <li>The description of the transaction that appears on the buyer's bank or card statement.</li><li><kbd>statement_descriptors</kbd> for `Transfers` in <strong>live</strong> enviroments will have a <kbd>FI *</kbd> prefix.
          maxLength: 20
          nullable: true
        tags:
          $ref: '#/components/schemas/Tags'
        3d_secure_authentication:
          type: object
          description: The 3D secure information required to create a 3D secure `Transfer.`
          nullable: true
          properties:
            cardholder_authentication:
              type: string
              description: Provides evidence that the cardholder authentication occurred or that the merchant attempted authentication. This is unique for each authentication transaction.
            cardholder_ip_address:
              type: string
              description: Only required for **American Express** cards.
              example: 189.1.126.240
            electronic_commerce_indicator:
              type: string
              description: '- **AUTHENTICATED**: Approved by 3D Secure Vendor.

                - **ATTEMPTED**: Issuer or cardholder does not support 3D Secure.'
            transaction_id:
              type: string
              description: Only required for **Visa** cards.
          required:
          - cardholder_authentication
          - electronic_commerce_indicator
        'additional_purchase_data ':
          $ref: '#/components/schemas/L3AdditionalPurchaseData'
        device_configuration:
          $ref: '#/components/schemas/ConfigurationDetails'
        split_transfers:
          type: object
          description: '- An array used to detail how funds from the `Transfer` will split and the amount `Merchants` receive.

            - The combined `amounts` under `split_transfers` must be equal to the `amount` submitted in the parent `Transfer.`

            - For more information, see [Split Transactions](/docs/guides/payments/modify/split-transactions/).'
          properties:
            amount:
              type: integer
              format: int64
              description: '- The amount of funds that get split and paid out to the specified `Merchant`.

                - Must be less than or equal to the `amount` of the `Transfer.`'
            merchant:
              type: string
              description: '- The ID of the `Merchant` that will receive the specified `amount` under the `split_transfers` object.

                - In Split Transactions, the `Merchants` specified in the `split_transfers` object are the ancillary `Merchants.`'
            tags:
              $ref: '#/components/schemas/Tags'
    IdempotencyId:
      title: IdempotencyId
      type: string
      description: Pass any randomly generated or internal ID to [idempotently](/api/overview/#section/Idempotency-Requests) identify `Transfers`, `Authorizations`, and refund requests.
      nullable: true
    Amount:
      type: integer
      title: Amount
      description: The total amount that will be debited in cents (e.g. 100 cents to debit $1.00).
      format: int64
    Messages:
      title: Messages
      type: array
      description: Message field that provides additional details. This field is typically **null**.
      nullable: true
      items:
        type: string
    ErrorGeneric:
      type: object
      properties:
        total:
          type: integer
        _embedded:
          type: object
          properties:
            errors:
              type: array
              items:
                type: object
                additionalProperties: true
                properties:
                  code:
                    type: string
                    enum:
                    - FORBIDDEN
                  logref:
                    $ref: '#/components/schemas/LogRef'
                  message:
                    type: string
                  _links:
                    type: object
                    properties:
                      source:
                        type: object
                        properties:
                          href:
                            type: string
    FailureMessage:
      title: FailureMessage
      x-stoplight:
        id: cgilf858039yi
      type: string
      description: A human-readable description of why the transaction was declined. This will also include a suggestion on how to complete the payment.
      nullable: true
    Error403ForbiddenList:
      type: object
      properties:
        total:
          type: integer
        _embedded:
          type: object
          properties:
            errors:
              type: array
              items:
                type: object
                additionalProperties: true
                properties:
                  code:
                    type: string
                    enum:
                    - FORBIDDEN
                  logref:
                    $ref: '#/components/schemas/LogRef'
                  message:
                    type: string
                  _links:
                    type: object
                    properties:
                      source:
                        type: object
                        properties:
                          href:
                            type: string
      description: ''
      title: ''
    Error422InvalidFieldList:
      type: object
      description: Invalid field
      title: ''
      properties:
        total:
          type: integer
        _embedded:
          type: object
          properties:
            errors:
              type: array
              items:
                type: object
                properties:
                  code:
                    type: string
                    enum:
                    - INVALID_FIELD
                  field:
                    type: string
                  logref:
                    $ref: '#/components/schemas/LogRef'
                  message:
                    type: string
                  _links:
                    type: object
                    properties:
                      source:
                        type: object
                        properties:
                          href:
                            type: string
    Raw:
      title: Raw
      description: Raw response from the processor.
      x-examples: {}
      type: object
      nullable: true
    UpdatedAt:
      type: string
      title: UpdatedAt
      format: date-time
      description: Timestamp of when the object was last updated.
    PageCursor:
      title: PageCursor
      x-stoplight:
        id: 8v9on8n2939z2
      type: object
      properties:
        limit:
          type: integer
          description: The number of entries to return.
        next_cursor:
          type: string
          description: The cursor to use for the next page of results.
          nullable: true
      description: Details the page that's returned.
    FeeType:
      title: FeeType
      type: string
      enum:
      - APPLICATION_FEE
      - ACH_BASIS_POINTS
      - ACH_FIXED
      - CARD_BASIS_POINTS
      - CARD_FIXED
      - CARD_INTERCHANGE
      - VISA_BASIS_POINTS
      - VISA_FIXED
      - VISA_INTERCHANGE
      - VISA_ASSESSMENT_BASIS_POINTS
      - VISA_ACQUIRER_PROCESSING_FIXED
      - VISA_CREDIT_VOUCHER_FIXED
      - VISA_BASE_II_SYSTEM_FILE_TRANSMISSION_FIXED
      - VISA_BASE_II_CREDIT_VOUCHER_FIXED
      - VISA_KILOBYTE_ACCESS_FIXED
      - DISCOVER_BASIS_POINTS
      - DISCOVER_FIXED
      - DISCOVER_INTERCHANGE
      - DISCOVER_ASSESSMENT_BASIS_POINTS
      - DISCOVER_DATA_USAGE_FIXED
      - DISCOVER_NETWORK_AUTHORIZATION_FIXED
      - DINERS_CLUB_BASIS_POINTS
      - DINERS_CLUB_FIXED
      - DINERS_CLUB_INTERCHANGE
      - MASTERCARD_BASIS_POINTS
      - MASTERCARD_FIXED
      - MASTERCARD_INTERCHANGE
      - MASTERCARD_ASSESSMENT_UNDER_1K_BASIS_POINTS
      - MASTERCARD_ASSESSMENT_OVER_1K_BASIS_POINTS
      - MASTERCARD_ACQUIRER_FEE_BASIS_POINTS
      - JCB_BASIS_POINTS
      - JCB_FIXED
      - JCB_INTERCHANGE
      - AMERICAN_EXPRESS_BASIS_POINTS
      - AMERICAN_EXPRESS_FIXED
      - AMERICAN_EXPRESS_INTERCHANGE
      - AMERICAN_EXPRESS_ASSESSMENT_BASIS_POINTS
      - DISPUTE_INQUIRY_FIXED_FEE
      - DISPUTE_FIXED_FEE
      - QUALIFIED_TIER_BASIS_POINTS_FEE
      - QUALIFIED_TIER_FIXED_FEE
      - CUSTOM
      - ACH_DEBIT_RETURN_FIXED_FEE
      - ACH_CREDIT_RETURN_FIXED_FEE
      - ANCILLARY_FIXED_FEE_PRIMARY
      - ANCILLARY_FIXED_FEE_SECONDARY
      - SETTLEMENT_V2_TRANSFER
      description: Details the type of fee if the `Transfer` includes a `fee`.
    CardPresentDetails:
      title: CardPresentDetails
      x-stoplight:
        id: jbenxkas8ukf2
      type: object
      description: Details needed to process card present transactions.
      nullable: true
      properties:
        approval_code:
          type: string
          description: Unique ID used to identify the approval of the `Transfer`.
          nullable: true
        brand:
          type: string
          description: The brand of the card saved in the `Payment Instrument`.
          nullable: true
        emv_data:
          type: object
          description: Encrypted card data used to process the transaction.
          nullable: true
          properties:
            application_identifier:
              type: string
              description: ID of the EMV application processing the transaction.
            application_label:
              type: string
              description: EMV card label.
            application_preferred_name:
              type: string
              description: Alternate EMV application name (if provided).
              nullable: true
            application_transaction_counter:
              type: string
              description: Transaction number for the EMV application.
            cryptogram:
              type: string
              description: Encrypted card infromation used to process the transaction.
            issuer_code_table_index:
              type: string
              description: The alphabet code table (according to ISO 8859) used by the EMV application (if provided).
              nullable: true
            pin_verified:
              type: boolean
              description: Details if the cardholder's PIN number was verified.
            tags:
              $ref: '#/components/schemas/Tags'
        entry_mode:
          type: string
          description: Details how the card was entered to process the transaction.
          nullable: true
        masked_account_number:
          type: string
          description: Last four digits of the bank account number.
          nullable: true
        name:
          type: string
          description: The name of the bank account or card owner.
          nullable: true
        payment_type:
          type: string
          description: The type of `Payment Instrument` used in the transaction (or the original payment).
    AdditionalPurchaseData:
      title: AdditionalPurchaseData
      x-stoplight:
        id: e98e7635f242c
      type: object
      description: Additional information about the purchase. Used for [Level 2 and Level 3 Processing](/guides/payments/modify/level-2-and-level-3-processing/).
      properties:
        customer_reference_number:
          type: string
          description: The customer reference for the purchase (max 17 characters).
          maxLength: 17
        customs_duty_amount:
          type: integer
          description: The duty in cents on the total purchase amount for the order
        destination_country_code:
          type: string
          description: The ISO country code of the order destination.
        destination_postal_code:
          type: string
          description: The postal code of the order destination (10 characters)
          maxLength: 10
        discount_amount:
          type: integer
          description: The amount in cents of the discount for the order.
        invoice_reference_number:
          type: string
          description: The order's invoice number (max 15 characters)
          maxLength: 15
        item_data:
          type: array
          description: Additional information about the transaction. Used for Level 2 and Level 3 Processing.
          items:
            type: object
            properties:
              amount_excluding_sales_tax:
                type: integer
                description: '- Total cost of the line item in cents, excluding tax.

                  - Must align with `sales_tax` so `amount_excluding_sales_tax` + `sales_tax` = `amount_including_sales_tax`.'
              amount_including_sales_tax:
                type: integer
                description: '- Total cost of the line item in cents, including tax.

                  - Must align with `sales_tax` so `amount_excluding_sales_tax` + `sales_tax` = `amount_including_sales_tax`.'
              commodity_code:
                type: string
                description: A commodity code is a numeric code representing a particular product or servic

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