Appearance
Setup
Follow these steps to connect Stripe to your WeWeb project so you can use Stripe actions and webhooks.
1. Get your Stripe keys
- Go to Stripe Dashboard → API keys.
- Use Test mode (toggle in the dashboard) while building and testing.
- Copy:
- Publishable key (starts with
pk_test_orpk_live_) - Secret key (starts with
sk_test_orsk_live_)
- Publishable key (starts with
Test vs live
Use test keys (pk_test_, sk_test_) in the WeWeb Editor and when testing. Switch to live keys (pk_live_, sk_live_) only for Production when you’re ready to accept real payments.
2. Add Stripe in WeWeb
- In WeWeb, open the Integrations tab.
- Add the Stripe integration if it’s not already there.
- Create a connection (e.g. “Stripe – Editor”, “Stripe – Production”).
- For each environment you use (Editor, Staging, Production), fill in:
- Publishable Key — paste the Publishable key.
- Secret Key or Restricted Key — paste the Secret key (or a restricted key with the right permissions).
3. Test the connection
- In Data & API → APIs (or in a backend workflow), add an action.
- Choose the Stripe integration and the List Products action.
- Select your Stripe connection and run the action (or publish and call the API).
- If you see a list (even if empty), the connection works.
If something fails, check Errors and FAQs and the pitfalls below.
Common pitfalls
Using a live key in the editor (or a test key in production)
If the key environment doesn’t match where you’re testing, Stripe calls can fail or return unexpected data. Use pk_test_ / sk_test_ for testing and pk_live_ / sk_live_ for production.
Amounts are in cents
Actions like Create Payment Intent and Create Price use the smallest currency unit. For USD, 1000 means $10.00.
Your restricted key does not have the required permissions
If you use a restricted key, give it access to the Stripe resources you use (e.g. Payment Intents, Customers, Products, Subscriptions, Invoices). Otherwise requests can return 403.
Payment Intent cannot be canceled
Stripe only allows canceling a Payment Intent in certain states. If cancel fails, check the Payment Intent status in Stripe and your flow.
Limitations and what’s not in the editor
- Setup Intents (saving a card for later without charging) are supported by the backend but are not in the workflow action picker. You’d need a custom API that calls the backend.
- Charges and Payment Methods (create, attach, detach, list) exist in the backend but are not in the Stripe integration actions in the editor. Prefer Payment Intents and Checkout for new flows.
- For Checkout Session, only Create Checkout Session is in the editor; Update, Retrieve, List, List Line Items, and Expire are available in the backend and can be used via custom APIs.
- For Invoice Items, only Create Invoice Item is in the editor; other operations are backend-only.

