Chargeback and Dispute Statuses Compared: Stripe vs PayPal vs Square
The statuses side by side
| Phase | Stripe | Square | PayPal |
|---|---|---|---|
| Inquiry, you must respond | warning_needs_response | INQUIRY_EVIDENCE_REQUIRED | stage INQUIRY |
| Inquiry, evidence submitted | warning_under_review | INQUIRY_PROCESSING | — |
| Inquiry ended, no chargeback | warning_closed | INQUIRY_CLOSED | — |
| Dispute, you must respond | needs_response | EVIDENCE_REQUIRED | WAITING_FOR_SELLER_RESPONSE |
| Dispute, being decided | under_review | PROCESSING | UNDER_REVIEW |
| You won | won | WON | RESOLVED (+ outcome) |
| You lost | lost | LOST | RESOLVED (+ outcome) |
| You gave up | — | ACCEPTED | — |
| Stopped before chargeback | prevented | — | — |
Stripe: warnings first, then disputes
Stripe's API lists the statuses as "warning_needs_response, warning_under_review, warning_closed, needs_response, under_review, won, lost, or prevented." The warning_ prefix marks an inquiry — the API calls them warnings "to mirror the language in the API", while the Dashboard calls them inquiries.
Stripe's documentation explains why the inquiry stage matters: "Failing to respond to an inquiry can signal to the issuer your implicit acceptance of the claim, resulting in an escalation to a formal, and likely unwinnable, chargeback." Answering in time lets you "resolve the case without incurring a dispute fee."
Which networks use inquiries has changed: "American Express and Discover are the networks that most often use this phase, while Mastercard and Visa no longer use it." And inquiries don't end with a win — "If an inquiry remains open for 120 days without escalating to a chargeback, Stripe marks it as closed," and "Card networks don’t provide an explicit “win” message for inquiries."
Once a formal dispute opens, Stripe "debits your Stripe balance for the disputed amount plus a dispute fee." The two final outcomes are defined from the customer's side and yours: lost is "A dispute resolved in the customer’s favor" and won "A dispute resolved in the merchant’s favor." prevented covers "A dispute that was prevented from becoming a formal chargeback."
One more timing fact worth knowing: "Card networks typically allow cardholders to initiate disputes within 120 days of the original payment," but for future events or services "the dispute window starts on the event date, not the payment date."
Square: the same two phases, plus "accepted"
Square's DisputeState enum mirrors Stripe's structure almost exactly:
INQUIRY_EVIDENCE_REQUIRED— "The initial state of an inquiry with evidence required"INQUIRY_PROCESSING— "Inquiry evidence has been submitted and the bank is processing the inquiry"INQUIRY_CLOSED— "The inquiry is complete"EVIDENCE_REQUIRED— "The initial state of a dispute with evidence required"PROCESSING— "Dispute evidence has been submitted and the bank is processing the dispute"WON— "The bank has completed processing the dispute and the seller has won"LOST— "The bank has completed processing the dispute and the seller has lost"ACCEPTED— "The seller has accepted the dispute"
The difference from Stripe is ACCEPTED: Square records conceding as its own outcome, separate from losing after a fight. That distinction is useful in reporting — a high LOST rate means your evidence is weak; a high ACCEPTED rate means you're choosing not to contest.
PayPal: one status for everyone, one state per party
PayPal's disputes API is the most layered. It has three separate fields.
Status — "The overall status of the dispute, constant for all the parties involved": OPEN, WAITING_FOR_BUYER_RESPONSE, WAITING_FOR_SELLER_RESPONSE, UNDER_REVIEW, RESOLVED and OTHER.
Dispute state — "The user specific state of the dispute, could vary between parties": OPEN_INQUIRIES, REQUIRED_ACTION, REQUIRED_OTHER_PARTY_ACTION, UNDER_PAYPAL_REVIEW, APPEALABLE and RESOLVED. The same dispute can be REQUIRED_ACTION for you and REQUIRED_OTHER_PARTY_ACTION for your customer.
Lifecycle stage — INQUIRY, where "A customer and merchant interact in an attempt to resolve a dispute without escalation to PayPal"; CHARGEBACK, where an inquiry is escalated to a claim; then two appeal rounds, PRE_ARBITRATION ("The first appeal stage for merchants") and ARBITRATION ("The second appeal stage for merchants").
One trap in the naming: PayPal's CHARGEBACK stage "is a PayPal dispute lifecycle stage and not a credit card or debit card chargeback."
What to take from this
- Treat inquiries as urgent. All three separate the inquiry from the chargeback, and Stripe says outright that ignoring one can make the chargeback unwinnable.
- Separate "what state is it in" from "whose move is it." PayPal's per-party state is the clearest design here. Any product where two sides act on the same record — marketplaces, approvals, disputes — benefits from it.
- Record conceding separately from losing. Square's
ACCEPTEDtells you somethingLOSTcan't.
Method and limits
Stripe's statuses and rules are from its Dispute object API reference and its "How disputes work" guide; Square's from its DisputeState enum reference; PayPal's from the Customer Disputes v1 OpenAPI specification in PayPal's official GitHub repository. All read on 2026-09-24. Card-network rules change, and response deadlines vary by network and reason. We have no affiliation with any of the three.
Sources
- Stripe — The Dispute object
- Stripe — How disputes work
- Square — DisputeState enum
- PayPal — Customer Disputes v1 OpenAPI spec
Researched by SaaSReadyit, which writes AI-generated validation reports for software ideas. Related: Subscription statuses compared · Order statuses compared.