# Import transactions into Stripe Tax Import transaction data from external platforms into Stripe Tax. > [Log in](https://dashboard.stripe.com/settings/tax) or [sign up](https://dashboard.stripe.com/register) for Stripe to enable 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: 1. You export your transaction data from external platforms. 1. You format the data into a CSV file with one row per line item (not per transaction). 1. [You upload the CSV file to Stripe Tax through the Dashboard](https://docs.stripe.com/tax/imports.md#import-your-transaction-data). 1. Stripe Tax validates and processes your data. 1. Access imported transactions in [reports](https://docs.stripe.com/tax/reports.md), [obligations monitoring](https://docs.stripe.com/tax/monitoring.md), and [filing and remittance](https://docs.stripe.com/tax/filing.md). ## 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_transaction_id` | Text (Required) | `order_123abc` | Unique identifier for the transaction | | `transaction_type` | Either `Sale`, `Refund`, or `Void` (Required) | `Sale` | The type of transaction | | `transaction_version` | Number (Optional) | `1`, `1712863281` (Unix timestamp) | Numeric field to specify the most recent version of the transaction. Defaults to `1`. | | `provider` | Text (Required) | `amazon`, `tax_jar`, `shopify` | External source of the transaction | | `liable_transaction_id` | Text (Required for Refund or Void) | `order_abc123` | Source transaction ID that this refund or void is handling | | `tax_rules_at` | 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_at` | Date & time (format `yyyy-MM-dd HH:mm:ss z`) (Required) | `2024-02-22 18:42:47 UTC` | Transaction creation date | | `posted_at` | 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_id` | Text (Optional) | `cus_123` | Stripe’s Customer ID | | `tax_exempt` | Either `exempt`, `none`, or `reverse` (Required) | `exempt` | Tax exempt status of the transaction | | `line_item.id` | Text (Required) | `item_123` | ID of the line item | | `line_item.tax_behavior` | Either `exclusive` (default) or `inclusive` (Optional) | `exclusive` | Tax behavior for line item | | `line_item.amount` | Number1 (Optional) | `150.50` | Total amount for the line item after applying discounts and including tax | | `line_item.product_id` | Text (Optional) | `prod_123` | Stripe product ID | | `line_item.product_name` | Text (Optional) | `Premium Widget` | User-provided product name | | `line_item.product_description` | Text (Optional) | `High-quality widget for premium customers` | Free-form product description | | `line_item.product_tax_code` | Text (Required) | `txcd_99999999` | A Stripe [product tax code](https://docs.stripe.com/tax/tax-codes.md) that classifies this transaction. | | `line_item.external_product_id` | Text (Optional) | `SKU123` | External product ID (for example, Merchant SKUs) | | `line_item.external_tax_code` | Text (Optional) | `TX456` | External tax code for product | | `line_item.unit_amount` | Number1 (Required) | `50.12` | Cost of a single unit before applying discounts and before tax (if exclusive) or including tax (if inclusive) | | `line_item.quantity` | Number (decimal values are supported) (Required) | `1`, `2`, `3.5` | Quantity of the unit | | `line_item.amount_discount` | Number1 (Optional) | `10.00` | Discount for given line item | | `line_item.taxable_amount` | Number1 (Optional) | `45.50` | Taxable amount for given line item | | `line_item.tax_rate` | Number (Optional) | `0.08` | Tax rate aggregated to the line item level | | `line_item.amount_tax` | Number1 (Required) | `12.18` | Total amount of tax collected for the given line item | | `shipping_line_item.id` | Text (Required if using shipping)2 | `ship_123` | External shipping line item ID | | `shipping_line_item.tax_behavior` | Either `exclusive` (default) or `inclusive` (Optional) | `exclusive` | Tax behavior for shipping line item | | `shipping_line_item.amount` | Number1 (Required if using shipping) | `5.99` | Cost of shipping before applying discounts and before tax (if exclusive) or including tax (if inclusive) | | `shipping_line_item.taxable_amount` | Number1 (Required if `tax_rate` is missing) | `5.99` | Taxable amount for shipping | | `shipping_line_item.tax_rate` | Number (Required if `taxable_amount` is missing) | `0.08` | Tax rate for shipping | | `shipping_line_item.amount_tax` | Number1 (Required if using shipping) | `0.48` | Tax collected for shipping line item | | `shipping_line_item.description` | Text (Optional) | `Express Shipping` | Free form shipping line item description | | `shipping_line_item.tax_code` | Either `txcd_00000000` or `txcd_92010001` (Required) | `txcd_92010001` | A Stripe [product tax code](https://docs.stripe.com/tax/tax-codes.md) that classifies the shipping line item. | | `shipping_line_item.external_tax_code` | Text (Optional) | `TX789` | External tax code for shipping | | `shipping_line_item.amount_discount` | Number1 (Optional) | `2.00` | Discount for shipping line item | | `merchant_address.city` | Text (Optional) | `San Francisco` | Merchant city | | `merchant_address.country` | Country code (ISO 3166-1 alpha-2) (Required) | `US` | Merchant country | | `merchant_address.line1` | Text (Optional) | `123 Commerce St` | Merchant address line 1 | | `merchant_address.line2` | Text (Optional) | `Suite 400` | Merchant address line 2 | | `merchant_address.postal_code` | Text (Required for US/CA) | `94111` | Merchant postal code | | `merchant_address.state` | Text (Optional) | `CA` | Merchant state | | `tax_ids.type` | Text (Required if any tax_ids fields are provided) | `EU_OSS_VAT`, `CA_QST` | Type of tax ID provided. | | `tax_ids.country` | Country code (ISO 3166-1 alpha-2) (Required if any tax_ids fields are provided) | `US`, `CA` | Two-character country code of the tax ID. | | `tax_ids.value` | Text (Required if any tax_ids fields are provided) | `12-3456789` | Tax ID value. | | `buyer_address.city` | Text3 (Optional) | `Boston` | Buyer city | | `buyer_address.country` | Country code (ISO 3166-1 alpha-2)3 (Required) | `US` | Buyer country | | `buyer_address.line1` | Text3 (Optional) | `456 Main St` | Buyer address line 1 | | `buyer_address.line2` | Text3 (Optional) | `Apt 789` | Buyer address line 2 | | `buyer_address.postal_code` | Text3 (Required for US/CA) | `02108` | Buyer postal code | | `buyer_address.state` | Text3 (Optional) | `MA` | Buyer state | 1 Amounts are represented as the currency in the primary denomination in decimal form. For example, `10.00` in USD is equal to `$10.00`. 2 Shipping line items are optional, but if included, certain fields become required. 3 For customer addresses, the [Stripe Tax address requirements](https://docs.stripe.com/tax/customer-locations.md#supported-formats) apply. ### Sample CSV file Example CSV file with multiple line items and a variety of commonly used fields (you can also download a sample CSV file from the **Import file** panel in the Dashboard): ``` 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,,,4.06,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,,,-4.06,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,,,16.47,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,,,-16.47,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,exclusive,216.37,,,Pepperoni Pizza,txcd_40060003,tax_product_id_56,tax_code_99,69.17,3,11.79,,,20.65,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_type` to `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_ids.*` fields - All `shipping_line_item.*` fields #### 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_type` to `Refund` or `Void` - Set `liable_transaction_id` to the `source_transaction_id` of the original transaction - 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_type` to `Refund` or `Void` - Set `liable_transaction_id` to the `source_transaction_id` of the original transaction - 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_ids.*` fields - All `shipping_line_item.*` fields #### Correcting transactions To correct any previously imported transaction: 1. Duplicate the transaction you want to correct, using the same: - `source_transaction_id` - `transaction_type` - `provider` 1. Update any fields that need correction. 1. Increase the `transaction_version` value (for example, from `1` to `2`). 1. Re-import the corrected transactions. Stripe Tax maintains a record of all versions and uses the version with the highest `transaction_version` value in its calculations and reporting. This approach effectively replaces the original transaction data in your tax calculations rather than reversing it. The [Transactions](https://dashboard.stripe.com/tax/transactions) page in the Dashboard displays all three records: the original transaction, an invalidation transaction that negates the original, and the new corrected transaction. ### 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: 1. Go to the **[Tax](https://dashboard.stripe.com/tax)** section in the Stripe Dashboard. 1. Click **Quick actions** then select **Import transactions**. 1. Click **Import CSV**. 1. Select your prepared CSV file and click **Import File**. 1. 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](https://docs.stripe.com/tax/testing.md). > 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. ## 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. ### Pricing During the public preview, you can import CSV transactions for no fee. These imports also don’t count against any entitlements or API usage limits. ### 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 might 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](https://docs.stripe.com/tax/reports.md#exports): Itemized and summarized exports exclude tax rate information, taxable amounts, and taxability reasons for each jurisdiction for imported transactions. - [Sigma](https://docs.stripe.com/stripe-data/query-tax-data.md): Tax jurisdiction details (`tax_transaction_jurisdiction_details` rows) aren’t available for imported transactions in Sigma reports. - [Tax Overview page](https://docs.stripe.com/tax/testing.md#tax-transactions-page): The Tax Overview dashboard doesn’t include imported transactions in its calculations or displays. - [Location reports](https://docs.stripe.com/tax/reports.md#us-location-reports): Location reports don’t show any imported transactions. You can still view imported transaction details in [tax reports](https://docs.stripe.com/tax/reports.md) and [obligations monitoring](https://docs.stripe.com/tax/monitoring.md). ### 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](https://docs.stripe.com/revenue-recognition.md), 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. ## See also - [Tax reporting](https://docs.stripe.com/tax/reports.md) - [Monitoring tax obligations](https://docs.stripe.com/tax/monitoring.md) - [Registering for tax](https://docs.stripe.com/tax/registering.md)