All posts
OPERATIONS

App Store Connect financial reports: how to read proceeds, taxes, and territory breakdowns

Apple's financial reports contain the definitive settled-payout figures your Sales and Trends dashboard doesn't show. Here's how to read, download, and automate them.

By the AppsOps team · · 8 min read

Most iOS developers spend their analytics time in the Sales and Trends section of App Store Connect: interactive charts, filterable by product and territory, updated daily. It is the right tool for day-to-day operations. But when you need to know exactly what Apple will pay you — after commissions, after exchange-rate conversion, after any applicable tax withholdings — you are looking in the wrong place. That data lives in Financial Reports, a separate section of App Store Connect that generates one tab-delimited report per reporting region per month and has no dashboard view at all.

This post explains what financial reports contain, how to read them, and how to automate their download with the App Store Connect API so your reconciliation workflow does not depend on manual exports.

Financial reports vs Sales and Trends: the key differences

Sales and Trends and financial reports are built on different data pipelines and serve different purposes. Understanding the distinction prevents a common class of reconciliation confusion that affects developers at every scale.

Attribute Sales and Trends Financial Reports
Update frequency Daily estimated figures Monthly settled figures, available ~5 business days into the next month
Revenue figures Estimated gross proceeds Actual net proceeds after Apple's commission and any tax withholding
Currency conversion Rolling estimated exchange rate Apple's fixed monthly rate, locked for the entire reporting period
Refunds Reflected in daily estimated totals Listed as separate Return (R) rows alongside Sale (S) rows
Primary use Operations, marketing attribution, trend-spotting Accounting, bank reconciliation, audit-grade revenue recognition
API endpoint /v1/salesReports /v1/financeReports (requires Finance key access)

The figures in Sales and Trends and in your financial reports will rarely match exactly — and this is expected behaviour, not an error. Sales and Trends uses estimated exchange rates and provisional commission calculations; financial reports use Apple's locked monthly rate and settled figures. Use Sales and Trends for operations; use financial reports for accounting.

What's inside a financial report file

Financial reports are delivered as UTF-8 tab-delimited text files compressed as .gz. Each row represents a single aggregated line item: one product, in one territory, for the reporting period. Multiple transactions of the same type — same product, same customer price, same period — are rolled into a single row with a Quantity count rather than appearing as individual transaction lines.

The columns you will use most often:

To compute settled proceeds for a month: sum Extended Partner Share for all S rows, then subtract the sum for all R rows. The result should reconcile to within rounding tolerance of your bank deposit for that settlement cycle.

Apple's fixed monthly exchange rate and what it means for forecasting

Apple does not convert your proceeds at the live mid-market rate on each transaction date. Instead, Apple publishes a fixed exchange rate for each currency, set around the beginning of each reporting month, and applies that rate uniformly to every transaction in the period. The rate approximates the interbank rate at the time of publication but will diverge from live rates throughout the month.

175+ App Store storefronts covered by Apple's monthly financial reports

The practical consequence: revenue in currency-volatile markets — Brazilian reais, Turkish lira, Indian rupees — carries exchange-rate uncertainty that only resolves when Apple locks its monthly rate. If you are modeling expected USD proceeds from an INR price point, you are making an assumption about Apple's rate that may differ from reality by several percentage points. The definitive figure only appears when the financial report is published.

Apple publishes its exchange rate reference file alongside each month's financial reports in App Store Connect. Download it alongside the revenue data to retain a reconcilable audit trail. If you are making pricing decisions that depend on currency dynamics, our post on where Apple's currency conversion silently costs you revenue covers the mechanics in detail, and our primer on PPP-adjusted pricing explains the strategic layer.

Downloading financial reports via the App Store Connect API

App Store Connect lets you export financial reports manually through the web interface. Any workflow that runs more than once a quarter will be better served by the API. The /v1/financeReports endpoint returns the same compressed files as the manual download, accessible from any script or scheduled function that can generate a signed JWT.

Prerequisites:

Request parameters:

A minimal Python example that fetches the US financial report and prints each line's title, partner share, and currency:

import requests, gzip, io, csv

