Refund and dispute resolution
Chargeback and refund request journey from initiation to resolution.
Refunds and chargebacks are business realities, but the process to handle them is rarely documented. This template maps the two entry points — a customer requesting a refund directly versus a chargeback initiated by their bank — and the decisions and actions unique to each: refund requests go through a validity check and customer contact; chargebacks trigger evidence gathering and bank communication. Both paths funnel to an outcome: approval or denial, win or loss.
The diagram distinguishes the two flows because they have different SLAs (refunds might have a 30-day window, chargebacks come with a 10-day response deadline) and require different teams (customer service for refunds, finance for chargebacks, legal for disputes). Once your team can see the split, you can measure how many disputes you lose, where evidence gaps are, and whether your refund policy needs tightening.
When to use this template
- Finance and customer service playbooks — post this in your refund policy so finance and support know the exact steps, deadlines, and escalation path for each dispute type.
- Chargeback metrics and prevention — measure chargeback rate, average time-to-evidence-submission, and dispute-win ratio. A rising chargeback rate indicates you need tighter refund eligibility or better proof-of-delivery.
- Scaling customer success — as your customer base grows, a documented refund process saves customer service from re-inventing the policy on every request, and prevents losing disputes due to missed deadlines.
How to adapt it
Customize the flow for your specific products and policies:
- Add refund window checks — after "Reason valid?", add a decision "Within refund window?" that blocks very old requests before contacting the customer.
- Split by product type — subscriptions, one-time purchases, and usage-based billing might have different refund eligibility rules; fork the flow early to handle each separately.
- Add escalation thresholds — if a refund exceeds $X, route to a manager for approval before processing; if a chargeback comes from a repeat disputer, route to fraud review.
The visual editor lets you add branches and loops without writing YAML — trace through your exact policy visually, then export the clean Mermaid code for your ops documentation.
Mermaid code
Copy it anywhere Mermaid is supported — GitHub, Notion, or your docs.
flowchart TD
A[Refund request or chargeback received] --> B{Type?}
B -->|Refund request| C[Contact customer]
B -->|Chargeback| D[Notify acquiring bank]
C --> E{Reason valid?}
E -->|No| F[Deny refund]
E -->|Yes| G[Process refund]
D --> H{Provide evidence?}
H -->|Yes| I[Submit evidence to bank]
H -->|No| J[Lose dispute]
F --> K[Send denial]
G --> L[Issue payment]
I --> M{Bank rules?}
M -->|Yes| N[Dispute won]
M -->|No| J
J --> O[Chargeback deducted]
K --> P[End]
L --> P
N --> P
O --> P
Frequently asked questions
- What is the difference between a refund and a chargeback?
- A refund is a customer request to your business asking for their money back — you can approve, deny, or negotiate. A chargeback is the customer's bank or card issuer reversing the charge without asking permission — you only get a chance to respond with evidence after the fact. Chargebacks carry higher fees and damage your chargeback ratio.
- Why does this diagram show 'Deny refund' as an option?
- Many SaaS and service businesses decline refunds if the customer used the service or the request comes after a refund window closed. The diagram models a decision — refunds aren't automatic. Showing that path makes the policy explicit and gives customer service agents a clear decision tree.
- What evidence should we submit to the bank in a chargeback dispute?
- Transaction IDs, customer agreement and terms of service they accepted, delivery/download receipts if digital, proof of service delivery (logs, API calls showing usage), and any communication from the customer acknowledging the purchase. The more contemporaneous records you have, the better your odds of winning the dispute.
- How do I extend this for different product types or regions?
- Add branches after 'Type?' to handle subscriptions, one-time purchases, or digital goods separately — each might have different refund windows. Or add a region check that routes EU transactions through their different chargeback rules. The visual editor lets you fork the flow without writing syntax.
Related templates
SLA response state machine
Track support ticket states from submission through response and resolution SLAs.
Database backup and recovery process
Disaster recovery decision flow from incident to restore.
Deployment rollback decision tree
Incident detection, severity assessment, and rollback trigger criteria.