Skip to main content
Regentra uses Stripe in two distinct ways: platform billing for your Regentra subscription, and per-org billing for invoicing your MSP clients through the PSA module.

Two modes of Stripe

Handles your Regentra subscription charges — plan fees, per-seat PSA billing, and compliance tenant add-ons. This is managed automatically when you subscribe and requires no additional setup. See Billing & Subscriptions for details.

Setting up per-org Stripe

1

Get your Stripe API keys

In the Stripe Dashboard, navigate to Developers → API Keys and copy your Publishable key and Secret key.
2

Enter keys in Regentra

Go to Settings → Integrations → Stripe and paste both keys.
3

Test the connection

Click Test Connection to verify Regentra can communicate with your Stripe account.
4

Save

Save the configuration. You can now generate invoices that accept payment through Stripe.
Use your live API keys for production invoicing. Test keys will not process real payments. Never share your secret key — it is encrypted at rest using AES-256-GCM.

Invoice generation and payment

Once Stripe is connected, the invoicing flow works as follows:
  1. Technicians log billable time against tickets
  2. Time entries go through the approval workflow
  3. An admin generates an invoice from approved entries
  4. The invoice is sent to the client with a Stripe-hosted payment link
  5. The client pays online via credit card or ACH
Payment status is tracked on the invoice in Regentra:
StatusMeaning
DraftInvoice created but not yet sent
SentInvoice delivered to the client
PaidPayment received through Stripe
OverduePayment deadline has passed without payment

Webhook configuration

Regentra uses Stripe webhooks to receive real-time invoice events. Regentra generates a per-org webhook URL with a random token in the path (so two orgs never share a route), but you have to paste that URL into Stripe yourself — Stripe does not let third parties create endpoints in your account on your behalf.
1

Copy the webhook URL from Regentra

On the Stripe card, copy the Webhook URL value. It looks like https://app.regentra.io/api/webhooks/stripe/{token} with a long random token unique to your org.
2

Add the endpoint in Stripe

In the Stripe Dashboard → Developers → Webhooks → Add endpoint, paste the URL.
3

Subscribe to the events

The critical event is invoice.paid — that’s the one that flips a Regentra invoice to PAID and triggers the QuickBooks payment bridge if QB is connected. You can also subscribe to invoice.payment_succeeded and invoice.payment_failed for the audit log, but only invoice.paid drives state transitions.
4

Paste the Signing Secret back into Regentra

Stripe shows the endpoint’s Signing Secret (starts with whsec_). Paste it into the Webhook Signing Secret field on the Regentra card and Save. The signature is verified on every webhook call — a missing or wrong secret causes inbound events to be rejected.
In hourly reconciliation, Regentra also calls invoices.retrieve for any PSA invoice flagged as SENT to catch the case where Stripe delivered invoice.paid while Regentra was briefly unreachable. This makes the integration self-healing — a missed webhook does not strand the invoice.

Auto-sync of Stripe products to the Service Catalog

When you connect Stripe for the first time, Regentra automatically pulls every Stripe Product and Price from your account into the PSA Service Catalog. New items appear in the catalog within seconds of the connect-success page — no separate “Sync from Stripe” click is required for the initial pull. After the initial connect, you can re-trigger the sync any time from PSA → Catalog, clicking Sync from Stripe at the top of the page, to pick up products you’ve added on the Stripe side.

Fee reconciliation with QuickBooks

If you also use QuickBooks Online for books of record, Regentra can post the Stripe processing fee as a QB Purchase natively — no third-party tool required. See QuickBooks Integration → Stripe processing fee reconciliation for the mapping setup.