url = "https://api.appstoreconnect.apple.com/v1/financeReports"
params = {
    "filter[reportType]": "FINANCIAL",
    "filter[regionCode]": "US",
    "filter[reportDate]": "2026-05",
    "filter[vendorNumber]": "YOUR_VENDOR_NUMBER",
}
headers = {"Authorization": f"Bearer {your_signed_jwt}"}

response = requests.get(url, headers=headers, params=params)
with gzip.open(io.BytesIO(response.content)) as f:
    reader = csv.DictReader(
        io.TextIOWrapper(f, encoding="utf-8"), delimiter="\t"
    )
    for row in reader:
        print(row.get("Title"), row.get("Partner Share"), row.get("Partner Share Currency"))

If your request returns 403 Forbidden, the almost-certain cause is that your API key has Admin access but not Finance access. These are separate permission levels in App Store Connect. You must create a new API key with Finance enabled — there is no way to add Finance access to an existing key after creation.

Territory breakdowns: reading your real revenue geography

The worldwide report (regionCode=WW) gives a single rolled-up total useful for top-line reconciliation. For territory-level analysis, download the regional variants. Apple groups storefronts into reporting regions rather than individual countries, so the granularity is coarser than a per-country breakdown:

Region code Coverage Notes
US United States storefront Typically the largest single region for English-language apps
EU European Union member storefronts Includes both Eurozone (EUR) and non-Euro EU currencies (PLN, CZK, HUF)
WW All territories (worldwide aggregate) Best for top-line reconciliation; does not break down by territory
Z1, Z2, ZZ Rest-of-world batches Groupings can shift as Apple adds new storefronts; re-check the reference file quarterly

Once you have per-region data, aggregate Partner Share by currency to build a revenue-by-currency map. Research published by RevenueCat and analysis from Phiture have both pointed to a consistent pattern: apps without localized pricing tend to see their revenue heavily concentrated in the US and Western Europe — not because users in India, Brazil, or Southeast Asia are not installing the app, but because the local price-to-purchasing-power ratio is too high to convert at comparable rates. The financial report is the data that makes this argument in a language every stakeholder understands: actual settled cash.

Connecting territory revenue data to PPP-adjusted pricing analysis is one of the highest-leverage exercises a subscription app operator can run. The AppsOps pricing tools are built to support exactly that workflow — mapping settled financial report data to optimized local price points.

Reconciling reports against bank deposits

Summing Extended Partner Share for S rows and subtracting R rows should produce a figure close to your actual bank deposit for the settlement period. When the numbers diverge beyond rounding, the most common explanations are:

Building an automated pipeline for recurring reconciliation

For a single-app indie developer, a monthly manual export and spreadsheet calculation is a workable approach. For anyone managing multiple apps, running a subscription analytics stack, or wanting audit-grade accuracy with minimal manual work, automation is straightforward to implement with the API.

A minimal automated pipeline has four stages:

  1. Scheduled pull — a cron job or serverless function fires on approximately the 5th of each month (after Apple makes the prior month's reports available), downloads all regional financial reports and the exchange rate reference file, and stores the raw .gz files indexed by month and region code.
  2. Parse and normalize — decompress and parse the tab-delimited rows; compute settled proceeds per app, per region, and per currency; accumulate S totals and R totals separately before netting.
  3. Bank reconciliation check — compare computed Extended Partner Share totals against the actual deposit amount for the settlement period. Flag discrepancies above a threshold — small rounding differences are expected; larger ones warrant investigation.
  4. Subscription analytics join — if you are tracking MRR, churn, and LTV separately via RevenueCat or a StoreKit 2 backend, join financial report proceeds to your subscription data to build a reconciled LTV view that ties back to actual settled cash rather than estimates.

The same API key and JWT used for financial reports also authenticates Sales and Trends requests. Building both into one pipeline gives you daily estimated visibility and month-end accounting accuracy from a single connection — a cleaner architecture than maintaining two separate data-pull workflows.

Sources and further reading

Share this post

Ready to put this into practice?

AppsOps is the first App Store ops dashboardPPP-fair pricing for 175 App Store territories, AI metadata localization in 39 languages, AI screenshot localization for 14 Apple device classes, and one-click App Store Connect API push — all from one dashboard, all for $19/month.

Try AppsOps free — no card →

Related reading