> ## Documentation Index
> Fetch the complete documentation index at: https://docs.paynext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Find a dispute

> Retrieve a dispute by its ID. The response reflects the dispute's current state immediately and includes `details`. A dispute that belongs to another organization returns 404.



## OpenAPI

````yaml /api-reference/openapi3.json get /disputes/{id}
openapi: 3.0.1
info:
  contact: {}
  description: Billing API
  title: Billing
  version: '2.0'
servers:
  - url: https://sandbox-api.paynext.com/
security: []
paths:
  /disputes/{id}:
    get:
      tags:
        - Disputes
      summary: Find a dispute
      description: >-
        Retrieve a dispute by its ID. The response reflects the dispute's
        current state immediately and includes `details`. A dispute that belongs
        to another organization returns 404.
      parameters:
        - description: Specifies the version of the API to use
          in: header
          name: X-API-Version
          schema:
            enum:
              - 1.0.0
            type: string
            default: 1.0.0
          required: true
        - description: The ID of the dispute to find (`dsp_<uuid>`)
          in: path
          name: id
          required: true
          schema:
            type: string
          example: dsp_7c1a2b3c-4d5e-6f70-8a9b-0c1d2e3f4a5b
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/core_model.DisputeResDTO'
              examples:
                open:
                  summary: Open card dispute (Stripe)
                  value:
                    id: dsp_7c1a2b3c-4d5e-6f70-8a9b-0c1d2e3f4a5b
                    payment_id: pay_e8a1b2c3-d4f5-6789-abcd-ef0123456789
                    external_id: dp_1Nx2yZAbCdEfGh
                    stage: DISPUTE
                    status: NEEDS_RESPONSE
                    reason: FRAUDULENT
                    disputed_at: '2025-06-20T10:15:00Z'
                    respond_by: '2025-07-04T23:59:59Z'
                    details:
                      network_reason_code: '10.4'
                      processor_reason_code: fraudulent
                    created_at: '2025-06-20T10:20:00Z'
                    updated_at: '2025-06-20T10:20:00Z'
                resolved:
                  summary: Resolved PayPal dispute
                  value:
                    id: dsp_2f9e8d7c-6b5a-4c3d-9e2f-1a0b9c8d7e6f
                    payment_id: pay_5d4c3b2a-1f0e-4d9c-8b7a-6f5e4d3c2b1a
                    external_id: PP-D-27803
                    stage: DISPUTE
                    status: WON
                    reason: PRODUCT_NOT_RECEIVED
                    disputed_at: '2025-05-02T08:00:00Z'
                    respond_by: '2025-05-12T08:00:00Z'
                    details:
                      network_reason_code: null
                      paypal_dispute_channel: INTERNAL
                      paypal_dispute_life_cycle_stage: CHARGEBACK
                      paypal_outcome_code: RESOLVED_SELLER_FAVOUR
                      paypal_status: RESOLVED
                      processor_reason_code: MERCHANDISE_OR_SERVICE_NOT_RECEIVED
                    resolved_at: '2025-06-01T12:00:00Z'
                    created_at: '2025-05-02T08:03:00Z'
                    updated_at: '2025-06-01T12:00:05Z'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/pkg_server.HttpResErrorDTO'
              example:
                error:
                  message: 'invalid dispute id: invalid prefixed ID format'
          description: Bad Request. The ID is not a valid dispute ID.
        '401':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/gateway.ProblemDetailsDTO'
              example:
                type: https://httpproblems.com/http-status/401
                title: Unauthorized
                status: 401
                detail: No Authorization Header
                instance: /disputes/dsp_7c1a2b3c-4d5e-6f70-8a9b-0c1d2e3f4a5b
                trace:
                  timestamp: '2025-06-20T10:30:00.000Z'
                  requestId: 5304266b-61cf-4f8c-b40f-cfaaa43b5fb9
                  buildId: 98195131-5332-4763-803d-c12fbd354c95
                  rayId: a43617e52a87c50d-GRU
          description: >-
            Unauthorized. The `Authorization` header is missing, or the API key
            is invalid. The body is a Problem Details object with `detail` set
            to `No Authorization Header` or `Authorization Failed`.
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/pkg_server.HttpResErrorDTO'
              example:
                error:
                  message: Forbidden
          description: >-
            Forbidden. Returned when the API key is not granted Disputes read
            access. The body is `{"error": {"message": "Forbidden"}}`.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/pkg_server.HttpResErrorDTO'
              example:
                error:
                  message: dispute dsp_7c1a2b3c-4d5e-6f70-8a9b-0c1d2e3f4a5b not found
          description: >-
            Not Found. No dispute with this ID exists in your organization,
            including a dispute that belongs to another organization.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/pkg_server.HttpResErrorDTO'
              example:
                error:
                  message: failed to retrieve dispute
          description: Internal Server Error
      security:
        - Auth: []
