# Stripe App

> Install the free Checkbox app from the Stripe App Marketplace to see each site's automatic-renewal status, open to-dos and recorded subscription events inside the Stripe Dashboard.

The Checkbox app for the Stripe Dashboard shows what Checkbox found on your site next to your Stripe data. You don't
need to switch tabs to see it:

- **Dashboard home**: each connected site's status, counted the same way as in the Checkbox dashboard ("2 fixes
  needed", "1 decision for you", "Checks pass", "Not checked yet"), and the first open to-dos from its
  [compliance plan](https://checkbox.site/docs/guides/compliance-plan), each with its severity and the laws it comes from (US federal, CA,
  NY, …).
- **Customer and subscription pages**: the same status and to-dos, plus the subscription events Checkbox recorded for
  that customer or subscription: trial ending, upcoming renewal, price increase scheduled, renewal charged and
  cancellation, with their dates and amounts.
- **Open this site in Checkbox** links to the site in the Checkbox dashboard, where the fixes are.

The app is free, like Checkbox. It reads; it never changes anything in your Stripe account. Results are automated
checks, not legal advice.

> **Note**
>
> If Checkbox is not listed in the Stripe App Marketplace yet, it is still in Stripe's review. Everything else on this
> page works once it is.

## Install and connect {#install}

1. In the Stripe Dashboard, open the [Stripe App Marketplace](https://marketplace.stripe.com), search for
   **Checkbox** and click **Install**. Review the permissions (all read-only) and confirm.
2. Stripe opens the app's settings. Click **Connect to Checkbox**.
3. Sign in to Checkbox (or create an account) and choose which site this Stripe account shows. Only an admin of your
   Checkbox organization can confirm. The link from Stripe is valid for 30 minutes; if it expires, open the app again
   and click **Connect to Checkbox** again.
4. Optional: tick **Also read this site's Stripe billing settings through the app** to let Checkbox read your prices,
   trials, Checkout text and customer portal settings through the app instead of a restricted API key. A site has one
   Stripe connection, so this is offered only when the site has no other one.

The app shows a site only after its domain is verified in Checkbox (click **Verify domain** on the site's page). Until
then the app says so instead of showing the site. This keeps anyone with access to a Stripe account from showing an
unrelated site there.

## What the app can read {#permissions}

All permissions are read-only. Checkbox uses them to check the parts of your billing setup that automatic-renewal
laws cover:

| Permission | Why |
|---|---|
| Products, Prices | Plan names, recurring prices, billing intervals and configured trial lengths, which must be disclosed before sign-up |
| Subscriptions | The trial lengths and price changes customers actually get, and subscription events |
| Checkout Sessions | Checkout custom text and terms-of-service consent, where the renewal terms and consent are shown |
| Customer portal | Whether customers can cancel online |
| Invoices, Events | Upcoming-renewal and renewal events, which show when reminders are due and when renewals were charged |

The app's views call only `https://app.checkbox.site/apps/stripe/`. Each request names your Stripe account, your
Dashboard user and the customer or subscription on screen. Stripe signs the request, and Checkbox checks that
signature before it answers.

## Disconnect or uninstall {#disconnect}

- To show a different site or stop showing one, open **Stripe App** in the Checkbox dashboard and click **Disconnect** next to the Stripe account.
- Uninstalling the app from the Stripe Dashboard disconnects it in Checkbox too. If the app was used to
  read billing settings, that connection is marked disconnected and the site is checked again.

## Troubleshooting {#troubleshooting}

- **"Could not verify this request from Stripe"**: reinstall the app, or contact
  [support@checkbox.site](mailto:support@checkbox.site).
- **The app keeps asking to connect**: the link was not confirmed by an organization admin, or the site's domain is
  not verified yet.
- **No events on a subscription**: Checkbox records events only after it is connected to your Stripe billing, through
  the app (step 4 above) or with a read-only restricted key (**Site → Integrations → Stripe**).
