Repair Estimates and Payment

Build an itemised estimate, get the customer's decision, and collect and refund payment through Shopify.

11 min read
Last updated 14 September 2026

Repair jobs use itemised estimates. You build the estimate from lines, send it, and the customer accepts, declines or asks a question on the returns portal. Once they accept, ReturnMate raises the charges in Shopify and tracks every payment in a ledger on the job.

Different from RMA quotes

Stores without a repair module send single-amount quotes from an RMA's Warranty Resolution section, described in Repair Quotes. Repair jobs use the estimate described here instead: itemised lines, numbered revisions, payment policies and a charge ledger.

Payment settings

Set the defaults once under Settings → Industry modules, in your repair module's Quotes & payment section.

  • Default payment policy applies to new estimates.
  • Allow "pay on collection" lets customers accept online and pay at the counter.
  • Allow deposits takes a deposit on acceptance. Choose a Default deposit as a Fixed amount or a Percentage of the quote, and set the Deposit value.
  • Quote prices include tax controls how you enter prices. When it is off, you enter prices excluding tax and Shopify adds tax on the invoice.

Only policies you switch on can be chosen on an estimate.

Building an estimate

There are three ways in:

  • On the job page, in Diagnosing, choose Build the quote. Your write-up is saved first.
  • Open the Repair quote panel under the record tabs on the job page.
  • When the job is over its spend limit, choose Send revised quote on the warning banner.

If the job has no estimate yet, choose Create quote.

Add lines

Use Add to add a line. Give each line a description the customer will understand, a quantity, a unit (Each or Hour) and a unit price.

Set coverage and tax

Set each line's coverage to Customer pays, Warranty or Goodwill. Warranty and goodwill lines stay on the estimate but show as Covered and add nothing to the total. Untick Taxable on any line that is tax-free.

Add the details

Optionally set Quote expires, a Deposit amount, Inspection notes (customer-visible) and a Message to the customer (optional).

Save or send

Choose Save draft to keep working, or Save & send to send it straight away.

Line types

TypeUse it for
LabourTime on the bench, per hour or as a fixed line
PartParts you will fit
FeeAny other charge
DiagnosticThe diagnostic or assessment fee
Diagnostic creditCrediting the diagnostic fee back against the repair
ShippingReturn shipping. Left off the invoice if the customer collects in store.

Credits are subtracted from the total. A Prior payment credit line is added for you on a revision when money was already paid (see below).

Logged labour and parts on the job are not copied onto the estimate. Add the lines you want to charge for.

No passwords in estimate text

The customer sees every line and the inspection notes. ReturnMate refuses any line that looks like it contains a password or PIN.

Checking against the spend limit

The estimate page compares the estimate with the limit the customer approved at intake.

  • A banner at the top says whether the estimate is within the limit, over it by a set amount, or that no limit was set.
  • Against the approved limit shows a gauge. When you are over, Ways to get back under lists the largest customer-paid lines you could drop.
  • Approval history lists every revision with its status, plus the limit approved at intake and how that consent was given.

Only customer-paid lines count toward the limit. Covered lines add nothing, and credits reduce the total.

The job page also warns you when committed work goes over the limit. The warning reads This exceeds the customer's approved spend limit and offers Send revised quote. ReturnMate does not stop the job on its own. A revised estimate is how the customer approves the extra spend.

Sending the estimate

Choose Send quote on a draft. You can add a message, then choose Send.

The customer gets an email with the itemised estimate and a link to the portal. Sending also updates the job:

  • The job moves to Awaiting approval if it was diagnosing, ready for repair or repairing.
  • The Awaiting customer response blocker is set.
  • The financial status becomes Quote sent.

The estimate expires on the date you set. If you left the date blank, it uses the store default of 14 days from when it was created.

What the customer sees

On the portal the customer sees:

  • The itemised estimate: each line with its type, quantity and price, covered lines, subtotal, credits and Total to pay.
  • Whether prices include tax.
  • A note on the payment policy, and the deposit and balance if there is one.
  • Revised quote and What changed on a revision.
  • Your inspection notes and photos.
  • The expiry date.

They can do one of three things.

Accept

The accept button reads Accept & Pay with the amount due now, or Accept quote when nothing is due yet. What happens next depends on the payment policy.

Decline

Decline Quote asks what they want done with the item, from the options offered, such as collecting it from the store. They can add a reason.

What happens to the job depends on Hold declined jobs for the customer to choose in the module settings:

  • On (the default): the job stays in Awaiting approval with the Awaiting customer response blocker while the customer decides.
  • Off: a job in Diagnosing or Awaiting approval moves to Ready for collection with the outcome Declined by customer.

Ask a question

Under Ask a question before deciding, the customer types a question and chooses Send question. The portal reminds them never to send passwords.

