Payments, payouts & shared links: when money or links don't move
A card declined, a customer who never got the link, Google reviews that stopped syncing, or a payout that hasn't landed — the diagnosis path for each, from the everyday cause down to the platform plumbing.
Troubleshooting7 in this section
Money and customer-facing links both fail quietly — a declined card lives on Stripe's page, a text that never arrives leaves no error on your screen, a payout just isn't there yet. This is the map: match the symptom to the most common cause first, and only reach for the platform plumbing at the bottom. Most of these you fix yourself in Settings → Payments, the record's own share panel, or Settings → Integrations.
Four things that stall, and where to look first
A failed send is never a dead end
Every time you send a quote, invoice, job or document, the link is shown right there with a Copy button — even if the text bounced or email isn't set up yet. So a customer who "never got it" is one copy-paste away: grab the link and send it however you like. It's the same secure, working link. More on how they behave in Share links.
Troubleshooting
A customer says their card was declined at checkout.
Why: The decline happens on Stripe's own hosted payment page, between the card and the customer's bank — Service VIN never sees the card number and records nothing.
Fix: Ask them to retry with a different card; the quote or invoice stays open and Pay now keeps working. A card that's declined repeatedly is between the customer and their bank — nothing to change on your side.
A customer paid, but the invoice still shows a balance due after a few minutes.
Why: The paid status arrives on Stripe's success webhook, which normally lands within seconds. Until it's processed, the invoice looks unpaid.
Fix: Reload the invoice — the customer's emailed Stripe receipt confirms the charge went through. If it never flips to Paid, it's the platform webhook (see the operator row below).
There's no Pay now button on an invoice or on the shared link.
Why: Card payments aren't Active for the shop (charges aren't enabled yet), or the invoice has no outstanding balance.
Fix: Check the badge on Settings → Payments reads Active, then reopen the record — Pay now appears once charges are enabled and there's a balance due. Setup walkthrough in Connect Stripe & get paid out.
The portal says "Online payment is unavailable right now. Please contact the business."
Why: The shop's Stripe onboarding isn't finished, so charges aren't enabled and no checkout can be created for that link.
Fix: Finish onboarding on Settings → Payments (the button reads Finish setup) until the badge is Active, or collect the payment another way for now.
The customer sees "Too many requests — please try again in a moment."
Why: The public portal rate-limits repeated attempts per IP to block abuse — hammering Approve or Pay trips it.
Fix: Wait a minute and try again; it clears on its own. Nothing is wrong with the quote or invoice.
The customer never got the quote or invoice link by text.
Why: SMS isn't live for the shop (Twilio not connected, or the Automated messaging / A2P gate is off), or there's no mobile number on the customer's record.
Fix: Copy the link shown after sending and text it yourself; then fix texting on Settings → Messaging. Full path in Texts aren't sending.
The customer never got the link by email.
Why: Email isn't fully set up (a Resend key with no DNS-verified sending domain), or the address on the customer's record is wrong or blank.
Fix: Copy the link and send it any way you like, and check the email on the customer's record. Email setup is covered in Emails aren't sending.
The customer taps the link and sees "This link isn't available."
Why: Share links expire on their own after 30 days, and re-sending a record revokes the old link and mints a new one — so a forwarded or bookmarked old link goes dead.
Fix: Open the record and Send to customer again to issue a fresh link, then give them the newest one — only the latest link is ever live.
A customer booked online but never got a confirmation text.
Why: The booking-confirmation SMS only sends when Automated messaging is on and the customer hasn't opted out of texts — both are checked at send time.
Fix: Confirm the gate on Settings → Messaging and the switch on Settings → Notifications. The booking itself still landed either way — it's in your calendar and jobs.
New Google reviews stopped showing up in the Reviews inbox.
Why: The Google Business connection hit an error — most often an expired or revoked Google token — so the 15-minute sync now no-ops and the hub shows the connection needing attention.
Fix: On Settings → Integrations, Disconnect and reconnect Google Business, then hit Sync now on the row. More in The integrations hub.
The Google connection is linked but reviews have never appeared.
Why: Google gates its Business Profile reviews API behind a per-project approval; the connection links fine but pulls fail until Google approves the platform.
Fix: This is a one-time platform approval, not a shop setting — reviews start flowing automatically the day it lands. Nothing to change in-app meanwhile.
Money is coming in but nothing has paid out to your bank.
Why: Charges are enabled but payouts aren't — usually a missing bank account or a Stripe verification hold. Stripe can take cards while still holding the balance.
Fix: Click Open Stripe dashboard on Settings → Payments, add or fix your bank account and clear any verification prompts; payouts start on Stripe's rolling daily schedule once cleared.
Your first payout is taking longer than you expected.
Why: Stripe holds the very first payout a bit longer while it establishes a new account; later ones follow the normal daily schedule.
Fix: This is normal — check the exact timing and your payout schedule in your Stripe dashboard (Open Stripe dashboard from Settings → Payments).
A payout was smaller than the payments you took that day.
Why: You're the merchant of record on a Standard account, so refunds, chargebacks, Stripe's processing fees and Service VIN's commission all come out of your balance first.
Fix: Open the payout in your Stripe dashboard to see the exact line items that made it up — nothing is missing, it's netted.
Common questions
A customer's card keeps getting declined — can I see why?
No. Declines happen entirely on Stripe's hosted page, between the customer's bank and Stripe; Service VIN never sees the card or the decline reason. Ask them to try another card or check with their bank.
The text with the link didn't send — did the link get lost?
No. The link is shown with a Copy button the moment you send, even if the text or email bounced. Copy it and send it however you like — it's the same secure, working link.
Why did an old link a customer saved stop working?
Re-sending a record revokes the previous link and issues a new one, and links expire after 30 days regardless. Only the newest link is live — use Send to customer again to hand them a fresh one.
Are refunds and chargebacks taken from my money or Service VIN's?
Yours. On a Standard Stripe account you're the merchant of record, so refunds and disputed charges come out of your Stripe balance — and on a refund, Service VIN's commission on that amount is handed back too. That's why a payout can be smaller than the day's takings.