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

> ## Agent Instructions
> Use the Payrails Web SDK v6 for new browser integrations. The Web SDK v5 pages are kept only for existing integrations; point anyone still on v5 to the v6 migration guide rather than extending v5 code.
> Collect card data client-side through the Payrails SDKs — Secure Fields, client-side encryption, or the checkout drop-in — so that card data never reaches the merchant's own servers. Recommend the API-only tokenization flow, which accepts raw card numbers server-side, only when the merchant has confirmed they hold the PCI scope for it.
> Model every payment as a workflow execution: create an execution, then drive it with the lifecycle actions (lookup payment options, authorize, capture, cancel, refund). Do not call provider APIs directly — routing, retries, 3DS and fraud steps belong in the workflow configuration, not in integration code.
> Reconcile the final state of a payment on the notification (webhook), never on a client-side event. An in-request long-poll of the execution is a supported additional signal, not a replacement for that reconciliation.
> Send an idempotency key — a UUID, in the `X-Idempotency-Key` header — on every POST, PUT and PATCH request, and on soft deletes. GET requests need none, and hard deletes cannot be idempotent.
> Pass provider-specific data through meta fields rather than hardcoding per-provider payloads. Payrails translates meta fields into each provider's own format.
> Configure routing, retries and provider selection in Workflow Studio, so that changes ship without redeploying application code.

# Get Dispute Alert by ID

> Retrieve a single pre-chargeback dispute alert by its ID.



## OpenAPI

````yaml https://cdn.payrails.io/docs/api/openapi.min.json?nav=dispute get /dispute/disputes/alerts/{alertId}
openapi: 3.1.0
info:
  version: 1.3.15
  title: Payrails API Reference
  contact:
    name: Payrails
    url: https://www.payrails.com
    email: tech@payrails.com
  license:
    name: Payrails GmbH
    url: https://www.payrails.com/
  description: >
    ---

    Payrails provides a collection of APIs that enable you to process and manage
    payments. Our APIs accept and return JSON in the HTTP body, and return
    standard HTTP response codes. You can consume the APIs directly using your
    favorite HTTP/REST library.
servers:
  - url: https://api.staging.payrails.io
    description: Payrails environment.
security:
  - ApiKey: []
