Skip to content

Get a dispute

The disputes.get operation: GET /api/v1/disputes/{id} in the REST API and the disputes_get tool in the MCP server.

GET/api/v1/disputes/{id}

Returns one dispute of the brand: the disputed payment and customer, the processor's reference and reason, the amount and the dispute fee, the deadline to respond (evidenceDueBy), its status (needs_response, under_review, won, lost), the ledger postings (the chargeback, and its reversal when won), the wallets it froze, the unused credits it took back from the wallet, the evidence pack once built and submitted, the team's notes and assignee, and the timeline.

At a glance

  • REST: GET /api/v1/disputes/{id}
  • MCP tool: disputes_get
  • Operation ID: disputes.get
  • Scope: Brand
  • Permission: disputes:read
  • Risk tier: read
  • Dry run: Not supported
  • Idempotency: Not needed (read only)
  • Modes: Test and live
  • Authentication: API key with the disputes:read scope
  • Since: M8

Request

Path parameters

FieldTypeDescription
iddp_… ID

Query parameters

This operation takes no query parameters.

Response

200 OK with a JSON object:

FieldTypeDescription
iddp_… ID
object"dispute"
livemodeboolean
entityIdent_… ID
brandIdbrd_… ID
paymentIdpay_… ID
customerIdcus_… ID
processorone of stripe, mollie, fake
processorConnectionIdpcon_… ID
processorRefstring
reasonstring or null
processorStatusstring or null
statusone of needs_response, under_review, won, lost
inquiryboolean
fundsWithdrawnAtdate-time or null
amountmoney
feemoney or null
evidenceDueBydate-time or null
openedAtdate-time
closedAtdate-time or null
ledgerTxnIdsarray of txn_… ID
walletFreezeobject or null
walletReversalobject or null
evidenceobject or null
notesstring or null
assigneeobject or null
historyarray of object
history[].atdate-time
history[].eventone of 10 values, e.g. opened, wallet_frozen, funds_withdrawn (all in the OpenAPI document)
history[].bystring
history[].notestring or null
createdAtdate-time
updatedAtdate-time
versioninteger (at least 1)

Examples

A new chargeback

HTTP
GET /api/v1/disputes/dp_01m4ttwd3veh9apbewxheq5xb1
Authorization: Bearer or_test_…

Response (200):

JSON
{
  "id": "dp_01m4ttwd3veh9apbewxheq5xb1",
  "object": "dispute",
  "livemode": true,
  "entityId": "ent_01m4ttwd3veh9apbewxheq5xh4",
  "brandId": "brd_01m4ttwd3veh9apbewxheq5xh5",
  "paymentId": "pay_01m4ttwd3veh9apbewxheq5xb2",
  "customerId": "cus_01m4ttwd3veh9apbewxheq5xb3",
  "processor": "stripe",
  "processorConnectionId": "pcon_01m4ttwd3veh9apbewxheq5xb4",
  "processorRef": "dp_1QOwnrecordTest01",
  "reason": "fraudulent",
  "processorStatus": "needs_response",
  "status": "needs_response",
  "inquiry": false,
  "fundsWithdrawnAt": "2026-10-18T08:00:00.000Z",
  "amount": {
    "amount": "12500000",
    "currency": "EUR"
  },
  "fee": {
    "amount": "15000000",
    "currency": "EUR"
  },
  "evidenceDueBy": "2026-10-25T23:59:59.000Z",
  "openedAt": "2026-10-18T08:00:00.000Z",
  "closedAt": null,
  "ledgerTxnIds": ["txn_01m4ttwd3veh9apbewxheq5xb6"],
  "walletFreeze": {
    "walletIds": ["wal_01m4ttwd3veh9apbewxheq5xb5"],
    "frozenAt": "2026-10-18T08:00:00.000Z",
    "unfrozenAt": null
  },
  "walletReversal": {
    "walletId": "wal_01m4ttwd3veh9apbewxheq5xb5",
    "credits": {
      "amount": "10000000",
      "currency": "EUR"
    },
    "restored": null
  },
  "evidence": null,
  "notes": null,
  "assignee": null,
  "history": [
    {
      "at": "2026-10-18T08:00:00.000Z",
      "event": "opened",
      "by": "system",
      "note": null
    },
    {
      "at": "2026-10-18T08:00:00.000Z",
      "event": "wallet_frozen",
      "by": "system",
      "note": "1 wallet"
    },
    {
      "at": "2026-10-18T08:00:00.000Z",
      "event": "funds_withdrawn",
      "by": "system",
      "note": null
    }
  ],
  "createdAt": "2026-10-18T08:00:00.000Z",
  "updatedAt": "2026-10-18T08:00:00.000Z",
  "version": 2
}

Errors

CodeHTTP statusWhenWhat to do
resource_not_found404No dispute with this ID in this brand and mode.Check the ID and that your credentials are scoped to the right organization, entity, brand and mode.
permission_denied403You can't see disputes of this brand.Ask an organization owner or admin for a role or scope that allows this action.

It can also return these common errors: validation_failed, api_version_unsupported, authentication_required, api_key_invalid, scope_required, dry_run_not_supported, rate_limited, internal_error.