Stripe

Stripe is the default billing connector for B2B SaaS, and Mara is wired for it out of the box.

What you configure

Two values, in the settings page under integrations → billing.

The webhook URL Stripe POSTs to. Mara generates this per-tenant. The signing secret from Stripe's webhook configuration. Mara stores it AES-256-GCM-encrypted in the database.

That's the whole setup. Stripe handles the retries; Mara verifies the signature on every incoming event.

What events Mara listens for

Seven lifecycle moments map from Stripe to Mara's programs:

If you fire other events at the webhook, Mara logs them with routes_to=skip and ignores them.

Test mode

The webhook URL is per-tenant; you can configure separate test-mode endpoints in Stripe to hit a sandbox tenant on your end. Mara doesn't distinguish test vs live events; the tenant separation handles that.

Customer data

Mara reads customer.email, the subscription state, and the plan name. She doesn't read card details, billing addresses, or tax info. Those stay in Stripe.

How Mara works → Pricing →