Disputes and Fraud

    Learn what disputes are, how the process works, and how to prevent them from happening.

    A dispute (also known as a chargeback) occurs when a cardholder questions your payment with their card issuer. The issuer creates a formal dispute which immediately reverses the payment. The payment amount, along with a separate $15.00 dispute fee (for users in the United States) levied by the card network, is then deducted from your account balance.

    There is a dispute resolution process through which you can respond and submit evidence to make your case that the payment was valid. If the dispute is found in your favor, the disputed amount and fee is returned back to you. If a dispute is upheld, the card issuer’s decision is final and the cardholder’s payment remains refunded.

    To help our users submit the best possible response, Stripe provides a guided process within the Dashboard. This allows you to provide all of the necessary text and images you feel are appropriate.

    Receiving a dispute

    When a dispute occurs, Stripe receives a notification of the disputed payment and sends you an automated email about it. A Dispute object is created with the status needs_response. If your integration is set up to receive webhooks, Stripe also sends a charge.dispute.created event.

    Disputes can be found in the Dashboard. Each one includes all relevant information about the payment being disputed and the reason the cardholder reported to the card issuer. When you receive a dispute, you have the opportunity to respond to it and submit the appropriate evidence or accept it.

    Disputes are an unfortunate part of accepting payments online, but they are not typically common. Disputes and the reasons for them (e.g., fraud) are ultimately your responsibility so you must take the appropriate actions to prevent and respond to disputes.

    If the original payment was converted into your account’s default currency (e.g., a USD payment converted into EUR and deposited into your account), the disputed amount is converted back to the payment’s original currency (e.g., EUR is withdrawn from your account and converted back to USD).

    Dispute fees

    When a cardholder disputes a payment you’ve processed, you are charged a $15.00 dispute fee (for users in the United States) by the card network. This amount is withdrawn from your account balance along with the disputed amount.

    If you submit evidence against the dispute and it is found in your favor, Stripe reimburses you for the dispute fee. The card network does not actually refund the dispute fee but we feel our users should not be financially impacted by an invalid dispute.

    If a dispute is accepted or unsuccessfully challenged, you are still responsible for both the dispute fee and the Stripe processing fee on the original payment. It’s important that you take steps to best prevent against disputes, and to submit as much information as possible in a response.

    Responding to a dispute

    We recommend most users respond within the Dashboard. The Dashboard guides you through the submission process, step-by-step—automatically formatting the information you provide. You’re asked to provide different pieces of evidence and upload any necessary files, depending on the dispute type. All this works to increase the likelihood of a dispute being found in your favor.

    If you receive a dispute, you may want to first get in touch with the customer and discuss it before you respond. It’s possible that they simply did not recognize or remember the transaction when they viewed their statement. If an email address was provided to Stripe when creating the payment (either to send an email receipt or if it was created using a Customer object), click Email customer to create a new email that contains information about the dispute.

    For disputes that are the result of such a misunderstanding, your customer can tell their card issuer that they no longer dispute the transaction. It’s still important that you submit evidence to show that the payment was valid, however, and to ensure that the card issuer knows you are not accepting the dispute.

    In cases where you agree that the customer should keep the disputed funds, you should accept the dispute rather than ask the cardholder to withdraw the dispute for a regular refund. Remember, the card networks do not consider how many disputes you win or lose, only how many you receive.

    Clicking Submit evidence begins the response process and provides additional information about the type of dispute and what steps you should take. If you have any information you think the card issuer might want to see, you should submit it as dispute evidence.

    Starting the dispute process.

    Submitting evidence.

    There is a limited period of time that disputes can be responded to (usually 7–21 days)—the amount of time available is provided within the dispute information. After that time has passed, no further responses or evidence can be submitted. Once you have submitted a response, it generally takes the card issuer 60–75 days to reach a final decision.

    Once you’ve submitted a response, the dispute’s status is changed to under_review. If a dispute is found in your favor, this changes to won. If the card issuer upholds the cardholder’s dispute, the status changes to lost. Once a dispute is closed, we send you an email with information about the outcome and a charge.dispute.closed webhook event.

    How evidence submission works

    There are multiple parties involved in the dispute process. Although Stripe is not involved in deciding the outcome of the dispute, we play a role by conveying your evidence to our financial partners. In turn, our financial partners are obligated to pass your evidence on to the card issuers if they deem it sufficient. These are necessary steps in the evidence submission process.

    The acquirer reviews the evidence and decides whether it meets the card brand’s requirements to provide a potential remedy for the dispute. If it does not, the case is closed. If it presents a potential remedy, the acquirer forwards evidence to the card issuer. The issuer reviews the evidence and makes a final decision, which we communicate to you through the Stripe Dashboard. As the card issuer has final say, the acquirer’s decision to forward the evidence does not, by itself, guarantee a resolution in your favor.

    Refer to the evidence submission guide if you regularly lose disputes or find that your evidence isn’t relayed to the card issuer. You can also contact us with examples of your disputes so we can help ensure that your evidence is sufficient.

    What to submit

    The evidence you submit should be appropriate to the reason for the dispute. Web logs, email communications, shipment tracking numbers and delivery confirmation, proof of prior refunds or replacement shipments, etc., can all be helpful. For example, a response to a dispute with the reason “product not received” should have evidence that includes shipping information and any screenshots of package tracking. Stripe electronically submits this information to your cardholder’s issuer and notifies you of any updates to the dispute.

    When you respond to a dispute, Stripe automatically formats the evidence you provide into a format accepted by card issuers. This includes all mandatory payment information (e.g., amount, date of payment), CVC or postal code verification results (if available), and any additional information or documents that you provide.

    You can prepare a suitable response that has the most relevant evidence using the following best practices (click on each one to expand it and show more information). These can help ensure you have the greatest possible chance of a dispute being found in your favor—and your funds returned.

    Keep your evidence relevant and to the point

    Card issuers review thousands of dispute responses every day. A long introduction about your product or company, complaint about the customer, or the unfairness of the dispute isn’t going to make your responses more compelling. Instead, provide only the facts surrounding the original purchase, using a neutral and professional tone. For example:

    Jenny Rosen purchased X from our company on [date] using their Visa credit card. The customer agreed to our terms of service and authorized this transaction. We shipped the product on [date] to the address provided by the customer, and it was delivered on [date].

    You may want to take some time to investigate the dispute while collecting evidence to submit. For instance, you can take a look at Google Maps and Street View to see where your delivery took place, or check social media like Facebook or LinkedIn to help establish the customer as the legitimate cardholder.

    Many merchants also include email correspondence or texts with the customer, but it’s important to be aware that these exchanges do not verify identity. If you’re going to include them, make sure only the relevant information is included (e.g., if you’re going to include a long email thread, redact any text that is only quoting previous emails).

    Your evidence should be factual, professional, and concise. While providing little evidence is a problem, overwhelming the card issuer with unnecessary information can have the same effect.

    Provide clear and accurate evidence

    The bank professionals handling the review of your response are going to decide fairly quickly whether or not the evidence is sufficient to refute the cardholder’s claims. You can make it easier for important information to be noticed by circling or calling out important points, keeping things brief wherever possible. For responses with multiple pieces of evidence, you can also include a table of contents and give each uploaded image/PDF an attachment number or letter. A lengthy Terms of Service or refund policy that has the relevant information highlighted can make your case much clearer.

    Card issuers do not follow any links provided in a response. Instead, you must include a clear screenshot of your terms or policies as they appear during checkout or on your site if they are an important part of your defense (e.g., a customer disputed a subscription but there is a minimum contract term that must be adhered to).

    Include proof of customer authorization

    Fraudulent disputes account for over half of all disputes. Proving the legitimate cardholder was aware of and authorized the transaction being disputed is vitally important in such cases. Any data that shows proof of this is a standard part of a compelling response, such as:

    • AVS (Address Verification System) matches
    • CVC (Card Verification Code) confirmations
    • Signed receipts or contracts
    • IP address that matches the cardholder's verified billing address

    Stripe always includes any AVS/CVC results as well as the purchase IP (if available from your Stripe integration), but if you have any other evidence of authorization be sure to include it.

    Include proof of service or delivery

    In addition to fraudulent disputes, claims from cardholders that products or services never arrived or happened, were defective or unsatisfactory, or not as described are also potential dispute reasons. Assuming that all is well on your side (the product was not faulty, was as described, was shipped and delivered prior to the dispute date) then you’ll want to provide proof of service or delivery.

    For a merchandise purchase, provide proof of shipment and delivery that includes the full delivery address, not just the city and ZIP code. Choosing a carrier or delivery method that requires a signature on delivery provides the best defense against product not received or fraudulent disputes where you’ve shipped to a verified billing address that has passed AVS and ZIP code verification.

    If your customer provides a “Ship To” name that differs from their own (e.g., gift purchase), be prepared to provide documentation explaining why they are different. While it’s common practice to purchase and ship to an address that doesn’t match the card’s verified billing address, this is an additional dispute risk.

    If your business provides digital goods, include evidence such as an IP address or system log proving the customer downloaded the content or used your software or service.

    Include a copy of your terms of service and refund policy

    When it comes to disputes, fine print matters. Providing proof that your customer agreed to and understood your terms of service at checkout, or did not follow your policies when it comes to returns or refunds is critical. A clean screenshot of how your terms of service or other policies are presented during checkout is an important addition to your evidence—it is not enough to simply include a text copy of these.

    Formatting documents and images to upload

    Dispute evidence is often transmitted through several legacy systems and most card issuers are still utilizing paper faxing. Before sending your response, ensure that any text or images are clear and large enough to show up clearly in a black and white fax transmission.

    While you can zoom in on your electronic documents, the card issuer will not be able to do so. Any evidence that is too small to transmit clearly won’t be considered by the card issuer, so it’s better to have large, full-page images than try to fit too many on one page.

    When submitting documents or images as evidence, use the following recommendations to make sure they can remain legible:

    • Use a 12 point font or larger
    • Ensure that documents are U.S. Letter or A4 size, in portrait orientation (screenshots can still be added to your documents in landscape orientation)
    • Use bold text, callouts, or arrows to draw attention to pertinent information
    • Avoid using color highlighting

    When uploading screenshots:

    • Crop the screenshot to the area of interest and circle any key components (e.g., delivery confirmation or signature)
    • Use the text fields in the dispute evidence form to describe what the image contains and how it supports your response

    Any illegible text or data that is submitted with a response will be considered incomplete by the card issuer and not reviewed.

    Responding to disputes using the API

    While we recommend most users respond to disputes through the Dashboard, dispute information can be also managed using the API. You can retrieve a Dispute object to find out more about it:

    curl https://api.stripe.com/v1/disputes/dp_cbX6KoLnfRh5ueYhBMNJ \
      -u sk_test_4eC39HqLyjWDarjtT1zdp7dc:
    # Set your secret key: remember to change this to your live secret key in production
    # See your keys here: https://dashboard.stripe.com/account/apikeys
    Stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc'
    dispute = Stripe::Dispute.retrieve('dp_cbX6KoLnfRh5ueYhBMNJ')
    # Set your secret key: remember to change this to your live secret key in production
    # See your keys here: https://dashboard.stripe.com/account/apikeys
    stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc'
    dispute = stripe.Dispute.retrieve('dp_cbX6KoLnfRh5ueYhBMNJ')
    // Set your secret key: remember to change this to your live secret key in production
    // See your keys here: https://dashboard.stripe.com/account/apikeys
    $dispute = \Stripe\Dispute::retrieve('dp_cbX6KoLnfRh5ueYhBMNJ');
    // Set your secret key: remember to change this to your live secret key in production
    // See your keys here: https://dashboard.stripe.com/account/apikeys
    Stripe.apiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc";
    Dispute dispute = Dispute.retrieve("dp_cbX6KoLnfRh5ueYhBMNJ");
    // Set your secret key: remember to change this to your live secret key in production
    // See your keys here: https://dashboard.stripe.com/account/apikeys
    const stripe = require('stripe')('sk_test_4eC39HqLyjWDarjtT1zdp7dc');
    (async () => {
      const dispute = await stripe.disputes.retrieve('dp_cbX6KoLnfRh5ueYhBMNJ')
    // Set your secret key: remember to change this to your live secret key in production
    // See your keys here: https://dashboard.stripe.com/account/apikeys
    stripe.Key = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"
    dis, _ := dispute.Get("dp_cbX6KoLnfRh5ueYhBMNJ", nil)
    // Set your secret key: remember to change this to your live secret key in production
    // See your keys here: https://dashboard.stripe.com/account/apikeys
    StripeConfiguration.ApiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc";
    var service = new DisputeService();
    Dispute dispute = service.Get("dp_cbX6KoLnfRh5ueYhBMNJ");

    The response contains information about the dispute and any response or evidence that has already been provided.

      object: "dispute"
      id: "dp_cbX6KoLnfRh5ueYhBMNJ",
      charge: "ch_5Q4BjL06oPWwho",
      evidence: {
        customer_name: "Jane Austen",
        customer_purchase_ip: "",
        product_description: "Widget ABC, color: red",
        shipping_tracking_number: "Z01234567890",
        uncategorized_text: "Additional notes and comments",
      evidence_details: {
        due_by: 1403047735,
        submission_count: 1

    You update the Dispute object and submit structured evidence within the evidence parameter.

    curl https://api.stripe.com/v1/disputes/dp_cbX6KoLnfRh5ueYhBMNJ \
      -u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \
      -d "evidence[customer_email_address]=email@example.com" \
      -d "evidence[shipping_date]=2019-08-17" \
      -d "evidence[shipping_documentation]=file_WMk8tU7ZnHwPqjYenBp3"
    # Set your secret key: remember to change this to your live secret key in production
    # See your keys here: https://dashboard.stripe.com/account/apikeys
    Stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc'
    Stripe::Dispute.update('dp_cbX6KoLnfRh5ueYhBMNJ', {
        evidence: {
          customer_email_address: 'email@example.com',
          shipping_date: '2019-08-17',
          shipping_documentation: 'file_WMk8tU7ZnHwPqjYenBp3',
    # Set your secret key: remember to change this to your live secret key in production
    # See your keys here: https://dashboard.stripe.com/account/apikeys
    stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc'
        'customer_email_address': 'email@example.com',
        'shipping_date': '2019-08-17',
        'shipping_documentation': 'file_WMk8tU7ZnHwPqjYenBp3',
    // Set your secret key: remember to change this to your live secret key in production
    // See your keys here: https://dashboard.stripe.com/account/apikeys
    \Stripe\Dispute::update('dp_cbX6KoLnfRh5ueYhBMNJ', [
        'evidence' => [
            'customer_email_address' => 'email@example.com',
            'shipping_date' => '2019-08-17',
            'shipping_documentation' => 'file_WMk8tU7ZnHwPqjYenBp3',
    // Set your secret key: remember to change this to your live secret key in production
    // See your keys here: https://dashboard.stripe.com/account/apikeys
    Stripe.apiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc";
    Dispute dispute = Dispute.retrieve("dp_cbX6KoLnfRh5ueYhBMNJ");
    Map<String, Object> evidenceParams = new HashMap<>();
    params.put("customer_email_address", "email@example.com");
    params.put("shipping_date", "2019-08-17");
    params.put("shipping_documentation", "file_WMk8tU7ZnHwPqjYenBp3");
    Map<String, Object> params = new HashMap<>();
    params.put("evidence", evidenceParams);
    // Set your secret key: remember to change this to your live secret key in production
    // See your keys here: https://dashboard.stripe.com/account/apikeys
    const stripe = require('stripe')('sk_test_4eC39HqLyjWDarjtT1zdp7dc');
    stripe.disputes.update('dp_cbX6KoLnfRh5ueYhBMNJ', {
      evidence: {
        customer_email_address: 'email@example.com',
        shipping_date: '2019-08-17',
        shipping_documentation: 'file_WMk8tU7ZnHwPqjYenBp3',
    // Set your secret key: remember to change this to your live secret key in production
    // See your keys here: https://dashboard.stripe.com/account/apikeys
    stripe.Key = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"
    params := &stripe.DisputeParams{
        Evidence: &stripe.DisputeEvidenceParams{
            CustomerEmailAddress: stripe.String("email@example.com"),
            ShippingDate: stripe.String("2019-08-17"),
            ShippingDocumentation: stripe.String"file_WMk8tU7ZnHwPqjYenBp3"),
    dis, _ := dispute.Update("dp_cbX6KoLnfRh5ueYhBMNJ", params)
    // Set your secret key: remember to change this to your live secret key in production
    // See your keys here: https://dashboard.stripe.com/account/apikeys
    StripeConfiguration.ApiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc";
    var options = new DisputeUpdateOptions {
        Evidence = new DisputeEvidenceOptions {
            CustomerEmailAddress = "email@example.com",
            ShippingDate = "2019-08-17",
            ServiceDocumentationFileId = "file_WMk8tU7ZnHwPqjYenBp3",
    var service = new DisputeService();
    Dispute dispute = service.Update("dp_cbX6KoLnfRh5ueYhBMNJ", options);

    All available fields for the evidence parameter are found by looking at the Dispute evidence object. There are two types of evidence you can provide, depending on the field being updated:

    • Text-based evidence, such as customer_email and service_date. These types of evidence take a string of text.
    • File-based evidence, such as service_documentation and customer_communication. These take a file_upload object ID.

    You can provide documents or images (e.g., a contract or screenshot) as part of dispute evidence using the File Upload API. A document is first uploaded with the purpose of dispute_evidence, which generates a File_upload object which you can use when submitting evidence. Before uploading a file as dispute evidence, make sure that it meets our recommendations to ensure readability is preserved.

    If you’re only interested in submitting a single file or a large amount of plaintext as evidence, use uncategorized_text or uncategorized_file. However, we strongly recommend filling in as many fields as possible so you have the best chance at overturning a dispute.

    Accepting a dispute

    You can accept a dispute, effectively agreeing with the cardholder that the dispute was valid for the reason given. Accepting a dispute is not considered an admission of wrongdoing and is sometimes the most appropriate response. The customer has already received their refund via the dispute process—if you agree they should have been refunded, it’s best to accept the dispute.

    You should always perform this action if you do not intend to respond and submit evidence. Although accepting disputes does not negatively affect your business any further, it should not be seen as an alternative to an effective refund or returns policy. Dispute activity is calculated based upon the disputes received, not won or lost, so dispute prevention is critical.

    Withdrawing a dispute

    Some customers may dispute a payment in error, not realizing it was legitimate. They can contact their card issuer and request the dispute be withdrawn. Even if your customer does this, the process involves a rigid series of formal communications between banking entities that still results in a lengthy resolution time.

    Providing suitable evidence for the dispute reason code is always the best way to ensure that the dispute is reviewed appropriately during the active chargeback process. This way, if your customer cannot withdraw the dispute, you have submitted evidence suitable for the dispute reason. This might be sufficient to overturn the chargeback even if the cardholder does not withdraw.

    If you do not provide evidence addressing the dispute reason code, you might lose the case even if your customer has been rebilled for the transaction. Simply stating that your customer is withdrawing, without also providing evidence specific to the dispute reason, is not considered a valid dispute response.

    It may be more efficient—and provide a better customer experience—–to accept certain disputes and charge the customer again, if appropriate. Even when a dispute is withdrawn, it usually takes approximately 75 days to be finalized. Remember, it doesn’t matter to the card networks whether you win or lose a dispute; what matters is how many disputes a business receives, regardless of how many disputes they win.

    Due to the strictly defined chargeback process, it’s common for a case to remain under review even when your customer tells you they’ve withdrawn the dispute and have already been rebilled by their card issuer.

    Refunding a withdrawn dispute

    If your customer is willing to withdraw a dispute so that you can issue a refund, it can still take 60–75 days for the dispute to be closed and the funds returned. Only when this happens can a refund be made. Since the dispute itself has already refunded the customer, accepting such disputes provides a better customer experience than trying to go through the lengthy process of withdrawal and dispute finalization.

    In rare circumstances, Stripe can return the disputed amount before the dispute case is closed. When a dispute is withdrawn, the issuer rebills your customer and provides them with written confirmation (e.g., letter or email) stating that the dispute has been closed. If you can obtain a copy of either the written confirmation or clear evidence of rebilling, let us know and we may be able to close the dispute sooner. Even if your customer withdraws the dispute, you must still submit evidence refuting the reason for it.

    Dispute activity and dispute rate

    The Stripe dashboard displays two different calculations to measure your disputes: dispute activity and dispute rate.

    • Dispute activity represents the percentage of disputes on successful payments by dispute date.

    • Dispute rate represents the percentage of disputes on successful payments by charge date.

    The two calculations are best understood with an example. Let’s say you processed 1,000 payments in a given week. In that same week, you also received 10 disputes.

    Only 3 of those disputes were from the 1,000 payments processed that week. The other 7 disputes were from payments that were processed at an earlier date. (Because disputes take a while to come in, this delay is very common.)

    The dispute activity for this week would be 1% (10 disputes on 1,000 payments). The dispute rate for this week would be 0.3% (3 disputes on 1,000 payments)

    Dispute activity

    Dispute activity and dispute rate serve different purposes. Dispute and card fraud monitoring programs use the dispute activity calculation. If your business’s dispute activity exceeds the thresholds set by the card brands, you might be subject to fines. Your account’s dispute activity is available in the Dashboard’s Analytics section.

    Dispute rate

    The dispute rate is a more accurate representation of fraud and disputes for your business, because it shows which actual payments were disputed. For example, you could use the dispute rate to see a particular sale that resulted in more disputes than usual, or to pick out fraud attack patterns.

    Because cardholders can dispute a charge up to 90 days after a payment was made (and sometimes even later), the dispute rate is accurate only for payments that are 90 days or older. We show this calculation on the Radar for Fraud Teams overview page.

    Excessive dispute activity

    Each card network (e.g., Visa, Mastercard, American Express) maintains a series of dispute and card fraud monitoring programs that apply to businesses operating with high dispute activity. Dispute activity above 0.75% is generally considered excessive, although this varies by card network. Excessive dispute activity not only affects your ability to process with Stripe, but with other processors as well—and can even result in fines from the card networks.

    Should we ever see higher dispute activity or a significant increase in potentially fraudulent activity on your account, we’ll proactively reach out to see how we can help.

    Predicted dispute activity

    In some cases, our machine learning models can predict if your account might be in danger of excessive dispute activity at a point in the future. If that happens, we’ll alert you so that you can take proactive steps to identify and prevent disputes and fraud.

    Though we can predict dispute trends with some confidence, we cannot predict which particular payments will be disputed. Keep in mind that we cannot be certain of the predicted rate—your actual dispute activity depends upon any further disputes received.

    Early fraud warnings

    Early fraud warnings (EFWs) such as Visa TC40 reports and Mastercard SAFE (System to Avoid Fraud Effectively) reports are notices generated by card issuers to flag payments that are suspected to be fraudulent. An EFW is created when a cardholder lodges a claim of fraud with their issuing bank and occurs before an official chargeback.

    EFWs do not officially require any action or response from you as a merchant. However, they are good indicators of impending disputes—82% of payments that receive EFWs eventually get disputed. Since there’s a fee for disputes ($15) and disputes can count for certain chargeback monitoring programs you may want to proactively prevent disputes by immediately refunding payments that receive an EFW. You can listen for EFW webhooks using our API.

    Inquiries and retrievals

    Some card issuers may begin to investigate a payment before creating a formal dispute, and request further information about it. This is known as either an “inquiry” or “retrieval”, depending on the card brand. Unlike a formal dispute, no funds have been withdrawn and the payment it relates to can still be refunded. Inquiries are common for American Express payments, as are retrievals for Discover cards. Mastercard and Visa almost always create a full dispute immediately.

    Inquiries and retrievals still appear as disputed payments in the Dashboard. To avoid it becoming a formal dispute, you should submit any required evidence or refund the payment in full. This marks the inquiry or retrieval as resolved and no dispute fee is incurred.

    Many inquiries or retrievals are the result of the cardholder not recognizing the transaction, and providing basic info about your business and what was purchased is usually sufficient to close the case. However, if the cardholder refutes your evidence, or the card issuer considers it insufficient, the card issuer might escalate the inquiry or retrieval into a formal dispute and reclaim the cardholder’s funds. It’s important to resolve the case while it is still in the inquiry or retrieval stage.

    Regardless of which option you choose, it’s always best to reach out to your customer first to get more information about the reason for the inquiry or retrieval. Failure to respond to an inquiry or retrieval with sufficient evidence may lead to a full dispute that cannot be remedied. Always respond to inquiries and retrievals as if they were formal disputes, and make every effort to resolve issues with your customer during this stage.

    The status of a Dispute object relating to an inquiry or retrieval can be one of the following:

    • warning_needs_response, no evidence has yet been provided for the dispute
    • warning_under_review, evidence has been submitted to the card issuer and it is under review
    • warning_closed, the inquiry or retrieval has timed out and did not escalate into a full dispute

    Disputes on partially refunded payments

    While uncommon, a payment can be disputed for the full amount even if a partial refund has already been made (e.g., a refund of a smaller amount that has been agreed upon). We understand this can be frustrating as it leaves you responsible for the partial refund you’ve already processed and the full amount disputed, though card issuers are very willing to rectify this situation.

    Even if you plan to accept the unrefunded portion of the dispute, it’s important for you to provide evidence of the partial refund in your response. This should include the amount and date of the refund, and even a screenshot of the refund information from your Dashboard (this is known as a “credit issued” response).

    In most cases, the card issuer cancels the original dispute and then creates a separate one for the corrected amount. On Stripe, the existing dispute is used to track the overall outcome. If the dispute is fully resolved in your favor, the entire amount is returned to you. If it’s not, only the partially refunded amount is returned. In this case, the dispute’s status is set to lost, and in the Dashboard, the dispute is marked as “partially won”.

    Disputed amount

    The amount of a dispute can sometimes exceed the original charge amount. In certain cases, this discrepancy is due to currency conversion. It can also occur when the card’s issuer bundles multiple charges into a single chargeback. This bundling discrepancy is more common for regular, recurring charges, or multiple charges of small amounts—usually less than $50 USD.

    If you receive a dispute for more than the original charge amount, and currency conversion is not a factor: you should review all payments made to your business by the same customer or card, to determine whether more than one charge might be included in the disputed amount. If you are unable to determine why a dispute is for more than the original charge, you can contact support to ask for more details.

    Disputes on Connect platforms

    If you are using Connect and Custom or Express accounts, your platform is ultimately responsible for any disputes that occur. For payments created on Standard accounts using direct charges, those accounts are responsible for disputes and any funds are withdrawn from their balance—not the platform.

    In the event of a dispute where a payment was made directly on an Express or Custom account, its balance is debited. If this fails, the platform is ultimately liable for the disputed amount and associated fee. If the connected account turns out to be fraudulent, it is unlikely our attempt to debit the card issuer account will be successful and the required amount and fee is then deducted from the platform.

    If the disputed payment was created through the platform using destination charges, the platform account is automatically debited for the disputed amount and fee. When this happens, the platform can attempt to recover funds from the connected account involved by reversing the transfer either through the Dashboard or by creating a transfer reversal.

    If there is a negative balance on the connected account, Stripe attempts to debit its card issuer account only if debit_negative_balances is set to true.

    Next steps

    Congrats! You can now manage and respond to disputes. You may want to learn more about the different reasons for disputes or move on to related subjects:

    If you require assistance with a dispute, please contact Stripe support.
    Was this page helpful?

    Thank you for helping improve Stripe's documentation. If you need help or have any questions, please consider contacting support.


    We're always happy to help with code or other questions you might have. Search our documentation, contact support, or connect with our sales team. You can also chat live with other developers in #stripe on freenode.

    On this page