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 workspace add-ons. This is managed automatically when you subscribe and requires no additional setup. See Billing & Subscriptions for details.

Setting up per-org Stripe

Regentra’s Stripe card only asks for two values: your Stripe Secret Key and, once the webhook is registered, the Webhook Signing Secret. There’s no publishable key field — Regentra never renders Stripe Elements client-side, so it doesn’t need one.
1

Save your Secret Key

In the Stripe Dashboard, navigate to Developers → API Keys and copy your Secret Key (starts with sk_live_ or sk_test_). Paste it into Settings → Integrations → Stripe → Secret Key and click Save Credentials.
2

Test the connection

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

Register the webhook

After saving, your unique Webhook URL appears on the card. Follow Webhook configuration below to create the endpoint in Stripe and paste the Webhook Signing Secret back — invoices won’t reconcile payment status automatically until this is done.
Use your live Secret Key for production invoicing. A test-mode key 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:

Webhook configuration

Regentra uses Stripe webhooks to receive real-time invoice, refund, and dispute 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

Subscribe the endpoint to all 10 events Regentra handles:
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.
invoice.paid is the one that flips a Regentra invoice to PAID and triggers the QuickBooks payment bridge if QB is connected. invoice.finalized, invoice.voided, and invoice.marked_uncollectible keep an invoice’s status in step with what happened in Stripe, and are also what powers importing invoices created directly in the Stripe Dashboard (see below). invoice.payment_succeeded and invoice.payment_failed are recorded for the audit log only. The four charge.* events track refunds and disputes — see Refunds, chargebacks, and payouts below. In hourly reconciliation, Regentra also calls invoices.retrieve for any PSA invoice flagged as Sent or Partial 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.

Importing invoices created directly in Stripe

If your team ever creates or edits an invoice straight from the Stripe Dashboard instead of through Regentra, that invoice doesn’t automatically exist in Regentra. Once your webhook is configured (above), new Dashboard-created invoices import automatically as they’re finalized, paid, voided, or marked uncollectible — you don’t have to do anything for those going forward. For invoices from before you connected the webhook, or if you suspect one was missed:
1

Open the invoice list

Go to PSA → Invoices.
2

Import from Stripe

Click Import from Stripe. Regentra pulls finalized, paid, voided, and uncollectible Stripe invoices from the last 90 days by default, up to 1,000 invoices per run.
3

Run again if needed

If your account has more invoices than one run can cover, Regentra shows Run again to continue — click it to pick up exactly where the previous run left off.
Regentra also sweeps your account hourly in the background, re-checking your most recently finalized Stripe invoices — so even a webhook delivery that’s dropped for some reason gets picked up within a few hours without you doing anything. Imported invoices are labeled with a Stripe source badge on the invoice list and detail page. Because they originated in Stripe, their line items, amounts, and notes stay in sync with Stripe going forward rather than being editable in Regentra directly — voiding one still works, but asks you to confirm you understand it’s a Stripe-originated invoice first.
If you use QuickBooks too, invoices imported from Stripe can also auto-push to QuickBooks — see Auto-push toggle on the QuickBooks page.

Linking a Stripe customer to a company

To connect an existing Stripe customer to one of your Regentra companies — useful when a customer already existed in Stripe before you started using Regentra — open the company’s detail page under PSA → Companies and use the Stripe card to pick from your Stripe customers.
This only links an existing Stripe customer. It never creates a new one — if the customer you’re looking for isn’t in the picker, create it in Stripe first.
Linking a company this way makes future invoices, and the Stripe-import matching described above, resolve to the right company automatically instead of importing as unmatched.

Refunds, chargebacks, and payouts

When you refund a payment or a customer disputes a charge in Stripe, Regentra reflects it on the invoice’s payment record automatically: Regentra also runs a background job that matches your Stripe payouts to the individual payments that made them up, so a payment’s record shows which payout it landed in — and a daily consistency check flags any invoice whose recorded payments don’t add up to what Stripe shows, for your own review rather than any automatic correction.

Switching payment processors

Stripe is one of three integrations that can hold the payment processor role — see Payment Processors for how connecting a second processor while Stripe is active works, and what switching away from Stripe does to invoices you’ve already sent.

Auto-sync of Stripe products to the Service Catalog

Every time you save your Stripe Secret Key — the first connection or a later key update — Regentra automatically pulls every Stripe Product and Price from your account into the PSA Service Catalog in the background. New items typically appear within seconds; no separate “Sync from Stripe” click is required. You can also 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 since the last sync.

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.