Pay now

Let clients pay an invoice online from the invoice email or their invoice page — through Stripe or QuickBooks Payments — and how those payments are recorded, matched and refunded.

Updated 5 min read

Pay now puts a button on the client's invoice page and in the invoice email. It pays the balance, through Stripe or QuickBooks Payments, and the payment lands on the invoice by itself.

The invoice page and the PDF are laid out like a QuickBooks invoice: your logo, address, phone, email and website; Bill to with the client's name, the contact it's addressed to, the client's primary address and the email it went to; the invoice number, date, due date, terms and period; the lines; the totals and Balance due. While there's a balance to pay, the page opens with what's due and a Pay now button, and the PDF carries a Pay online link too. Set your address and contact details in System → Organization; the client's address comes from its primary address on the company.

Switching it on#

System → Finance settings → Payments → Online payments:

  • The Pay now button switch shows or hides the Pay now button. Turning it off always works.
  • Take payments with — Stripe, QuickBooks Payments, or Follow your invoices (…), which names the one it picks: QuickBooks when it's connected and takes payments, otherwise Stripe. "Invoices live in QuickBooks, cards go through Stripe" is a normal setup.
  • Clients can pay online by — card or bank transfer (ACH), bank transfer only (no card fees), or card only. Until you choose, your payment processor's own settings decide (the card shows what QuickBooks' sales settings allow, to save as your choice). Each invoice can say otherwise (the invoice's Clients can pay online by, on the create page and in the editor). QuickBooks Payments and Stripe then offer only those ways, and the invoice page and emails tell the client how they can pay. A way your processor doesn't take (bank only, with ACH off in QuickBooks or Stripe) can't be chosen. The choice also reaches QuickBooks' own pay link on invoices QuickBooks emails, even with the Pay now button off — so it's offered whenever QuickBooks Payments is on, Stripe is connected, or Pay now is on.
  • And on Stripe's payment page — with Pay now through Stripe and clients paying by card or bank, the other ways your Stripe account has switched on (Link, Cash App Pay, Amazon Pay, PayPal, Affirm, Klarna, Afterpay) are listed to tick. Only the ticked ones are offered; one switched off in Stripe since (or one Stripe refuses for the amount) is left out rather than stop the page opening — the page never falls back to every way Stripe has on. An invoice set to bank transfer only or card only is never offered the other way: if Stripe refuses its one way, there's no page and the client is asked to try again or contact you. Turn more on in Stripe (Settings → Payment methods) and they appear here. Your Stripe key needs read access to Payment method configurations for the list; without it, Stripe offers what it has on. Apple Pay and Google Pay come with card. With QuickBooks Payments, clients pay by card or bank transfer; PayPal and Venmo are switched on in QuickBooks itself and apply to every QuickBooks invoice.
  • Changing an invoice's choice updates its Stripe copy, and marks its QuickBooks copy out of date until it's sent or updated. An open Stripe payment page with the old ways is closed and a new one made.

For Stripe, your key needs write access to Checkout Sessions (see Stripe). For QuickBooks, QuickBooks Payments must be switched on in QuickBooks.

What the client sees#

The button shows on sent, part-paid and overdue invoices with a balance. It never shows on drafts, cancelled or paid invoices, invoices whose client is archived, or invoices brought in from Stripe or Xero — nor while QuickBooks or Xero is still working out the tax, or while the invoice's Stripe or QuickBooks copy asks for a different amount (a check recorded here but not there, say).

  • Stripe — the client goes to the invoice's own Stripe page when it was sent through Stripe, or otherwise to a Stripe payment page for the balance. Clicking again opens the same page. If the balance changes, however it changes — a check recorded here, a payment QuickBooks or Xero reports, money held while the invoice was cancelled and applied when it's re-opened, a payment removed, a new total — the old page is closed as soon as the change is saved (again before a new one opens, and by the 15-minute check if Stripe couldn't be reached), so only one can ever be paid. Invoices brought in from QuickBooks work the same way. Money that doesn't come through Stripe also brings the invoice's own Stripe copy down to the new balance, or marks it paid outside Stripe when nothing is left, so Stripe stops asking; removing such a payment brings the copy back up to the balance. A copy AspirePro marked paid can't be un-paid in Stripe: if the payment behind it is removed (a check bounces), Pay now opens a Stripe payment page for the balance instead, and Finance → Sync lists the invoice until it's paid.
  • QuickBooks — the client goes to the QuickBooks invoice's pay link. The QuickBooks copy (and its link) is made when you send the invoice. If QuickBooks can't make it, the email goes without the button and you're told why.

The client is only ever sent to a page asking for exactly the balance the invoice shows. If Stripe's or QuickBooks' copy asks for a different amount, the client is asked to contact you instead.

How payments are recorded#

  • A Stripe payment is recorded once, whichever reports it first: Stripe's notification, the client coming back to the invoice page, or a check every 15 minutes. A client who closes the tab is still recorded.
  • A bank payment takes a few days to clear. The client is told it's being processed; it's recorded on the invoice once the bank confirms it.
  • The payment carries its real date and method, and Stripe's fee when your key can read it.
  • When QuickBooks is your books, the Stripe payment is also recorded against the QuickBooks invoice (reference AP- and the payment number), unless Stripe's own connector does that. A refund in Stripe is taken back off it. Anything QuickBooks refuses — a closed period, a deposited payment — waits on Finance → Sync for a person.
  • Payments taken by QuickBooks Payments are brought in with your other QuickBooks payments. While an invoice's QuickBooks copy carries a pay link, a payment received here has to be recorded in QuickBooks too, so its link asks for the right amount.
  • If a payment arrives after the invoice was already settled here, it's still recorded — the invoice then says it was paid more than owed and the extra is refunded where it was taken; the notice clears when the refund comes back from there.
Add the checkout.session.completed and checkout.session.async_payment_succeeded events to your Stripe webhook so Stripe payments show within seconds instead of at the next check. The Stripe page lists every event to choose under Which events to choose in Stripe.

Bring your whole services business together

Stop stitching together five tools. Run sales, delivery, support, and billing from one organization — with an AI assistant on every page.