How to use Crisp conversations as chargeback evidence
How to turn Crisp chat and email conversations into dispute evidence: transcripts, the REST API, matching the customer, and building a file issuers will read.
Crisp often holds the most direct record of what a customer knew and did: the chat where they asked how to export their data, the email where they were told how renewals work, the conversation where they said the product was “exactly what we needed”. When the same customer disputes a charge, those words can carry your response, if you can get them out cleanly and in time.
This guide covers how to extract Crisp conversations, which ones help for which dispute reason, and how to format them for a dispute response on Stripe. It relies on Crisp’s help center articles on chat transcripts and the Stripe integration, the Crisp REST API reference, and Stripe’s dispute evidence best practices, dispute categories and How disputes work (all accessed November 2026).
What Stripe asks for
Stripe’s dispute evidence has a customer communication field for messages relevant to the case. From Stripe’s best practices:
- Combine all communication into one file; there is one upload per evidence type.
- Include only relevant excerpts, not whole threads.
- State clearly whether the customer tried to resolve the issue with you before disputing.
- Do not rely on links, audio or video; banks will not review external content.
- You submit once; nothing can be added afterwards.
- Emails and chats support your case but do not verify the customer’s identity, so in fraud disputes they need to be paired with other records.
Which conversations help
| Stripe dispute category | Useful Crisp messages |
|---|---|
| Subscription canceled | Chats where the customer asked about plans, billing or renewal and was told how to cancel; no cancellation request on record; activity after the date they say they cancelled |
| Product not received | How-to questions, feature requests and thanks that show the customer used the service |
| Product unacceptable | Your attempts to fix the problem and the customer’s answers |
| Credit not processed | Messages where a refund was promised, refused or already sent, with the policy explained |
| Fraudulent | A conversation from the cardholder about the purchase before the dispute |
For cancellation disputes, Stripe’s category guidance also points to renewal notices and evidence of continued use after the claimed cancellation date, plus any message showing the customer was told about non-refundable terms or offered an alternative.
Getting conversations out of Crisp
From the inbox
Crisp’s transcript article describes two manual options from a conversation’s action menu, under Transcript:
- Send a transcript by email, to yourself or another address.
- Download a local copy.
Crisp also states that conversations cannot be exported as a native CSV from the app; bulk exports go through the API or a migration tool.
A note on automatic transcripts: Crisp can email users a transcript of their conversation, controlled by the “Email users transcripts of conversations” setting under Email Settings. If that setting is on, the customer received a copy of the conversation. When it is relevant (for example, a conversation in which cancellation terms were explained), it is worth mentioning that the customer was sent the transcript, if you can confirm it for that conversation.
Through the API
The REST API gives you what you need to automate this:
- List the conversations linked to a contact, with a route that accepts the contact’s email in place of its ID:
GET /v1/website/{website_id}/people/conversations/{people_id}/list/{page_number}. - Fetch a conversation’s messages with
GET /v1/website/{website_id}/conversation/{session_id}/messages. It returns the most recent batch by default; page back with thetimestamp_beforeparameter to get older messages. - Read the visitor’s email from the conversation metadata.
Each message has a sender and a timestamp, which is what makes a quote usable as evidence. Your API token needs the matching scopes (Crisp lists them per route).
Matching the conversation to the disputed customer
A Crisp contact is identified by email when the visitor gave one, or when your site sets it through the chatbox SDK. The Stripe customer has its own email. The two often match, but not always: the customer may chat from a work address and pay with a personal one, or a colleague may write on their behalf.
Crisp’s Stripe integration shows the customer’s subscription status, billing history and payments in the conversation sidebar, read-only. Changes to payments or subscriptions are made in Stripe. When the sidebar shows the right Stripe customer, that is a good sign the match is correct. When it shows nothing, check by hand before you use the conversation. An issuer reading a conversation from the wrong person stops trusting the rest of the file.
Building the file
- Read the dispute. Note the reason and the evidence due date (
evidence_details.due_byon Stripe’s Dispute object). - Collect the conversations for that customer from signup, or from the last renewal, to the dispute date.
- Select the messages that answer the dispute reason. Two to five excerpts are usually enough.
- Quote them with date, time, channel and author, for example: “2026-08-03 16:20 UTC, chat, customer (sam@example.com): …” Keep the customer’s words exactly as written.
- Add a two-sentence summary at the top: what the messages show, and whether the customer contacted support before disputing.
- Merge into one PDF with your other communication (renewal reminders, cancellation confirmations), in date order.
- Pair with records that conversations cannot prove alone: login and usage logs, cancellation policy, refund policy.
What to avoid
- Internal notes. Anything your team wrote for itself rather than to the customer is not customer communication; leave it out.
- Chatbot messages without context. If an automated message explained renewal terms, say it was automated and when it was shown.
- Refunding during the dispute. Stripe’s How disputes work page says you cannot issue a refund outside the dispute process while a dispute is open.
- Arguing with the customer in the chat. Stripe recommends keeping a record of communication during the dispute. Assume an issuer may read it.
Preventing the next dispute from Crisp
Many disputes start as a chat that did not get a clear answer. Add a segment such as billing to conversations that mention charges, refunds or cancellation (by hand, with a workflow, or with Crisp’s automatic triage, depending on your plan), and give those conversations a short response target. A customer who gets a clear answer in the chat rarely calls their bank.
Doing this with NoChurn
NoChurn’s Crisp connector is read-only: it never sends messages or changes conversations in Crisp. It reads conversations and matches them to customers by email; doubtful matches are suggested for you to confirm, never merged automatically. When a dispute opens on Stripe or Braintree, NoChurn gathers evidence automatically, including dated verbatim excerpts from Crisp conversations, cancel flow answers, emails sent and usage, and drafts a reply with AI. Nothing goes to the processor until someone on your team has reviewed it. See NoChurn + Crisp.