Your statement, understood
Upload the CSV your bank already gives you. Re-uploading an overlapping period is safe — rows are keyed on the bank's own transaction id, so nothing doubles up and nothing you have already categorised is touched.
Upload the statement your bank already gives you. cashish categorises it, matches the money to your invoices, and works out the VAT — on the cash basis, the way a small Irish company actually files.
Free while in beta. No card. Your data stays in the EU.
Output VAT recognised when each customer paid, apportioned across part-payments. Two expenses in this period still have no rate set — cashish says so rather than leaving them out quietly.
Upload the CSV your bank already gives you. Re-uploading an overlapping period is safe — rows are keyed on the bank's own transaction id, so nothing doubles up and nothing you have already categorised is touched.
Write a rule once and it applies to everything it matches, including the transactions it previously got wrong. Test it first and see exactly what it would catch before you save it. Anything you categorised by hand that no rule has an opinion about is left alone.
Bank inflows are matched to the invoices that explain them — one payment to one invoice, even when a client pays five identical monthly amounts. Money that arrived before an invoice existed is never offered as its payment.
Output VAT recognised when the customer actually pays, apportioned across part-payments and mixed-rate invoices. T1, T2 and the balance, with the expenses that are still missing a rate called out rather than quietly omitted.
Moving money into your own tax pot is not money spent. Exclude it and it is counted nowhere — not in reports, not in VAT, not in what you tell anyone else — while the row stays put so a statement still reconciles line for line.
cashish is an MCP server as well as an app. Point Claude at it and it can read the ledger, write rules, raise invoices and match payments — using exactly the same code the screens use. A read-only key stays read-only.
No per-transaction fees and no charge for adding your accountant. If you keep books for other people, the last one is for you.
One business, one person, books that stay straight.
One person in this business.
For a limited company with an accountant and a few people to pay.
Unlimited people in this business.
You keep books for other people and want them all in one place.
Unlimited people in this business.
No. cashish works out the figures — your VAT3 boxes, your P&L, a PSR-shaped payroll submission — and you file them. Check them against ROS before you submit anything.
Any bank that exports a CSV. It was built against Revolut Business and reads a handful of common header spellings, so most exports import without fuss.
Yes, deliberately. EUR-only keeps the VAT logic honest. Foreign-currency transactions still import with their original amount recorded.
Invite them from Settings. They get their own login and the accountant role: they can work the books but cannot change your business settings, your people, or your API keys.
Postgres in Frankfurt, inside the EU. Receipt files are stored privately, not on a public URL.
Yes. Every screen is backed by an API key you control, and there is a JSON export of the whole picture. It is your ledger.
Import it, see the numbers, decide then.