Skip to content

Stripe ​

The Stripe (customer payments) card on Insight, then Integrations connects the Stripe account your customers pay into. It is your own Stripe account, separate from the one that bills your Printer's Friend subscription. With it connected, every invoice carries a hosted pay link, deposit checkouts work, store and campaign buyers can pay by card, and payments, refunds and disputes are recorded on the invoice without anyone typing them in.

The Connected accounts page with the Stripe card at the top, showing the Connect block, the webhook endpoint block and the key fieldsThe Stripe card. The block under the heading changes with the state of your connection.

The setup walkthrough is Payments with Stripe. This page is the reference for the card itself.

Two Ways to Connect ​

MethodHow it worksWhen to use it
Stripe ConnectConnect with Stripe sends you to Stripe's own onboarding and back. Printer's Friend stores the account id and whether charges are enabled. Payments land in your Stripe account.The default once the platform's Connect webhook is registered
Your own API keysPaste a secret key, a publishable key and a webhook signing secret from your Stripe dashboard, and register the endpoint shown on the card in Stripe.Today, and whenever you want full control of the account

Pasted keys take precedence. If both exist, the card says "You are using your own Stripe API keys below, and they take precedence" and asks you to disconnect them first if you would rather use Connect.

Connecting with Your Own Keys ​

  1. In your Stripe dashboard open Developers, then API keys. Copy the Secret key (sk_live_...) and the Publishable key (pk_live_...).
  2. On the Stripe card, paste them into Secret key (sk_...) and Publishable key (pk_...), then click Save.
  3. Read the block titled Your webhook endpoint. It shows a URL of the form https://printersfriend.com/webhooks/stripe/tenant/your-workspace (the last part is your workspace address) with a Copy URL button, and lists the events to subscribe to:
    • payment_intent.succeeded
    • checkout.session.completed
    • charge.refunded
    • charge.dispute.created
  4. In Stripe open Developers, then Webhooks, add an endpoint with that URL and tick those four events. Stripe shows the endpoint's signing secret (whsec_...).
  5. Paste it into Webhook signing secret (whsec_...) on the card and click Save. The block now reads "Signing secret stored: deliveries to this endpoint are verified and recorded on your invoices." Until then it reads "No signing secret stored yet: deliveries to this endpoint are refused until you paste one."
  6. Click Test connection. The pill changes to Connected.

The webhook is what marks invoices paid

Payment confirmation comes from Stripe's webhook, never from the customer's browser. With the keys saved and no endpoint registered, customers can pay and every invoice keeps showing unpaid. Register the endpoint and paste the signing secret before you send the first pay link.

Every delivery to your endpoint is checked against your stored signing secret and recorded once by event id, so a replayed event never records a payment twice. A delivery with a bad signature is refused, and the endpoint answers with an error while no secret is stored.

Connecting with Stripe Connect ​

Connect is offered only once the platform's Connect webhook is registered. Until then the card reads "Stripe Connect is awaiting platform setup" and asks you to paste your own keys in the meantime; nothing else on the card changes.

When Connect is available:

  1. Click Connect with Stripe. Stripe's onboarding opens and asks for your business details and bank account.
  2. Finish onboarding. Stripe returns you to the Integrations page with the notification "Stripe account connected".
  3. The card now reads "Connected via Stripe Connect. Account acct_..." followed by either "Charges are enabled: invoice pay links collect payments straight into your Stripe account" or "Charges are not enabled yet. Finish the remaining requirements in your Stripe dashboard."

Pay links are created only once charges are enabled on the connected account, so a half-finished onboarding never produces a link nobody can pay. Payments on a connected account are recorded through the platform's own Connect endpoint; you register nothing in Stripe.

Disconnect Stripe Connect removes the stored link after a confirmation. Your Stripe account is not deleted.

What Stripe Enables ​

FeatureWith StripeWithout Stripe
Hosted pay link on every invoice, created before the invoice email goes outYesThe email leaves out the "Pay online" line
Payment recorded on the invoice when the customer paysYesRecord it by hand on the invoice
Deposit invoices with a pay linkYesDeposit invoices still issue; payment by hand
Card capture after a store, campaign or portal cart checkoutYesNot available
Refunds from a return sent back to the customer's cardYesThe refund is recorded as a manual reversal
A dispute flagged on the invoice with the reason and the Stripe deadlineYesNot available
Invoices, PDFs and remindersYesYes

A bank transfer shop can run without Stripe. Put your bank details in the invoice template's payment instructions and record payments on the invoice.

Testing ​

Use test keys (sk_test_..., pk_test_...) and a test webhook endpoint first. Issue an invoice to yourself, pay the link with a Stripe test card, and watch the invoice flip to paid on its own. Then replace the keys with live ones, register the live endpoint, and make one real low value payment to yourself before invoicing a customer.

Troubleshooting ​

SymptomCause
A customer paid but the invoice shows unpaidThe webhook is not arriving or not verifying. Check the endpoint URL in Stripe matches the card, the four events are ticked, and the signing secret on the card is the one Stripe shows for that endpoint
No pay link on an invoiceStripe is not connected, or on Connect the account's charges are not enabled yet
The card says "awaiting platform setup"Connect is not available yet on the platform. Paste your own keys instead
Everything worked in test and fails liveTest keys are still saved, or the live endpoint was never added in Stripe
A card is declined for one customerStripe's own decline reason, visible in your Stripe dashboard
An invoice shows a disputeA customer disputed the charge. Respond in your Stripe dashboard before the deadline; the payment is held until Stripe closes the dispute

Printer's Friend - software for apparel print shops