Stripe
The Stripe app imports your successful Stripe charges into your company file. Each charge becomes a balanced journal entry with the processing fee split out and refunds reversed. You set it up once on the Apps screen; after that the app checks Stripe on a schedule while Solid Accounting is open.
The Stripe app needs Professional or Accountant.
This page is about importing sales you already take through Stripe. Letting customers pay your invoices by card from the emailed link is coming soon, as part of Cloud Invoicing (included with Updates & Cloud Services). See Accounts Receivable.
Before you start
- A Stripe account and its secret key (Stripe Dashboard → Developers → API keys; it starts
sk_live_orsk_test_). Use a test key first if you want to try it safely. - These accounts in your chart of accounts, or ones you'd rather use:
| Amount | Suggested account |
|---|---|
| Sales | 4000 Sales Revenue (income) |
| Processing fees | 6210 Payment Processing Fees (expense) |
| Money received | 1200 Undeposited Funds (asset) |
| Refunds | 4020 Sales Returns & Allowances (income, contra) |
Connect Stripe
- Open Apps (sidebar) and click Add app.
- Choose Stripe and paste your Secret Key.
- Map each amount to an account. The suggestions above are filled in; pick your own if they differ.
- Choose an Import mode. Post automatically puts entries straight into your books. Review first sends each one to the Review Queue for approval.
- Set the Poll interval in minutes (5 to 1,440) and save.
Click Poll now on the Stripe card to import straight away. The card shows the last poll time; View activity log shows what came in.
What gets posted
For each succeeded charge, the app posts one entry dated the day of the charge:
| Line | Debit | Credit |
|---|---|---|
| Money received, net of Stripe's fee | Undeposited Funds | |
| Stripe's fee | Payment Processing Fees | |
| The full charge | Sales Revenue |
If the charge was refunded, fully or in part, the same entry also debits Sales Returns & Allowances and credits Undeposited Funds for the refunded amount. The customer's name and email come across with the charge.
Each entry carries the Stripe charge ID, so polling again never imports the same charge twice.
Recording Stripe payouts
Stripe pays out in batches, so one bank deposit covers many charges. The charges sit in Undeposited Funds until the payout lands. When it does, record a deposit from Undeposited Funds into your bank account (Banking → Record Deposit), or match it to the deposit on your bank feed. The deposit should equal the net amounts of the charges in that payout.
Banking → Processor Payouts is a different route: it imports Stripe's payout report file and posts each payout's gross amount, fees and deposit itself. Use one route or the other for the same charges, not both, or the fees will be counted twice.
Troubleshooting
- "Invalid Stripe API key" — the key was mistyped, revoked, or is a publishable key (
pk_…). Paste the secret key again with Edit configuration. - Nothing imports — check the card isn't paused and that the key is for the right Stripe account (live vs test).
- Entry rejected — the charge date falls in a closed period. Reopen the period in Company → Fiscal Years..., or post the amount by hand in an open period. See Fiscal Years & Close Year.
Related
- Apps & integrations
- Banking — Undeposited Funds and deposits
- REST API — if you need something the Stripe app doesn't do