Stripe
Subscription and metered per-device billing through Stripe.
| Category | Billing |
| Authentication | Secret key |
| Reaches | api.stripe.com |
| Needs an agent | No |
| Demo mode | Yes |
Capabilities
Section titled “Capabilities”billing.createCheckout, billing.getSubscription, billing.portal
Getting the credentials
Section titled “Getting the credentials”- In the Stripe dashboard, go to Developers, API keys.
- Copy the secret key. It starts
sk_live_in production andsk_test_in test mode. - Create the Price for your per-device plan under Products, and copy its
price id, which starts
price_.
Use a restricted key rather than the full secret key if you can. The permissions this connector needs are read and write on Checkout Sessions, Subscriptions and Billing Portal Sessions. A full secret key can do considerably more.
Configuring it in Plugboard
Section titled “Configuring it in Plugboard”Admin, Connectors, Stripe, Configure.
Settings
Section titled “Settings”| Field | Default | Value |
|---|---|---|
priceId | empty | The Stripe Price id for the per-device plan |
demoMode | false | Return fixture data |
Credentials
Section titled “Credentials”| Field | Value |
|---|---|
secretKey | The Stripe secret or restricted key |
Save and test.
Test mode first
Section titled “Test mode first”Stripe’s test mode is a complete parallel environment with its own keys, prices
and dashboard. Configure with sk_test_ and a test price first, run a checkout
end to end, and only then switch to live keys.
The most common mistake is a live key with a test price id, or the reverse. Stripe’s error for that is clear once you know to look for it.
What it does
Section titled “What it does”| Operation | Use |
|---|---|
| Create checkout | Start a hosted payment flow |
| Get subscription | Read the current subscription state |
| Portal | Open Stripe’s own billing portal so a customer manages their own payment method and invoices |
The portal is worth using rather than building anything. Stripe’s billing portal handles card updates, invoice history and cancellation, and keeping that out of your own product is less code and less liability.
Entitlement does not come from here
Section titled “Entitlement does not come from here”Worth being explicit, because it is the same principle that governs the vendor’s own billing.
Entitlement lives in the signed licence, not in the billing system. A payment failure does not disable a service desk. Nothing in the billing path revokes anything.
A Stripe outage, an expired card or a failed webhook is a conversation, not an outage.
Troubleshooting
Section titled “Troubleshooting”| Symptom | Cause |
|---|---|
401 on test | Wrong key, or a restricted key without the needed permissions |
| “No such price” | A test price id with a live key, or the reverse |
| Checkout opens but fails | The price is not active, or its currency does not match the account |
| Fixture data appears | demoMode is still on |