components:
  schemas:
    core_model.DisputeResDTO:
      properties:
        created_at:
          description: When the dispute was first recorded in PayNext.
          example: '2026-08-01T10:20:00Z'
          type: string
        details:
          additionalProperties: true
          description: >-
            Processor-specific reference values for the dispute. Which keys
            appear depends on the processor, and a key with no value is `null`.
            Returned by `GET /disputes/{id}` only; list items never include it.
            Omitted when the processor supplied no details.
          example:
            network_reason_code: '10.4'
            processor_reason_code: fraudulent
          properties:
            is_visa_rdr:
              description: >-
                Braintree only. `true` when the dispute was resolved
                automatically through Visa Rapid Dispute Resolution (RDR),
                otherwise `false`.
              type: boolean
            network_reason_code:
              description: >-
                The card network's reason code, for example `10.4` (Visa) or
                `4837` (Mastercard).
              nullable: true
              type: string
            paypal_dispute_channel:
              description: PayPal only. PayPal's own dispute channel value.
              nullable: true
              type: string
            paypal_dispute_life_cycle_stage:
              description: >-
                PayPal only. PayPal's own life-cycle stage, for example
                `PRE_ARBITRATION`.
              nullable: true
              type: string
            paypal_outcome_code:
              description: PayPal only. PayPal's own outcome code.
              nullable: true
              type: string
            paypal_status:
              description: PayPal only. PayPal's own dispute status.
              nullable: true
              type: string
            processor_reason_code:
              description: >-
                The processor's own reason value. `reason` holds the normalized
                category.
              nullable: true
              type: string
          type: object
        disputed_at:
          description: When the dispute was raised.
          example: '2026-08-01T10:15:00Z'
          type: string
        external_id:
          description: The dispute identifier assigned by the processor.
          example: dp_1Nx2yZAbCdEfGh
          type: string
        id:
          description: Unique identifier of the dispute.
          example: dsp_7c1a2b3c-4d5e-6f70-8a9b-0c1d2e3f4a5b
          type: string
        payment_id:
          description: ID of the disputed payment.
          example: pay_e8a1b2c3-d4f5-6789-abcd-ef0123456789
          type: string
        reason:
          description: Reason category for the dispute, normalized across processors.
          enum:
            - FRAUDULENT
            - UNRECOGNIZED
            - PRODUCT_NOT_RECEIVED
            - PRODUCT_UNACCEPTABLE
            - SUBSCRIPTION_CANCELED
            - CREDIT_NOT_PROCESSED
            - DUPLICATE
            - GENERAL_NONCOMPLIANT
          example: FRAUDULENT
          type: string
        resolved_at:
          description: >-
            When the dispute first reached a final status (WON, LOST, ACCEPTED,
            or PREVENTED). Omitted while the dispute is open.
          example: '2026-09-10T08:00:00Z'
          type: string
        respond_by:
          description: >-
            Deadline for your response. Omitted when the processor did not
            supply one.
          example: '2026-08-15T23:59:59Z'
          type: string
        stage:
          description: Where the dispute sits in the network's process.
          enum:
            - RETRIEVAL
            - DISPUTE
          example: DISPUTE
          type: string
        status:
          description: >-
            The dispute's current status. WON, LOST, ACCEPTED, and PREVENTED are
            final. A missed response deadline reports as LOST.
          enum:
            - NEEDS_RESPONSE
            - EVIDENCE_SUBMITTED
            - UNDER_REVIEW
            - WON
            - LOST
            - ACCEPTED
            - PREVENTED
          example: NEEDS_RESPONSE
          type: string
        updated_at:
          description: When the dispute was last updated in PayNext.
          example: '2026-08-02T09:00:00Z'
          type: string
      required:
        - created_at
        - disputed_at
        - external_id
        - id
        - payment_id
        - reason
        - stage
        - status
        - updated_at
      type: object
    pkg_server.HttpResErrorDTO:
      properties:
        error:
          allOf:
            - $ref: '#/components/schemas/pkg_server.HttpErrorDTO'
          description: Description of the error
          type: object
      type: object
    gateway.ProblemDetailsDTO:
      description: >-
        Problem Details (RFC 9457) body returned when the request has no valid
        API key.
      properties:
        detail:
          description: >-
            `No Authorization Header` when the header is missing, `Authorization
            Failed` when the API key is invalid.
          example: No Authorization Header
          type: string
        instance:
          description: The request path.
          example: /disputes
          type: string
        status:
          description: The HTTP status code.
          example: 401
          type: integer
        title:
          description: Short summary of the problem.
          example: Unauthorized
          type: string
        trace:
          description: Request identifiers to share with PayNext support.
          properties:
            buildId:
              type: string
            rayId:
              type: string
            requestId:
              type: string
            timestamp:
              type: string
          type: object
        type:
          description: URI identifying the problem type.
          example: https://httpproblems.com/http-status/401
          type: string
      type: object
    pkg_server.HttpErrorDTO:
      properties:
        message:
          description: Description of the error
          example: some error message
          type: string
      type: object
  securitySchemes:
    Auth:
      bearerFormat: JWT
      description: >-
        Authentication header of the form `api key`, where `api key` is your
        organization api key.
      scheme: bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.