Select Files
or drag and drop files here
Upload a JSON file
The Challenge
Stripe exports payment data as deeply nested JSON — charges contain nested customer objects, payment method details, metadata, and refund arrays. Spreadsheet software can't read this structure. Manually copying fields into Excel takes hours for large exports and loses nested data like billing addresses and card details.
Why Stripe exports need flattening
Stripe API responses and dashboard exports wrap all records inside a data array. Each record contains nested objects — a charge includes customer, payment_method_details, billing_details, metadata, and refunds as sub-objects. Standard JSON-to-CSV tools either skip nested fields or output [object Object]. This tool flattens every level into dot-notation columns: billing_details.address.city, payment_method_details.card.brand, giving you one clean row per transaction with all data preserved.
Root path is pre-set to 'data'
- Stripe wraps all API responses in { "data": [...] } — the root path skips this wrapper automatically
- If your export has a different structure (e.g. from a third-party tool), clear the root path field or adjust it
- List exports from Stripe Dashboard use the same data wrapper structure
- For single-object exports (one charge, one customer), clear the root path
How nested Stripe fields are flattened
Nested objects become dot-separated column headers. A charge with customer.name and customer.email produces two columns. Arrays of primitive values (like metadata tags) are joined with semicolons into a single cell. Arrays of objects (like invoice line items) are indexed: items[0].description, items[1].description. This preserves all data without losing structure. The pivot down option creates one row per field instead — useful for auditing individual records.
Supported Stripe export types
- Charges and payments — flattens payment method, customer, and refund data
- Customers — flattens addresses, default payment sources, metadata
- Invoices — flattens line items, discounts, billing details
- Subscriptions — flattens plan details, trial info, billing cycle
- Payouts and balance transactions — flattens fee details and source references
- Any Stripe API list response with the standard data wrapper
How to export data from Stripe
- Log into Stripe Dashboard and navigate to the data you need (Payments, Customers, etc.)
- Stripe Dashboard exports are CSV by default — for JSON, use the Stripe API or Stripe CLI
- Using Stripe CLI: run 'stripe charges list --limit 100' and pipe output to a .json file
- Using the API: make a GET request to the list endpoint (e.g. /v1/charges) and save the JSON response
- Upload the saved .json file to this tool — the data array is detected automatically
Step-by-Step Workflow
Upload Stripe JSON export
Data auto-flattens with root path set to 'data'
Review flattened output in preview
Download as CSV or Excel
Specifications
- Input Format
- Stripe JSON export (.json)
- Root Path
- data (pre-configured)
- Nested Handling
- Auto-flattened with dot notation (e.g. customer.email)
- Array Handling
- Primitive arrays joined with semicolons; object arrays indexed
- Output Formats
- CSV or Excel (.xlsx)
- Processing
- 100% client-side — no data leaves your browser
Best Practices
- Root path 'data' is pre-configured — works with all standard Stripe API list responses out of the box
- Enable 'suppress line breaks' to keep description and metadata fields clean in Excel
- Download as Excel for large exports — CSV files with commas in currency values can misalign in some spreadsheet apps
- Use pivot down mode to audit a single complex record — creates one row per field for easy review
- All processing happens in your browser — payment data never leaves your device
Frequently Asked Questions
How do I convert Stripe JSON to CSV?
Upload your Stripe JSON export file. The tool automatically detects the data array, flattens all nested objects (customer details, payment methods, addresses) into dot-notation columns, and outputs a clean CSV. Download as CSV or Excel.
Why do I see [object Object] when I convert Stripe JSON elsewhere?
Most JSON-to-CSV tools only handle flat structures. Stripe data is deeply nested — charges contain customer objects, payment method objects, and arrays. This tool recursively flattens every nested level into separate columns using dot notation.
Is my Stripe payment data safe?
Yes. All processing runs entirely in your browser using client-side JavaScript. No data is uploaded to any server. Your payment records, customer details, and financial data never leave your device.
Can I convert Stripe Dashboard CSV exports with this tool?
Stripe Dashboard already exports as CSV. This tool is for JSON exports from the Stripe API or Stripe CLI, where nested data needs flattening. If you have a Dashboard CSV, you can use our CSV to Excel tool instead.
How does the tool handle Stripe metadata fields?
Metadata key-value pairs are flattened into individual columns: metadata.order_id, metadata.source, etc. Each metadata key becomes its own column. If records have different metadata keys, all unique keys appear as columns with empty cells where not applicable.