Collect Stripe prices and products in AWS Athena
Keep Stripe products, prices and subscription items as tables that AWS Athena queries. A custom OWOX connector loads the catalogue and what customers actually subscribe to, so plan mix is a query away.
AWS AthenaIdAccou…Livem…Daily 09:00Stripe Endpoints
14 Stripe endpoints you can import. Each lands in its own table in your data warehouse.
Balance transactions
Every movement of money through the Stripe balance: charges, refunds, disputes, fees, payouts, adjustments.
16 fieldsTime seriesCharges
One row per charge attempt: amount, outcome, card details, who paid and which invoice or payment intent it belongs to.
33 fieldsTime seriesCustomers
Every customer object: identity, billing country, delinquency and balance.
17 fieldsDisputes
One row per dispute (chargeback) with its status and evidence deadline.
14 fieldsTime seriesEvents
The audit trail: every change Stripe recorded (invoice.paid, customer.subscription.updated, charge.refunded, …) with the id of the object it concerns.
11 fieldsTime seriesInvoice line items
Every line on every invoice: what was billed, for which price and product, for which period.
19 fieldsInvoices
One row per invoice with amounts, status and period.
31 fieldsTime seriesPayment intents
One row per payment attempt lifecycle: how much was asked for, how much was received, and where it stands.
22 fieldsTime seriesPayouts
One row per transfer from the Stripe balance to the bank account: amount, arrival date, status.
18 fieldsTime seriesPrices
Every price (plan) of every product, active or not, with amount, currency and billing interval.
17 fieldsProducts
The catalogue: every product, active or not.
13 fieldsRefunds
One row per refund: how much was returned on which charge, why, and the balance transaction that reversed the money.
13 fieldsTime seriesSubscription items
The lines of every subscription: which price, how many units.
14 fieldsSubscriptions
One row per subscription in any status (status=all), full refresh every run so cancellations and past-due states are current.
23 fields
Why look at prices beside what customers actually buy
A price list says what you sell. Which plans customers pick, and which ones fade, is in the subscription items. Reading the catalogue against real subscriptions needs both in one warehouse, joined on the price.
- See which plans carry the subscriptions
- Spot active prices nobody uses
- Compare monthly and yearly plans in one query
Your data warehouseStripeOrdersUsageJoined by idPrice publishedPlan subscribedOne query shows which prices customers pick.Step 1: Connect Stripe and pick the fields
Create a Data Mart, choose Stripe as the source and add a restricted API key with read access. Open an endpoint and tick only the fields you need.
- Prices carries the product, currency, amount, billing scheme and interval
- A custom connector: the restricted API key is yours
Step 2: Load Stripe into AWS Athena
Each endpoint becomes its own table, and refresh settings are set in the Data Mart. Run it and the first load lands as a table in the database you choose in AWS Athena. The location is pre-filled from your storage, and you can change it.
- Products, prices and subscription items each get their own table
- Every run is logged in Run History
DestinationDatabasestripeTablepricesRun
Tablestripe.pricesStep 3: Get a business-friendly Stripe output schema
After the first run you get the output schema: every field with its type and a description. unit_amount is in the smallest currency unit, and the schema says so.
- recurring_interval says month, year, week or day for recurring prices
- billing_scheme separates per-unit from tiered prices
stripe.pricesOutput schemaFieldDescriptionproductProduct id (prod_). Join to…activeWhether the price can be used…currencyThree-letter ISO currency code…unit_amountPrice per unit in the smallest…typeone_time or recurring.recurring_intervalmonth, year, week or day for…Step 4: Keep the Stripe tables linked
Products, prices and subscription items stay separate tables, joined by ids. Together they become the catalogue part of one Stripe model.
- Prices carry the product id; subscription items carry the price id
- Add orders and product usage to the same model
Step 5: Schedule the Stripe refresh and backfill history
Set it once. A daily scheduled refresh reads new rows, and a manual backfill reloads the whole catalogue, which is how changes to an existing price arrive.
- Daily runs with no pipeline to maintain
- Backfill the full catalogue the first time you connect
Step 6: Reuse the same Stripe table everywhere
One table feeds your model, , , assistants and scheduled insights in Slack or email.
- Define a plan once
- Every report reads the same table
- 0.41.0Rotating a warehouse key is one change: Storages share reusable Credentials
- 0.41.0Dates from Google Sheets arrive as dates, not text
- 0.41.0Shared SQL logic stays in one place: build a Data Mart on top of another
- 0.41.0Rotating a connector key is one change: Sources share reusable Credentials
- 0.40.0Connecting a plan from Google Sheets takes fewer guesses
Why OWOX for Stripe in AWS Athena
The Stripe product catalogue is a settings page. OWOX makes it a set of tables in your own data warehouse that AWS Athena can query.
- You own the data. It lands in your own data warehouse, in tables you control.
- Catalogue and demand together. Prices join subscription items, so plan mix is measured.
- Query it where you already do. AWS Athena reads the tables directly.
- One place to fix. A Stripe API change is a new connector version, not a rewrite of your tables.
You are booked. The invitation is on its way to , with the calendar invite and the meeting link.