Import transactions into Stripe TaxPublic preview
Import transaction data from external platforms into Stripe Tax.
Import transaction data from third-party platforms into Stripe Tax using CSV files. Consolidate sales data from multiple platforms to get a unified view of your tax obligations, simplify compliance, and make informed decisions about tax registration requirements.
Importing your transaction data from external platforms into Stripe Tax has several benefits:
- Unified tax obligation monitoring: Monitor thresholds for all sales channels, including non-Stripe transactions.
- Simplified compliance: Avoid manual reconciliation and aggregation of data from different platforms.
- More accurate threshold monitoring: Identify where you need to register for tax collection by consolidating transaction data in one place.
- Manage data flexibly: Import historical data for past obligations or maintain regular imports for ongoing monitoring.
How it works
When you import transaction data into Stripe Tax:
- You export your transaction data from external platforms.
- You format the data into a CSV file with one row per line item (not per transaction).
- You upload the CSV file to Stripe Tax through the Dashboard.
- Stripe Tax validates and processes your data.
- Access imported transactions in reports, obligations monitoring, and filing and remittance.
CSV file format requirements
Your CSV file must follow a specific format with required columns. Include a header row in each file. Each row represents a line item, not a complete transaction. If a single transaction consists of multiple products or line items, list each line item as a separate row in the CSV file.
Column Reference
Column name | Type | Example |
source_ | Text Required | order_ |
Unique identifier for the transaction | ||
transaction_ | Either Sale , Refund , or Void Required | Sale |
The type of transaction | ||
transaction_ | Number Optional | 1 , 1712863281 (Unix timestamp) |
Numeric field to specify the most recent version of the transaction | ||
provider | Text Required | amazon , tax_ , shopify |
External source of the transaction | ||
liable_ | Text Required for Refund or Void | order_ |
Source transaction ID that this refund or void is handling | ||
tax_ | Date & time (format yyyy-MM-dd HH:mm:ss z ) Required | 2024-02-22 18:42:47 UTC |
Date that tax liability is incurred | ||
created_ | Date & time (format yyyy-MM-dd HH:mm:ss z ) Required | 2024-02-22 18:42:47 UTC |
Transaction creation date | ||
posted_ | Date & time (format yyyy-MM-dd HH:mm:ss z ) Required | 2024-02-22 18:42:47 UTC |
The date that liability is assumed or reduced | ||
currency | Currency code (ISO 4217) Required | USD , EUR , GBP |
Settlement currency of the transaction | ||
customer_ | Text Optional | cus_ |
Stripe’s Customer ID | ||
tax_ | Either exempt , none , or reverse Required | exempt |
Tax exempt status of the transaction | ||
line_ | Text Required | item_ |
ID of the line item | ||
line_ | Either Exclusive or Inclusive Optional | Exclusive |
Tax behavior for line item | ||
line_ | Number1 Optional | 150. |
Amount of the line item with tax | ||
line_ | Text Optional | prod_ |
Stripe product ID | ||
line_ | Text Optional | Premium Widget |
User-provided product name | ||
line_ | Text Optional | High-quality widget for premium customers |
Free-form product description | ||
line_ | Text Optional | txcd_ |
A Stripe product tax code that classifies this transaction. If not provided, the default product tax is used. | ||
line_ | Text Optional | SKU123 |
External product ID (for example, Merchant SKUs) | ||
line_ | Text Optional | TX456 |
External tax code for product | ||
line_ | Number1 Required | 50. |
Cost of a single unit | ||
line_ | Number (decimal values are supported) Required | 1 , 2 , 3. |
Quantity of the unit | ||
line_ | Number1 Optional | 10. |
Discount for given line item | ||
line_ | Number1 Optional | 45. |
Taxable amount for given line item | ||
line_ | Number Optional | 0. |
Tax rate aggregated to the line item level | ||
line_ | Number1 Required | 12. |
Total amount of tax collected for the given line item | ||
shipping_ | Text Required if using shipping2 | ship_ |
External shipping line item ID | ||
shipping_ | Either exclusive or inclusive Required if using shipping | exclusive |
Tax behavior for shipping line item | ||
shipping_ | Number1 Required if using shipping | 5. |
Shipping line item unit amount | ||
shipping_ | Number1 Required if `tax_rate` is missing | 5. |
Taxable amount for shipping | ||
shipping_ | Number Required if `taxable_amount` is missing | 0. |
Tax rate for shipping | ||
shipping_ | Number1 Required if using shipping | 0. |
Tax collected for shipping line item | ||
shipping_ | Text Optional | Express Shipping |
Free form shipping line item description | ||
shipping_ | Either txcd_ or txcd_ Optional | txcd_ |
A Stripe product tax code that classifies the shipping line item. | ||
shipping_ | Text Optional | TX789 |
External tax code for shipping | ||
shipping_ | Number1 Optional | 2. |
Discount for shipping line item | ||
merchant_ | Text Optional | San Francisco |
Merchant city | ||
merchant_ | Country code (ISO 3166-1 alpha-2) Required | US |
Merchant country | ||
merchant_ | Text Optional | 123 Commerce St |
Merchant address line 1 | ||
merchant_ | Text Optional | Suite 400 |
Merchant address line 2 | ||
merchant_ | Text Required for US/CA | 94111 |
Merchant postal code | ||
merchant_ | Text Optional | CA |
Merchant state | ||
tax_ | Text Optional | EU_ , CA_ |
Type of tax ID provided | ||
tax_ | Country code (ISO 3166-1 alpha-2) Optional | US , CA |
Two-character country code of the tax ID | ||
tax_ | Text Optional | 12-3456789 |
Tax ID value | ||
buyer_ | Text3 Optional | Boston |
Buyer city | ||
buyer_ | Country code (ISO 3166-1 alpha-2)3 Required | US |
Buyer country | ||
buyer_ | Text3 Optional | 456 Main St |
Buyer address line 1 | ||
buyer_ | Text3 Optional | Apt 789 |
Buyer address line 2 | ||
buyer_ | Text3 Required for US/CA | 02108 |
Buyer postal code | ||
buyer_ | Text3 Optional | MA |
Buyer state |
1 Amounts are represented as the currency in the primary denomination in decimal form. For example, 10.
in USD is equal to $10.
.
2 Shipping line items are optional, but if included, certain fields become required.
3 For customer addresses, the Stripe Tax address requirements apply.
Sample CSV file
Example CSV file with multiple line items and a variety of commonly used fields:
source_transaction_id,transaction_type,provider,liable_transaction_id,transaction_version,tax_rules_at,created_at,posted_at,currency,customer_id,tax_exempt,line_item.id,line_item.tax_behavior,line_item.amount,line_item.product_id,line_item.product_name,line_item.product_description,line_item.product_tax_code,line_item.external_product_id,line_item.external_tax_code,line_item.unit_amount,line_item.quantity,line_item.amount_discount,line_item.taxable_amount,line_item.tax_rate,line_item.amount_tax,shipping_line_item.id,shipping_line_item.tax_behavior,shipping_line_item.description,shipping_line_item.tax_code,shipping_line_item.external_tax_code,shipping_line_item.amount,shipping_line_item.amount_discount,shipping_line_item.taxable_amount,shipping_line_item.tax_rate,shipping_line_item.amount_tax,merchant_address.city,merchant_address.country,merchant_address.line1,merchant_address.line2,merchant_address.postal_code,merchant_address.state,tax_ids.type,tax_ids.country,tax_ids.value,buyer_address.city,buyer_address.country,buyer_address.line1,buyer_address.line2,buyer_address.postal_code,buyer_address.state 1935a6-Sale,Sale,tax_jar,,1,2024-06-07 18:07:21 UTC,2024-06-07 18:07:21 UTC,2024-06-07 18:07:21 UTC,USD,cus_9s6XKzkNRiz8i3,none,LineItem-1,inclusive,42.54,,,Pepperoni Pizza,txcd_40060003,tax_product_id_56,tax_code_99,55.05,1,12.51,,,9.67,ShippingLineItem-8ab3,inclusive,Shipping description 69,txcd_92010001,shipping_tax_code_3,10.33,,,,0,San Francisco,US,510 Townsend St,,94103,CA,us_ein,US,12-3456789,Seattle,US,9205th Ave,,98104,WA 8a54a0-Refund,Refund,tax_jar,1935a6-Sale,1,2024-06-07 18:07:21 UTC,2024-06-07 18:07:21 UTC,2024-06-07 18:07:21 UTC,USD,cus_9s6XKzkNRiz8i3,none,LineItem-1,inclusive,-42.54,,,Pepperoni Pizza,txcd_40060003,tax_product_id_56,tax_code_99,-55.05,1,-12.51,,,-9.67,ShippingLineItem-8ab3,inclusive,Shipping description 69,txcd_92010001,shipping_tax_code_3,-10.33,,,,0,San Francisco,US,510 Townsend St,,94103,CA,us_ein,US,12-3456789,Seattle,US,9205th Ave,,98104,WA 1860e6-Sale,Sale,tax_jar,,1,2024-06-07 18:07:21 UTC,2024-06-07 18:07:21 UTC,2024-06-07 18:07:21 UTC,USD,cus_9s6XKzkNRiz8i3,none,LineItem-1,inclusive,172.58,,,Pepperoni Pizza,txcd_40060003,tax_product_id_56,tax_code_99,45.37,4,8.9,,,7.43,ShippingLineItem-e936,inclusive,Shipping description 69,txcd_92010001,shipping_tax_code_3,8.14,,,,0,San Francisco,US,510 Townsend St,,94103,CA,us_ein,US,12-3456789,Seattle,US,9205th Ave,,98104,WA e7f7a1-Void,Void,tax_jar,1860e6-Sale,1,2024-06-07 18:07:21 UTC,2024-06-07 18:07:21 UTC,2024-06-07 18:07:21 UTC,USD,cus_9s6XKzkNRiz8i3,none,LineItem-1,inclusive,-172.58,,,Pepperoni Pizza,txcd_40060003,tax_product_id_56,tax_code_99,-45.37,4,-8.9,,,-7.43,ShippingLineItem-e936,inclusive,Shipping description 69,txcd_92010001,shipping_tax_code_3,-8.14,,,,0,San Francisco,US,510 Townsend St,,94103,CA,us_ein,US,12-3456789,Seattle,US,9205th Ave,,98104,WA 6b8059-Sale,Sale,tax_jar,,1,2024-06-07 18:07:21 UTC,2024-06-07 18:07:21 UTC,2024-06-07 18:07:21 UTC,USD,cus_9s6XKzkNRiz8i3,none,LineItem-1,inclusive,195.72,,,Pepperoni Pizza,txcd_40060003,tax_product_id_56,tax_code_99,69.17,3,11.79,,,5.51,ShippingLineItem-3218,inclusive,Shipping description 69,txcd_92010001,shipping_tax_code_3,9.41,,,,0,San Francisco,US,510 Townsend St,,94103,CA,us_ein,US,12-3456789,Seattle,US,9205th Ave,,98104,WA
Guidance for each transaction type
Sale transactions
When importing sale transactions, follow these guidelines to ensure proper processing. You can only include one shipping line item per transaction.
For transactions with a single line item:
- Create one row with all required fields
- Set
transaction_
totype Sale
For transactions with multiple line items:
- Create a separate row for each line item
- Ensure these fields match exactly across all line items in the same transaction:
source_
transaction_ id transaction_
type provider
tax_
rules_ at currency
- All
tax_
fieldsids. * - All
shipping_
fieldsline_ item. *
Refund and void transactions
When importing refunds or voids, you need to reference the original transaction:
For transactions with a single line item:
- Create one row with all required fields
- Set
transaction_
totype Refund
orVoid
- Set
liable_
to thetransaction_ id source_
of the original transactiontransaction_ id - Use the negative values for amount fields (add a minus sign)
- Ensure that
currency
matches the original transaction
For transactions with multiple line items:
- Create a separate row for each line item
- Set
transaction_
totype Refund
orVoid
- Set
liable_
to thetransaction_ id source_
of the original transactiontransaction_ id - Use the negative values for all amount fields
- Ensure these fields match exactly across all line items in the same refund/void transaction:
source_
transaction_ id transaction_
type provider
tax_
rules_ at currency
- All
tax_
fieldsids. * - All
shipping_
fieldsline_ item. *
Correction transactions
To correct any previously imported transaction:
- Duplicate the transaction you want to correct, using the same:
source_
transaction_ id transaction_
type provider
- Update any fields that need correction
- Increase the
transaction_
value (for example, fromversion 1
to2
)
This approach replaces the original transaction data in your tax calculations rather than reversing it. Stripe Tax uses the version with the highest transaction_
value.
Import limitations
Limitation | Details |
---|---|
Maximum file size | 50MB |
Supported file format | CSV only |
Header row | Required (must include column names as specified above) |
File processing | Large files may take longer to process |
Reporting impact | The imported transactions don’t impact your calculations or reporting for transactions processed through Stripe. |
Import your transaction data
To import your third-party transaction data:
- Go to the Tax section in the Stripe Dashboard.
- Click Quick actions then select Import transactions.
- Click Import CSV.
- Select your prepared CSV file and click Import File.
- Monitor import status in the drawer that appears. You can close this drawer and return later to check progress or view validation results.
If any errors occur during import, you can download a CSV of all rows with issues and the specific errors that occurred.
Test your imported data using the validation steps in Testing Stripe Tax.
Caution
You can’t remove imported transactions. Importing a new transaction version allows for correction of previously imported transactions. For any transactions imported unintentionally, importing a void transaction removes any tax liability.
Transaction versioning
You can correct previously imported transactions by using the transaction_
field to handle updates properly. To make corrections to transactions you’ve already imported, follow these steps:
- Make the necessary corrections to your CSV file.
- Re-import the transactions with the same identifiers.
- Set the
transaction_
to a higher number than the original import.version
Stripe Tax maintains a record of these versions and uses the most recent version in its calculations and reporting.
Additional information
Limitations on use
The transaction import tool has limitations on what you can use it for:
- Scope of data: The tool is for importing external sales data to help monitor tax obligations. Don’t use it to import, VAT reportable purchases. Importing VAT reportable purchases inaccurately inflates gross sales figures and doesn’t correctly adjust tax liability.
- External transactions only: This tool exclusively supports importing transaction data from external sources. Don’t use it to correct or modify transactions that were originally processed through Stripe.
Tax calculation handling
Stripe doesn’t automatically recalculate tax for imported transactions. Imported transactions are reported using the tax amount you provide in the CSV file, regardless of whether you have an active Stripe Tax registration for that location.
While taxable amounts, nontaxable amounts, tax rates, and taxability reasons may appear in Stripe Tax reports and surfaces for imported transactions, these values should be treated only as estimates or approximations.
Visibility limitations
Imported transaction data has limited visibility in some Stripe Tax reports and interfaces:
- Transaction exports: Itemized and summarized exports exclude tax rate information, taxable amounts, and taxability reasons for each jurisdiction for imported transactions.
- Sigma: Tax jurisdiction details (
tax_
rows) are not available for imported transactions in Sigma reports.transaction_ jurisdiction_ details - Tax Overview page: The Tax Overview dashboard does not include imported transactions in its calculations or displays.
- Location reports: Location reports do not show any imported transactions.
You can still view imported transaction details in tax reports and obligations monitoring.
Visibility in other Stripe products
Transactions imported using the import tool only appear in Stripe Tax reports and interfaces. To include third-party transactions in other products like Revenue Recognition, you need to use a separate product-specific import tool.
Data handling
Historical transaction data
You can import historical transaction data for any period on or after October 1, 2023.
Processing time
It takes up to 24 hours for the applicable processed transactions to be reflected in some Stripe Tax reports and interfaces.