Refunds return money to customers via Stripe. Disputes (chargebacks) happen when customers contest charges with their bank—you must submit evidence to defend the charge or the bank automatically refunds them.
Issue a refund
Refunds process immediately through Stripe and update invoice status automatically. Funds return to the customer's original payment method within 5-10 business days.
Full refund
Return the entire paid amount to the customer. Invoice status changes to `refunded`.
Partial refund
Return part of the payment. Invoice status changes to `partial` if amount paid is less than total.
How to refund a payment
- Navigate to the invoice details page.
- Click the overflow menu (⋯) and select `Refund payment`.
- Choose refund amount: leave blank for full refund, or enter specific amount.
- Select refund reason (duplicate, fraudulent, or requested by customer).
- Confirm refund—Stripe processes it immediately and updates invoice status.
Refund reasons explained
Duplicate
Customer was charged twice for the same work.
Fraudulent
Unauthorized charge or card misuse suspected.
Requested by customer
Customer requested refund for any other valid reason (quality issue, cancellation, etc.).
Refund reasons help Stripe and your accounting reconciliation. Choose the most accurate option—fraudulent refunds trigger additional Stripe review for pattern detection.
Understanding disputes (chargebacks)
Disputes occur when customers file chargebacks with their bank, claiming they didn't authorize the charge or didn't receive the service. You must submit evidence to win the dispute—otherwise the bank automatically refunds the customer and charges you a dispute fee (typically £15-20).
Dispute process timeline
- Customer files dispute with their bank (chargeback).
- Stripe notifies Toolfy via webhook—invoice shows dispute status.
- You have until the deadline (usually 7-21 days) to submit evidence.
- Navigate to invoice → Disputes tab to view details and deadline.
- Upload evidence (receipts, photos, signatures, communications) and submit.
- Stripe reviews evidence and forwards to customer's bank.
- Bank makes final decision—funds are returned or held depending on outcome.
What evidence to submit
Upload proof that you completed the work as agreed. Banks favor concrete evidence (photos, signatures) over statements.
- Job completion photos (before/after shots).
- Customer signature from job completion.
- Email or SMS communications with customer.
- Invoice copy showing agreed pricing.
- Proof of service delivery (GPS timestamp, technician notes).
- Any written agreement or quote acceptance.
Navigate to Invoice → Disputes tab → Submit Evidence to upload files and add written explanation. Toolfy submits everything to Stripe, which forwards to the customer's bank.
Dispute status meanings
needs_responseYou must submit evidence before deadline.
Upload docs immediately—missing deadline auto-loses dispute.
warning_needs_responseDeadline approaching (< 3 days).
Submit evidence now to avoid automatic loss.
under_reviewStripe is reviewing your evidence.
Wait for bank decision (7-60 days typically).
wonYou won—funds stay with you.
No action needed. Invoice returns to paid status.
lostBank ruled in customer's favor—funds deducted.
Invoice marked as disputed/refunded. Review evidence for future disputes.
Prevent disputes before they happen
- Collect customer signature at job completion—strongest evidence.
- Take before/after photos for every job.
- Send SMS confirmations when arriving on-site.
- Keep email/SMS communication history visible in customer record.
- Use clear invoice descriptions (avoid vague line items).
- Respond to customer complaints immediately to avoid chargebacks.
Troubleshooting
Refund failed
- Ensure invoice has a Stripe payment—manual payments cannot be refunded via API.
- Check refund amount doesn't exceed amount paid.
- Verify Stripe Connect account has charges enabled in Settings → Payments.
Dispute not showing
- Disputes appear within 1 hour of Stripe webhook delivery.
- Check Stripe Dashboard → Disputes to verify it exists.
- If dispute exists in Stripe but not Toolfy, refresh invoice page or contact support.
Evidence upload failed
- File size limit: 5MB per attachment.
- Supported formats: PDF, PNG, JPG, GIF.
- Ensure you're uploading files via invoice → Disputes → Submit Evidence form.
Need help with a dispute?
Email support@toolfy.io with the invoice ID, dispute status, and evidence you plan to submit. We can review your docs before you submit to Stripe.

