# Revenue Recognition data import Import data from other sources to manage all of your revenue recognition in Stripe. Perform revenue recognition on non-Stripe transactions and adjust the recognition schedules of existing Stripe transactions, exclude the existing Stripe transactions from the revenue, or adjust journal entries. Data import is categorized by general import, exclusion import, or journal entry import. **General import** allows you to upload revenue data with CSV files. You can import transactions processed completely outside of Stripe and customize the recognition terms of existing Stripe transactions to fit your business model. For example, you can import data to: - **Add** a service period to a Stripe payment. - **Override** the service period of a line item in a Stripe *invoice* (Invoices are statements of amounts owed by a customer. They track the status of payments from draft through paid or otherwise finalized. Subscriptions automatically generate invoices, or you can manually create a one-off invoice). - **Split** a payment into multiple different revenue schedules. - **Import** an external payment processor’s data with a service period, amount, and currency. **Exclusion import** allows you to exclude transactions from your revenue by uploading the IDs of the transactions to exclude. You can exclude the following types of transactions: invoice, invoice item, invoice line item, standalone payment. **Journal entry import** lets you import custom journal entries into your revenue recognition reports. > When you import data related to India, make sure you’re in compliance with India data locality requirements. ## General import You can import data into revenue recognition reports and view all the data you’ve imported from the [Data import page](https://dashboard.stripe.com/revenue-recognition/data-import). Click **Import** and select **Import transactions** from the dropdown. Click **Download CSV template** to see the required format for the data import feature. You can then upload your completed template. See the following descriptions of the CSV format: **Source** The provider of the original transaction. Examples: - `Stripe` (case-insensitive) for transactions processed by Stripe - Any value such as `Checks` or `App Store`, an arbitrary identifier that helps you group the source of a set of transactions **Transaction ID** The ID of a transaction. Examples: - An ID such as `ch_123456` or `py_1234` for Stripe payments - An ID such as `in_12345` for Stripe invoices - Any value such as `my_internal_id` or `Check Number 1234`, an arbitrary identifier that helps you track a single transaction **Split transaction ID** If you’re not overriding an invoice line item service period or splitting a transaction, you can leave this blank. When overriding an invoice line item service period, this is the invoice line item ID. Examples: - An ID such as `il_1234`, that you can find from your revenue recognition reports at the invoice line item level If you’re splitting a transaction, this is an arbitrary identifier that differentiates between different parts of the same transaction. Examples: - `bike` - `my_internal_id` **Booked date** This is the date that you recorded the transaction in `YYYY-MM-DD` format in the UTC timezone. **Recognition start date** This is the date that you want to start recognizing revenue in `YYYY-MM-DD` format in the UTC timezone. **Recognition end date** This is the date that you want to stop recognizing revenue in `YYYY-MM-DD` format in the UTC timezone. **Amount** This is the numeric amount of the transaction without any currency symbols. For example, for 10.95 USD, you would specify `10.95`. **Currency** This is the three-letter [ISO 4217 currency code](https://en.wikipedia.org/wiki/ISO_4217) for the currency of the recognized revenue of the transaction. For example, for 10.95 USD, you would specify `usd`. Your Stripe account must be set up to support the specified currency. **Description** This can be any arbitrary description. You can use these in combination with [revenue recognition rules](https://docs.stripe.com/revenue-recognition/rules.md) to further customize your recognized revenue. ### Additional verifications - All rows must have a transaction ID. - All of the split parts of a transaction must have an amount that adds up to the original transaction. - External transactions must provide a booked date, revenue recognition start and end date, amount, and currency. - We ignore overrides on payments attached to Stripe invoices, so if you want to override such a payment, use the invoice itself as the transaction. ## Exclusion import You can exclude transactions from revenue and view the excluded transactions that you imported from the [Data import page](https://dashboard.stripe.com/revenue-recognition/data-import). Click **Import** and select **Import exclusions**. Click **Download CSV template** to see the required format for the exclusion data import feature. You can then upload your completed template. **Transaction ID** Transaction ID examples include: - `ch_123456` or `py_1234` – An ID for a standalone Stripe payment. If a payment or charge is linked with an invoice, don’t use the charge or payment ID. Use the invoice ID for exclusion instead. - `in_12345` – An ID for Stripe invoices. - `ii_12345` – An ID for Stripe invoice items. - `il_12345` – An ID for Stripe invoice line items. ## Journal entry import You can import manual journal entries into revenue recognition reports, viewing all imported data from the **Data import** page. Click **Import**, then select **Import journal entries**. Click **Download CSV template** to see the required format for the data import feature. You can then upload your completed template. See the following descriptions of the CSV format: | Column Name | Description | Required | | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | | Accounting Period Date | This is the date that this journal entry applies to, in `YYYY-MM-DD` format in the UTC timezone. | Yes | | Debit Account | The default Stripe GL account name. Examples: AccountsReceivable, Revenue. Refer to our [Chart of Accounts](https://docs.stripe.com/revenue-recognition/methodology.md#chart-of-accounts) for a comprehensive list. | Yes | | Credit Account | The default Stripe GL account name. Examples: AccountsReceivable, Revenue. Refer to our [Chart of Accounts](https://docs.stripe.com/revenue-recognition/methodology.md#chart-of-accounts) for a comprehensive list. | Yes | | Settlement Amount | This is the numeric amount of the transaction without any currency symbols. For example, for 10.95 USD, you would specify `10.95`. | Yes | | Settlement Currency | This is the three-letter [ISO 4217 currency code](https://en.wikipedia.org/wiki/ISO_4217) for the currency of the recognized revenue of the transaction. For example, for 10.95 USD, you would specify `usd`. | Yes | | Transaction ID | The ID of a transaction. Examples: An ID such as `ch_123456` or `py_1234` for Stripe payments, An ID such as `in_12345` for Stripe invoices. This transaction must exist in your Stripe account and in that mode (livemode/testmode). | Yes | | Debit Account GL Name | Optional. The GL mapped account name for the default Stripe account. If provided, it must match the GL code. | No | | Credit Account GL Name | Optional. The GL mapped account name for the default Stripe account. If provided, it must match the GL code. | No | | Debit Account GL Code | Optional. If provided, then it must match the GL account mapped in [accounts mappings](https://dashboard.stripe.com/revenue-recognition/chart-of-accounts). | No | | Credit Account GL Code | Optional. If provided, then it must match the GL account mapped in [accounts mappings](https://dashboard.stripe.com/revenue-recognition/chart-of-accounts). | No | | Presentment Amount/Currency | Optional. If not available, then this will be the same as the settlement amount and currency. | No | | Description | Optional. This can be any arbitrary description. | No | ### Additional verifications - All rows must have the required fields: accounting period date, debit account, credit account, settlement amount, settlement currency, and transaction ID. - The accounting period date that you entered must be an open period. - The transaction ID must exist in your account. - If a charge is inputted as a transaction ID, it must be a standalone charge. If an invoice is attached, use the invoice ID instead. - If you enter a GL name or code, they must match your custom account mappings. ## Opening accounting periods Applying a transaction to a closed accounting period generates corrections. If you want to apply past transactions directly to a past accounting period, make sure that the past accounting period is open. If you forgot to do this, you don’t need to re-import data. Instead, you can [open the relevant accounting period](https://docs.stripe.com/revenue-recognition/revenue-settings/accounting-period-control.md) and wait for the reports to be recalculated. ## See also - [Manage imported data](https://docs.stripe.com/revenue-recognition/data-import/manage-imported-data.md) - [Examples](https://docs.stripe.com/revenue-recognition/data-import/examples.md)