Start with the Stripe report that matches your accounting question. Stripe’s reporting documentation covers prebuilt reports for payments, payouts, fees, and balance changes that you can view in the Dashboard or download for accounting work.
01 Choose the Stripe report that matches the job
| Start with | Choose it when your job is… | Configure or check |
|---|---|---|
| Stripe Balance report guidance | Reconciling account activity and explaining changes in your Stripe balance. | Set the date range, time zone, settlement currency and, for Connect, account. |
| Stripe Payout reconciliation guidance | Tracing transactions included in an automatic payout. | Match the payout and applicable dates before comparing totals; download underlying rows for accounting work. |
| Stripe Reports API or Stripe Sigma | Producing repeatable custom output. The API supports programmatic runs and customized columns; Sigma supports SQL analysis, exports, and scheduling. | Check whether the report type supports the needed columns and currency or category filters. Availability varies by report and account. |
| AppRoute Revenue pivot | Rearranging imported Stripe app transactions visually, such as net proceeds by product and month. | Check the Product labels and Net proceeds definition before reading totals. |
Stripe’s financial report options let you set the date range, time zone, settlement currency and, for Connect, the account. You can also choose download columns and schedule reports daily, weekly, or monthly. Choose the path that fits the decision, then define the question before selecting fields.
To rearrange imported transactions visually, use AppRoute’s Revenue pivot as an added analysis layer. Set Revenue as the dataset, Product as rows, Month as columns, and Net proceeds as the measure.
Before reading totals, add a single Currency filter because AppRoute does not convert multiple currencies into one amount. Keep payments in Stripe, and use Stripe as the source for reconciliation and bookkeeping.
02 Define the report before choosing fields
Write down the report definition before you open a builder. This keeps a plausible total from answering the wrong question.
- Question: Make it specific enough to determine the grouping and comparison.
- Metric: Name gross revenue, net proceeds, refunds, or transaction count. These measures are not interchangeable.
- Date basis: Choose the event date, reporting period, time zone, and source report. In Stripe, Balance reports fit account activity and balance reconciliation, while Payout reconciliation reports trace transactions included in automatic payouts.
- Status and refunds: Decide which statuses count and whether refunds reduce the original period or appear when processed. Record that treatment so you can repeat it.
- Currency: Select one currency. Do not combine currency amounts unless the reporting system performs an explicit conversion you understand.
For example: How did net proceeds vary by product and month for finalized imported Stripe charges in USD, grouped by each charge’s original date in UTC with cumulative refunds folded into that date?
That sentence determines which rows, columns, measure, filters, and date field to choose. If an AppRoute pivot fits the question, settle the definition before you connect Stripe.
03 Copy this reusable report recipe
Use this template before you build the pivot, then save it beside each export. The filled values below are an illustrative configuration, not an observed result.
| Recipe field | What to record | Illustrative entry |
|---|---|---|
| Question | The decision the report must support | How did net proceeds vary by product and month? |
| Stripe source report | The native report used for reconciliation | Balance report |
| AppRoute dataset | The source selected in the pivot builder | Revenue |
| Rows and columns | The dimensions that organize the table | Rows: Product; columns: Month |
| Measure | The amount or count being compared | Net proceeds |
| Currency | One recorded currency for money totals | USD |
| Date basis and zone | The event date and time zone used by each source | AppRoute charge-created date in UTC; Stripe report date recorded separately |
| Included rows | The status and environment rules that shape the total | Live finalized rows; test, pending and failed rows excluded |
| Fallback groups | Labels that need inspection before interpretation | Check (no product) and missing customer or fee fields |
| Reconciliation note | Any definition or coverage difference that remains | Record date, currency, refund, fee or product-label differences |
Keep the question stable when you repeat the report. If you change the measure, date basis, currency, inclusion rule, or grouping, save it as a new recipe instead of overwriting the old definition.
04 Connect Stripe to AppRoute safely
- Open the integration. In AppRoute, go to Dashboard → Integrations, choose Stripe, and start the connection flow.
- Create the requested Stripe key. Follow the setup instructions to create a restricted, read-only Stripe key with the listed permissions. Keep it private: enter it only in AppRoute’s credential field. Don’t paste its value into a report, screenshot, support message, or shared document. AppRoute only reads the data it imports; it doesn’t change Stripe records.
- Match the mode. Choose Test or Live in AppRoute to match the Stripe key you created. Test can check the connection and import flow, but test-mode rows are excluded from the Revenue pivot. Use Live when you intend to build the report from live account data.
- Validate the connection. Before you select Validate & connect, confirm that the mode matches the key prefix:
rk_test_…for Test orrk_live_…for Live. A successful read validation doesn’t confirm that match. If validation fails, recheck the restricted key and its requested read permissions. - Wait for the import to finish. Watch the integration status and continue only after the import completes. There isn’t a universal completion time, so use the displayed status instead of assuming the data is ready after a fixed delay.
After the import completes, open Statistics → Pivot table and select Revenue.
05 Build a product-by-month Revenue pivot
Build the view from the report definition you wrote earlier. For the example above, the Revenue pivot builder uses these settings. The Stripe and RevenueCat reporting fields guide documents the imported fields, measures, and reconciliation limits used below.
| Setting | Selection | Purpose |
|---|---|---|
| Dataset | Revenue | Uses imported transactions |
| Rows | Product | Groups by available product label |
| Columns | Month | Splits products by calendar month |
| Measure | Net proceeds | Uses provider net minus recorded refunds when available; otherwise gross minus refunds and known fees |
| Filter | Currency: one value | Limits the pivot to one recorded currency |
- Select Revenue as the dataset. This makes revenue dimensions and measures available.
- Set Product as the row dimension. AppRoute tries to resolve a Stripe charge to a product through related checkout or subscription data. If it cannot resolve one, the charge appears under (no product).
- Set Month as the column dimension. AppRoute derives calendar months in UTC from the imported transaction date. Use the date window that matches the Stripe report you plan to compare later.
- Choose Net proceeds as the measure. AppRoute uses provider net minus recorded refunds when available; otherwise it calculates gross minus refunds and known fees. It shouldn’t be assumed to equal a bank payout or a differently defined Stripe total.
- Add a Currency filter and select a single currency. AppRoute doesn’t convert and combine currencies, so monetary values aren’t available when more than one currency contributes to the pivot.
- Check the populated row and column labels, including any fallback groups, before reading the amounts.
For this recipe, you don’t need a customer dimension or fee measure. If you add a customer dimension later, customer details can be absent. Known-fee totals include only fees present in the imported data. Distinct-customer or revenue-per-customer subtotals can be approximate when the same customer appears in more than one group.
06 Reconcile the pivot with Stripe
Open the Stripe report you chose earlier and compare it with the pivot. Stripe’s report-configuration guide covers date range, time zone, and settlement currency.
Compare one variable at a time. If the totals differ, use this table to find the definition that changed:
| Check | Why it changes result | What to do |
|---|---|---|
| Same report | Balance and Payout reconciliation reports measure different activity. | Match the Stripe report to your question before comparing totals. |
| Date basis and time zone | AppRoute groups imported Stripe charges by the original charge-created timestamp in UTC. Stripe Balance uses the balance-transaction created date, while Payout reconciliation uses the automatic-payout effective date. | Set the Stripe report to UTC for a direct period comparison, then account for the report's different relevant date. |
| Currency | AppRoute's Currency field uses the Stripe charge currency, while Net proceeds can use the Balance Transaction net. Stripe financial reports use settlement currency, so a conversion can make those bases differ. | Filter AppRoute to one charge currency, then verify the underlying charge and Balance Transaction or report currencies align before treating totals as comparable. |
| Finalized statuses | AppRoute removes test, pending, and failed rows before pivot filters run. Stripe report inclusion rules can differ. | Compare Stripe's included statuses with AppRoute's finalized-row rule. A pivot Status filter applies only to values the Revenue pivot retains. |
| Refunds | AppRoute folds a charge's cumulative refunded amount into the original imported charge date, while a Stripe report can use a different date basis. | Compare both the refunds included and the dates used for them. |
| Fee coverage | AppRoute uses Stripe balance-transaction fee and net values when available. Missing imported fees create a gap. | Inspect Stripe's fee and net columns, then record uncovered fees. |
| Product and customer labels | Transactions don't always resolve to usable product or customer values, so they can appear under (no product) or (no customer). | Inspect those fallback groups and reconcile the filtered total before interpreting groups. |
Expect an exact match only when the report definition and available fields align. Record any remaining difference with the report name, filters, and missing fields so next month's comparison uses the same basis.
If RevenueCat is your source, start with RevenueCat Charts or Scheduled Data Exports for its native reporting definitions. Use the same AppRoute recipe only when the imported RevenueCat fields support your question; the RevenueCat reporting alternatives guide explains that choice in detail.
08 Save the report recipe without claiming attribution
Save the export and the report recipe together. The CSV preserves the pivot that is visible when you export it, after the current rows, columns, filters, and measures have been applied. The recipe tells you how to rebuild the same view later.
Before you close the builder:
- Write down the question the report answers, such as “How did net proceeds vary by product and month?”
- Record the product-by-month configuration from the table above and the selected Currency.
- Note the date window and any other filters you used.
- Export the visible pivot to CSV and name the file with the reporting period.
Clicks and imported revenue originate in separate source datasets. A combined pivot can align independently aggregated clicks, imported revenue, and RevenueCat account metrics by shared UTC time fields, but it cannot tie a purchase to a specific AppRoute click, link, campaign, device, or location. Link and tag filters narrow only click measures; revenue remains account-wide.
For the next reporting period, rebuild the view from the saved question, field choices, date window, and filters before you export a new CSV.