For PlatformsEvidence-as-a-Service

Submit platform disputes

Create dispute records in Chargeflow from your platform - request fields, dispute reason values, and how to enrich or generate evidence afterward.

Use this endpoint to create dispute records in Chargeflow directly from your platform. This is useful when Chargeflow is not automatically ingesting disputes from a connected PSP, for example when your platform is the authoritative source of dispute data, or when you're operating in a bring-your-own-disputes model.

Create a dispute

POST /public/2025-04-01/platform/disputes

Request fields

FieldTypeRequiredDescription
account_idstringYesThe Chargeflow account ID of the merchant this dispute belongs to.
source_idstringYesYour PSP's dispute ID, the unique identifier from the processor where the dispute originated.
created_atISO 8601 datetimeYesWhen the dispute was created at the processor.
reasonenumYesThe dispute reason code. See below for valid values.
due_byISO 8601 datetimeYesThe evidence submission deadline.
amountnumberYesDisputed amount in the transaction currency. Must be ≤ the transaction amount.
currencystringYesThree-letter ISO 4217 currency code in uppercase (e.g., USD).
statusenumYesCurrent dispute status. Must be needs_response, under_review, won, or lost.
stageenumNoDispute stage. One of: Chargeback, Inquiry, Pre_arbitration, Arbitration. Defaults to Chargeback.
transactionobjectNoTransaction details. Recommended for stronger evidence. See below.
subscriptionobjectNoSubscription details, if the disputed charge is subscription-related.
orderobjectNoOrder details including products, customer, shipping address, and fulfillment tracking.

Dispute reason values

ValueDescription
fraudUnauthorized transaction claim.
not_receivedCustomer claims goods or services were not received.
not_as_describedCustomer claims goods or services differed from what was promised.
canceled_recurring_billingCustomer claims a recurring charge continued after cancellation.
duplicate_chargeCustomer claims they were charged more than once for the same item.
credit_not_processedCustomer claims a refund was not applied.
otherAny reason not covered by the above.

Example request

Terminal
curl -X POST https://api.chargeflow.io/public/2025-04-01/platform/disputes \
  -H "x-api-key: YOUR_PLATFORM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "account_id": "66e6ea9ecd94925a9f8060d9",
    "source_id": "du_123456789",
    "created_at": "2025-04-15T08:30:00Z",
    "reason": "fraud",
    "due_by": "2025-04-29T23:59:00Z",
    "amount": 249.99,
    "currency": "USD",
    "status": "needs_response",
    "stage": "Chargeback",
    "transaction": {
      "source_id": "tx_1234567890",
      "account_id": "66e6ea9ecd94925a9f8060d9",
      "created_at": "2025-04-10T14:22:00Z",
      "type": "paid",
      "amount": 249.99,
      "currency": "USD",
      "payment_method": {
        "type": "card",
        "brand": "visa",
        "last4": "4242",
        "country": "US"
      }
    }
  }'

Tip

Always include transaction data when available. Card verification results (3DS, AVS, CVC) are among the most impactful fields for fraud disputes.

After creating the dispute

Once the dispute record exists in Chargeflow you can:

  • Generate evidence via the EaaS Generate Evidence API, referencing the returned dispute ID.
  • Enrich the dispute with additional order or communication context before generating evidence.

Next steps

Was this page helpful?

On this page