BidCraft Tile
BidCraftTile
Jump to…

Refunds and disputes

It's the part of the job nobody wants to think about, but it happens — a client cancels, a milestone gets re-scoped, a dispute lands. BidCraft and Stripe handle both with as little drama as possible. Here's how each one works.

Issuing a refund

Refunds run from the project Payments section.

[!steps]

  1. Open the project and go to the Payments tab.
  2. Find the paid invoice you want to refund.
  3. Click Issue refund on that row.
  4. Read the confirmation — it names the exact amount going back and reminds you the project schedule won't pause on its own.
  5. Click the Refund $X button to send it.

Refunds go back for the full invoice amount — there's no partial-refund option in the app. If you only owe part of a milestone back, refund the whole invoice and re-invoice for the corrected amount, or handle the difference outside BidCraft.

The money goes back to whatever payment method the client originally used. Card refunds typically land on their statement in 5–10 business days; bank-transfer refunds in 5–7.

One thing the refund does not do is stop the job. Tasks, dates, and remaining milestones carry on exactly as they were. If the refund means you're pausing or walking away, say so to your crew and adjust the schedule yourself — the refund alone won't.

The refund shows up in your project Payments section as its own row, separate from the original payment, so you have a clean audit trail. Both amounts stay visible, and the invoice itself is marked Refunded.

What happens to project status

This is the part contractors most often miss.

If you fully refund the deposit invoice (the first milestone), the project status moves from Paid → Refunded. This is the system's way of saying "the original cash event has been undone, treat the project as having been canceled at the financial level." The signed proposal stays signed in the record (you still have the audit trail); only the financial state changes.

If you refund any other milestone, the project status doesn't change. It stays at Paid (or whatever state it was in). The thinking: if the deposit cleared but you handed back a later progress payment because the permit turned out not to be needed, the project itself isn't "refunded" — you just unwound one milestone.

The same logic applies to change-order milestone refunds — refunding a paid invoice on a change order doesn't change the project's overall status. Only refunding the original deposit specifically advances the project from Paid → Refunded. Everything else (other original milestones, every change-order milestone) stays at the project status it was at before the refund.

All of this is intentional. A full-deposit refund is the canonical "this deal is off" signal; everything else is bookkeeping.

[!note] If you refund a deposit and then the client comes back later wanting to proceed, you can re-send the proposal (or a new shareable link) and start the financial side over. The original signed record stays in the project history.

Disputes (chargebacks)

A dispute is when a homeowner tells their bank they didn't authorize a charge or didn't get what they paid for. The bank takes the money back from your Stripe account automatically while the dispute is investigated.

When a dispute lands:

  • You get an email notification from Stripe
  • The disputed amount is held in reserve out of your future payouts
  • You have a deadline to respond (typically 7-14 days)

BidCraft doesn't handle disputes directly — Stripe does, because Stripe is the one arguing it with the homeowner's bank. You respond from your own Stripe dashboard. Stripe's notification email links you straight to the disputed charge; that's the fastest way in. Your Connected Apps page has the Stripe section where you can update bank and business details and watch payouts, but the dispute response itself happens on Stripe's side.

When you respond, you upload evidence and Stripe submits it to the bank. The bank decides. If you win, the money comes back. If you lose, it stays gone.

[!warning] Disputes are mostly outside your control once they're filed. The bank has the final say, and most banks default to the cardholder. The best defense is solid evidence — and BidCraft gives you a lot of it. Make sure you keep good records:

  • The signed proposal — the snapshot the client agreed to, complete with their typed name, email, and the signature image
  • The signature audit trail — IP address, timestamp, browser. Pull this from the History panel on the proposal page (Open history › under the proposal bar)
  • Communication history — emails, texts, where they confirmed scope changes
  • Photos of completed work — the more visual evidence the better

Upload all of this through Stripe when you respond. The signed proposal alone tends to settle most disputes — banks rarely side with a homeowner who can be shown a binding signature.

Friendly fraud vs real fraud

Most "fraud" disputes in this industry are what Stripe calls friendly fraud — a real homeowner who really agreed to the work, but later decides they're unhappy and disputes the charge instead of asking for a refund. Your signed proposal and audit trail are the strongest counter to this. If a homeowner disputes a card charge after signing a proposal with their name and email matching the cardholder, the bank will usually side with you.

Real card fraud (a stolen card pays for something the cardholder never agreed to) is rare in this business — homeowners hire you in person, you know who they are. If it ever happens, refund it immediately and don't fight the dispute — disputed transactions cost you a chargeback fee on top of the lost amount.

Next steps

Was this article helpful?
Still need help?

Email andy@businessupai.com and a real person on the BidCraft Tile team will get back to you. If you're signed in, you can also ask Biddy from any page in the app.