Appearance
11. Payments with Stripe
Insight, then Integrations, then the Stripe (customer payments) card. This is the account your customers pay you through. It is a different Stripe account from the one that bills you for your Printer's Friend subscription, and the two never touch.
Connecting Stripe is what turns "invoice issued" into "invoice paid" without a phone call: every invoice gets a hosted payment link, and the payment is recorded against the invoice automatically.
Two ways to connect
Stripe Connect (recommended)
Two clicks. Press Connect with Stripe, complete Stripe's own onboarding, and you are returned to the workspace with the account linked. Stripe holds your business details and your bank account; the workspace stores only the account id and whether charges are enabled.
This is the right choice for almost everyone. It is faster, there are no keys to paste or rotate, and disconnecting removes the link on our side without touching your Stripe account.
Your own API keys
Paste them into the same card if you would rather manage the connection yourself, or if you already have a Stripe integration you want this to sit alongside.
| Field | Where to get it |
|---|---|
Secret key (sk_...) | Stripe dashboard, Developers, API keys |
Publishable key (pk_...) | Same page |
Webhook signing secret (whsec_...) | Stripe dashboard, Developers, Webhooks, after adding the endpoint |
Pasted keys take precedence over a Connect link if you have both.
Live keys mean live money
Test keys (sk_test_...) let you click through the whole flow without charging anyone, which is the right way to check your setup. When you switch to live keys, do one real low-value payment to yourself and confirm it lands, before you send a customer an invoice.
The webhook
Payments are confirmed by a webhook from Stripe, not by the customer's browser returning to your site. Without it, a customer can pay and the invoice stays showing unpaid.
If you connected with Stripe Connect, this is handled for you: one platform endpoint receives events for every connected account, verified with its own signing secret and resolved back to your workspace.
If you pasted your own keys, add the endpoint in your Stripe dashboard and paste the signing secret into the Stripe card. Full detail in the Stripe integration reference.
What the connection enables
| Feature | Needs Stripe |
|---|---|
| Hosted pay link on invoices | Yes |
| Payment recorded automatically on the invoice | Yes |
| Deposit checkouts on quotes | Yes |
| Card capture after a guest checkout on a store or campaign | Yes |
| Invoicing and PDFs | No, these work without Stripe |
A shop that only takes bank transfer can skip this step entirely and still invoice properly. Put your bank details in the invoice template's payment instructions instead, and reconcile by hand.
Verify it works
- Create a test customer with your own email.
- Quote, convert, dispatch, so an invoice is issued.
- Open the invoice and use its pay link, in test mode.
- Confirm the invoice flips to paid on its own, without you marking it.
Step 4 is the one that matters. If the payment succeeds in Stripe but the invoice stays unpaid, your webhook is not arriving. See troubleshooting.