Stripe Dispute Inquiries and Three QuickBooks Outcomes

An inquiry is the pre-chargeback stage you can still answer, and Stripe documents two exits that cost nothing. What each of the three endings writes in...

Acodei Content Team · 9/1/2026 · 17 min read

A message arrives from Stripe about a payment you took last month. It is not a chargeback. No money has left your balance, no fee has been charged, and nothing in QuickBooks has changed. The cardholder's bank wants to know what the charge was for.

This is an inquiry, and it is the only fraud-adjacent event in Stripe that comes with a documented way out at no cost. It is also the one most likely to be ignored, because nothing has gone wrong yet and nothing is due today.

Three things can happen next. Two of them cost you nothing but a reply. The third costs you the sale, a fee that never comes back, and a reversal that reaches into a month you have already closed. Which one you get is largely up to you, and the deadline is not advertised.

If you want Stripe refunds, disputes and payouts landing in QuickBooks already keyed to the records they belong to, start a free trial.

An inquiry is a question, not a verdict

Stripe is precise about what this stage is. On how disputes work, it describes a preliminary phase that some card networks run before a formal dispute exists:

Some card networks initiate a preliminary phase before creating a formal dispute, and chargeback. Stripe calls this preliminary phase an inquiry, though these are sometimes also called a "retrieval" or a "request for information."

The alternate names matter, because your processor statements, your acquirer and your team may each use a different one for the same event. A retrieval request and a request for information are the same thing as a Stripe inquiry.

Not every network still does this. Stripe states that "American Express and Discover are the networks that most often use this phase, while Mastercard and Visa no longer use it," and notes separately that Mexico Domestic charges disputed across card brands use inquiries before a formal dispute. So on the two largest networks, this stage no longer exists, and the first thing you hear about a Visa cardholder's complaint is the chargeback itself. If you take Amex or Discover, this stage is live for you and worth having a process for.

Stripe also names the usual cause, and it is not fraud:

During the inquiry phase, the cardholder's bank requests transaction clarification, often because the cardholder doesn't recognize the transaction description.

That is a recognition problem, not a dispute about whether they got what they paid for. Which is why the cheapest fix for inquiries is upstream of all of this, in what your customers see on their statement. That is its own topic, covered in statement descriptors and disputes.

One naming trap will cost you time if nobody has warned you. Stripe uses two vocabularies for the same object depending on where you are looking:

The Dashboard payment page describes inquiries as an inquiry or dispute inquiry. In the API events summary, they're described as a warning or dispute warning to mirror the language in the API.

So the thing your bookkeeper calls an inquiry after reading the Dashboard is the thing your developer calls a warning after reading the webhook. They are looking at one object, and it is the same Stripe dispute record that a formal chargeback would use, just earlier in its life.

It is not an early fraud warning, and the difference is whether you can answer

These two events arrive in the same week, from the same general direction, and get filed in the same mental bucket. They are not the same, and the distinction fits in one sentence.

An early fraud warning is a report you cannot answer. An inquiry is a question you can.

An early fraud warning comes from issuer fraud reporting on the Visa, Mastercard and JCB networks. There is no response mechanism, no status to move through and no deadline, because nobody asked you anything. Your only lever is whether to refund pre-emptively, and the arithmetic behind that decision is a post of its own: early fraud warnings and your QuickBooks records.

An inquiry is the opposite shape. Somebody has asked a question, there is a place to put the answer, and answering can end the matter at no cost. Everything below follows from that difference.

Three statuses, and the one that is missing

The Dispute object carries a status field, and the inquiry stage has its own three values. Read Stripe's own descriptions next to the formal ones and something is conspicuously absent:

StatusStripe's description
warning_needs_responseAn inquiry that requires a response
warning_under_reviewAn inquiry under review after evidence submission
warning_closedAn inquiry closed without becoming a formal dispute
needs_responseA dispute that requires a response
under_reviewA dispute under review after evidence submission
wonA dispute resolved in the merchant's favor
lostA dispute resolved in the customer's favor
preventedA dispute that was prevented from becoming a formal chargeback

A formal dispute can be won. An inquiry cannot. There is no warning_won, and the best available terminal state is warning_closed, which Stripe defines as an inquiry that closed "without becoming a formal dispute." That is not an oversight in the API. It reflects how the networks behave, and Stripe says so directly:

