API reference

Disputes

Status and timeline of disputes on your payments. Never their content.

GET/api/v1/disputes

Disputes on payments bound to your intents, most recently opened first. Filter with stage; paginate with limit and starting_after.

curl "https://indeficient.com/api/v1/disputes?stage=awaiting_response" \
  -H "Authorization: Bearer $PP_API_KEY"

GET/api/v1/disputes/{payment}

The dispute on one payment. A payment that was never disputed is 404.

Response
{
  "object": "dispute",
  "id": "6VoCXSvs49gnzC6ULszzsfuZdjxRv9wu8LvdmFLcY2Ac",
  "payment": "6VoCXSvs49gnzC6ULszzsfuZdjxRv9wu8LvdmFLcY2Ac",
  "intent": "pi_test_k3v7q2mz5hxa4wde6rtn2bpy",
  "paymentRole": "primary",
  "merchantReference": "order_1042",
  "stage": "awaiting_review",
  "recipientResponded": true,
  "reviewStarted": false,
  "outcome": null,
  "resolutionPath": null,
  "openedAt": "2026-10-12T09:41:20.000Z",
  "resolvedAt": null,
  "disputeSignature": "3wBmX9kqT7nVcR2hYpL5sJ8dF4gZ6aE1uQoW3iKxNbMtC7vP9yHrGjS2fDeA5LkUzXq8nRwT4mYbV6cJpHsF1aG",
  "resolutionSignature": null,
  "protectionDeadline": "2026-10-17T14:05:37.000Z",
  "caseUrl": "https://indeficient.com/payments/6VoCXSvs49gnzC6ULszzsfuZdjxRv9wu8LvdmFLcY2Ac#case"
}

caseUrl is where the parties act. Opening it grants nothing: the case page checks the visitor’s wallet against the payment’s roles. See Disputes for stages and what is never shared.