New: Supaflow Claude Plugin -- let Claude create, edit, and monitor your data pipelines. Try the plugin
Stripe logo

Stripe Connector

Sync Stripe customers, subscriptions, invoices, products, prices, events, and balance transactions into your warehouse. Community connector.

SourceCommunity

Evaluating against Fivetran? See how Supaflow handles Stripe pricing, connector quality, and Snowflake deployment side-by-side.

Supaflow vs Fivetran

Why Supaflow

All connectors included

Every connector is available on every plan. Pricing does not increase with connector count.

Pay for compute, not rows

Credit-based pricing. Usage scales with your pipelines, not with row counts.

One platform

Ingestion, dbt Core transformation, reverse ETL, and orchestration in a single workspace.

Capabilities

Secret Key Authentication

Authenticate with a Stripe secret key (sk_test_... for test mode, sk_live_... for live). Works with restricted keys scoped to the nine read resources the connector needs; no OAuth flow required.

Incremental for Events and Balance Transactions

The Event log and BalanceTransaction stream sync incrementally on Stripe’s created timestamp, so scheduled runs fetch only what is new. Customers, subscriptions, invoices, products, prices, coupons, and your account run as full refresh because Stripe’s list endpoints do not expose a modified-at filter.

Stable Stripe Schema

The connector ships with a fixed Stripe field set, so destination columns stay stable run-to-run. Fields that happen to be null in a given sync are not silently dropped from the schema.

Canceled Subscription Handling

Canceled subscriptions land in your warehouse alongside active ones. Lifetime subscription analysis and churn cohorts work out of the box.

Start Date and Lookback

Cap the historical window for incremental streams with an ISO 8601 Start Date, and configure a per-run Lookback Period (seconds) to re-fetch recent events on every sync for late-arriving updates.

Supported Objects

Incremental

Event

Stripe’s event log -- every API change that produces a webhook event.

BalanceTransaction

Every charge, refund, payout, and fee that hits your Stripe balance.

Full Refresh

Customer

All customers in your Stripe account.

Subscription

All subscriptions, including canceled ones.

Invoice

All invoices.

Product

Product catalog.

Price

Price objects (the successor to the legacy Plan object).

Coupon

Coupons (distinct from promotion codes, which the connector does not yet sync).

Account

Your Stripe account record, capabilities, and settings.

Not yet supported

Charge, PaymentIntent, Refund, Dispute, Payout, Transfer, SetupIntent, PaymentMethod, CreditNote, TaxRate, PromotionCode, UsageRecord, SubscriptionItem, Plan

The connector does not yet sync these objects. Contact us at support@supa-flow.io if you need any of these -- expansion is prioritized by customer demand.

How It Works

1

Create a Stripe API key

In the Stripe Dashboard, go to Developers > API Keys. Either use your Standard key (sk_live_... for production, sk_test_... for test mode) or create a Restricted key with Read access only to the nine resources this connector calls: Account, Balance transactions, Coupons, Customers, Events, Invoices, Prices, Products, and Subscriptions.

2

Paste the key into Supaflow

Paste the sk_test_ or sk_live_ key into the Stripe Secret Key field. The value is stored encrypted and is never echoed back in logs or the UI.

3

Configure optional sync settings

Optionally set a Start Date (ISO 8601, e.g., 2024-01-01T00:00:00Z) to cap the historical window for Event and BalanceTransaction. Optionally set a Lookback Period in seconds to re-fetch a trailing window on every incremental run.

4

Test and save

Click Test & Save to verify the key and save the source. Supaflow then runs schema discovery against the nine Stripe resources.

Use Cases

Revenue and finance reporting

Land Customer, Subscription, Invoice, Price, and BalanceTransaction into the warehouse to build MRR, ARR, churn, and payout reconciliation reports in dbt -- without paying a per-row fee on a high-invoice month.

Event-log audit and webhooks backfill

The incremental Event stream gives you the Stripe Events API feed that this connector can read. Use it to audit recent webhook activity, inspect customer.subscription.updated / invoice.payment_failed history, or replay downstream processing inside the retention window Stripe exposes.

Cohorting on canceled subscriptions

Because the connector pulls every subscription status, canceled and past-due subscriptions live in the warehouse. Cohort churn by plan, price, or cancel reason without having to rebuild the history from webhooks.

Frequently Asked Questions

Does the connector require OAuth?

No. Stripe’s REST API authenticates with a server-side secret key (sk_live_... or sk_test_...). Supaflow stores the key encrypted. Publishable keys (pk_...) and webhook signing secrets (whsec_...) are not accepted.

Does the connector write to Stripe?

No. The connector is read-only. It issues list calls to the nine resources above and never calls create / update / delete endpoints. Do not grant write permissions on the Restricted key.

Can I sync Charges, PaymentIntents, Refunds, Disputes, or Payouts?

Not yet. The connector exposes a fixed list of nine resources. Expanding coverage is a connector-level change, not a configuration. Email support@supa-flow.io with the objects you need -- we prioritize expansion by customer demand.

Why are Customers, Subscriptions, and Invoices full refresh instead of incremental?

Stripe’s list endpoints for those objects only expose the immutable created timestamp, not a lastModifiedDate-style filter. Running them as incremental would miss updates to existing rows. Full refresh means the connector re-reads every record on each sync.

Does Supaflow support test mode and live mode?

Yes, but not in the same source. sk_test_... keys read test-mode data only; sk_live_... reads production only. Create two separate sources if you want both.

How does Stripe rate limiting work with Supaflow?

Stripe enforces its own API rate limits in live mode and test mode. The connector does not add a Stripe-specific retry or throttling layer. Initial syncs of large accounts can take a while because Stripe’s maximum page size is 100 records -- a 1M-customer first sync is 10k sequential requests.

Can I run the Stripe pipeline natively inside Snowflake?

Yes. Supaflow runs as a Snowflake Native App via Snowpark Container Services. Your Stripe data is extracted and loaded without leaving your Snowflake account. See our Snowflake Native ETL guide for details.

Need a connector we don't support yet?

Build one with AI-powered Connector Dev Skills.

Learn More About the Connector SDK