If an inquiry remains open for 120 days without escalating to a chargeback, Stripe marks it as closed in both the Dashboard and API. At this point, the card network won't escalate it. Card networks don't provide an explicit "win" message for inquiries.

Sit with what that means operationally. You answer an inquiry in March. Nobody tells you the answer worked. There is no notification, no won status and no event. What happens instead is 120 days of silence, after which Stripe closes the case because the window expired.

For anyone keeping books, that is the awkward part. If your process is to flag a charge as at risk when an inquiry lands, there is no signal that clears the flag other than the passage of four months. The good outcome and the outcome where the issuer simply lost interest look identical, because they are the same outcome.

There is a small consolation in the enum. The prevented status exists for "a dispute that was prevented from becoming a formal chargeback," so a case stopped before it became a chargeback does have somewhere to land. Worth knowing when you are reading a list of dispute records and wondering why some of them never seem to resolve into anything.

Three exits, and only one of them is free

Stripe states the two ways to end an inquiry without paying for it:

You can resolve the case without incurring a dispute fee by either: Providing satisfactory evidence that answers the dispute type for the inquiry [or] Issuing a full refund.

Add the outcome you get by doing nothing useful, and there are three exits. They differ in what they cost and, just as importantly, in what they write down.

Exit one: answer with evidence. You send documentation that answers the cardholder's question. No money moves. No fee is charged. The case eventually closes on the 120-day clock. Nothing is written to your books at any point, because nothing happened to write: the original sale stands exactly as recorded.

Exit two: refund in full. You return the money. Stripe is explicit that this is a documented no-fee resolution, and it is the right call when the customer is right, or when the amount is small enough that arguing costs more than the sale. The sale is reversed and a refund record appears.

Exit three: it escalates. The inquiry becomes a formal chargeback, and the economics change completely. Stripe describes what a dispute does: the card network pulls the funds from your balance, "Stripe in turn debits your Stripe balance for the disputed amount plus a dispute fee," the funds are held for the duration, you cannot issue a refund outside the dispute process while it is open, and your dispute rate with that network increases. From that point you are in different territory entirely, covered in the accounting for Stripe chargebacks.

The gap between exit one and exit three is the whole reason to care about this stage. One costs an email. The other costs the sale, a fee, and a reversal landing in whatever month it lands in.

The partial refund is the trap

Here is the sentence in Stripe's documentation that does the most damage when nobody has read it:

Inquiries on partially refunded charges can still escalate to a chargeback.

The intuitive move on an inquiry, especially a large one, is to meet the customer halfway. Refund part of it, keep part of it, close the matter amicably. Stripe's two documented no-fee exits are providing satisfactory evidence and issuing a full refund. A partial refund is neither.

Work it through on a real charge. A 240 USD sale draws an inquiry. You refund 120 USD as a goodwill gesture and consider it handled.

  • You are 120 USD down immediately, and QuickBooks now carries a refund record for it.
  • The inquiry is still open, because a partial refund is not one of the exits.
  • If it escalates, Stripe debits the disputed amount plus a dispute fee. Stripe notes that "the disputed amount might be the full amount of the charge or a different amount," so the amount pulled is not something you control.
  • Your books now carry both a partial refund and a reversal of the original sale, for one transaction that produced 240 USD of revenue and considerably less than that in cash.

You paid for goodwill and got the chargeback anyway. The lesson is not that partial refunds are always wrong. It is that a partial refund does not close an inquiry, so if you make one, you still have to answer the inquiry. Doing both is a coherent strategy. Doing the refund instead of the answer is the expensive mistake, and it is the one people make.

What each exit writes in QuickBooks

Now the part that lands in your books, because the three exits do not produce three variations of one record. They produce nothing, a new record, and the removal of an old one.

First, the honest boundary. Nothing in Acodei's product documentation covers inquiries or the warning dispute statuses, and Acodei is not documented as reading them, surfacing them or reacting to them. That is exactly right for what an inquiry is: no money moves, so there is nothing to record. An inquiry produces no accounting entry on its own, and if you are looking for one you will not find it. What is documented is what each exit does next.

If you answer with evidence, nothing is written. No money moved, so no record is created, amended or removed. Your original sales receipt or invoice payment stays exactly as it was. This is worth stating because it is a genuine reconciliation trap: the best outcome available leaves no trace, so an inquiry you handled correctly is indistinguishable in QuickBooks from an inquiry that never happened.

