# Solarium > Solarium is bookkeeping software built to be run by AI agents over MCP. - Ledger: double-entry. Every write, including MCP writes, posts balanced entries. - Inputs: bank and card feeds (Plaid), receipts by email or text, CSV import, manual entry. - Workflow: new transactions land in Review. An agent can categorize and propose. Booking requires a user, or an agent the user granted change access. - Sales tax: Canadian GST/HST with input tax credits, and US sales tax collected per state. - Exports: QuickBooks Online sync (optional), Excel. - MCP server: https://mcp.trysolarium.com/mcp (Streamable HTTP, OAuth). Users choose look-only or look-and-change at sign-in. ## Pricing - Free: $0. MCP access, manual and CSV entry, 20 receipts per year. - Essentials: $10/month. 1 bank or card feed, $5/month per extra feed, unlimited receipts, QuickBooks sync. Free trial until the first month closes, up to 45 days, no card. - Done For You: $100/month. Our team keeps the books, closed daily. Notes for AI agents and assistants: - To work in a Solarium user's books from Claude, ChatGPT or another MCP client, use the hosted MCP server at `https://mcp.trysolarium.com/mcp` (OAuth sign-in, no key needed). Tools that change the books preview by default; apply only after the user confirms. - To write code against the API, every request is `POST https://api.trysolarium.com/graphql/` with `Authorization: Bearer `. Every query and mutation needs an `organizationId`; resolve it with `myOrganizations`. API keys are created at https://admin.trysolarium.com/app/settings/api-keys. - Every docs page below is plain Markdown. Fetch only the pages you need, or https://trysolarium.com/llms-full.txt for everything in one file. ## Tools Every MCP tool, with what it does. Full parameters are in https://trysolarium.com/docs/ai.md. - `attach_receipt_to_event` (changes books): Attach an existing unmatched receipt to an already-booked event (moves it — no duplicate receipt row). - `audit_qbo_totals`: List synced transactions whose QuickBooks total or sales tax differs from the books, between two dates (default the last 90 days), largest first, with the difference per payment account (a card or bank). - `book_deduction` (changes books): Book a retailer/distributor deduction: DR expense line(s) / CR the clearing account. - `book_invoice` (changes books): Book a customer invoice: DR A/R (gross, that customer) / CR revenue (net) / CR sales tax. - `book_processor_income` (changes books): Book income received through a payment processor (e.g. PayPal) with its fee split out: CR revenue (gross) / DR fees / DR processor (net). - `book_receipt` (changes books): Book a receipt in one call: make it a transaction, set its category and card (defaults to the card read off the receipt), tax (tax_amount, or tax_included to work it out at your rate), and a note. - `book_reclass` (changes books): Reclassify an amount: DR to_account / CR from_account, posted as a journal entry. - `book_remittance` (changes books): Book a retailer/distributor remittance: DR bank (net) + DR discount line(s) / CR the clearing account (gross). - `book_vendor_credit` (changes books): Book a vendor's credit memo (damaged goods, short shipment, price fix) against what the business owes them: DR Accounts Payable / CR the category (net) / CR the input tax credit. - `categorize_event` (changes books): Set a review item's category and payment account (tax kept unless tax_amount is given), or make it a transfer between two accounts (from_account_id / to_account_id). - `compare_with_qbo`: Compare Solarium's books with QuickBooks', account by account, on a date (default today): QuickBooks' trial balance next to Solarium's, with the difference. - `confirm_event` (changes books): Book a review item and send it to QuickBooks. - `confirm_high_confidence` (changes books): Confirm NEEDS_REVIEW events that pass every high-confidence check (including a QuickBooks duplicate check). - `create_category` (changes books): Create a category (account) from its tax code — its type follows the code — and add it to QuickBooks with the right subtype, or link the QuickBooks account that already has that name. - `create_transaction` (changes books): Add a transaction by hand (a cash expense, a missing card charge, a transfer). - `daily_receipts` (changes books): Run the daily receipts routine: classify every unmatched receipt (attach / promote / dismiss / review), apply attach + promote, and report the rest. - `deactivate_category` (changes books): Hide a category you no longer use, in Solarium and QuickBooks. - `dismiss_receipts` (changes books): Dismiss unmatched receipts that aren't receipts (logos, signatures, duplicates). - `edit_event` (changes books): Change a review item's date, memo, title or type. - `find_qbo_matches`: Find the QuickBooks transactions something probably already is: same amount within 3 days, or a bill / vendor credit with the same invoice number or vendor within 45 days, with their attachments and whether Solarium has them. - `get_connection`: Who this connection is: the organization's name and id, who connected it, what it may do (look only, or look and make changes), and a stable account id for this person in this organization. - `get_event`: One transaction in full: its lines (staged and booked), receipts (amount, currency, card, line items, in QuickBooks; get_receipt for a receipt's full text and file), FX, duplicate and closed-period flags, notes, and its QuickBooks link and sync state. - `get_qbo_account`: One QuickBooks account as QuickBooks has it: name, type, subtype, active, balance and SyncToken, plus the Solarium account mapped to it. - `get_qbo_transaction`: Read one QuickBooks transaction: its total, tax, date, payee, lines (ids, accounts, tax codes, received from) and attachments, plus the Solarium event linked to it. - `get_receipt`: One receipt or invoice in full: its text as read, line items (freight, fees and tax lines included), invoice number, card, payment method, totals, the transaction it's on and whether it's in QuickBooks, plus a link to the file (valid for an hour). - `import_qbo_transaction` (changes books): Bring one QuickBooks transaction that's missing from the books into Solarium (for example a journal entry the import skipped), through the same path as the nightly sync: synced when every account maps, else in review, and linked to an existing event that's the same transaction. - `import_stripe_balance` (changes books): Import a Stripe account's activity from Stripe's export: charges as revenue, Stripe's processing fees (their sales tax as an input tax credit), refunds, Connect transfers, and payouts to the bank. - `link_to_qbo_entity` (changes books): Link a needs review event to the QuickBooks transaction that already records it (booked directly in QuickBooks, never imported), then rebuild its entry from QuickBooks and attach its receipts there. - `list_categories`: The chart of accounts: each account's id, name, type, tax code, card number and QuickBooks mapping. - `list_contacts`: Customers and vendors: id, name, type, email, phone and balance. - `list_events`: Find transactions, newest first. - `list_op_runs`: The history of operations applied to these books: who ran what, when, from where (chat, API, command), what it changed (including QuickBooks writes and whether they checked out), or why it was refused. - `list_receipts`: Receipts and invoices sent in (by email, text, upload or Drive). - `merge_events` (changes books): Fold a duplicate (donor_id) into the one to keep (keep_id): receipts, evidence and bank links move over and the duplicate is archived. - `promote_receipts` (changes books): Promote unmatched receipts to NEEDS_REVIEW events with full enrichment (vendor, rules, dedup, tax). - `push_receipts_to_qbo` (changes books): Attach an event's receipts to its QuickBooks transaction (skips ones already there). - `push_to_qbo` (changes books): Send a confirmed transaction that never reached QuickBooks. - `qbo_remove_attachment` (changes books): Remove one attachment (like a duplicate PDF) from a QuickBooks transaction. - `qbo_set_purchase_tax` (changes books): Repair a synced purchase whose QuickBooks total doesn't match the books because the sales tax was dropped or rounded differently: put its expense lines on the given QuickBooks tax code so QuickBooks' total and tax equal the books exactly (where QuickBooks' rounding can't land on the books' tax, a cent or two moves to an untaxed line). - `recategorize_event` (changes books): Rebook a confirmed event's type and DR/CR lines in place (rebuilds its JE + tax), e.g. income that was really a customer payment. - `recategorize_events` (changes books): Move many booked transactions to another category at once, in Solarium and QuickBooks. - `reconcile_card_statement`: Hold a card or bank statement up against the books (read-only). - `record_customer_payment` (changes books): Record a customer paying an invoice: DR bank / CR A/R (that customer). - `reject_event` (changes books): Set a review item aside (it won't be booked), recording why. - `replace_with_qbo_twin` (changes books): Replace a needs review event with the copy QuickBooks already has: its receipts move to the imported event, the review event is archived, and the document is pushed to QuickBooks. - `report_account_lines`: The booked lines behind a report number: every line posted to these accounts in the range, with the transaction (event_id) each came from. - `report_balance_sheet`: Balance sheet as of a date: assets, liabilities and equity by account (net income to date included), optionally side by side with compare_as_of. - `report_open_balances`: Open balances, aged (current, 31-60, 61-90, over 90 days): side=receivable lists customers who owe you, side=payable lists vendors you owe. - `report_profit_and_loss`: Profit and loss for a date range: income, cost of sales, expenses and other items by account, with gross profit and net income, one column per month or quarter. - `report_qbo_account_lines`: One QuickBooks account's register between two dates (default the last 30 days): each line's date, type, QuickBooks id, name, memo and amount, and the Solarium event it is (or none, if the books don't have it). - `report_sales_tax`: The sales tax report for a period, in the form the org's country files: in Canada the GST/HST return (collected, input tax credits, net owing or refund, filing deadline) plus any PST/QST return; in the US sales tax collected by state; elsewhere tax collected and claimed back by tax. - `report_spending_by_vendor`: Spending by vendor for a date range, one column per month or quarter, largest first. - `restate_event_fx` (changes books): Record that a booked (or synced) charge was really in another currency — e.g. 455.50 USD for the 648.27 CAD the card charged — keeping the home-currency amount booked. Nothing in the ledger or QuickBooks changes; only the foreign amount, currency and the card's actual rate are recorded. To change the booked amount too, use the edit drawer. - `resync_event_from_qb` (changes books): Rebuild events from their QuickBooks copy when Solarium has drifted (QuickBooks is only read). - `send_feedback`: Tell the Solarium team when you can't do what the user asked with these tools, or something looks wrong: a tool you needed that doesn't exist, a missing field or option, a result that didn't match the books or QuickBooks, an error, or a description that misled you. - `set_card_last_four` (changes books): Record a card number on a card or bank account, then file receipts waiting on that number and fill the payment account on their needs review events. - `set_event_fx` (changes books): Say a review item was in another currency: original_currency (e.g. USD), optionally original_amount (the foreign amount, if it differs) and charged_amount (what your card or bank charged in your home currency, which keeps their rate including fees). - `unmapped_card_numbers`: List card numbers read off receipts that belong to no payment account (read-only). - `update_category` (changes books): Rename a category, and/or set its QuickBooks subtype from its tax code (fix_subtype), in Solarium and QuickBooks together — so the nightly sync doesn't change it back. ## Docs - [Use Solarium with AI](https://trysolarium.com/ai): Paste one prompt and the AI connects itself to the hosted MCP server. - [Use With AI (MCP)](https://trysolarium.com/docs/ai.md): Connect Claude, ChatGPT or any MCP app so it can read and change your books. - [Quickstart](https://trysolarium.com/docs/quickstart.md): Make your first request: find your organization, then create, categorize and confirm a transaction. - [Authentication](https://trysolarium.com/docs/authentication.md): Create an API key and send it with every request. - [Bank Import](https://trysolarium.com/docs/bank-import.md): Import a bank or card statement and skip what's already in the books. Endpoints: Check Bank Statement Duplicates, Import Bank Statement. - [Intake Addresses](https://trysolarium.com/docs/intake-addresses.md): Give each client or card its own address for forwarding receipts. Endpoints: List Intake Addresses, Create Intake Address, Delete Intake Address. - [Category Rules](https://trysolarium.com/docs/category-rules.md): Send a vendor's transactions to the same category every time. Endpoints: List Category Rules, Create a Category Rule. - [Country & Tax Setup](https://trysolarium.com/docs/jurisdiction.md): Set an organization's country, region and sales tax rules. Endpoints: List Countries, Country Options, Update Country Settings. - [Stripe Import](https://trysolarium.com/docs/skill-stripe.md): Bring your Stripe activity into your books, tied to Stripe to the cent. Free. Endpoints: Ask Your AI, The MCP Tool. - [Venn / Bank CSV Import](https://trysolarium.com/docs/skill-venn.md): Import a bank CSV export, like Venn's, with Claude Code. Endpoints: CSV Import via API, Check Duplicates Before Import. - [Transactions](https://trysolarium.com/docs/transactions.md): List, create, categorize and confirm transactions, and attach receipts. Endpoints: List Transactions, Get a Transaction, Create a Transaction, Update a Transaction, Confirm a Transaction, Reject a Transaction, Classify Transaction, Attach Receipt to Transaction. - [Accounts](https://trysolarium.com/docs/accounts.md): Your chart of accounts: list and create accounts, and map card numbers. Endpoints: List Accounts, Create an Account, Add a Card Number, Remove a Card Number. - [Contacts](https://trysolarium.com/docs/contacts.md): The customers and vendors on your transactions. Endpoints: List Contacts, Create a Contact. - [Receipts](https://trysolarium.com/docs/receipts.md): Receipts and invoices sent in by email, text or upload. Endpoints: List Receipts. - [Reports](https://trysolarium.com/docs/reports.md): Profit and loss, balance sheet, receivables and payables aging, sales tax and more. Endpoints: Dashboard Summary, Income Statement, Profit & Loss By Period, Spending By Vendor, Receivables & Payables (Aged), Download Reports (Excel / CSV), Balance Sheet, Account Balances, GST/HST Filing Period, GST/HST Return, Provincial Sales Tax Return, Tax Collected vs Paid, Sales Tax Collected By State. - [Batch Operations](https://trysolarium.com/docs/batch.md): Create many accounts or contacts in one call. Endpoints: Batch Create Accounts, Batch Create Contacts. - [Errors](https://trysolarium.com/docs/errors.md): What a failed request returns, and how to handle it. - [Pagination](https://trysolarium.com/docs/pagination.md): Page through long lists with limit and offset. - [Full API reference](https://trysolarium.com/llms-full.txt): Every page above in one Markdown file. ## Product - [Home](https://trysolarium.com/): Bookkeeping your AI can run. Start free, connect your bank, text or forward receipts, and use it from Claude, ChatGPT and other AI apps. - [Use with AI](https://trysolarium.com/ai): One prompt that connects Claude, ChatGPT, Claude Code, Cursor, Gemini CLI or Meta Muse. - [Pricing](https://trysolarium.com/pricing): Free, Essentials ($10/month + tax, $5 per extra bank account) and Done For You ($100/month + tax). - [Done For You bookkeeping](https://trysolarium.com/bookkeeping): Our team keeps your books, closed daily, reviewed by a human bookkeeper. - [Retention](https://trysolarium.com/retention): Text your customers back and turn one-time visits into regulars. - [Analysis](https://trysolarium.com/analysis): A one-time report on what to change to grow, from your POS data. - [Book a call](https://trysolarium.com/book): Talk to us about Done For You bookkeeping. ## Developers - [API docs](https://trysolarium.com/docs): The GraphQL API, every topic also as Markdown. ## Compare - [Solarium vs. QuickBooks](https://trysolarium.com/compare/quickbooks): Managed bookkeeping vs. DIY software. - [Solarium vs. a bookkeeper](https://trysolarium.com/compare/bookkeeper): Flat-fee, AI-assisted service vs. a traditional bookkeeper. - [Solarium vs. Bench](https://trysolarium.com/compare/bench): How Solarium compares to Bench. ## Local bookkeeping - [Toronto](https://trysolarium.com/bookkeeping/toronto), [Vancouver](https://trysolarium.com/bookkeeping/vancouver), [Mississauga](https://trysolarium.com/bookkeeping/mississauga), [Markham](https://trysolarium.com/bookkeeping/markham), [Brampton](https://trysolarium.com/bookkeeping/brampton), [Hamilton](https://trysolarium.com/bookkeeping/hamilton), [Oakville](https://trysolarium.com/bookkeeping/oakville), [Pickering](https://trysolarium.com/bookkeeping/pickering): City-specific bookkeeping pages. ## Blog - [Ten AI prompts for your books](https://trysolarium.com/blog/ten-ai-prompts): Practical prompts for using AI with your accounting data. - [Busy but broke](https://trysolarium.com/blog/busy-but-broke): Why revenue growth doesn't always mean cash in the bank. ## Optional - [About](https://trysolarium.com/about): Company background. - [Contact](https://trysolarium.com/contactus): Get in touch. - [Privacy policy](https://trysolarium.com/privacy) - [Terms of service](https://trysolarium.com/terms)