Appearance
Stripe as a data source for tables
Besides using Stripe actions in workflows, you can use Stripe as a data source for tables in WeWeb. A table linked to Stripe loads records from the Stripe resource you choose (Products, Prices, Customers, Invoices, Subscriptions, or Payment Intents). You configure a view (list or search, filters, pagination). That view can be bound to table components (e.g. Data Grid) or fetched from the interface with the Fetch table view action.
Add a Stripe table
- In WeWeb, open Data & API and go to the area where you manage Tables (or Add table).
- Add a new table and choose Stripe as the source.
- Select your Stripe connection.
- Choose the Resource you want to use:
- Products — Stripe products (catalog).
- Prices — Stripe prices (one-time or recurring).
- Customers — Stripe customers.
- Invoices — Stripe invoices.
- Subscriptions — Stripe subscriptions.
- Payments — Payment Intents.
- Save. The table is now available and its columns match the Stripe API response for that resource (e.g.
id,object,name,descriptionfor Products).
Configure a view
Views define how data is loaded: List (filtered list with cursor pagination) or Search (Stripe Query Language). Configure the view for the Stripe table you added.
List vs Search
- List — Uses Stripe’s list API for the chosen resource. You get filters and pagination (limit, starting after, ending before) specific to that resource. Use this for “show me the first N products” or “customers by email.”
- Search — Uses Stripe’s search API for that resource. You set a Query in Stripe Query Language (e.g.
email:'customer@example.com' AND created>1609459200). Use this for flexible, query-based filtering. Pagination uses limit and page (search cursor).
View options by resource
Products — Active (all / active / inactive), Limit, Starting After, Ending Before; advanced: Created (timestamp range), IDs, Shippable, URL.
Prices — Active, Currency, Product (ID), Type (one_time / recurring), Limit, Starting After, Ending Before; advanced: Created, Recurring (object).
Customers — Email, Limit, Starting After, Ending Before; advanced: Created (timestamp range).
Invoices — Customer (ID), Status (draft / open / paid / uncollectible / void), Subscription (ID), Limit, Starting After, Ending Before; advanced: Created, Due Date (timestamp range).
Subscriptions — Customer (ID), Price (ID), Status (e.g. active, canceled, trialing), Limit, Starting After, Ending Before; advanced: Collection Method, Created, Current Period Start/End (timestamp ranges).
Payments (Payment Intents) — Customer (ID), Limit, Starting After, Ending Before; advanced: Created (timestamp range).
For Search mode, the only required view field is Query (plus Limit and Page for pagination). The same Stripe Query Language applies to the resource you selected (e.g. search customers with email:'@example.com').
Pagination
- List mode — The API returns a has_more flag. Use Starting After / Ending Before with the
idof the last or first record from the previous response to load the next or previous page. You can bind these from view metadata or a variable and refetch. - Search mode — Use Page (cursor from the search response) and Limit to page through search results.
When the view is loaded (e.g. by a table component or Fetch table view), the backend calls the Stripe list or search API with these options and returns the records. The table’s columns match the Stripe object shape (e.g. Products have id, name, description, active, created, metadata, etc.).
Use the table in the interface
- Bind to a component — In the binding menu, under Table Views, select the view you configured. Bind it to a Data Grid, repeating group, or list so the component displays the Stripe records. Data loads when the view is fetched (e.g. on page load or when you call Fetch table view).
- Fetch table view — In an interface workflow, add the Fetch table view action, choose your Stripe table view, and pass any parameters the view expects (e.g. for dynamic filters). Use the result to update a variable or refresh the bound data.
- Pagination — Use the view’s has_more metadata and the last record’s
id(or searchpagecursor) to load the next page in a subsequent fetch.
Columns per resource
Each Stripe table type has fixed columns that match the Stripe API:
- Products — id, object, active, created, default_price, description, images, livemode, metadata, name, and others.
- Prices — id, object, active, currency, product, unit_amount, recurring, type, and others.
- Customers — id, object, address, email, name, phone, metadata, and others.
- Invoices — id, object, amount_due, amount_paid, customer, status, subscription, and others.
- Subscriptions — id, object, customer, status, current_period_start, current_period_end, items, and others.
- Payments — id, object, amount, currency, customer, status, and others (Payment Intents).
You can bind any of these columns in your layout. For full field lists, see the Stripe API reference for each object (e.g. Product, Price, Customer, Invoice, Subscription, PaymentIntent).
For the general pattern of tables, views, and fetching data, see Working with data and Fetch table view.