The question appears on the estimate as The customer asked a question. The job's blocker changes from waiting on the customer to Other, because now you owe them a reply. Reply through the messages thread, then revise the estimate if needed. Nothing is charged until the customer accepts.

Recording an answer given in person

If the customer answers at the counter, by phone, by email or by SMS, choose Record customer decision on the estimate.

  1. Choose Accepted the quote or Declined the quote.
  2. Enter the Customer name and how they responded.
  3. Write an Attestation: who agreed, how and when. It is required, and it is stored with the decision and the audit log.
  4. For an acceptance, choose how the customer gets the item back: Ship it back or Collect from store with a Collection location.
  5. Choose Record decision.

The job updates exactly as if the customer had answered on the portal.

Revisions

Once an estimate has been sent, it is never edited or deleted. Choose New revision to change it.

  • Saving creates the next revision number. The previous one is marked Superseded and kept.
  • Open charges on the previous revision are cancelled. If an unpaid Shopify order already exists and cannot be cancelled automatically, the charge shows Cancel in Shopify and you cancel it there by hand.
  • Any payment already received is carried onto the new revision as a Prior payment credit line.
  • Fill in What changed. The customer sees it on the revised estimate.

A draft that has not been sent yet can be changed with Edit draft. Its lines are replaced in place.

A decision can only be recorded against the current revision. If a newer one exists, you are asked to reload and try again.

Expiry

ReturnMate checks every hour. A sent estimate past its expiry date becomes Expired, and the timeline records it. An expired estimate cannot be accepted. Create a new revision and send it again.

An expired estimate is handled like a declined one. With Hold declined jobs for the customer to choose on, the job waits in Awaiting approval. With it off, the job moves to Ready for collection with the outcome Estimate expired.

Payment policies

Choose the Payment policy at the top of the estimate. It is locked once a charge has been invoiced.

PolicyWhen the customer accepts
Pay before work startsA Shopify draft order is created for the full amount and its invoice is emailed to the customer.
Pay on collectionA Shopify draft order is prepared but no invoice is sent. You take payment when the customer collects.
Deposit, then balanceA deposit invoice is emailed. Once the deposit is paid, the balance invoice is created with the deposit deducted, and emailed.

If the deposit is zero or covers the whole total, ReturnMate raises a single charge for the full amount instead.

If the estimate total is zero, nothing is invoiced.

Acceptance authorises the work

An accepted estimate is enough to start repairing, whatever the policy. The job's financial status moves to Approved, unpaid, then Deposit paid or Paid as money arrives. If you want payment before you start, check the ledger before choosing Start repairing.

If Shopify cannot create the invoice when the customer accepts, the acceptance still stands. The estimate shows Collection failed, and ReturnMate retries every hour. You can also choose Retry invoice.

Collecting payment

Every charge appears under Charges & payments on the estimate.

ColumnShows
ChargeFull amount, Deposit or Balance
StatusOpen, Invoiced, Partially paid, Paid, Cancelled, Cancel in Shopify, Failed or Voided
AmountWhat the charge is for
Net paidPayments less refunds
ShopifyThe draft order or order name, and the invoice link

Use Collect on a charge to take payment:

  • Email invoice sends the Shopify invoice to the customer.
  • Open in POS gives you the draft name. Find it in Shopify POS and take payment there. The ledger updates when Shopify confirms.
  • Record manual payment is for payments taken outside Shopify, such as cash, a terminal or bank transfer. A reason or receipt reference is required. The Shopify draft order is completed with a manual payment.

A balance charge cannot be collected until the deposit is paid.

Payments come from Shopify. ReturnMate listens for order updates and also checks open charges every 15 minutes. A charge is only Paid when payments cover it, and a payment is never counted twice. Choose Sync to check a charge now.

The totals row shows Charged, Paid, Refunded and Outstanding. The outstanding amount is what the handover page asks you to collect.

If an unpaid repair order is cancelled in Shopify, the charge becomes Voided.

Refunds

Choose Refund… on a paid charge. Enter an amount up to the net paid on that charge, and a reason.

  • The refund goes against that charge's own Shopify order, back to the original payment.
  • A charge paid only through Record manual payment has no Shopify payment to refund. The refund is recorded, and you pay the customer back by hand.

Refund repair charges from the ledger, not from the customer's original order. A refund raised elsewhere on the RMA can be refused with "This RMA has repair charges. Refund from the quote ledger instead of the original order."

The diagnostic fee

The diagnostic fee is agreed at intake, with its own consent, and printed on the intake receipt. On paid jobs it counts toward the spend headroom from the start.

It is not billed on its own. To charge it, add a Diagnostic line to the estimate. If you waive it when the customer goes ahead with the repair, add a Diagnostic credit line.

Was this helpful?
Contact Support