Skip to content

Refunds

Issue full or partial refunds to customers and track their status through completion.

Overview

The Refunds page provides a centralized view of all refunds issued by your business. Access it from the Payments > Refunds menu in the main navigation.

What You Can Do

  • View all refunds with status and details
  • Filter by refund status
  • Search by customer or payment reference
  • See refund statistics at a glance
  • Handle failed refunds (retry or delete)

Viewing Refunds

Refunds List

The refunds list shows:

  • Amount - The refund amount
  • Customer - Who the refund is for
  • Status - Current processing state
  • Reason - Why the refund was issued
  • Date - When the refund was created

Use the filters to find specific refunds:

  • Status filter - Show only refunds in a specific status
  • Search - Find by customer name or payment reference

Statistics Summary

At the top of the page, you'll see:

  • Total refunds - Count and total amount
  • Pending - Awaiting processing
  • Succeeded - Successfully completed
  • Failed - Unsuccessful attempts

Refund Statuses

StatusMeaning
PendingRefund created, waiting to be processed
ProcessingRefund is being processed by the payment provider
SucceededRefund completed successfully - funds returned to customer
FailedRefund attempt was unsuccessful (see failure details)
CancelledRefund was cancelled or superseded by a retry

Issuing Refunds

Refunds are issued from the original payment:

  1. Navigate to Payments
  2. Find and open the payment
  3. Click the three-dot menu (⋮)
  4. Select Issue Refund
  5. Enter the refund amount (full or partial)
  6. Select a reason for the refund
  7. Add notes if needed (optional)
  8. Click Process Refund

INFO

Refunds can only be issued for payments made through Stripe or Square. Manual payments (cash, bank transfer) must be refunded outside the system.

Refund Reasons

When issuing a refund, select the appropriate reason:

  • Customer Request - Customer asked for a refund
  • Duplicate - Payment was charged twice
  • Fraudulent - Suspected fraudulent transaction
  • Order Change - Service scope changed or cancelled
  • Other - Any other reason (add notes for clarity)

Partial vs Full Refunds

You can issue partial refunds:

  • Full refund - Returns the entire payment amount
  • Partial refund - Returns a portion of the payment

For partial refunds, the remaining amount stays on the original payment.

Handling Failed Refunds

Sometimes refunds fail. When this happens, you'll see:

  • Status: Failed (shown in red)
  • Failure Code: Technical reason for the failure
  • Failure Message: Human-readable explanation

Common Failure Reasons

Failure CodeWhat It MeansWhat To Do
insufficient_fundsPayment provider doesn't have enough balanceCheck provider account balance, then retry
charge_already_refundedThis payment was already refundedCheck for existing successful refunds
charge_disputedCustomer disputed the chargeWait for dispute resolution
expired_or_canceledOriginal payment is too old or card was cancelledContact customer for alternative refund
network_errorTemporary connection issueWait a few minutes and retry
provider_errorPayment provider returned an errorCheck provider dashboard for details

Retry a Failed Refund

If a refund failed due to a temporary issue:

  1. Open the refund (click on it in the list)
  2. Review the failure details
  3. Click Retry Refund
  4. Confirm the amount (you can adjust if needed)
  5. Click Confirm

A new refund will be created and the original marked as cancelled.

TIP

After fixing the underlying issue (e.g., topping up your Stripe balance), retrying usually succeeds.

Delete a Failed Refund

For refunds that cannot or should not be retried:

  1. Open the refund
  2. Click Delete Refund
  3. Confirm the deletion

WARNING

Deleting a refund removes it from your records. Only delete refunds you're certain won't be needed, such as:

  • Duplicate refund attempts
  • Refunds created in error
  • Refunds that will be handled outside the system

Refund Processing

How Refunds Work

  1. You issue refund - Creates a pending refund record
  2. Sent to provider - Submitted to Stripe or Square
  3. Provider processes - Payment network processes the return
  4. Funds returned - Customer receives money (2-10 business days)
  5. Status updated - YardPilot shows final status

Stripe Refunds

For Stripe payments:

  • Refunds are processed immediately
  • Status updates via webhooks
  • Funds typically appear in 5-10 business days
  • Processing fees are not returned

Square Refunds

For Square payments:

  • Refunds process synchronously
  • Status is final immediately
  • Funds typically appear in 2-5 business days

Manual Payments

Cash, cheque, and bank transfer payments cannot be refunded through YardPilot:

  • Handle the refund outside the system
  • Record it manually for your records if needed
  • Consider using notes on the payment to track the manual refund

Impact on Invoices

When a refund is processed:

  1. Refund succeeds - Payment allocations are automatically adjusted
  2. Invoice balance - May be restored if the refund deallocates from invoices
  3. Invoice status - Updates automatically (e.g., from Paid to Partial)

LIFO Deallocation

Refunds deallocate from invoices in Last In, First Out order:

  • Most recent allocations are removed first
  • Older allocations remain intact
  • This ensures consistent accounting

Example: Payment of $500 was allocated:

  • $200 to Invoice #001 (first)
  • $300 to Invoice #002 (second)

A $300 refund would deallocate from Invoice #002 first (most recent).

Best Practices

Before Issuing Refunds

  • Verify the request - Confirm the customer actually requested a refund
  • Check the amount - Ensure you're refunding the correct amount
  • Review allocations - Understand which invoices will be affected
  • Add notes - Document why the refund was issued

Managing Failed Refunds

  • Check failure reason - Understand why it failed before retrying
  • Don't retry blindly - Fix the underlying issue first
  • Delete duplicates - Clean up accidental duplicate attempts
  • Contact support - For persistent failures, contact payment provider

Record Keeping

  • Use notes - Document any special circumstances
  • Review regularly - Check for pending or failed refunds weekly
  • Reconcile with provider - Match YardPilot records with Stripe/Square

Permissions

Refund access is controlled by user role:

ActionOwnerAdminOfficeField
View refunds✓*
Issue refunds✓*
Retry refunds✓*
Delete refunds✓*

*Requires payments:view and payments:refund permissions.

Troubleshooting

Refund Stuck in Processing

If a refund stays in "Processing" for more than 24 hours:

  1. Check the payment provider dashboard (Stripe/Square)
  2. Verify the refund was received by the provider
  3. Look for any holds or issues on the account
  4. Contact payment provider support if needed

Can't Find a Refund

  • Clear any active filters
  • Search by customer name or payment reference
  • Check if the refund was deleted
  • Look in the original payment's history

Refund Amount Incorrect

If you issued a refund for the wrong amount:

  1. Check if it has processed yet
  2. If pending, delete and re-issue with correct amount
  3. If succeeded, issue another refund for the difference (or contact customer)

Next Steps

Field Service Management for Australian Businesses