Skip to content

Updating visuals

If you see any images containing outdated UI, please bear with us.

We are updating all content as quickly as possible to mirror our new UI.

Setup

Follow these steps to connect Stripe to your WeWeb project so you can use Stripe actions and webhooks.

1. Get your Stripe keys

  1. Go to Stripe Dashboard → API keys.
  2. Use Test mode (toggle in the dashboard) while building and testing.
  3. Copy:
    • Publishable key (starts with pk_test_ or pk_live_)
    • Secret key (starts with sk_test_ or sk_live_)

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

  1. In WeWeb, open the Integrations tab.
  2. Add the Stripe integration if it’s not already there.
  3. Create a connection (e.g. “Stripe – Editor”, “Stripe – Production”).
  4. 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

  1. In Data & API → APIs (or in a backend workflow), add an action.
  2. Choose the Stripe integration and the List Products action.
  3. Select your Stripe connection and run the action (or publish and call the API).
  4. 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.

Next: Choose how to collect payments