Online payments with Stripe (Pay Now and statement links)
Summary
Section titled “Summary”Connect a Stripe account to Torqueflow and you can email or text customers a Pay Now link for any unpaid invoice. The customer pays with a card on Stripe-hosted checkout. The payment lands back in Torqueflow against the invoice automatically. You can also send a single statement link that pays multiple outstanding invoices in one go — the system splits the payment across them oldest-first.
This guide covers connecting Stripe, sending a Pay Now link, sending a statement payment link, and what the customer sees.
For in-person card payments on a physical terminal, see TakePayments card terminal. The two payment rails can be used together — Stripe for online, TakePayments for in-person.
Prerequisites
Section titled “Prerequisites”- You are an Owner. Stripe Connect setup needs the
settings.payments.managepermission. - To send Pay Now links and view confirmations, you need
finance.payments.collect. Owner and Manager have this by default. - An invoice must have an outstanding balance for Pay Now to appear.
- For statement payments, the customer must have at least one unpaid sales invoice.
Connect your Stripe account (one-off)
Section titled “Connect your Stripe account (one-off)”- Go to Settings → Billing → Accept Payments.
- On the Stripe card, click Connect Stripe Account.
- You are redirected to Stripe’s onboarding flow (Standard Account Links). Sign in to your existing Stripe account, or create one.
- Provide the details Stripe asks for — business identity, bank account for payouts, identity verification.
- Stripe sends you back to Torqueflow. The Stripe card now shows your masked Connected Account ID and the status of card payments.
- Pay Now buttons stay hidden until Stripe confirms
card_paymentsare active. This usually takes a few minutes after onboarding completes.
To disconnect, click Disconnect Stripe on the same card. Pay Now disappears immediately. Existing in-flight Stripe links continue to work until they expire.
Send a Pay Now link for one invoice
Section titled “Send a Pay Now link for one invoice”- Open the invoice from Finance → Sales Invoices.
- Click Pay Now to take payment yourself in front of the customer (e.g. front desk, phone), or Send Payment Link to email or text the customer.
- Pay Now opens Stripe Checkout in a new tab — you can hand it to the customer or have them use it on their own device.
- Send Payment Link options:
- Email with subject “Invoice {number} — Pay Now”. The PDF is attached.
- SMS with a short URL.
- Once the customer pays, the invoice flips to Paid within a few seconds. The payment appears in the invoice’s payment history with the method “Stripe”.
If you click Pay Now on the same invoice within 30 minutes of a previous click, Torqueflow re-uses the existing Stripe link instead of creating a fresh one. This prevents accidental duplicate sessions if you double-click.
Send a statement payment link for multiple invoices
Section titled “Send a statement payment link for multiple invoices”- Open the customer’s statement from their detail page.
- Click Pay Total to take a card payment in person, or Send Statement Payment Link to email or text the customer.
- Stripe Checkout shows a single line “Outstanding balance — N invoices” with the aggregate total. The customer pays once.
- Torqueflow splits the payment across the customer’s outstanding invoices oldest first (FIFO):
- Each invoice is paid in full where possible, then the next.
- A partial payment leaves the last touched invoice in Part paid.
- An overpayment (rare — happens if invoices change between link creation and payment) leaves an unallocated remainder visible on the staff confirmation page.
View payment confirmation
Section titled “View payment confirmation”After a customer pays, the staff confirmation page at Finance → Payments → {sessionId} shows:
- The amount received.
- Which invoices were credited and how much each got.
- The payment method (“Stripe”).
- Any unallocated remainder, if relevant.
You can also see the payment in the source invoice’s Payment History card.
What the customer sees
Section titled “What the customer sees”- They receive an email or SMS with a Pay Now link.
- The link opens Stripe-hosted checkout — Torqueflow does not see card details. The customer sees the amount, your business name (from your Stripe account), and a card form.
- After paying, they land on a Torqueflow success page. It shows the amount and a confirmation that payment has been received. The page deliberately does not show invoice details, your business address, or any other PII.
- If the link has expired (30 minutes after creation), the customer is told to ask you for a fresh link.
- If the payment is processing (rare — usually 3DS), the page auto-refreshes for a minute showing “Payment processing…”.
- The 30-minute reuse window protects against double-charges from accidental double-clicks. After 30 minutes, Pay Now creates a fresh Stripe session.
- All Pay Now sessions are time-bound. Customers who try to pay an expired link see a friendly “this link has expired” page.
- Stripe fees apply per Stripe’s published rates and are deducted before payouts to your bank.
- Stripe Connect onboarding is typical UK Standard onboarding — bank account, identity verification, business details. Stripe handles this entirely.
- Refunds are issued through the credit note flow. See Credit notes and refunds.
Troubleshooting
Section titled “Troubleshooting”Problem: I do not see a Pay Now button on an invoice.
Cause: Either Stripe is not connected, the invoice has no outstanding balance, or card_payments is still pending on your Stripe account.
Fix: Settings → Billing → Accept Payments. Confirm Stripe shows the Connected Account ID and that the card payments capability is active. If you just onboarded, give Stripe a few minutes.
Problem: Customer paid but the invoice still shows Unpaid. Cause: Stripe’s webhook is occasionally delayed. Fix: Refresh the invoice within a minute. If it stays Unpaid for more than five minutes, check Stripe’s dashboard for the payment, then contact support.
Problem: Payment landed but allocated to the wrong invoice. Cause: Statement payments allocate oldest-first. If you wanted the customer to pay a specific invoice, send the per-invoice Pay Now link instead. Fix: For future statement payments, choose Pay Now on the specific invoice. To re-allocate a paid statement payment, contact support — manual re-allocation is a support task in this version.
Problem: Customer says the link expired. Cause: Pay Now links are valid for 30 minutes after creation. Fix: Click Send Payment Link again on the invoice or statement. A fresh link is sent.
Permissions
Section titled “Permissions”settings.payments.manageto connect and disconnect Stripe.finance.payments.collectto create Pay Now sessions and send payment links.