If you refund in full, a record is added. A refund produces a QuickBooks Refund Receipt. Acodei detects whether a refund is full or partial by comparing the refund amount to the original charge amount, then creates the Refund Receipt against the customer, drawing from the holding account, with line items mirroring what was refunded. On a resync of an already-booked refund, the existing record is updated rather than duplicated. The original sale stays in place and the refund offsets it, so both events remain visible.

Two caveats belong with that. Refunds of invoice payments take their own branch, as do refunds interacting with post-payment credit notes, so a refund against a synced Stripe invoice is not identical to a refund of a standalone sale.

If it escalates, a record is removed. This path is different in kind, and it is the one that surprises people. A dispute reaches your balance as an adjustment balance transaction, and Acodei's documented handling of adjustments is not to post a standalone QuickBooks transaction. It reverses or adjusts the original associated entry instead.

In real-time sync that means voiding or removing the original sales receipt or payment. In daily summary mode the deduction is incorporated into that day's summary and reduces that day's net deposit. For a charge that paid a synced Stripe invoice, the linked payment is deleted in QuickBooks and the invoice reopens as unpaid.

That last outcome generates support tickets, and it is designed behaviour rather than a fault. A disputed invoice payment leaves an open receivable, because as far as your books are now concerned the customer has not paid.

One more documented detail, and it is the half people miss. If you later win the escalated dispute and Stripe returns the funds, Acodei does not automatically re-post the won dispute as a new payment. The invoice stays open, or the sale stays reversed, until somebody records the money coming back. Treat a win as a prompt to make an entry rather than as a state that repairs itself.

The three shapes side by side

Answer with evidenceFull refundEscalation to chargeback
Dispute feeNoneNoneCharged, and not returned
CashUnchangedReturned by youPulled by the network and held
QuickBooks effectNothing at allA Refund Receipt is addedThe original record is reversed, removed, or netted on the daily summary
Dispute rateUnaffectedUnaffectedIncreases
How you find out it endedYou do not, for 120 daysImmediatelyWeeks to months later

Look at the bottom row. The two good exits are the two where nobody tells you anything useful, and the bad exit is the one that announces itself. That inversion is why inquiries get neglected: the process gives you no feedback for doing it right.

Note also that the accounting effects move in opposite directions. A refund adds a row. A chargeback subtracts one. If you reconcile a month by comparing Stripe activity counts to QuickBooks activity counts, those two events push the count in opposite directions, and neither is a sync problem. Reconcile against the Stripe balance instead.

Not answering is the most expensive option available

There is a temptation to treat an unanswered inquiry as a non-event, on the theory that if the money has not moved, nothing has been lost. Stripe closes that door explicitly:

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. Unless you intend to accept financial liability, always respond to inquiries immediately, making every effort to amicably resolve issues with your customer during this stage.

Two words in that passage carry the weight. "Implicit acceptance" means silence is read as agreement, not as absence. "Unwinnable" means the chargeback you get afterwards is not a fight you can expect to win, because you have already conceded the point by not answering.

On Discover it is sharper still. Stripe notes that inquiries for Discover cards "can turn into unchallengeable disputes if you don't submit evidence for the inquiry." Not hard to win. Unchallengeable.

So the cost of ignoring an inquiry is not the inquiry. It is converting a case you could have closed for free into a chargeback you are structurally unable to defend, complete with the fee, the reversal and the dispute-rate increase.

A process that survives a real month

The decision is repeatable, so write it down once rather than re-litigating it every time one arrives.

Know whether this stage applies to you. If you do not take Amex or Discover, inquiries will be rare to nonexistent, and your first signal will be the chargeback. If you do take them, this is a live queue that needs an owner.

Route on the Dashboard label and the API status together. Somebody has to know that an inquiry, a dispute inquiry, a warning and a dispute warning are one object. Put that in the runbook so nobody triages the same case twice under two names.

Answer everything, and answer fast. Stripe's own instruction is to respond immediately unless you intend to accept liability. The reply is free and the alternative is an unwinnable chargeback, which makes this the rare decision with no genuine trade-off.

Never partially refund instead of answering. Stripe states that inquiries on partially refunded charges can still escalate. If you want to refund part of it for the customer relationship, do that and still submit the evidence.

