# Stripe Import

> Solarium docs. Export two files from Stripe, then ask your AI to import them. It previews first and only books when Stripe ties. Index of all pages: https://trysolarium.com/llms.txt

Your Stripe balance should match your books. This import makes sure it does. It books your charges, Stripe's fees, refunds and payouts. Then it checks that the Stripe account in your books moved by exactly what Stripe says. If it doesn't, nothing is written.

It's free on every plan.

## Step 1: Export your activity from Stripe

1. In the Stripe Dashboard, open **Reports**, then **Balance** ([dashboard.stripe.com/reports/balance](https://dashboard.stripe.com/reports/balance)).
2. Pick the date range. Start the day after your last import. Stripe's reports only include whole days.
3. In the **Balance change from activity** section, click **Export**, choose **CSV**, then **Itemized**.
4. In the **Payouts** section, click **Export**, choose **CSV**, then **Itemized**. Payouts are their own section, so this is a second file.

Optional: when you export, add the **source_id** column. It lets the import match each charge to the same charge anywhere else in your books.

Stripe's guide to this report: [Balance summary report](https://docs.stripe.com/reports/balance).

## Step 2: Ask your AI

With Solarium connected to your AI (see [Use With AI](/docs/ai)), attach both files and ask:

> Import these Stripe exports into Solarium. Show me the preview first.

It asks which accounts to use: your Stripe account, the bank Stripe pays out to, your sales account and your fees account. Then it shows the preview.

## Step 3: Check the preview, then book it

The preview lists every transaction it would book and ends with one line:

> Stripe Oct 1 To Oct 15: Books 562.68, Stripe's Net 562.68, Difference 0.00

If the difference is 0.00, tell it to go ahead. The new transactions land in **Review**. Confirm them there to post them.

## What it books

| Stripe activity | In your books |
|---|---|
| A charge | Sales, into your Stripe account |
| Stripe's processing fees | One fee per day, the exact sum of that day's charge fees |
| Stripe's own fees (billing, Connect) | Fees, with the sales tax Stripe charges as an input tax credit |
| A refund | Taken off sales |
| A payout | Stripe to your bank. If your bank feed already has it, it's linked, not booked twice. |
| A Connect transfer | The account you name for payouts to connected accounts |

## What it checks

- **Nothing twice.** Anything already in your books is skipped, from any source. That includes a charge entered by hand and a payout already on your bank feed.
- **Fees tie to charges.** Each day, your charges minus their fees must equal what Stripe kept.
- **Every charge arrives.** Each day's charges in your books must match Stripe's count and total.
- **Stripe ties.** The Stripe account in your books must move by exactly Stripe's net for those days.

If any check fails, it tells you why and writes nothing.

Charges without a customer go to your sales account. If you've confirmed a charge of the same amount before, it uses that one's category and tax.

The older **balance history** export works too.

## Ask Your AI

Attach both Stripe files and ask in plain words. It previews first.

### Request

```graphql
Import these Stripe exports into Solarium.
Show me the preview first.

[balance_change_from_activity.csv]
[payouts.csv]
```

### Response

```json
Preview: 34 transactions from Stripe, Oct 1 to Oct 15.

  2026-10-08 income    $   4.99  Stripe Revenue          → Sales
  2026-10-08 expense   $   0.88  Stripe Processing Fees  → Merchant Fees
  2026-10-08 expense   $   4.52  Stripe Fee              → Merchant Fees
  Payout po_1Qa… 1,800.00 is on your bank feed: linked

Stripe Oct 1 To Oct 15: Books 562.68, Stripe's Net 562.68,
Difference 0.00

It ties. Book it?
```

## The MCP Tool

What your AI calls: import_stripe_balance. Run it with apply false to preview.

### Arguments

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `csv` | `String` | Yes | The Balance change from activity export (or the older balance history export). |
| `payouts_csv` | `String` | No | The Payouts export, with the Balance summary report. |
| `stripe_account_id` | `ID` | Yes | The account that is your Stripe balance. |
| `bank_account_id` | `ID` | Yes | The bank Stripe pays out to. |
| `revenue_account_id` | `ID` | Yes | Where charges go. |
| `fees_account_id` | `ID` | Yes | Where Stripe's fees go. |
| `transfers_account_id` | `ID` | No | Connect platforms only: where transfers to connected accounts go. |
| `allow_window_mismatch` | `Boolean` | No | Book even if Stripe doesn't tie over the export's days. Only when two exports overlap. |

### Request

```graphql
{
  "name": "import_stripe_balance",
  "arguments": {
    "apply": false,
    "csv": "balance_transaction_id,created,...",
    "payouts_csv": "balance_transaction_id,effective_at,...",
    "stripe_account_id": "7b2e…",
    "bank_account_id": "0c41…",
    "revenue_account_id": "a9f3…",
    "fees_account_id": "55d8…"
  }
}
```

### Response

```json
{
  "summary": "34 From Stripe 2026-10-01 To 2026-10-15; Stripe In The Books Moved 562.68 Against Stripe's 562.68 (Difference 0.00).",
  "data": {
    "difference": "0.00",
    "not_booked": { "on the bank feed": 1, "already booked": 2 }
  },
  "warnings": ["The New Transactions Are In Review: Confirm Them To Post."]
}
```
