Update the Stripe CLI
For a Homebrew installation on macOS:stripe upgrade is not a Stripe CLI command. Update it through the package
manager used to install it. See the official Stripe CLI instructions.
Forward sandbox events
Authenticate the Stripe CLI to the same sandbox that owns your test products and prices:http://127.0.0.1:8080/api/billing/webhook. Keep the listener running.
Use its whsec_... signing secret, not the secret from an unrelated Dashboard endpoint.
These are snapshot events consumed by Bench’s billing handler. You do not need to enable every Stripe event.
Finish stripe login in the browser before starting the listener. If login was
canceled with Ctrl+C or credentials expired, run it again and use the new pairing
link. Do not paste pairing links, secret keys or webhook signing secrets into tickets.
Stripe cannot deliver directly to your machine’s localhost from a Dashboard webhook destination.
For local development, use the CLI forwarding command. A deployed endpoint instead needs its own
reachable HTTPS URL and signing secret. See Stripe webhook testing
and the Stripe CLI.
Configure test prices
Create recurring EUR sandbox prices matching the local plan catalog:
Use four distinct price IDs from the same sandbox as the API key. Annual cards show a rounded
monthly equivalent; Checkout charges the annual price. Free has no Stripe price.
In this development workspace, enter the values in the ignored
.context/local-billing.env file:
Verify the full flow
- Open Bench pricing, choose Monthly or Yearly, then select Builder or Growth.
- Confirm the plan, amount and billing interval on hosted Checkout before submitting.
- Use Stripe’s sandbox card
4242 4242 4242 4242, a future expiry and any three-digit CVC. - Confirm the listener receives a successful webhook response and Bench refreshes the plan and allowance.
- Test a failed payment, duplicate event delivery and a subscription change in the sandbox.
- Review changes and prorations on the Customer Portal confirmation screen before submitting.