Finix Disputes API

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

Operations 11

GET /disputes List Disputes #
GET /disputes/{dispute_id} Fetch a Dispute #
PUT /disputes/{dispute_id} Update a Dispute #
POST /disputes/{dispute_id}/evidence Upload Files as Dispute Evidence #
GET /disputes/{dispute_id}/evidence List Dispute Evidence #
GET /disputes/{dispute_id}/evidence/{evidence_id} Fetch Dispute Evidence #
PUT /disputes/{dispute_id}/evidence/{evidence_id} Update Dispute Evidence #
GET /disputes/{dispute_id}/adjustment_transfers Fetch Dispute Adjustment Transfers #
POST /disputes/{dispute_id}/submit Submit Dispute Evidence #
POST /disputes/{dispute_id}/accept Accept a Dispute #
GET /disputes/{dispute_id}/evidence/{evidence_id}/download Download Dispute Evidence #

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/finix-disputes-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

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

Get an API key

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

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

OpenAPI Specification

finix-disputes-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Finix Authorizations Disputes 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: Disputes
  description:
    $ref: api-descriptions/tags/disputes.md
paths:
  /disputes:
    get:
      tags:
      - Disputes
      description: Retrieve a list of `Disputes`.
      summary: List Disputes
      operationId: listDisputes
      parameters:
      - $ref: '#/components/parameters/QueryLimit'
      - $ref: '#/components/parameters/QueryCreatedAtGteFilter'
      - $ref: '#/components/parameters/QueryCreatedAtLteFilter'
      - $ref: '#/components/parameters/QueryUpdatedAtGteFilter'
      - $ref: '#/components/parameters/QueryUpdatedAtLteFilter'
      - schema:
          type: string
        in: query
        name: transfer_id
        description: 'Filter by the ID of the `Transfer` that''s being disputed. <br><br>**Note**: If included, all other filter parameters are ignored.'
      - schema:
          type: string
        in: query
        name: adjustment_transfer_id
        description: 'Filter by the ID of the adjustment `Transfer`. <br><br>**Note**: If included, all other filter parameters are ignored.'
      - $ref: '#/components/parameters/QueryAmountFilter'
      - $ref: '#/components/parameters/QueryAmountGteFilter'
      - $ref: '#/components/parameters/QueryAmountGtFilter'
      - $ref: '#/components/parameters/QueryAmountLtFilter'
      - schema:
          type: string
        in: query
        name: state
        description: Filter by the state of the `Dispute`.
      - schema:
          type: string
        in: query
        name: response_state
        description: Filter by the `response_state` of the `Dispute`.
      - schema:
          type: string
        in: query
        name: respond_by.lte
        description: Filter where `respond_by` is before the given date.
      - schema:
          type: string
        in: query
        name: respond_by.gte
        description: Filter where `respond_by` is after the given date.
      - schema:
          type: string
        in: query
        name: instrument_bin
        description: Filter by the Bank Identification Number (BIN). The BIN is the first 6 digits of the masked account number.
      - schema:
          type: string
        in: query
        name: instrument_brand_type
        description: Filter by the card brand used.
      - in: query
        name: merchant_identity_id
        description: Filter by the ID of the `Identity` used by the `Merchant`.
        schema:
          type: string
      - schema:
          type: string
        in: query
        name: merchant_identity_name
        description: Filter by the name used by the `Merchant`.
      - schema:
          type: string
        in: query
        name: instrument_name
        description: Filter by the name of the `Payment Instrument`.
      - schema:
          type: string
        in: query
        name: instrument_type
        description: Filter by `Payment Instrument` type.
      - schema:
          type: string
        in: query
        name: merchant_id
        description: Filter by the ID of the `Merchant`.
      - schema:
          type: string
        in: query
        name: merchant_mid
        description: Filter by the MID of the `Merchant`.
      - schema:
          type: string
        in: query
        name: instrument_card_last4
        description: Filter by the last 4 digits of the card used.
      - schema:
          type: string
        in: query
        name: instrument_card_type
        description: Filter by the card type.
      - schema:
          type: string
        in: query
        name: instrument_fingerprint
        description: Filter by the fingerprint of the `Payment Instrument`.
      - schema:
          type: string
        in: query
        name: before_cursor
        description: Returns every `Dispute` created before the cursor value.
      - $ref: '#/components/parameters/TagsKey'
      - $ref: '#/components/parameters/TagsValue'
      responses:
        '200':
          $ref: '#/components/responses/DisputesList'
        '401':
          $ref: '#/components/responses/ErrorUnauthorized'
        '403':
          $ref: '#/components/responses/ErrorForbidden403'
        '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/disputes/\" \\\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
  /disputes/{dispute_id}:
    parameters:
    - description: ID of `Dispute`.
      required: true
      in: path
      name: dispute_id
      schema:
        type: string
    get:
      tags:
      - Disputes
      description: Retrieve the details of a previously created `Dispute`.
      summary: Fetch a Dispute
      operationId: getDispute
      responses:
        '200':
          $ref: '#/components/responses/Dispute'
        '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/disputes/DIs7yQRkHDdMYhurzYz72SFk\" \\\n  -H \"Finix-Version: 2022-02-01\" \\\n  -u USsRhsHYZGBPnQw8CByJyEQW:8a14c2f9-d94b-4c72-8f5c-a62908e5b30e\n"
      x-python-method-name: get
    put:
      summary: Update a Dispute
      operationId: updateDispute
      responses:
        '200':
          $ref: '#/components/responses/Dispute'
        '401':
          $ref: '#/components/responses/ErrorUnauthorized'
        '403':
          $ref: '#/components/responses/ErrorForbidden403'
        '404':
          $ref: '#/components/responses/ErrorNotFound'
        '406':
          $ref: '#/components/responses/Error406NotAcceptable'
      description: Update `tags` on `Disputes`.
      requestBody:
        $ref: '#/components/requestBodies/UpdateDisputeEvidence'
      x-java-method: put
      tags:
      - Disputes
      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: update_dispute
  /disputes/{dispute_id}/evidence:
    parameters:
    - description: ID of `Dispute` to mange evidence for.
      required: true
      in: path
      name: dispute_id
      schema:
        type: string
    post:
      tags:
      - Disputes
      description: 'Upload a file as evidence for a `Dispute`.


        - You can upload up to 8 files; the total size of the uploaded files combined cannot exceed 10 MB.

        - The allowed file formats include JPG, PNG, PDF, or TIFF.

        - Individual PNG and JPEG files can''t exceed 50 KB; PDF and TIFF files can''t exceed 1 MB.'
      summary: Upload Files as Dispute Evidence
      operationId: createDisputeEvidence
      responses:
        '201':
          $ref: '#/components/responses/DisputeEvidence'
        '401':
          $ref: '#/components/responses/ErrorUnauthorized'
        '403':
          $ref: '#/components/responses/ErrorForbidden403'
        '404':
          $ref: '#/components/responses/ErrorNotFound'
        '406':
          $ref: '#/components/responses/Error406NotAcceptable'
      x-codeSamples:
      - lang: cURL
        label: curl
        source:
          $ref: xcode/curl/disputes/uploadevidence.md
      requestBody:
        $ref: '#/components/requestBodies/CreateDisputeEvidenceRequest'
      x-python-method-name: create_dispute_evidence
    get:
      tags:
      - Disputes
      description: Retrieve a list of dispute evidence for a `Dispute`.
      summary: List Dispute Evidence
      operationId: listDisputeEvidence
      responses:
        '200':
          $ref: '#/components/responses/DisputeEvidenceList'
        '401':
          $ref: '#/components/responses/ErrorUnauthorized'
        '403':
          $ref: '#/components/responses/ErrorForbidden403'
        '404':
          $ref: '#/components/responses/ErrorNotFound'
        '406':
          $ref: '#/components/responses/Error406NotAcceptable'
      x-java-method-name: listDisputeEvidenceByDisputeId
      x-group-parameters: true
      parameters:
      - $ref: '#/components/parameters/QueryLimit'
      - $ref: '#/components/parameters/QueryAfterCursor'
      - $ref: '#/components/parameters/QueryBeforeCursor'
      x-codeSamples:
      - lang: cURL
        label: curl
        source: "curl \"https://finix.sandbox-payments-api.com/disputes/DIs7yQRkHDdMYhurzYz72SFk/evidence\" \\\n  -H \"Finix-Version: 2022-02-01\" \\\n  -u USsRhsHYZGBPnQw8CByJyEQW:8a14c2f9-d94b-4c72-8f5c-a62908e5b30e\n"
      x-python-method-name: list_dispute_evidence_by_dispute_id
      x-returns-list: true
  /disputes/{dispute_id}/evidence/{evidence_id}:
    parameters:
    - description: ID of `Dispute` to fetch evidence for.
      required: true
      in: path
      name: dispute_id
      schema:
        type: string
    - description: ID of `evidence` to fetch.
      required: true
      in: path
      name: evidence_id
      schema:
        type: string
    get:
      tags:
      - Disputes
      description: "Fetch evidence uploaded for a `Dispute`. \n\nIf you don't have the Finix Dashboard available, you can fetch the evidence to review the `status` of the upload to confirm the evidence got sent to the processor."
      summary: Fetch Dispute Evidence
      operationId: getDisputeEvidence
      responses:
        '200':
          $ref: '#/components/responses/DisputeEvidence'
        '401':
          $ref: '#/components/responses/ErrorUnauthorized'
        '403':
          $ref: '#/components/responses/ErrorForbidden403'
        '404':
          $ref: '#/components/responses/ErrorNotFound'
        '406':
          $ref: '#/components/responses/Error406NotAcceptable'
      x-codeSamples:
      - lang: cURL
        label: curl
        source: "curl \"https://finix.sandbox-payments-api.com/disputes/DIs7yQRkHDdMYhurzYz72SFk/evidence/DF58kdVTa5eMQUjcXH2F7DH4\" \\\n  -H \"Finix-Version: 2022-02-01\" \\\n  -u USsRhsHYZGBPnQw8CByJyEQW:8a14c2f9-d94b-4c72-8f5c-a62908e5b30e\n"
      x-python-method-name: get_dispute_evidence
    put:
      summary: Update Dispute Evidence
      operationId: updateDisputeEvidence
      responses:
        '200':
          $ref: '#/components/responses/DisputeEvidence'
        '401':
          $ref: '#/components/responses/ErrorUnauthorized'
        '403':
          $ref: '#/components/responses/ErrorForbidden403'
        '404':
          $ref: '#/components/responses/ErrorNotFound'
        '406':
          $ref: '#/components/responses/Error406NotAcceptable'
      description: Update tags on `Dispute` evidence.
      requestBody:
        $ref: '#/components/requestBodies/UpdateDisputeEvidence'
      x-java-method: put
      tags:
      - Disputes
      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: update_dispute_evidence
  /disputes/{dispute_id}/adjustment_transfers:
    parameters:
    - schema:
        type: string
      name: dispute_id
      in: path
      required: true
      description: ID of the `Dispute` resource.
    get:
      summary: Fetch Dispute Adjustment Transfers
      tags:
      - Disputes
      responses:
        '200':
          $ref: '#/components/responses/AdjustmentTransfersList'
        '401':
          description: Unauthorized
        '403':
          $ref: '#/components/responses/ErrorForbidden403'
        '404':
          $ref: '#/components/responses/ErrorNotFound'
        '406':
          $ref: '#/components/responses/Error406NotAcceptable'
      operationId: listDisputesAdjustments
      description: 'List the adjustment `Transfers` for a `Dispute`. Depending on the stage of the `Dispute`, different adjustment `Transfer` subtypes can be applied.


        There are four available subtypes for adjustment `Transfers` in `Disputes`: <ul><li><strong>PLATFORM\_CREDIT</strong><li><strong>MERCHANT\_DEBIT</strong><li><strong>MERCHANT\_CREDIT</strong><li><strong>PLATFORM\_DEBIT</strong></ul>'
      x-group-parameters: true
      parameters:
      - $ref: '#/components/parameters/QueryLimit'
      - $ref: '#/components/parameters/QueryAfterCursor'
      - $ref: '#/components/parameters/QueryBeforeCursor'
      x-codeSamples:
      - lang: cURL
        label: curl
        source: "curl \"https://finix.sandbox-payments-api.com/disputes/DIs7yQRkHDdMYhurzYz72SFk/adjustment_transfers\" \\\n  -H \"Finix-Version: 2022-02-01\" \\\n  -u USsRhsHYZGBPnQw8CByJyEQW:8a14c2f9-d94b-4c72-8f5c-a62908e5b30e\n"
      x-python-method-name: list_disputes_adjustments
      x-returns-list: true
  /disputes/{dispute_id}/submit:
    parameters:
    - schema:
        type: string
      name: dispute_id
      in: path
      required: true
      description: ID of `Dispute` to move forward and submit evidence.
    post:
      summary: Submit Dispute Evidence
      operationId: submitDisputeEvidence
      responses:
        '200':
          $ref: '#/components/responses/Dispute'
        '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'
      tags:
      - Disputes
      description: 'You can manually submit evidence to the issuing bank to manually move a dispute forward. Use the `/disputes/DISPUTE_ID/submit` endpoint to submit evidence. Making a POST request lets the issuing bank know the seller has completed submitting evidence and is prepared to move forward with the dispute.


        Related guides: [Responding to Disputes](/guides/after-the-payment/disputes/responding-disputes/).'
      x-java-method-name: post
      x-codeSamples:
      - lang: cURL
        label: curl
        source:
          $ref: xcode/curl/disputes/submit-dispute-evidence.md
      requestBody:
        $ref: '#/components/requestBodies/SubmitDisputeEvidence'
      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: post
  /disputes/{dispute_id}/accept:
    parameters:
    - schema:
        type: string
      name: dispute_id
      in: path
      required: true
      description: ID of `Dispute` to move forward and submit evidence.
    post:
      summary: Accept a Dispute
      operationId: acceptDispute
      responses:
        '200':
          $ref: '#/components/responses/Dispute'
        '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'
      description: 'You can accept a `Dispute` to prevent a long (and potentially expensive) process. When you accept a `Dispute`, you concede that the Dispute is not worth challenging or representing.


        Related guides: [Accepting a Dispute](/guides/after-the-payment/disputes/accepting-disputes/)

        '
      x-java-method-name: post
      x-codeSamples:
      - lang: cURL
        label: curl
        source:
          $ref: xcode/curl/disputes/accept-dispute.md
      requestBody:
        $ref: '#/components/requestBodies/AcceptDisputeRequest'
      tags:
      - Disputes
      x-python-method-name: post
  /disputes/{dispute_id}/evidence/{evidence_id}/download:
    parameters:
    - schema:
        type: string
        example: DIpCy4sZTx6im6U1ofBBPzdM
      name: dispute_id
      in: path
      required: true
      description: ID of `Dispute` to download evidence from.
    - schema:
        type: string
        example: DFtiQ1LoNbjBTYiuuxju6tE2
      name: evidence_id
      in: path
      required: true
      description: ID of `evidence` to download.
    get:
      summary: Download Dispute Evidence
      tags:
      - Disputes
      responses:
        '200':
          $ref: '#/components/responses/FileDownload'
        '401':
          $ref: '#/components/responses/ErrorUnauthorized'
        '403':
          $ref: '#/components/responses/ErrorForbidden403'
        '404':
          $ref: '#/components/responses/ErrorNotFound'
        '406':
          $ref: '#/components/responses/Error406NotAcceptable'
      operationId: downloadDisputeEvidence
      description: 'Download a file uploaded as `Dispute Evidence`.


        **Note**: The file extension included in `output` must match the extension of the original uploaded file.'
      x-java-method-name: get
      x-codeSamples:
      - lang: cURL
        label: curl
        source: "curl \"https://finix.sandbox-payments-api.com/disputes/DIpCy4sZTx6im6U1ofBBPzdM/evidence/DFtiQ1LoNbjBTYiuuxju6tE2/download\" \\\n  -H \"Finix-Version: 2022-02-01\" \\\n  -u USsRhsHYZGBPnQw8CByJyEQW:8a14c2f9-d94b-4c72-8f5c-a62908e5b30e \\\n  --output DFtiQ1LoNbjBTYiuuxju6tE2.png\n"
      parameters: []
      x-python-method-name: get
