[invisit](https://invisit.dev) · [Docs](https://invisit.dev/docs) · [llms.txt](https://invisit.dev/llms.txt) · [llms-full.txt](https://invisit.dev/llms-full.txt)

# Revenue

> Connect Stripe, Polar, Paddle, Dodo Payments, Creem or Lemon Squeezy and read gross, refunds, fees and net revenue beside your traffic.

Source: https://invisit.dev/docs/guides/revenue

Connect the provider that takes your money and invisit reads its payments, refunds and disputes into the site: gross revenue, refunds, fees and net, against the previous period and charted beside your visits. Nothing changes in your checkout and nothing is added to your site.

## Connect a provider

Open **Settings → Payments** for the site and pick your provider. It takes two things:

1. **A read-only credential.** Create it in your provider's dashboard with only the read access listed below, and paste it in. invisit checks it on the spot and reads the last 90 days of payments, refunds and disputes with it.
2. **A webhook.** invisit shows the webhook address for the connection; add it in your provider's webhook settings and paste the signing secret back. New payments, refunds and disputes then arrive within seconds.

When the provider asks which events to send, the simplest correct answer is all of them: anything invisit does not read is acknowledged and ignored. The connection screen lists the narrow set, the events that carry money, if you prefer to subscribe to those only.

## Providers

| Provider | Credential | Read access | Webhook note |
| --- | --- | --- | --- |
| Stripe | Restricted API key (`rk_live_…`) | `Charges`, `Refunds`, `Disputes`, `Balance transactions` | If asked for a payload style, choose Snapshot; thin payloads are not read. |
| Polar | Organization access token (`polar_oat_…`) | `orders:read`, `refunds:read` | Choose the Raw format for the endpoint. |
| Paddle | API key (`pdl_live_apikey_…`) | `Transactions`, `Adjustments` | A sandbox key connects the sandbox account; use the sandbox dashboard for it. |
| Dodo Payments | API key | `Payments`, `Refunds`, `Disputes` |  |
| Creem | API key (`creem_…`) | `Transactions` | Creem cannot list refunds or disputes, so without the webhook they do not arrive at all. |
| Lemon Squeezy | API key | `Orders`, `Subscription invoices` | Choose your own signing secret there and paste the same one here. |

> [!NOTE]
> Credentials are stored encrypted and used only to read. invisit never creates charges, refunds or customers.

## What you see

- **Totals:** gross, refunds, fees and net for the period, against the previous one.
- **Over time:** revenue charted across the period you are looking at.
- **Transactions:** every payment with its product, status and amounts.

On the Free plan, revenue shows totals and charts; individual transactions need Starter or Pro. See [Billing](https://invisit.dev/docs/guides/billing.md).

Assistants read the same numbers with the `get_revenue` tool over [MCP](https://invisit.dev/docs/api/mcp.md), and the [REST API](https://invisit.dev/docs/api/rest.md) serves them under `/v1/sites/{site_id}/revenue`.

## When something is off

A connection whose credential stops working (revoked, expired, or missing a permission) is marked degraded in **Settings → Payments**. Create a new credential with the access listed above and paste it in.