Expect no confirmation, and set your own clock. There is no win message. If you need a closure date for an internal process, use Stripe's 120-day rule and reconcile the case at that point rather than waiting for a signal that will not arrive.

Expect the books to be silent on your best outcome. An inquiry you answered writes nothing. Do not go looking for it in QuickBooks, and do not treat its absence as evidence that the sync missed something.

Frequently asked questions

What is a Stripe dispute inquiry?

It is a preliminary phase some card networks run before a formal dispute exists. Stripe describes it as the stage where the cardholder's bank requests transaction clarification, often because the cardholder does not recognise the transaction description. No money has moved and no fee has been charged. Stripe notes the phase is also called a retrieval or a request for information.

What is the difference between an inquiry and a chargeback?

An inquiry is a request for information that you can resolve without a fee. A chargeback is the formal stage, where the network has already pulled the funds and Stripe has already debited your balance for the disputed amount plus a dispute fee. The practical difference is that an inquiry still has free exits and a chargeback does not.

Which card networks still use inquiries?

Stripe states that American Express and Discover are the networks that most often use this phase, and that Mastercard and Visa no longer use it. It also notes that Mexico Domestic charges disputed across card brands use inquiries before a formal dispute is created.

How do I resolve a Stripe inquiry without paying a fee?

Stripe documents two ways: providing satisfactory evidence that answers the dispute type for the inquiry, or issuing a full refund. Those are the only two no-fee exits it names. A partial refund is not one of them.

Can an inquiry still become a chargeback if I refunded part of the charge?

Yes, and this is the most costly misunderstanding about inquiries. Stripe states plainly that inquiries on partially refunded charges can still escalate to a chargeback. A partial refund costs you money without closing the case, so if you make one, you still need to answer the inquiry.

How do I know if I won an inquiry?

You do not, and that is by design rather than a gap in Stripe's tooling. Stripe states that card networks do not provide an explicit win message for inquiries. If an inquiry stays open for 120 days without escalating, Stripe marks it as closed in both the Dashboard and the API, and at that point the network will not escalate it. The dispute status enum reflects this: there is no warning_won, only warning_closed.

What happens if I ignore a Stripe inquiry?

Stripe says failing to respond can signal implicit acceptance of the claim to the issuer, leading to escalation to a formal and likely unwinnable chargeback. For Discover specifically, it states that inquiries can turn into unchallengeable disputes if you do not submit evidence. Ignoring an inquiry converts a free exit into a fight you cannot win.

What does an inquiry do to my QuickBooks records?

Nothing on its own. An inquiry moves no money, so there is no accounting event to record, and nothing in Acodei's product documentation describes it reading or reacting to inquiries. What reaches your books is whichever exit follows. Answering with evidence writes nothing. A full refund produces a Refund Receipt. An escalation to a chargeback arrives as an adjustment, and Acodei's documented handling of adjustments reverses or removes the original record rather than posting a new one.

If the inquiry escalates and I win the dispute, does my QuickBooks record come back?

Not automatically. Acodei does not re-post a won dispute as a new payment, so an invoice that reopened after a chargeback stays open until someone records the returned money. Plan for that entry rather than expecting the record to repair itself.

The short version

An inquiry is the one pre-dispute event you can actually answer. Stripe documents two exits that cost nothing, evidence or a full refund, and one that costs the sale plus a non-refundable fee plus a reversal in a closed month.

The failure modes are specific. A partial refund does not close it and can still escalate. Silence is read as acceptance and produces a chargeback Stripe itself calls likely unwinnable, or on Discover, unchallengeable. And there is no win message, so the correct outcome arrives as 120 days of nothing.

In your books the three exits look nothing alike. One writes nothing, one adds a Refund Receipt, and one goes back and removes the record you already had. Knowing which of the three you are steering toward is most of the value of reading the message at all.

If you would rather Stripe refunds, disputes and payouts arrived in QuickBooks already tied to the records they belong to, start a free trial or see how the pricing works.

Share

Automate your Stripe to QuickBooks sync

Save hours every month. Acodei automatically syncs your Stripe transactions, invoices, and payouts to QuickBooks Online.

How Acodei handles this in your stack

Stripe QuickBooks Integration

See how Acodei syncs Stripe payments, fees, refunds, invoices, and payouts into QuickBooks Online automatically.

Or go straight to a capability

Get more operational finance guides like this one

We will only send high-value product and finance content.