Billing
Stripe
The one source that makes a briefing worth reading on day one: MRR, new customers, failed payments, refunds and churn.
At a glance
- Category
- Billing
- Required
- Yes — billing is the one required slot
- Auth
- OAuth preferred, API key or token as fallback
- Powers
- Revenue, Retention, Profitability
- Freshness
- Stale after 6 hours
- Webhook
- Yes — signed, per project
- Key format
rk_live_ / rk_test_…
Connect it
- 1Open Integrations in your project and press Connect on Stripe.
- 2Choose Stripe OAuth if it is offered — it is one click and no key ever leaves Stripe.
- 3Otherwise pick the restricted key path. The Connect dialog links to a pre-filled Stripe key form with exactly the read permissions Seiton needs plus webhook write.
- 4Create the key, copy the rk_live_ value, and paste it into the dialog. Publishable keys (pk_) and secret keys (sk_live_) are rejected on purpose.
- 5Save. Seiton validates the key, registers a webhook endpoint in your Stripe account, and runs a first sync immediately.
The restricted API key is created here: dashboard.stripe.com.
Webhook
The exact URL — including this project's id — is shown in the product after you connect. Copy it from there rather than building it by hand.
https://www.seiton.online/api/webhooks/stripe?website_id={WEBSITE_ID}Events worth enabling:
checkout.session.completedinvoice.payment_succeededcharge.refundedcustomer.subscription.deleted
website_id is not optional
The signature is verified against the vault secret of that specific project. Without the query parameter the endpoint refuses the request rather than guessing which project a payload belongs to.
Worth knowing
- The webhook endpoint is the only object Seiton ever creates inside a connected tool. Disconnecting deletes it again.
- sk_test_ keys are accepted so you can point a project at Stripe test mode before going live.
- To attribute revenue to traffic, set metadata.visitor_id (or client_reference_id) when you create a Checkout Session.
Disconnecting
Disconnect from the Integrations page. Seiton deletes the stored credentials, removes any webhook endpoint it created in your account, and strips the fields this provider owned out of your snapshots — those metrics go back to insufficient data rather than freezing at their last value.
Revoking the token or OAuth grant inside Stripe works just as well and stops reads immediately. The connection then shows as revoked on the next sync, with the reason.
