Two modes of Stripe
- Platform billing
- Per-org billing (PSA invoicing)
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.
Invoice generation and payment
Once Stripe is connected, the invoicing flow works as follows:- Technicians log billable time against tickets
- Time entries go through the approval workflow
- An admin generates an invoice from approved entries
- The invoice is sent to the client with a Stripe-hosted payment link
- The client pays online via credit card or ACH
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.
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.
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.