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.
Switching it on#
System → Finance Settings → Online payments:
- The Online payments switch shows or hides the Pay now button. Turning it off always works.
- Take payments with — Stripe, QuickBooks Payments, or the books' own: 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.
- 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 imported 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 (a check arrives, say), the old page is closed before a new one opens, so only one can ever be 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.
- QuickBooks Payments collections come back with the usual QuickBooks payment sync.
Add thecheckout.session.completedandcheckout.session.async_payment_succeededevents to your Stripe webhook so Stripe payments show within seconds instead of at the next check.