Disputes

Disputes represent a buyer, or their bank, challenging a payment: chargebacks, pre-dispute inquiries, and compliance cases. Each dispute links back to the payment intent and order it contests, carries the disputed amount_money, and records a reason (such as fraudulent, product_not_received, or duplicate) and a case_type (inquiry, chargeback, compliance, or resolution).

A dispute moves through statuses from needs_response and under_review to a terminal won, lost, or prevented, with warning_ variants for early inquiries that may still become formal chargebacks. The action_required, evidence_response_allowed, and evidence_due_at fields tell you whether and by when you can respond; evidence_deadline_passed and evidence_submission_past_due tell you when that window has closed. This surface is read-only over the API: list and retrieve disputes to monitor and reconcile them.

Subscribe to the dispute.created, dispute.updated, and dispute.closed webhook events so your systems react the moment a case opens or resolves, rather than polling.

List disputes#

GET/v1/disputes

Returns a paginated list of disputes for the authenticated merchant with optional payment, customer, status, reason, case type, and timing filters.

Query parameters
payment_intent_idstring

Optional Flint payment intent ID filter.

order_idstring

Optional Flint order ID filter.

customer_idstring

Optional Flint customer ID filter.

statusenum

Optional dispute status filter.

warning_needs_responsewarning_under_reviewwarning_closedneeds_responseunder_reviewwonlostprevented
reasonenum

Optional normalized dispute reason filter.

bank_cannot_processcheck_returnedcredit_not_processedcustomer_initiateddebit_not_authorizedduplicatefraudulentgeneralincorrect_account_detailsinsufficient_fundsnoncompliantproduct_not_receivedproduct_unacceptablesubscription_canceledunrecognized
case_typeenum

Optional dispute case type filter.

inquirychargebackcomplianceresolutionblockother
created_afterstring

Only include disputes created at or after this RFC3339 timestamp.

created_beforestring

Only include disputes created at or before this RFC3339 timestamp.

evidence_due_afterstring

Only include disputes with evidence due at or after this RFC3339 timestamp.

evidence_due_beforestring

Only include disputes with evidence due at or before this RFC3339 timestamp.

page_sizeinteger

Page size, default 20, max 100.

page_tokenstring

Page token returned by the previous response.

Response · 200
dataarray of objectrequired
metaobject
next_page_tokenstring
request_idstring
Bash
curl https://api.withflintpay.com/v1/disputes \
  -H "Authorization: Bearer YOUR_API_KEY"

Get a dispute#

GET/v1/disputes/{dispute_id}

Returns one dispute by ID, with optional customer, order, and payment intent expansions.

Path parameters
dispute_idstringrequired

Flint dispute ID.

Query parameters
expandarray of enum

Supported expansions: customer, order, payment_intent. Expansion requires payments.disputes.read plus the read scope for each expanded resource. Limits: at most 10 unique expand paths per request; path depth at most 2. Send repeated expand parameters as the canonical form, for example expand=customer&expand=order. Comma-separated values, expand[]=customer, and numeric expand[0]=customer are accepted for common client compatibility.

customerorderpayment_intent
Response · 200
dataobjectrequired
metaobject
request_idstring
Bash
curl https://api.withflintpay.com/v1/disputes/{dispute_id} \
  -H "Authorization: Bearer YOUR_API_KEY"
Rate this doc