best-way-to-sync-stripe-to-snowflake-(2026)

Intergalactic Data Labs
—
—
10 min read
Stripe data reaches Snowflake four ways as of September 2026. Stripe Data Pipeline pushes a data share every 3 hours. Hosted ELT vendors such as Fivetran and Airbyte poll the API, self-hosted engines such as dlt and Filament run inside your own network, and a hand-rolled loader uses PUT and COPY INTO. Freshness, the events window, embedded lists, pricing unit, and data path decide between them.
Approach | Examples | Freshness | Pricing unit | Data path |
|---|---|---|---|---|
Native share | Stripe Data Pipeline | Full load every 3 hours | Charges per month | Stripe to your account |
Hosted ELT | Fivetran, Airbyte Cloud, Estuary, Hevo, Stitch, Portable | Minutes to hours | MAR, credits, GB, events, rows, flat | Through the vendor |
Self-hosted engine | Filament, dlt, Meltano, ingestr, Sling | Your cron | None, or a paid tier | Your network only |
Hand-rolled | Stripe API plus PUT and COPY INTO | Your code | Engineering time | Your network only |
How does Stripe data get into Snowflake?
Every API-based path reads Stripe's list endpoints and lands the rows in Snowflake tables. Stripe pages results with a cursor, "with each page containing up to 10 results by default," per Stripe's pagination docs.
Three Stripe facts shape every tool. Events, which carry post-creation changes such as a refund settling, are readable for only 30 days, per Stripe's events reference. Invoice lines and subscription items arrive as embedded lists that stop at the default page size, so the full set needs the child endpoint. Every request draws on one rate budget that Stripe caps globally and per endpoint.
On the Snowflake side, PUT uploads files to an internal stage, COPY INTO loads Parquet, and MERGE applies upserts. Stripe's native path skips all of that with Secure Data Sharing, where no data is copied and you pay only for query compute.
What decides which Stripe to Snowflake method to use?
Five constraints separate the options, and one of them usually breaks first.
Freshness. Data Pipeline's cadence is a full load every 3 hours, while Fivetran defaults to six hours and offers 1-minute syncs on Enterprise plans.
Post-creation mutations. A
createdcursor never re-reads a refund that settles later, so the tool needs the events feed, a lookback window, or periodic full runs.Embedded lists. The connector must expand invoice lines and subscription items past 10 records, or your revenue tables are wrong.
Pricing unit. Charges, monthly active rows, credits, gigabytes, events, rows, or a flat fee each punish a different growth curve.
Data path. Stripe pitches Data Pipeline as a way to avoid third-party access, and self-hosted engines promise the same from the other side.
Which tools can sync Stripe to Snowflake?
Twelve products document a working path. The paragraphs cover the usual shortlist.
Tool | Deployment | Pricing unit | License | Stripe status |
|---|---|---|---|---|
Stripe Data Pipeline | Stripe hosted | Charges per month | Proprietary | Native product |
Filament | Self-hosted, embedded, Helm | None | Apache 2.0 | Beta source, alpha sink |
Fivetran | Hosted or hybrid | Monthly active rows | Proprietary | Full connector |
Airbyte | Cloud or self-hosted | Credits or data workers | ELv2 | Airbyte maintained, v6.0.19 |
Estuary Flow | Hosted | Per GB plus per connector | Not verified | Real-time connector |
Hevo | Hosted | Events per month | Proprietary | Listed source |
Stitch | Hosted | Rows per month | Proprietary | Certified Singer tap |
Portable | Hosted | Flat monthly fee | Proprietary | Listed source |
dlt | Self-hosted | None, dltHub paid tier | Apache 2.0 | Verified source |
Meltano tap-stripe | Self-hosted | None | AGPL-3.0 | Community supported |
ingestr | Self-hosted CLI | None | FSL-1.1 | Supported source |
Sling | Self-hosted CLI | CLI Pro token | GPL-3.0 | Paywalled API source |
Stripe Data Pipeline is the only path where Stripe pushes the data, and it ships financial report views that Stripe says are not available through third-party APIs. The limits are the fixed cadence, one warehouse account per Stripe account, and no service in India, per Stripe's warehouse docs.
Fivetran has the deepest managed Stripe schema, with history tables, delete capture, and child tables for invoice lines and subscription items. Its docs note that Stripe emits no event for metadata-only edits, so Fivetran cannot capture them, and that regenerated invoice URLs count as changes and raise your MAR bill.
Airbyte documents the most Stripe edge cases of any connector, including a lookback window and full line-item expansion since version 6.0.19. It pins an older Stripe API version, writes a raw table plus a final table per stream, and its LICENSE file is the Elastic License 2.0, which forbids offering it as a hosted service.
Estuary Flow streams events with scheduled backfills, priced per GB plus per connector. Stitch runs a certified Singer tap on row-based pricing. dlt is a free Apache 2.0 Python library whose Stripe source loads only events and balance transactions incrementally, with every other endpoint in replace mode.
Where does Filament fit for Stripe to Snowflake?
Filament is an Apache 2.0 replication engine that reads Stripe through an HTTP manifest and writes typed Snowflake tables from inside your own network. It covers four of the five criteria in the connector and leaves scheduling to your cron.
It handles the three Stripe traps in the connector. The source exposes invoice_line_items and subscription_items as fan-out children. "Stripe embeds lines and items as lists that truncate at 10 with their own has_more," its docs explain. Incremental resources checkpoint on created, a lookback window re-reads refunds and disputes that changed later, and one shared rate limiter stays under Stripe's ceiling.
The Snowflake side needs no external bucket. Each batch becomes a Parquet file that the sink uploads with PUT to the user's internal stage and loads with COPY INTO. "No external storage integration is required," the sink docs state. Upserts apply with one MERGE. Schema evolution is add-only into typed columns, and every batch carries a CRC32-C checksum the sink recalculates before it reports a write.
Maturity and data path. The Stripe source is beta and the Snowflake sink is alpha today, per its docs, and no public benchmark covers this route, so this article makes no speed claim for it. The engine runs as one binary, a Go library inside your own service, or a Helm chart, so Stripe data never passes through a vendor's cloud. Galaxy builds and maintains Filament.
How to sync Stripe to Snowflake with Filament
Three steps produce a scheduled incremental pipeline.
1. Create the Snowflake service user with key-pair auth
Generate a 2048-bit RSA key and register the public key on a SERVICE user with the SQL on the sink page. Snowflake's key-pair guide covers rotation.
2. Declare the source, sink, and pipeline
Install with curl -fsSL https://getgalaxy.io/filament/install | sh, then put this in ~/.config/filament/filament.yaml. The shape follows the CLI docs and the field names come from the two connector pages, so confirm nested fields with filament sink create --sink-connector snowflake --help.
Use a restricted rk_ key with read permission on those resources. Incremental reads default to upsert.
3. Run it once, then schedule it
filament run stripe-to-snowflake performs the first full read and resumes after its last completed page if interrupted. It creates one typed table per resource, with Stripe epoch timestamps as NUMBER(38,0) and JSON as VARIANT. Attach a cron schedule through the pipelines API, which takes a timezone and an overlap policy, and keep the interval well inside 30 days.
What goes wrong when syncing Stripe to Snowflake?
Every tool hits the same four traps, whatever the vendor.
Events expire. Pause an events-based pipeline for more than 30 days and the gap is unrecoverable, a limit Airbyte, Stitch, dlt, and Filament all document.
Created cursors miss mutations. Add a lookback window or a periodic full run, or refund and dispute statuses freeze at their first value.
Sensitive raw payloads. Payment intent and setup intent objects carry
client_secret, so treat those tables as sensitive and scope the key to read only.Warehouse spend. Frequent MERGEs keep a warehouse awake, which Fivetran's docs price at 10 to 20 percent of an X-Small.
Which Stripe to Snowflake option fits which job?
Pick by the constraint that breaks first.
Job | Pick | Why |
|---|---|---|
Finance close with Stripe's own report views | Stripe Data Pipeline | Financial report views, no third party |
Sub-hour freshness, no operations team | Fivetran or Estuary | 1-minute or streaming syncs |
Pipeline inside your network, no per-row meter | Filament | Apache 2.0, internal stage, typed tables |
Python-first team, minimal dependencies | dlt | Verified source, Apache 2.0 |
Flat bill at high volume | Portable | Unlimited volume per flow |
For an engineering team that already runs its own infrastructure, Filament is the pick, with dlt as the Python alternative. Data Pipeline stays for the finance report views.
Related guides
Introducing Filament, the announcement post with deployment options
Frequently asked questions
Does Stripe have a native Snowflake integration?
Yes. Stripe Data Pipeline sends a data share to your Snowflake account, and the tables arrive as secure views you query with your own warehouse. It refreshes with a full load every 3 hours, is priced per charge, and includes financial report views that no API-based tool can rebuild.
How much does Stripe Data Pipeline cost?
The monthly plan starts at 65 dollars per month for up to 1,000 charges, with a per-charge overage above that. Annual plans cost less per month and step up through four charge tiers with lower overage rates. Every plan includes Stripe Sigma and a free trial, according to Stripe's Data Pipeline pricing page.
Why do Stripe syncs need to run at least every 30 days?
Stripe keeps event objects for 30 days. Any tool that uses the events feed to catch refund settlements, dispute outcomes, or deletes cannot recover a change older than that. Airbyte, Stitch, dlt, Estuary, and Filament all document the same limit, so never pause a pipeline for a month.
Why do only 10 invoice line items show up in my warehouse?
Stripe embeds invoice lines and subscription items as lists that stop at 10 records and carry their own has_more flag. A tool that stores the embedded copy silently drops the rest. The complete set comes from the child endpoints, which is why mature connectors expose separate line item and subscription item tables.
What are Stripe's API rate limits for a sync?
Live mode allows 100 requests per second globally and a quarter of that on any single endpoint, and sandbox mode shares the lower ceiling. Exceeding either returns a 429 response with a reason header. Sync tools that extract many resources at once share one budget, so most hold well below the ceiling rather than tuning to it.
Can I sync Stripe to Snowflake without a hosted vendor?
Yes. dlt, Meltano tap-stripe, ingestr, and Filament all run on your own machines, and Sling does too once you buy its CLI Pro token for API sources. You own scheduling, the events window, and Snowflake credentials, in exchange for a data path that never passes through a third party's cloud.
How does Filament load Stripe data into Snowflake?
Filament reads each Stripe resource through an HTTP manifest, encodes every batch as a Parquet file, uploads it with PUT to the Snowflake user's internal stage, and loads it with COPY INTO. Upserts land in a temporary table and apply with one MERGE. Both connectors carry maturity labels in the docs, so validate the first loads against Sigma.
Which is the best way to sync Stripe to Snowflake?
Pick by the constraint that breaks first. Finance teams that want Stripe's own report views take Data Pipeline. Teams that need sub-hour freshness with no operations take Fivetran or Estuary. An engineering team that wants the pipeline inside its own network with no per-row meter should run Filament, with dlt as the Python-first alternative.
More articles
Questions
Answered
FAQ
What does Galaxy do?
What is Filament?
What is enterprise context management?
What does working with Galaxy look like?
How do you handle security and compliance?
Why does Galaxy build in the open?
Company
Talk to the team
Copyright © 2026 Galaxy. All rights reserved.