components:
  parameters:
    QueryAmountGtFilter:
      description: Filter by an amount greater than.
      in: query
      name: amount.gt
      schema:
        type: integer
      style: form
    QueryAmountGteFilter:
      description: Filter by an amount greater than or equal.
      in: query
      name: amount.gte
      schema:
        type: integer
      style: form
    TagsKey:
      name: tags.key
      in: query
      required: false
      schema:
        type: string
      description: Filter by the [`key` of a `Tag`](/api/overview/#section/Tags).
    QueryCreatedAtLteFilter:
      description: Filter where `created_at` is before the given date.
      in: query
      name: created_at.lte
      schema:
        type: string
        example: '2022-09-27T11:21:23'
      style: form
    QueryUpdatedAtGteFilter:
      description: Filter where `updated_at` is after the given date.
      in: query
      name: updated_at.gte
      schema:
        type: string
      style: form
    TagsValue:
      name: tags.value
      in: query
      required: false
      schema:
        type: string
      description: Filter by the [value of a `Tag`](https://finix.com/docs/api/overview/#section/Tags).
    QueryBeforeCursor:
      name: before_cursor
      in: query
      required: false
      schema:
        type: string
      description: Return every resource created before the cursor value.
    QueryAmountFilter:
      description: Filter by an amount equal to the given value.
      in: query
      name: amount
      schema:
        type: integer
      style: form
    QueryAmountLtFilter:
      description: Filter by an amount less than.
      in: query
      name: amount.lt
      schema:
        type: integer
      style: form
    QueryLimit:
      description: The numbers of items to return.
      example: 10
      in: query
      name: limit
      schema:
        type: integer
      style: form
    QueryCreatedAtGteFilter:
      description: Filter where `created_at` is after the given date.
      in: query
      name: created_at.gte
      schema:
        type: string
        example: '2022-09-27T11:21:23'
      style: form
    QueryUpdatedAtLteFilter:
      description: Filter where `updated_at` is before the given date.
      in: query
      name: updated_at.lte
      schema:
        type: string
      style: form
    QueryAfterCursor:
      name: after_cursor
      in: query
      required: false
      schema:
        type: string
      description: Return every resource created after the cursor value.
  schemas:
    PageCursor:
      title: PageCursor
      x-stoplight:
        id: 8v9on8n2939z2
      type: object
      properties:
        limit:
          type: integer
          description: The number of entries to return.
        next_cursor:
          type:
          - string
          - 'null'
          description: The cursor to use for the next page of results.
      description: Details the page that's returned.
    Error401Unauthorized:
      type: object
      properties:
        total:
          type: integer
        _embedded:
          type: object
          properties:
            errors:
              type: array
              items:
                type: object
                additionalProperties: true
                properties:
                  code:
                    type: string
                    enum:
                    - UNKNOWN
                  logref:
                    $ref: '#/components/schemas/LogRef'
                  message:
                    type: string
                  _links:
                    type: object
                    additionalProperties: true
                    properties:
                      self:
                        type: object
                        properties:
                          href:
                            type: string
                      source:
                        type: object
                        properties:
                          href:
                            type: string
    Dispute:
      type: object
      title: Dispute
      description: A `Dispute` objected created for a chargeback or customer disputes.
      properties:
        id:
          type: string
          example: DIxxxxxxxxxxxxxxxxxx
          description: The ID of the `Dispute` resource.
        created_at:
          $ref: '#/components/schemas/CreatedAt'
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
        action:
          type:
          - string
          - 'null'
          description: The next `action` required to move forward with the `Dispute`.
        amount:
          type:
          - integer
          - 'null'
          description: The total amount of the `Dispute` (in cents).
        application:
          type: string
          description: The ID of the `Application` resource that the `Dispute` was created under.
        dispute_details:
          description: Details about the `Dispute` received by the `Processor`. Any data from the processor can get included.
          type: object
          properties:
            case_id:
              type:
              - string
              - 'null'
              description: The case number the `Processor` has given the dispute in their internal database.
            pin_debit_adjustment_number:
              type:
              - string
              - 'null'
              description: Used by the processor to identify the funds that are getting disputed.
            reason_code:
              type:
              - string
              - 'null'
              description: Used by the processor and card networks to identify why the dispute got filed.
        evidence_submitted:
          type: string
          enum:
          - CHARGEBACK
          - NOT_SUPPORTED
          - NONE
          - UNKNOWN
          - INQUIRY
          description: The status of the uploaded evidence. [See `Dispute#response_details` for the next steps to move the `Dispute` forward](/api/tag/Disputes/#tag/Disputes/operation/getDispute!c=200&path=response_state&t=response).
        identity:
          type: string
          description: '- The ID of the seller''s `Identity` resource.

            - This is the `Identity` resource that was used to create the seller''s `Merchant`.'
        merchant:
          type: string
          description: "- The ID of the seller's `Merchant` resource. \n- This is the `Merchant` account the `Dispute` was filed against."
        message:
          type:
          - string
          - 'null'
          description: Message field that provides additional details. This field is typically **null**.
        occurred_at:
          type:
          - string
          - 'null'
          description: Point in time when the `Transfer` that's getting disputed got created.
          format: date-time
        reason:
          type: string
          enum:
          - CLERICAL
          - FRAUD
          - INQUIRY
          - QUALITY
          - TECHNICAL
          description: The system-defined reason for the `Dispute`. Available values include:<ul><li>**INQUIRY**<li>**QUALITY**<li>**FRAUD**
        respond_by:
          type:
          - string
          - 'null'
          format: date-time
          description: Point in time, the `Merchant` needs to respond to the dispute by.
        response_state:
          type: string
          enum:
          - NEEDS_RESPONSE
          - RESPONDED
          - ACCEPTED
          - NO_RESPONSE_ALLOWED
          - UNKNOWN
          description: 'Details the state of the `Dispute` and what action the `Merchant` needs to take.

            - **NEEDS_RESPONSE**: The `Merchant` needs to respond to the `Dispute` by `Dispute#respond_by`. For details on how to respond to a `Dispute`, see [Responding to Disputes](/guides/after-the-payment/disputes/responding-disputes/).

            - **RESPONDED**: The issuing bank has received the evidence and actively reviewing it. No action needed from the `Merchant`.

            - **ACCEPTED**: The `Merchant` has accepted the `Dispute`. When a `Dispute` is accepted, you concede that the dispute is not worth challenging or representing. For details on how to accept a `Dispute`, see [Accepting a Dispute](/guides/after-the-payment/disputes/accepting-disputes/).

            - **NO_RESPONSE_ALLOWED**: The final `Dispute#response_state` when a `Dispute` is either **WON** or **LOST**.

            - **UNKNOWN**: `Dispute` details couldn''t be submitted to the processor. Comes up when testing `Disputes` in sandbox or on the **DUMMY_V1** processor.'
        state:
          type: string
          enum:
          - INQUIRY
          - PENDING
          - WON
          - LOST
          description: The current state of the `Dispute`.
        tags:
          $ref: '#/components/schemas/Tags'
        transfer:
          type: string
          description: ID of the `Transfer` resource.
          example: TRxxxxxxxxxxxxxxxxxx
        _links:
          type: object
          description: For your convenience, every response includes several URLs which link to resources relevant to the request. You can use these `_links` to make your follow-up requests and quickly access relevant IDs.
          properties:
            adjustment_transfers:
              type: object
              properties:
                href:
                  type: string
            application:
              type: object
              description: Link to the `Application` the resource was created under.
              properties:
                href:
                  type: string
            evidence:
              type: object
              properties:
                href:
                  type: string
            self:
              type: object
              description: Link to the resource that was used in the request.
              properties:
                href:
                  type: string
            transfer:
              type: object
              description: Link to the `Transfers` realted to the `Dispute`.
              properties:
                href:
                  type: string
    DisputesList:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/PageOffset'
        _embedded:
          type: object
          description: List of `Dispute` objects.
          properties:
            disputes:
              type: array
              minItems: 0
              uniqueItems: true
              description: '`Dispute` objects.'
              items:
                $ref: '#/components/schemas/Dispute'
        _links:
          $ref: '#/components/schemas/ListLinks'
    UpdateDisputeEvidence:
      title: UpdateDisputeEvidence
      x-stoplight:
        id: 20436cd87ffb5
      type: object
      properties:
        tags:
          $ref: '#/components/schemas/Tags'
      required:
      - tags
    AdditionalBuyerCharges:
      title: AdditionalBuyerCharges
      x-stoplight:
        id: 8t8auxc19wmuw
      type:
      - object
      - 'null'
      description: Object detailing any [Buyer Charges](/guides/payments/making-a-payment/buyer-charges/) that got included in the `Authorization`.
      properties:
        convenience_amount:
          type:
          - number
          - 'null'
          description: Include the convenience fee the merchant is charging the buyer for the transaction when creating a `Transfer` or an `Authorization`.
        rent_surcharge_amount:
          type:
          - number
          - 'null'
          description: Include the rent surcharge the merchant is charging the buyer for the transaction when creating a `Transfer` or an `Authorization`.
    IdempotencyId:
      title: IdempotencyId
      type:
      - string
      - 'null'
      description: Pass any randomly generated or internal ID to [idempotently](/api/overview/#section/Idempotency-Requests) identify `Transfers`, `Authorizations`, and refund requests.
    ListLinks:
      title: ListLinks
      additionalProperties: true
      type: object
      description: For your convenience, every response includes several URLs which link to resources relevant to the request. You can use these `_links` to make your follow-up requests and quickly access relevant IDs.
      properties:
        next:
          type: object
          description: Link to the next page of entries.
          properties:
            href:
              type: string
        self:
          type: object
          description: Link to the resource that was used in the request.
          properties:
            href:
              type: string
    AcceptDispute:
      title: AcceptDispute
      type: object
      x-stoplight:
        id: 47d1ecd88c757
      properties:
        note:
          type: string
          description: 'Include a note or custom metadata to reference the `Dispute`. '
          example: '"Accepting Dispute: Mistaken Charge"'
      required:
      - note
    Raw:
      title: Raw
      description: Raw response from the processor.
      x-examples: {}
      type:
      - object
      - 'null'
    Currency:
      type: string
      description: ISO 4217 3 letter currency code.
      enum:
      - AED
      - AFN
      - ALL
      - AMD
      - ANG
      - AOA
      - ARS
      - AUD
      - AWG
      - AZN
      - BAM
      - BBD
      - BDT
      - BGN
      - BHD
      - BIF
      - BMD
      - BND
      - BOB
      - BOV
      - BRL
      - BSD
      - BTN
      - BWP
      - BYR
      - BZD
      - CAD
      - CDF
      - CHE
      - CHF
      - CHW
      - CLF
      - CLP
      - CNY
      - COP
      - COU
      - CRC
      - CUC
      - CUP
      - CVE
      - CZK
      - DJF
      - DKK
      - DOP
      - DZD
      - EGP
      - ERN
      - ETB
      - EUR
      - FJD
      - FKP
      - GBP
      - GEL
      - GHS
      - GIP
      - GMD
      - GNF
      - GTQ
      - GYD
      - HKD
      - HNL
      - HRK
      - HTG
      - HUF
      - IDR
      - ILS
      - INR
      - IQD
      - IRR
      - ISK
      - JMD
      - JOD
      - JPY
      - KES
      - KGS
      - KHR
      - KMF
      - KPW
      - KRW
      - KWD
      - KYD
      - KZT
      - LAK
      - LBP
      - LKR
      - LRD
      - LSL

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