Glossary
Stripe Tax Itemized Export
The Stripe Tax itemized export is a downloadable CSV with one row per line item per tax jurisdiction, showing how Stripe Tax treated every transaction, including non-taxable ones.
Also called: itemized export, Stripe Tax itemized report, Stripe Tax transaction export, tax.transactions.itemized.2
14-day free trial · card required · cancel anytime
Definition
Stripe Tax offers three reports built from the same transaction data: the itemized export, the summarized export and the location report. The itemized export is the most detailed of the three. Stripe describes it as the most complete view of your Stripe Tax data.
Each row is one line item in one tax jurisdiction. A line item taxed by a state, a county, a city and a special district produces four rows. Every row carries the resolved addresses, the product tax code, the taxability and its reason, the rate, the tax amount, and identifiers such as the invoice, customer and PaymentIntent.
For anyone keeping books in QuickBooks, it is the report to open when a total doesn't tie. It is the only Stripe Tax report that lists non-taxable transactions, such as sales into states where you are not registered. It is also the place to find a single transaction behind a difference. Its one trap is the row structure: most amount columns repeat on every jurisdiction row, so a plain column sum overstates sales.
Key points
- +One row per line item per tax jurisdiction, so one sale can produce several rows.
- +Includes non-taxable transactions by default, with a toggle to exclude some of them.
- +Downloadable, schedulable, and available through the Reports API.
- +Any date range, in the time zone you choose at export time.
- +Only tax_amount and filing_tax_amount are safe to sum across all rows.
- +Carries addresses, tax codes, taxability reasons and optional metadata columns.
What the columns mean
The identifying columns come first. id is the object that created the tax transaction, such as an invoice ID. tax_transaction_id is the Stripe Tax transaction itself. type says what kind of object it was (checkout, credit_note, external, invoice, payment_intent or refund), and transaction_type says whether the row is a transaction or a reversal of an earlier one. Reversals point back to the original in reversal_original_tax_transaction_id.
Dates come in pairs. transaction_date is when the tax liability was assumed or reduced, and tax_date is the date used to pick the tax rules and rates. Each appears in UTC and in the time zone you chose.
Then the jurisdiction: jurisdiction_name, jurisdiction_level (country, state, county, city or district), country_code, state_code, taxability, taxability_reason, tax_rate and tax_type. Then the amounts: subtotal, total, gross_amount, taxable_amount, non_taxable_amount and tax_amount in the currency you price in, with filing_tax_amount and its siblings in the tax authority's currency. Origin, destination and performance-location addresses follow, along with invoice, customer and product details.
You can add metadata columns from credit notes, invoices, PaymentIntents, refunds and tax transactions. Each one appears as section[key], for example invoice_metadata[order_id]. That is the easiest way to carry your own order numbers into the export.
The two columns that are safe to sum
Stripe's reconciliation guide is direct about this. The itemized export has one row per tax jurisdiction, not one per transaction, and most amount columns (gross_amount, total, taxable_amount and non_taxable_amount) repeat the line item's value on every row. Sum those columns across a file and the total is inflated by the number of jurisdictions on each line item.
A $100 sale taxed by a state, a county and a city appears on three rows, each showing a gross_amount of $100. Summing gross_amount gives $300 of sales. The tax is different: each row's tax_amount belongs to that jurisdiction alone, so the three rows add up to the sale's real tax.
Only tax_amount and filing_tax_amount are unique per row. For sales-side amounts, group by jurisdiction first, or deduplicate on id and line_item_id and sum the unique rows. This is the most common way an itemized total gets inflated before it reaches a reconciliation.
What it includes, and how it ties to the summarized export
Like every Stripe Tax export, it only covers transactions Stripe Tax calculated. That means invoices, subscriptions, Checkout Sessions and Payment Links with automatic tax enabled, Stripe Tax API transactions, and transactions you import from other platforms. Raw charges without an invoice and invoices with manual or no tax are absent.
Within that scope it keeps non-taxable rows that the other reports drop: sales where you aren't registered, where Stripe Tax isn't supported, or where no jurisdiction imposes tax. The Exclude non-taxable transactions toggle removes five taxability reasons. The summarized export always removes eight. To match the two, also drop rows whose taxability_reason is not_collecting, not_subject_to_tax or not_supported, then group by country, state, jurisdiction name, jurisdiction level, tax rate and transaction currency and sum.
Imported transactions show up here in full. The provider column names the platform from the import, or stripe for Stripe's own transactions. applied_tax_calculation_type is external for imported rows. Where Stripe had to adjust an imported sale's taxable amounts to fit the tax you supplied, determination_method reads back_calculated.
Using it against your QuickBooks liability account
Most of the time the summarized export is the easier report to tie to a sales tax liability account. The itemized export is where you go when the tie-out fails. Export the same period in the time zone your books use and apply the same filters as for the summarized export. Then sum tax_amount over transaction rows and subtract the sum over reversal rows. That is Stripe's net tax for the period, and it should equal the summarized export's tax collected minus tax refunded.
If Stripe and the books still disagree, sort by tax_amount and work down from the largest rows. Look for one that is missing from QuickBooks or recorded with a different amount. The invoice_id, payment_intent_id and customer columns get you to the matching record in Stripe and then in QuickBooks.
Two cautions apply. Stripe Tax reports use accrual timing, so tax counts when an invoice finalizes, not when it is paid. And sales that bypassed Stripe Tax aren't in the file at all, so tax charged some other way will sit in the liability account with nothing here to match it.
Getting the export, and the API versions
In the Dashboard, the export starts from the Locations page. You can filter by jurisdiction before exporting, which keeps large files small. That matters most for EU One Stop Shop registrations, where Stripe also reminds you to remove domestic transactions an OSS return doesn't need. You can also schedule the export to run daily, weekly or monthly.
Through the Reports API, tax.transactions.itemized.2 returns the rows for transactions the platform itself is liable for. Connect platforms use connected_account_tax.transactions.itemized.2, with the connected account set, for accounts that are liable for their own tax. Stripe notes that both API versions are a subset of the Dashboard export: some fields, such as the origin-level address, the UTC timestamps and refund_id on voids, aren't included. The grouping and summing rules above still work on the columns they do include.
The itemized export and Acodei's tax sync
For United States QuickBooks companies, Acodei's documentation describes the Tax Product method: Stripe Tax amounts on synced invoices and receipts are rolled into a single line on a non-inventory product tied to a liability account. That account holds one total for every state, and Acodei's documentation points you to Stripe's own reports for the state-by-state detail when you file.
The itemized export carries that detail down to the line item. Use it when the liability account and Stripe's totals disagree and you need the transaction behind the gap. One known source of gaps is worth checking first: Acodei's documentation notes that payment-only refunds don't always carry tax detail, so their tax may need a manual adjustment in QuickBooks even though the export already shows a reversal.
Want to see this on your own Stripe data?
Start a free trial14-day free trial · card required · cancel anytime
Frequently asked questions
What is the Stripe Tax itemized export?
It is a downloadable Stripe Tax report with one row per line item per tax jurisdiction. Each row shows the jurisdiction, taxability and reason, rate, tax amount, resolved addresses and identifiers such as the invoice and customer. It is the most detailed of Stripe Tax's three reports.
Why is the itemized export total higher than my actual sales?
Because most amount columns repeat on every jurisdiction row. A sale taxed by a state, county and city appears three times with the same gross_amount. Only tax_amount and filing_tax_amount are safe to sum directly. For sales, group by jurisdiction or deduplicate on id and line_item_id first.
Does the itemized export include non-taxable transactions?
Yes, by default. It includes sales in places where you are not registered, where Stripe Tax is not supported, or where no jurisdiction imposes tax. The Exclude non-taxable transactions toggle removes five of those reasons. The summarized export always removes eight.
How do I reconcile the itemized export with the summarized export?
Use the same date range, time zone and jurisdiction filter. Drop non-taxable rows, including not_collecting, not_subject_to_tax and not_supported. Then group by country, state, jurisdiction name, jurisdiction level, tax rate and transaction currency and sum using Stripe's column mapping. The totals should match.
Can I get the itemized export through the API?
Yes. The Reports API offers tax.transactions.itemized.2, and connected_account_tax.transactions.itemized.2 for Connect platforms pulling rows for a liable connected account. Both are a subset of the Dashboard export and leave out a few fields, such as the origin-level address and the UTC timestamps.
What customers say about running Stripe through Acodei