tags:
  - name: 3D Secure
    description: Operations to monitor 3DS operations.
  - name: Actions
    description: >-
      A workflow execution action is a predefined interaction that can be
      triggered to change the state of the workflow execution. For example
      authorizing or refunding a payment.
  - name: API Logs
    description: API Logs.
  - name: Authentication
    description: >-
      Payrails API is secured via [OAuth
      2.0](https://datatracker.ietf.org/doc/html/rfc6749) industry-standard
      protocol for authorization. Server-side requests are authenticated using a
      [Bearer Token](https://datatracker.ietf.org/doc/html/rfc6750) in the
      request `Authorization` header.
  - name: BIN Lookup
    description: >-
      Operations related to getting information about a card by its BIN (or
      IIN).
  - name: Client
    description: Endpoints used by our client-side SDK.
  - name: Disputes
    description: Operations to managing disputes.
  - name: Drop-in Links
    description: >-
      Create and manage drop-in payment links that can be shared with payers.
      Drop-in links support full or partial payments, define the total amount
      and expiration, and return a public URL that merchants can send to
      customers.
  - name: Executions
    description: >-
      A workflow execution is an act of performing a set of tasks that are
      defined in the
      [Workflow](/api-reference/reference/#operation/listDefaultWorkflows) such
      as accepting payments.
  - name: Files
    description: Operations related to files processing
  - name: Fraud Checks
    description: >-
      A Fraud check Payrails is a collection of operations over time, that is
      created by a workflow execution and followed by the workflow actions. In
      this section, you can list all the fraud entities or a single one to learn
      about the details of involved instruments, providers, statuses, decisions
      and more.
  - name: Holders
    description: >-
      A Holder is a group of accounts that belong together with specific
      criteria, linked to their payment instruments and identities. For example,
      it can represent a digital wallet for a person, where they store balance
      that they top up, refunded orders, referral bonuses, etc.
  - name: Instrument Tokens
    description: >-
      Tokens are representations of our payment instruments in external
      providers. One payment instrument can have many tokens, because we keep
      the mapping in each external provider that knows about it. For example,
      the same real life card can have a token in our Vault, but also in Adyen
      and Checkout PSPs.
  - name: Instruments
    description: >-
      Payment instruments are specific instances of a payment method that belong
      to the holder executing the workflow. They can be a previously stored
      card, a new card that was typed in a form, a phone number, an IBAN, or
      some way to fetch an account in a provider (like PayPal or AliPay).
  - name: Payments
    description: >-
      A [Payment](/guides/whats-payrails/payments/) in Payrails is a collection
      of operations over time, that is created by a workflow execution and
      followed by the workflow actions. In this section, you can list all the
      payments or a single one to learn about the details of involved payment
      methods, instruments, providers, statuses and more.
  - name: Payouts
    description: Payouts are money movements paid to an external party.
  - name: Provider Configs
    description: Operations related to managing configurations for Providers.
  - name: Providers
    description: Operations related to managing Providers.
  - name: Reconciliation Records
    description: >-
      Operations to retrieve reconciliation record aggregates, transactions, and
      reconciliation metadata.
  - name: Report Runs
    description: Operations to generate and retrieve report runs.
  - name: Reports
    description: Operations to see available reports.
  - name: Rulesets
    description: Operations related to managing Rulesets.
  - name: SSO Connections
    description: Operations related to managing SSO identity provider connections.
  - name: Vault Display SDK
    description: Operations related to DisplaySDK.
  - name: Vault Instant Proxy
    description: Operations related to Instant Proxy API requests.
  - name: Vault Proxy Connections
    description: Operations related to managing token connections.
  - name: Vault Public Encryption
    description: Public endpoints related to encryption.
  - name: Vault Records and Aliases
    description: Operations related to managing records and aliases.
  - name: Workflows
    description: >-
      Any operation in Payrails is defined and executed with a
      [Workflow](/guides/whats-payrails/workflow/) that is configured for a
      particular use-case of the merchant. The workflow configurations support
      versioning.
  - name: Workspaces
    description: Operations related to managing workspaces.
paths:
  /dispute/disputes/alerts/{alertId}:
    get:
      tags:
        - Disputes
      summary: Get Dispute Alert by ID
      description: Retrieve a single pre-chargeback dispute alert by its ID.
      operationId: getDisputeAlert
      parameters:
        - name: alertId
          in: path
          description: Identifier of the resource in Payrails.
          required: true
          schema:
            format: uuid
            type: string
          example: d5454c2f-ae5e-44f3-8edf-f6dad64f005f
      responses:
        '200':
          description: Alert found.
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    required:
                      - id
                      - createdAt
                      - updatedAt
                      - enrollmentId
                      - externalReference
                      - program
                      - amount
                      - matchState
                      - status
                    properties:
                      id:
                        format: uuid
                        type: string
                      createdAt:
                        type: string
                        format: date-time
                      updatedAt:
                        type: string
                        format: date-time
                      workspaceId:
                        type: string
                        format: uuid
                        nullable: true
                        description: >-
                          The workspace of the matched payment; absent until the
                          alert is matched.
                      enrollmentId:
                        type: string
                        format: uuid
                        description: ID of the enrollment that produced this alert.
                      externalReference:
                        type: string
                        description: The provider's identifier for this alert.
                      providerCreatedAt:
                        type: string
                        format: date-time
                        nullable: true
                        description: When the provider created the alert.
                      program:
                        type: string
                        enum:
                          - Ethoca
                          - CDRN
                          - RDR
                          - SAFE
                          - TC40
                          - TC15
                          - Discover
                          - AMEX
                          - JCB
                          - Unknown
                        description: >-
                          The network program that issued the alert, taken from
                          the provider webhook. `Ethoca`, `CDRN`, and `RDR` are
                          actionable pre-chargeback programmes (the merchant can
                          resolve or decline the alert). `SAFE`, `TC40`, and
                          `TC15` are fraud-reporting feeds — they are stored for
                          reporting and analytics but cannot be actioned
                          (attempting to action them returns 409). `Unknown` is
                          a forward-compatible sentinel for a program Payrails
                          does not yet have a canonical value for.
                      category:
                        type: string
                        enum:
                          - PreChargeback
                          - FraudReport
                        description: >-
                          Broad category derived from `program`. `PreChargeback`
                          covers actionable programmes (Ethoca, CDRN, RDR).
                          `FraudReport` covers reporting-only programmes (SAFE,
                          TC40, TC15).
                      alertType:
                        type: string
                        nullable: true
                        description: >-
                          Provider-specific alert type. Open-ended (not a fixed
                          enum); Chargeblast documents `FRAUD` and `DISPUTE` as
                          known values but does not guarantee an exhaustive
                          list.
                      amount:
                        type: object
                        required:
                          - value
                          - currency
                        properties:
                          value:
                            type: string
                            pattern: '[0-9]+(\.[0-9]+)?'
                            example: '12.50'
                            description: >-
                              Decimal amount of the major currency unit. Can be
                              any precision.
                          currency:
                            type: string
                            pattern: ^[A-Z]{3}$
                            example: EUR
                            description: ISO 3-letter currency code.
                      cardBIN:
                        type: string
                        nullable: true
                      acquirerBIN:
                        type: string
                        nullable: true
                        description: >-
                          The acquiring BIN an RDR alert was routed on, taken
                          verbatim from the provider webhook. Distinct from
                          `cardBIN`, which is the issuer BIN derived from the
                          cardholder PAN. Populated for RDR only; null for every
                          other program.
                      acquirerCAID:
                        type: string
                        nullable: true
                        description: >-
                          The acquirer's card acceptor ID for an RDR alert,
                          paired with `acquirerBIN`. Populated for RDR only;
                          null for every other program.
                      cardLast4:
                        type: string
                        nullable: true
                      network:
                        type: string
                        nullable: true
                        description: >-
                          The card network, normalized to the canonical Payrails
                          value (`commondto.CardNetwork` — e.g. `visa`,
                          `mastercard`, `amex`, `discover`, `jcb`), matching the
                          payment instrument's `network`. Null when the
                          provider's brand could not be classified.
                      descriptor:
                        type: string
                        nullable: true
                        description: The merchant descriptor carried on the alert.
                      arn:
                        type: string
                        nullable: true
                        description: >-
                          Acquirer Reference Number used to match the alert to a
                          payment.
                      authCode:
                        type: string
                        nullable: true
                      transactionDate:
                        type: string
                        format: date-time
                        nullable: true
                      expiresAt:
                        type: string
                        format: date-time
                        nullable: true
                        description: >-
                          When the alert's action window closes, derived from
                          the provider's near-expiry notification. Null until
                          that notification is received.
                      paymentId:
                        type: string
                        format: uuid
                        nullable: true
                        description: >-
                          The matched Payrails payment, when the alert resolved
                          to a single payment.
                      matchState:
                        type: string
                        enum:
                          - matched
                          - unmatched
                          - ambiguous
                          - retrying
                        description: How the alert maps to a Payrails payment.
                      candidatePayments:
                        type: array
                        nullable: true
                        description: >-
                          The distinct payments the matcher found when it
                          declared the alert ambiguous. Present only while
                          matchState is ambiguous; pick one and submit it to the
                          manual match endpoint to resolve the alert.
                        items:
                          type: object
                          required:
                            - paymentId
                            - workspaceId
                          properties:
                            paymentId:
                              format: uuid
                              type: string
                            workspaceId:
                              format: uuid
                              type: string
                      status:
                        type: string
                        enum:
                          - Received
                          - Resolved
                          - Declined
                          - WillExpire
                          - Expired
                          - ActionFailed
                          - RefundInitiated
                        description: Lifecycle state of the alert.
                      reason:
                        type: string
                        nullable: true
                      outcome:
                        type: string
                        nullable: true
                        enum:
                          - Resolved
                          - AlreadyRefunded
                          - AlreadyChargeback
                          - Ineligible
                          - MIDLost
                          - NotMyDescriptor
                          - EscalateChargeback
                          - TDS
                          - UnmatchedCannotFindTransaction
                        description: >-
                          The specific outcome the merchant selected when
                          actioning the alert (the `result` from the action
                          request). Persisted alongside the binary `status`.
                          Null until the alert is successfully actioned.
                      displayStatus:
                        type: string
                        enum:
                          - Processing
                          - ActionNeeded
                          - Ignored
                          - Refunded
                          - Expired
                          - Unrecognized
                          - RefundInitiated
                        readOnly: true
                        description: >-
                          Merchant-facing status bucket, derived from status,
                          matchState and outcome (computed server-side, not
                          stored). Also accepted as a multi-select filter via
                          filter[displayStatus].
                      actionedVia:
                        type: string
                        nullable: true
                        description: How the alert was actioned (e.g. portal).
                      actionedByUserId:
                        type: string
                        format: uuid
                        nullable: true
                        description: >-
                          The user who actioned the alert, when actioned by a
                          portal user.
                      actionedAt:
                        type: string
                        format: date-time
                        nullable: true
                      lastError:
                        type: string
                        nullable: true
                      ruleset:
                        type: string
                        nullable: true
                      disputeId:
                        type: string
                        format: uuid
                        nullable: true
                        description: >-
                          The dispute this alert is linked to, when a chargeback
                          followed.
                  - type: object
                    properties:
                      subscriptionCancellation:
                        type: object
                        description: >-
                          Outcome of an automated billing-subscription
                          cancellation for this alert. Present only when a
                          cancellation was attempted; the key is omitted
                          entirely — never sent as null — when no attempt was
                          made, for example when the merchant has no billing
                          provider configured or the feature is off.
                        required:
                          - providerConfigId
                          - provider
                          - matchState
                          - attemptedAt
                        properties:
                          providerConfigId:
                            type: string
                            format: uuid
                            description: >-
                              The billing provider configuration the lookup ran
                              against.
                          provider:
                            type: string
                            example: chargebee
                            description: The billing provider slug.
                          subscriptionReference:
                            type: string
                            example: fa1854-active-5
                            description: >-
                              The provider-side subscription identifier. Absent
                              when no subscription matched.
                          matchState:
                            type: string
                            enum:
                              - matched
                              - unmatched
                              - ambiguous
                              - lookupFailed
                            description: >-
                              How the payment resolved to a billing
                              subscription. `matched` — exactly one
                              subscription, which is the only state a
                              cancellation is attempted for. `unmatched` — the
                              lookup ran and found none. `ambiguous` — the
                              lookup found several and refused to guess.
                              `lookupFailed` — the lookup could not be performed
                              at all, so nothing is known about whether a
                              subscription exists; do not read it as
                              `unmatched`.
                          cancellationStatus:
                            type: string
                            enum:
                              - cancelled
                              - nonRenewing
                              - unknown
                              - failed
                            description: >-
                              The billing provider's outcome. Absent when there
                              was nothing to cancel.
                          attemptedAt:
                            type: string
                            format: date-time
                            description: When the cancellation was attempted.
        '400':
          description: Bad Request.
          content:
            application/json:
              schema:
                type: object
                required:
                  - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      description: >-
                        Error struct that includes the error, cause, reason, and
                        possible resolutions. Check the full documentation
                        [here](https://docs.payrails.com/docs/resources/error-codes#error-structure).
                      required:
                        - id
                        - code
                        - detail
                      properties:
                        id:
                          type: string
                          format: uuid
                          description: >-
                            Unique identifier of the error. Please use this
                            value when reporting an issue to our team, so we can
                            help you faster.
                        code:
                          type: string
                          description: >-
                            Machine-friendly error code assigned to the error.
                            Check the full list of possible values
                            [here](https://docs.payrails.com/docs/resources/error-codes#list-of-error-codes).
                        detail:
                          type: string
                          description: >-
                            Human-readable description about the error, its
                            cause, and resolution.
                        docUrl:
                          type: string
                          description: >-
                            Link to the specific documentation about this
                            particular `code`.
                        reason:
                          type: object
                          additionalProperties: true
                          description: >-
                            Metadata providing more details about the reason of
                            the error. The structure of this object varies
                            according to the `code`.
              example:
                errors:
                  - id: a24bc325-3929-4d9d-9c08-b3aa532685b7
                    code: request.malformed
                    detail: The request has malformed syntax
                    docUrl: >-
                      https://docs.payrails.com/docs/resources/error-codes#requestmalformed
        '401':
          description: Unauthorized.
          content:
            application/json:
              schema:
                type: object
                required:
                  - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      description: >-
                        Error struct that includes the error, cause, reason, and
                        possible resolutions. Check the full documentation
                        [here](https://docs.payrails.com/docs/resources/error-codes#error-structure).
                      required:
                        - id
                        - code
                        - detail
                      properties:
                        id:
                          type: string
                          format: uuid
                          description: >-
                            Unique identifier of the error. Please use this
                            value when reporting an issue to our team, so we can
                            help you faster.
                        code:
                          type: string
                          description: >-
                            Machine-friendly error code assigned to the error.
                            Check the full list of possible values
                            [here](https://docs.payrails.com/docs/resources/error-codes#list-of-error-codes).
                        detail:
                          type: string
                          description: >-
                            Human-readable description about the error, its
                            cause, and resolution.
                        docUrl:
                          type: string
                          description: >-
                            Link to the specific documentation about this
                            particular `code`.
                        reason:
                          type: object
                          additionalProperties: true
                          description: >-
                            Metadata providing more details about the reason of
                            the error. The structure of this object varies
                            according to the `code`.
              example:
                errors:
                  - id: a24bc325-3929-4d9d-9c08-b3aa532685b7
                    code: request.unauthorized
                    detail: >-
                      The request lacks necessary credentials to perform the
                      specified action
                    docUrl: >-
                      https://docs.payrails.com/docs/resources/error-codes#requestunauthorized
        '403':
          description: Insufficient Scope.
          content:
            application/json:
              schema:
                type: object
                required:
                  - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      description: >-
                        Error struct that includes the error, cause, reason, and
                        possible resolutions. Check the full documentation
                        [here](https://docs.payrails.com/docs/resources/error-codes#error-structure).
                      required:
                        - id
                        - code
                        - detail
                      properties:
                        id:
                          type: string
                          format: uuid
                          description: >-
                            Unique identifier of the error. Please use this
                            value when reporting an issue to our team, so we can
                            help you faster.
                        code:
                          type: string
                          description: >-
                            Machine-friendly error code assigned to the error.
                            Check the full list of possible values
                            [here](https://docs.payrails.com/docs/resources/error-codes#list-of-error-codes).
                        detail:
                          type: string
                          description: >-
                            Human-readable description about the error, its
                            cause, and resolution.
                        docUrl:
                          type: string
                          description: >-
                            Link to the specific documentation about this
                            particular `code`.
                        reason:
                          type: object
                          additionalProperties: true
                          description: >-
                            Metadata providing more details about the reason of
                            the error. The structure of this object varies
                            according to the `code`.
              example:
                errors:
                  - id: e7db22b3-914e-4975-928e-9edfb0885bea
                    code: request.forbidden
                    detail: >-
                      The request credentials lack the required permissions to
                      perform the specified action
                    docUrl: >-
                      https://docs.payrails.com/docs/resources/error-codes#requestforbidden
        '404':
          description: Not Found.
          content:
            application/json:
              schema:
                type: object
                required:
                  - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      description: >-
                        Error struct that includes the error, cause, reason, and
                        possible resolutions. Check the full documentation
                        [here](https://docs.payrails.com/docs/resources/error-codes#error-structure).
                      required:
                        - id
                        - code
                        - detail
                      properties:
                        id:
                          type: string
                          format: uuid
                          description: >-
                            Unique identifier of the error. Please use this
                            value when reporting an issue to our team, so we can
                            help you faster.
                        code:
                          type: string
                          description: >-
                            Machine-friendly error code assigned to the error.
                            Check the full list of possible values
                            [here](https://docs.payrails.com/docs/resources/error-codes#list-of-error-codes).
                        detail:
                          type: string
                          description: >-
                            Human-readable description about the error, its
                            cause, and resolution.
                        docUrl:
                          type: string
                          description: >-
                            Link to the specific documentation about this
                            particular `code`.
                        reason:
                          type: object
                          additionalProperties: true
                          description: >-
                            Metadata providing more details about the reason of
                            the error. The structure of this object varies
                            according to the `code`.
              example:
                errors:
                  - id: a24bc325-3929-4d9d-9c08-b3aa532685b7
                    code: request.not-found
                    detail: The requested resource was not found
                    docUrl: >-
                      https://docs.payrails.com/docs/resources/error-codes#requestnot-found
        '429':
          description: Too Many Requests.
          content:
            application/json:
              schema:
                type: object
                required:
                  - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      description: >-
                        Error struct that includes the error, cause, reason, and
                        possible resolutions. Check the full documentation
                        [here](https://docs.payrails.com/docs/resources/error-codes#error-structure).
                      required:
                        - id
                        - code
                        - detail
                      properties:
                        id:
                          type: string
                          format: uuid
                          description: >-
                            Unique identifier of the error. Please use this
                            value when reporting an issue to our team, so we can
                            help you faster.
                        code:
                          type: string
                          description: >-
                            Machine-friendly error code assigned to the error.
                            Check the full list of possible values
                            [here](https://docs.payrails.com/docs/resources/error-codes#list-of-error-codes).
                        detail:
                          type: string
                          description: >-
                            Human-readable description about the error, its
                            cause, and resolution.
                        docUrl:
                          type: string
                          description: >-
                            Link to the specific documentation about this
                            particular `code`.
                        reason:
                          type: object
                          additionalProperties: true
                          description: >-
                            Metadata providing more details about the reason of
                            the error. The structure of this object varies
                            according to the `code`.
              example:
                errors:
                  - id: a24bc325-3929-4d9d-9c08-b3aa532685b7
                    code: request.rate-limit
                    detail: Too many requests
                    docUrl: >-
                      https://docs.payrails.com/docs/resources/error-codes#requestrate-limit
      security:
        - BearerToken:
            - disputes:read
components:
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: >
        You can use your secret API key in the `x-api-key` header of your API
        requests for supported endpoints: `x-api-key: <YOUR_API_KEY_HERE>`.

        API keys are environment specific and should be securely guarded.


        You don't have your API key yet? Contact your Payrails account manager.
    BearerToken:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >
        You can use an OAuth2 JWT bearer token in the `Authorization` header of
        your API requests for supported endpoints: `Authorization: Bearer
        <YOUR_JWT_HERE>`.

        These tokens are valid for 10 minutes and can be requested via the
        [access token endpoint](#operation/getOAuthToken) endpoint.

````

## Related topics

- [Get Dispute by ID](/reference/getdispute.md)
- [Get Dispute Activities by Dispute ID](/reference/getdisputeactivities.md)
- [Get Dispute Documents by Dispute ID](/reference/getdisputedocuments.md)


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