Every sale has
an app behind it.

When you run a few products, a payment total is only the start. See what sold, who bought it, and which app earned it.

Indie purchase history grouped by project and customer
Actual Indie interface. Sample data. Open image for a closer look.

Keep the good news. Keep the details.

The first sale feels different. So does the tenth from a product you nearly gave up on. Indie brings purchases into a shared history and lets your iPhone mark a new sale with a sound.

Open a purchase when you want the amount, customer and project. Keep checking the history when you do not want a sound for every sale. Refunds belong in that same picture, rather than in a second spreadsheet.

A shared Stripe account should not blur your apps together.

If one Stripe account serves several apps, the connection still needs to know which purchase belongs where. The Connect Stripe flow supports a default project and rules based on the indie_project metadata on charges.

Anything that does not match stays unassigned. You can inspect the waiting metadata and apply a mapping. Existing purchases keep their assignment; changing a rule does not silently rewrite your history.

Connect Stripe and its optional 90-day import are currently in testing. The existing manual webhook route uses a Stripe signing secret, not your full account API key.

Bring the history. Skip the old pings.

The optional import adds the last 90 days of captured Stripe payments and their recorded refunds. Historical purchases do not send sale notifications. A resumed import and a new webhook share purchase identities so the same charge is not counted twice.

Only include the history you want. The import is optional, and assigned imported events count toward the plan’s incoming-event allowance.

Know what the number means.

Today’s net sales means today’s recorded purchases less their recorded refunds, in the selected timezone. It is not profit or a Stripe payout balance. Fees and operating expenses are not deducted.

Amounts stay in their original currency. If an app sells in USD and EUR, Indie shows separate totals instead of inventing one converted number.

Not using Stripe?

Your server can send confirmed purchases and refunds through the Events API. That gives other payment flows a route into Indie, but it is an integration you add—not an advertised one-click connection to every provider.

See the integration options

A sale is better
when you know what sold.

Start with your first project. Add a useful check and see your app’s activity in one place.

Start free trialSee launch pricing