“If you're testing out all the different Stripe/QuickBooks integration apps right now, let me save you some time. This one is the best one by far.”
“Works well and is really helpful for massive transactions. The support is really fast and helpful. 100% recommended.”
Related reading
- Stripe Tax
- Stripe Tax Summarized Export
- Stripe Tax Location Report
- QuickBooks Sales Tax Payable
- Importing off-Stripe sales into Stripe Tax
- Why the Stripe Tax report and QuickBooks don't match
- Reviewing Stripe's automated sales tax filing before it runs
More glossary terms
- Undeposited Funds
- Stripe Balance Transaction
- Available vs Pending Balance
- Stripe Dispute
- Stripe Dispute Evidence
- Stripe Fee
- Stripe Balance Adjustment
- QuickBooks Credit Memo
- Stripe Tax
- QuickBooks Tax Code
- Stripe Reserve
- Stripe Tax Rate
- Stripe Fee Credit
- Stripe Credit Note
- QuickBooks Product/Service Item
- Stripe Payout
- QuickBooks Sales Receipt
- QuickBooks Bank Deposit
- QuickBooks Transfer
- Stripe Authorization Hold
- QuickBooks Refund Receipt
- QuickBooks Payment
- QuickBooks Expense
- QuickBooks Journal Entry
- Stripe Financial Account
- Holding Account
- Accounts Receivable
- Bank Feed
- Deferred Revenue
- Stripe PaymentIntent
- Stripe Checkout Session
- Stripe SetupIntent
- Stripe PaymentMethod
- Stripe Charge
- Stripe Refund
- QuickBooks Invoice
- QuickBooks Class Tracking
- QuickBooks Location Tracking
- QuickBooks Project
- QuickBooks Closing Date
- Stripe Invoice Line Item
- Stripe Proration
- Stripe Invoice Status
- Stripe Shipping Rate
- Stripe Transfer
- Stripe Mandate
- Stripe on_behalf_of
- Stripe Invoice Item
- QuickBooks Estimate
- Stripe Invoice Payment
- Stripe Invoice Payment Settings
- Stripe Billing Meter
- Stripe Invoice Template
- Stripe Price
- Stripe Subscription Schedule
- Stripe Subscription Item
- QuickBooks Recurring Transaction
- QuickBooks Sub-Customer
- QuickBooks Audit Log
- QuickBooks Bank Rule
- Stripe Subscription Status
- Stripe Mixed Interval Subscription
- Stripe Trial Settings
- QuickBooks Payment Terms
- Stripe Pending Update
- QuickBooks Tags
- QuickBooks Credit Card Credit
- QuickBooks Vendor Credit
- QuickBooks Bill
- QuickBooks Delayed Charge
- Stripe Billing Mode
- QuickBooks Billable Expense
- Stripe Customer Cash Balance
- QuickBooks Purchase Order
- QuickBooks Opening Balance
- QuickBooks Account Type
- QuickBooks Sales Tax Center
- Stripe Webhook
- Stripe Metadata
- Stripe Outbound Payment
- Stripe Received Credit
- Stripe Outbound Transfer
- Stripe Inbound Transfer
- Stripe Received Debit
- Stripe Payout Method
- Stripe Financial Account Transaction
- Stripe Financial Address
- Stripe Application Fee
- Stripe Connected Account
- Stripe Destination Charge
- Stripe Separate Charges and Transfers
- Stripe Direct Charge
- Stripe Payment Method Configuration
- Stripe Dynamic Payment Methods
- Stripe Payment Method Rules
- QuickBooks Bundle
- Stripe Account Capability
- Stripe Merchant of Record
- Stripe Data Pipeline
- Settlement Currency
- Hosted Invoice Page
- Stripe Customer
- Stripe Product
- QuickBooks Home Currency
- QuickBooks Exchange Gain or Loss
- QuickBooks Trial Balance
- QuickBooks General Ledger Report
- QuickBooks Retained Earnings
- QuickBooks Profit and Loss Report
- QuickBooks Balance Sheet Report
- QuickBooks Account Register
- QuickBooks Reclassify Transactions
- QuickBooks A/R Aging Report
- QuickBooks Sales Tax Liability Report
- QuickBooks Sales Tax Payable
- Stripe Tax Transaction
- Stripe Tax Location Report
- Stripe Tax Summarized Export
Ready to try Acodei?
Connect Stripe to QuickBooks Online in minutes and let the fees, refunds, and payouts land where your accountant expects them.
14-day free trial · card required · cancel anytime