Quick Answer: Navigate to a paid invoice → click "Issue Refund" in Actions card → select line items → enter reason → create credit note. For Stripe payments, refund processes automatically. For cash/check, you must issue payment manually.
When You'd Use This
- Customer requests money back after payment received
- Service quality issues requiring partial or full refund
- Work not completed as originally agreed
- Overcharges or billing errors discovered
- Customer dissatisfaction requiring resolution
Before You Start
Requirements:
- Invoice must have PAID status (cannot refund DRAFT or SENT invoices)
- Only Owners and Admins can issue refunds
- For manual payments (cash/check), you must issue physical payment separately
What You'll Need:
- Reason for refund (10-500 characters, required for audit trail)
- Decision on full vs partial refund
- For Stripe payments: Nothing else (auto-processed)
- For manual payments: Company checkbook or cash
How It Works
Step 1: Navigate to Paid Invoice
- Go to Invoices page (
/dashboard/invoices) - Find the paid invoice needing refund
- Use search bar (customer name or invoice number)
- Filter by status: Paid
- Click the invoice row to open detail page
Step 2: Open Refund Dialog
- In the Actions card (right side on desktop, bottom on mobile)
- Scroll to bottom section (after Preview PDF, Edit buttons)
- Click "Issue Refund" button
- Icon: ⛔ (ban symbol)
- Description: "Create credit note for refund"
What you'll see:
- Dialog titled "Issue Refund (Credit Note)"
- Refund method selector (Online Refund / Manual Refund)
- List of all invoice line items with checkboxes
- Reason text field (required)
Step 3: Choose Refund Method
What is Refund Method?
The refund method determines how the customer receives their money:
- Online Refund (via Stripe): Automatic refund to customer's card/ACH - money arrives in 5-10 days with no extra work
- Manual Refund: You issue a check or cash payment yourself - requires manual action
How It Works:
-
System automatically selects the best option based on how customer paid:
- If paid via Stripe → Online Refund selected by default
- If paid via Cash/Check → Manual Refund selected by default
-
You can override the selection if needed (see warning below)
Refund Method Options:
Option 1: Online Refund (Stripe) - Recommended
When Available:
- ✅ Invoice was paid via Stripe (card or ACH)
- ✅ Payment has a Stripe payment intent ID
Benefits:
- ✅ Completely automatic - no manual work required
- ✅ Fast - customer receives money in 5-10 business days
- ✅ Secure - money goes back to original payment method
- ✅ Tracked - Stripe provides confirmation and tracking
Button Styling: Blue button with "Issue Online Refund" text
What Happens:
- Click "Issue Online Refund" button
- System processes refund via Stripe immediately
- Customer receives email with confirmation
- Money returns to customer's card/bank in 5-10 days
- Invoice status updates to REFUNDED
Option 2: Manual Refund - Use Only When Necessary
When Required:
- ❌ Invoice was paid via Cash
- ❌ Invoice was paid via Check
- ❌ Stripe payment not available (older invoices)
What You Must Do:
- Click "Create Credit Note" button (orange)
- System creates credit note (documentation only)
- YOU must manually issue payment:
- Write company check, OR
- Withdraw and hand-deliver cash
- YOU must track payment:
- Add note to invoice: "Check #1234 issued on [date]"
- Get signature if handing cash to customer
Button Styling: Orange button with "Create Credit Note" text
⚠️ Action Required Alert: Orange banner warns you must issue manual payment
What Happens:
- Click "Create Credit Note" button
- System creates credit note with CN number
- Customer receives email (but NOT money)
- Invoice status updates to REFUNDED
- You issue check/cash separately (not automated)
Switching from Online to Manual (Warning)
Why Switch?
- Customer prefers check instead of card refund
- Stripe payment failed or was disputed
- Business policy requires manual refunds
What Happens When You Switch:
-
Click "Manual Refund" radio button
-
⚠️ Warning appears:
-
Orange "Action Required" alert appears
-
Button changes from blue "Issue Online Refund" to orange "Create Credit Note"
When to Ignore Warning:
- Customer specifically requested check payment
- Business has policy requiring manual refunds for accounting
When to Heed Warning:
- No good reason to switch (stick with online refund - it's easier!)
- Customer is okay with card refund (default)
Step 4: Select Line Items to Refund
Full Refund (entire invoice amount):
- Leave all line items checked (default)
- All services/materials will be credited
- Credit Note Total shows full invoice amount (with negative sign)
Partial Refund (specific items only):
- Uncheck line items you're NOT refunding
- Keep checked only items you ARE refunding
- Credit Note Total updates automatically
- Only selected items appear on credit note
What Each Line Item Shows:
- Description (e.g., "HVAC System Installation")
- Quantity × Unit Price
- "Taxable" badge (if applicable)
- Line total (with tax calculated)
Example Scenarios:
Scenario A: Overcharge by $50
- Invoice has: Service ($200) + Materials ($100) = $300
- Materials were actually $50, not $100
- ✅ Uncheck "Service" line
- ✅ Keep "Materials" checked
- Edit materials unit price → NOT POSSIBLE
- ❌ Limitation: Must refund entire line item, cannot adjust amounts
- Workaround: Issue partial credit note for $50 manually via accounting
Scenario B: Service Not Completed
- Invoice has: Labor ($500) + Parts ($300) = $800
- Customer cancellation before work started
- ✅ Keep all items checked (full refund)
- Reason: "Customer requested cancellation before service"
Scenario C: Quality Issue on One Room
- Invoice has: Room 1 ($400) + Room 2 ($400) = $800
- Room 2 work needs redoing
- ✅ Uncheck "Room 1" line
- ✅ Keep "Room 2" checked
- Refund $400 for Room 2 only
Step 5: Enter Refund Reason
- Click in "Reason for Credit Note" text field
- Type detailed explanation (10-500 characters required)
- Character counter shows at bottom (e.g., "45/500 characters")
Good Refund Reasons:
- ✅ "Customer dissatisfied with service quality, agreed to full refund"
- ✅ "Overcharged customer by $50 for materials not used"
- ✅ "Service not completed on time per agreement"
- ✅ "Work did not meet quality standards, customer requested refund"
Avoid Vague Reasons:
- ❌ "Refund"
- ❌ "Customer asked"
- ❌ "Error"
Why Required: Creates permanent audit trail for accounting and dispute resolution
Step 6: Review Credit Note Total
Before clicking "Create Credit Note":
- Check Credit Note Total (purple card at bottom)
- Amount shows with negative sign (e.g., -$540.00)
- Shows number of line items selected (e.g., "2 line items selected")
- Verify this matches expected refund amount
⚠️ Important: This is the EXACT amount that will be refunded (or documented for manual payment)
Step 7: Issue Refund
For Online Refunds (Stripe):
- Verify button text: "Issue Online Refund" (blue button)
- Click button once
- Button shows "Processing refund..." while working
- Wait for confirmation toast message
For Manual Refunds (Check/Cash):
- Verify button text: "Create Credit Note" (orange button)
- Click button once
- Button shows "Creating Credit Note..." while working
- Wait for confirmation toast message
Success Message:
- Toast notification: "Credit note CN-2026-0001 created successfully"
- Dialog closes automatically
- Invoice detail page refreshes
Step 8: Complete Manual Refund (If Applicable)
If you selected Manual Refund, you MUST complete these steps:
If Paid by CHECK:
- Write company check for credit note amount
- Payable to customer name
- Memo line: "Refund for Invoice [INV-2026-XXXX], Credit Note CN-YYYY-NNNN"
- Mail or hand-deliver check to customer
- Record check number in invoice notes (for tracking)
If Paid by CASH:
- Withdraw cash for credit note amount
- Place in envelope with customer name
- Include printed credit note copy
- Hand-deliver to customer (get signature if possible)
- Note delivery date in invoice notes
System Actions (Automatic):
- ✅ Credit note created with CN number
- ✅ Invoice status updates to REFUNDED
- ✅ Customer receives email with credit note (but NOT money)
- ✅ Credit note appears on invoice detail page
System Does NOT:
- ❌ Issue physical check
- ❌ Transfer cash
- ❌ Process bank refund
Important Rules
Full vs Partial Refunds
Full Refund:
- Refunds 100% of invoice amount
- All line items credited
- Simplest and most common
Partial Refund:
- Refunds selected line items only
- Useful for quality issues on subset of work
- Customer still paid for completed services
Limitation: Cannot refund partial amounts of a line item (e.g., 50% of one service). Must refund entire line item or nothing.
One Credit Note Per Invoice
- ✅ Can create ONE credit note per invoice
- ❌ Cannot create multiple credit notes for same invoice
- ❌ Cannot edit credit note after creation
- ❌ Cannot delete credit note
If you need multiple refunds: Create separate invoices for each refundable service upfront
Refund Method Selection
System automatically selects the best option:
| Original Payment | Default Refund Method | Can Override? | What Happens |
|---|---|---|---|
| Stripe/Card | Online (automatic) | ✅ Yes | Money returns to card in 5-10 days |
| ACH | Online (automatic) | ✅ Yes | Money returns to bank in 5-10 days |
| Cash | Manual (you issue) | ❌ No | You must hand-deliver cash |
| Check | Manual (you issue) | ❌ No | You must write and mail company check |
When to Override (Switch to Manual):
- Customer specifically requests check instead of card refund
- Business policy requires manual refunds
- Accounting prefers manual tracking
Warning: System shows alert when switching from Online to Manual (you're creating extra work for yourself)
Invoice Status After Refund
- Before: PAID (green badge)
- After: REFUNDED (purple badge)
- Cannot change status back to PAID
- Cannot delete refunded invoices
Credit Note Numbering
- Format: CN-YYYY-NNNN
- Example: CN-2026-0001, CN-2026-0002, etc.
- Auto-increments per year (resets to 0001 each January 1)
- Unique across all tenants (your company only)
What Happens After
Immediate Changes
-
Invoice Detail Page:
- Status badge changes to REFUNDED
- "Issue Refund" button disappears (already refunded)
- Credit Note section appears with CN number and details
-
Payments Page:
- Payment still appears in list (shows refunded status)
- Clicking payment opens invoice detail (shows refund info)
-
Customer Receives Email:
- Subject: "Refund Issued for Invoice [INV-2026-XXXX]"
- Credit note PDF attached
- Explanation of refund reason
- Expected timeline (if Stripe/card)
-
Accounting Records:
- Credit note recorded in system
- Negative entry created for reports
- Audit trail with user, timestamp, reason
Timeline (Stripe/Card Payments)
- Immediately: Credit note created, email sent
- 1-3 business days: Refund appears in customer's bank as "pending"
- 5-10 business days: Money fully returned to customer's account
- 10-14 days: If still not received, customer should contact their bank
Timeline (Manual Payments)
- Immediately: Credit note created, email sent
- Your Timeline: Write and deliver check/cash ASAP
- 24-48 hours: Customer should receive manual payment
- If Delayed: Customer may follow up (check invoice notes for status)
Common Scenarios
Scenario 1: Customer Dissatisfied with Service Quality
Situation: HVAC repair completed, customer unhappy with results, paid $800 via Stripe.
Steps:
- Review work with customer, agree on resolution
- Navigate to invoice (INV-2026-0123)
- Click "Issue Refund"
- Leave all line items checked (full refund)
- Reason: "Customer dissatisfied with service quality, full refund issued per owner approval"
- Create credit note
- Customer receives $800 back to card in 5-10 days
Outcome: Customer receives full refund automatically, relationship preserved.
Scenario 2: Partial Service Completed
Situation: Scheduled 3-room HVAC cleaning ($150/room = $450 total), only cleaned 2 rooms due to time, paid via check.
Steps:
- Navigate to invoice (INV-2026-0124)
- Click "Issue Refund"
- Uncheck 2 completed rooms (keep 1 room checked)
- Credit Note Total: -$150.00
- Reason: "Third room not serviced due to scheduling issue, partial refund for 1 room"
- Create credit note
- ⚠️ Write company check for $150 (manual payment)
- Add note: "Check #1234 mailed to customer on 1/30/2026"
Outcome: Customer refunded $150 via manual check, paid $300 for 2 completed rooms.
Scenario 3: Billing Error (Overcharged)
Situation: Accidentally charged $540 instead of $500 (tax calculation error), paid via Stripe.
Steps:
- Navigate to invoice (INV-2026-0125)
- ❌ Cannot issue $40 partial refund directly (line item limitation)
- Workaround: Create new negative invoice or manual credit
- Alternative: Issue full refund, create new correct invoice for $500
Best Practice: If error is recent (same day), void invoice and create new correct one instead of refunding.
Scenario 4: Customer Cancellation Before Service
Situation: Deposit paid $200 via card, customer cancels before scheduled date.
Steps:
- Navigate to invoice (INV-2026-0126)
- Check cancellation policy (refundable deposit?)
- If refundable: Click "Issue Refund"
- Keep deposit line item checked
- Reason: "Customer cancelled appointment before scheduled date per refund policy"
- Create credit note
- Customer receives $200 back to card automatically
Outcome: Full deposit refunded, service never performed.
Mobile Tips
Touch Targets
- All buttons are minimum 44px height (easy to tap)
- "Issue Refund" button has clear icon and description
- Checkboxes are large and easy to toggle
- Reason text field expands on mobile for easy typing
Navigation
- Swipe down to close refund dialog
- Tap outside dialog to cancel (prompts confirmation)
- Use back button to return to invoice list after refund
Best Practices
- Use landscape mode for better view of line items table
- Zoom if needed to read line item descriptions clearly
- Double-check Credit Note Total before tapping Create
A: Yes! As of Feature 23, you can select the refund method:
- Online Refund (Stripe): Available if invoice was paid via Stripe - automatic refund to customer's card/bank
- Manual Refund: Available for all invoices - you issue check or cash yourself
System Defaults:
- Stripe payments → Online Refund selected (recommended)
- Cash/Check payments → Manual Refund selected (only option)
You can override the default and choose Manual Refund even if Online Refund is available (system will warn you).
When to choose Online Refund:
- ✅ Default for Stripe payments (easiest option)
- ✅ Customer is okay with card refund (most customers prefer this)
- ✅ You want automated processing (no manual work)
When to choose Manual Refund:
- ✅ Customer specifically requests check payment
- ✅ Business policy requires manual refunds
- ✅ Original payment was Cash/Check (only option)
Q: What if customer paid via Stripe but I want to refund via check?
A: You can now choose this! When issuing refund:
- Open refund dialog
- System defaults to "Online Refund" (blue button)
- Click "Manual Refund" radio button
- ⚠️ Warning appears explaining you'll need to issue check manually
- Orange "Action Required" alert appears
- Click orange "Create Credit Note" button
- System creates credit note (documentation only)
- You must write company check for refund amount
- Add note to invoice: "Check #XXXX issued on [date] per customer request"
Why the warning? Online refund is faster and automatic. Only switch to manual if you have a good reason.
Q: Can I issue a partial refund of a single line item (e.g., 50% of one service)?
A: No. You can only refund entire line items. If you need to refund a partial amount, you have two options:
- Split services into multiple line items when creating invoice (e.g., "Service - Room 1" and "Service - Room 2" as separate lines)
- Issue full refund and create new correct invoice
Q: What if I issue a refund by mistake?
A: Credit notes cannot be deleted or edited. You have two options:
- Create a new invoice to "reverse" the credit (re-bill customer)
- Contact support for accounting adjustment
Best Practice: Always double-check Credit Note Total and reason before clicking "Create Credit Note"
Q: How long does a Stripe refund take?
A:
- Processing: Immediate (within seconds)
- Appears as pending: 1-3 business days
- Fully credited: 5-10 business days
- Depends on: Customer's bank processing times
If customer hasn't received refund after 10 business days, they should contact their bank.
Q: Can I issue a refund for an invoice paid months ago?
A: Yes, as long as:
- Invoice status is PAID
- No credit note exists yet (one per invoice)
- For Stripe: Within 180 days of original payment (Stripe limitation)
- For manual payments: No time limit (but document reason clearly)
Q: Does customer get notified about refund?
A: Yes, automatically:
- Email sent with credit note PDF attached
- Subject: "Refund Issued for Invoice [INV-2026-XXXX]"
- Includes: Credit note number, amount, reason, timeline
- For Stripe: Email explains 5-10 day timeline
- For manual: Email says check/cash will arrive separately
Q: Can I refund more than the original invoice amount?
A: No. Credit Note Total cannot exceed invoice total. If you need to pay customer extra (e.g., compensation), issue separate payment outside system or create standalone credit note (manual accounting).
Q: What happens to invoice if partially refunded?
A:
- Invoice status changes to REFUNDED (even if partial)
- Credit note section shows items credited
- Remaining balance is NOT tracked separately
- For reporting: Invoice shows original total, credit note shows negative amount
Q: Can technicians issue refunds?
A: No. Only Owners and Admins can issue refunds. Technicians do not have access to financial features including refunds, invoices, or payments.
Related Pages
Related Tasks
- Mark Invoice as Paid - Record payment received
- Send Invoice - Email invoices to customers
- View Invoice History - Track invoice changes
Related Features
- Invoices - Complete invoicing system guide
- Payments - Payment tracking and receipts
- Credit Notes - Understanding credit note accounting
By Role
- Owner's Guide - Financial management for business owners
- Admin Guide - Administrative tasks including refunds
Need more help? Contact support or check our complete help documentation.
Last Updated: February 1, 2026