Now

Updates, news, and what we're working on.

Review Queue & Smarter Search

Release
v2026.6.2
1new
3improved
3fixed

Clear approvals from your dashboard

The new Review Queue widget brings inbox items awaiting a decision right to your homepage. See how many are waiting, preview the document on hover, and approve or reject inline — no trip to the approvals page. It's opt-in, so add it from Customize whenever you want it.

Search got sharper

Yesterday's command palette put every part of your workspace one keystroke away — now the results themselves are smarter. A typo or a missing accent won't hide the record you're after, and something close in meaning still surfaces even when the exact words don't match. Deleted inbox items stay out of your results, too.

A calmer chat with Cat

Conversations name themselves as you go, so your history is easy to scan later. And if a reply ever gets cut off, Cat shows a clear message with a Retry button instead of leaving you stuck on a blank bubble.

  • DashboardA Review Queue widget puts inbox items awaiting approval on your homepage — preview the document and approve or reject inline, without opening the approvals page.
  • SearchSearch is more forgiving — a typo or a missing accent no longer hides what you're after, and results are ranked by how well they match rather than just whether the text lines up exactly.
  • SearchSearch now understands meaning, not just exact words, so a record that's close in intent still surfaces even when the wording doesn't match.
  • AssistantConversations with Cat name themselves automatically as you chat, so your history stays easy to scan.
  • AssistantIf a reply from Cat gets interrupted, you now get a clear message with a Retry button instead of a stuck, blank bubble.
  • SearchDeleted inbox items no longer show up in search results or the attachment picker.
  • BankingConnecting an imported bank account no longer fails with a sign-in error.

Command Search

Release
v2026.6.1
5improved
2fixed

One place to find the work

Search now covers the parts of Expensicat people actually jump between all day: inbox items, transactions, invoices, credit notes, quotes, customers, entities, projects, documents, and time entries. Open it with Command-K, type a few letters, and go straight to the record you need.

It also knows where you are. If you're already on invoices, customers, transactions, entities, or another searchable page, Tab applies your search as a page filter instead of making you retype it in a separate field.

When search becomes a question

Not every search is really a search. Sometimes "vercel" means "show me the Vercel invoice"; sometimes it means "what do we spend on Vercel?"

When you want Cat instead of a result, press Command-Enter or choose Ask Cat from the palette. Cat gets the right bit of context — that the message came from search and which area you were searching — while your chat still shows only what you typed.

Fewer dead ends

The palette is tighter now: clearer empty states, better recent items, denser result rows, and shortcuts that behave like shortcuts without getting in the way of normal typing.

  • SearchSearch across inbox items, transactions, invoices, credit notes, quotes, customers, entities, projects, documents, and time entries from one command palette.
  • SearchFilter the page you're already viewing from the same search box — invoices, customers, transactions, entities, and more.
  • AssistantAsk Cat straight from search when the thing you typed is really a question, not an item to open.
  • AssistantCat now understands when a question came from search, so short queries like "vercel" get treated with the right context instead of as a cold chat message.
  • ShortcutsNew keyboard shortcuts make search faster: Command-K opens the palette, Command-Enter asks Cat, Tab filters the current page, and ? opens the shortcut map.
  • SearchEmpty searches now show a clear next step instead of a dead end.
  • SearchTyping a question mark in search works normally, so questions like "what did I spend?" can be sent to Cat without fighting the shortcut map.

Approvals

Approvals
Your rules, AI applies them
Approval policyPlain English
Auto-approve receipts under €100Applied
Route bills over €500 to an admin
Flag receipts missing a VAT ID
Figma
Receipt · VAT €13.81 · May 28
€84.00
AI · Auto-approve
96%
Matched your policy · receipts under €100
Approve
Reject
U
Y
Approved
Live

Your policy, in plain English

Tell Cat how you want expenses handled in a sentence or two — "auto-approve receipts under €100, route anything bigger to an admin." There's nothing to configure beyond writing it down, and you can drop in a sample receipt to see exactly how Cat would rule before you save.

Cat takes the first pass

Every receipt and bill that lands in your inbox is checked against your policy. The routine, in-policy ones are approved on their own; anything unusual — over your limit, missing a VAT ID, or simply ambiguous — is routed to an admin with the matching rule and a confidence score attached. You decide how far Cat goes: suggest only, one-click accept, or full auto-approve for high-confidence items.

Decide in a click, from anywhere

Approvals live in their own inbox queue, split into Awaiting and All. Approve, reject, or undo with a click or a keystroke — or act straight from the email notification without logging in. Whoever uploaded the receipt sees the result the instant you decide, and gets a heads-up by email and WhatsApp too.

  • ApprovalsWrite your approval rules in plain English — "auto-approve receipts under €100, send everything else to an admin" — and Cat applies them to every item in your inbox.
  • ApprovalsEach receipt and bill gets an AI verdict — approve, route for review, flag, or reject — with the policy rule it matched and a confidence score.
  • ApprovalsA dedicated Approvals queue in your inbox, split into Awaiting and All, so every pending decision lives in one place.
  • ApprovalsApprove, reject, or undo a decision in a single click — or with Y, N, and U on your keyboard.
  • ApprovalsAct straight from your email — every routed item arrives with one-click Approve and Reject buttons, no login needed.
  • ComplianceCat flags receipts missing a company name or VAT ID on VAT-deductible amounts, so you don't lose the deduction at filing time.
  • RolesOnly owners and admins can approve; everyone else gets a clean read-only view of where their items stand.
  • AutomationChoose how far Cat goes — suggest only, suggest with one-click accept, or auto-approve high-confidence items under your threshold.
  • ApprovalsTest your policy before saving — drop in a sample receipt and see exactly how Cat would rule on it.
  • RealtimeDecisions appear live for whoever uploaded the item — they see "Approved" the moment you click, no refresh.
  • NotificationsSubmitters hear the outcome in-app, by email, and on WhatsApp, with the reason attached whenever something is declined.
  • ApprovalsY to approve, N to reject, U to undo the last decision

Tax Registrations

Release
v2026.5.3
5new
3improved

One place to tell us where you're registered

If you sell across borders, the question of which VAT to charge depends on where you're registered, not just where you and your customer are. Until now you had to pick the right rate on every line yourself. Now you tell Expensicat once per legal entity, and the invoice editor does the rest.

Open your legal entity, add a registration, pick one of three schemes:

  • Standard — a direct national VAT/GST registration in a country other than your home (the warehouse case)
  • Union OSS — the EU single registration that covers cross-border B2C sales to every other EU member
  • Import OSS — for low-value (under €150) B2C imports into the EU

You can have several. Each one has its own start date and an optional end date, so a registration you closed last year doesn't keep applying to invoices you issue today.

The rate picks itself

For every new invoice line, Expensicat looks at your home country, your active registrations, your buyer's country, and whether they gave you a valid EU VAT ID. From that it picks the right treatment:

  • Selling at home → your domestic rate
  • Selling to an EU business with a valid VAT ID → reverse charge with the right exemption code
  • Selling B2C to another EU country with Union OSS on → the buyer's country rate
  • Selling B2C to another EU country with no OSS → your domestic rate, with a hint to add Union OSS if you've crossed the €10k threshold
  • Holding a direct registration in the buyer's country → that country's rate, ahead of OSS
  • Selling outside the EU → export at 0%

Each line carries a short explanation of why it was taxed the way it was, so you can spot anything that looks off before you issue.

Per-line override is still one click

For the cases the engine can't know about — a goods seller who needs intra-Community supply (K) instead of the default reverse charge (AE), a B2C sale that's exempt for a specific reason — the tax picker on each line shows every available rate for the right country and date, with the EN 16931 exemption code attached automatically.

  • TaxAdd tax registrations to each legal entity for Union OSS, Import OSS, or a direct VAT/GST registration in another country.
  • TaxSell cross-border B2C in the EU and have Union OSS turned on, and Expensicat charges the buyer's country rate automatically.
  • TaxHold a direct registration in a buyer's country — for example because you ship from a warehouse there — and that country's rate is applied instead of OSS.
  • TaxA valid EU VAT ID on the buyer flips invoices to reverse charge automatically, with the right exemption code on the e-invoice.
  • TaxEach registration carries an effective-from and optional effective-to date, so old registrations stop applying to invoices once they end.
  • InvoicingThe tax picker on each invoice line now shows the available rates for the right jurisdiction and date, with one click to switch category.
  • InvoicingPlain-language explanation of why each line was taxed the way it was — "Union OSS — destination rate", "Reverse charge — EU B2B", "Export outside EU" — so you can sanity-check before issuing.
  • EntitiesTax registrations now live as separate records per legal entity, with proper uniqueness, history, and admin-only editing.

Invoicing Infrastructure

Release
v2026.5.2
8new
2improved

Use Expensicat as the invoicing engine behind your product

Building something that needs to send real invoices? A marketplace paying out sellers, a SaaS billing flow, an AI agent handling billing for its user — you can now plug Expensicat in as the engine behind it, and your customers never have to leave your product.

You don't have to rebuild the hard parts either. Sequential legal numbering, EU-compliant formats (Factur-X, ZUGFeRD, XRechnung, EN 16931, Peppol UBL), the audit trail, automatic reminders, and reconciliation with your bank — it all comes along for the ride.

Four things that make this production-ready

We spent the time on the small details that separate a fun-to-demo invoice API from one you can actually bet your billing on:

  • API keys you can scope — issue one per integration, restrict it to just the resources it needs
  • Safe to retry — if your network blips, sending the same request again brings back the same invoice (no awkward duplicates for your customer)
  • Your IDs stay yours — pass the customer and invoice IDs you already use in your system, and we'll make sure nothing gets created twice against them
  • Preview before you commit — run the full calculation, see the exact document your customer will see, and only persist it when you say go

One call from draft to issued

A single request takes a draft and turns it into a finalized, sendable invoice. The snapshot is locked, the next sequential number is assigned, and the issued files are generated — both the PDF your customer reads and the structured file their accounting system reads.

Need the files later? Download the PDF, the structured file, or a bundle of both, any time.

  • APISend invoices to your customers from your own product, app, or AI agent. Expensicat handles the document, the format, and the legal bits.
  • APICreate API keys, and lock each one to just the things it should be allowed to do.
  • APISafe to retry. If your request times out or your network blips, sending it again won't create a duplicate invoice.
  • APIBring your own IDs for customers and invoices — Expensicat won't let you accidentally create duplicates.
  • APIPreview the exact invoice your customer will see before you issue it. Nothing is saved until you say so.
  • APIIssue a finalized invoice in a single call — locked, numbered, and ready to download.
  • APIDownload issued invoices as a PDF, the structured file accounting systems expect, or both as a bundle.
  • APICreate reusable invoice templates over the API.
  • SDKThe Expensicat SDK now covers all of the above: preview, finalize, downloads, templates.
  • ComplianceInvoices issued through the API run through the same European compliance checks as the ones you create in the dashboard.

EU E-Invoicing Beta

Rechnung
Nr. 2026-0142
Lieferant
Kunde
PositionUSt.Betrag
Netto1.200,00 €
USt. 19 %228,00 €
Brutto1.428,00 €
<Invoice>
<cbc:ID>2026-0142</cbc:ID>
<cbc:IssueDate>2026-05-08</cbc:IssueDate>
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<cac:AccountingSupplierParty>…
<cac:AccountingCustomerParty>…
<cac:TaxTotal>
<cbc:TaxAmount currencyID="EUR">228.00</cbc:TaxAmount>
</cac:TaxTotal>
<cbc:PayableAmount currencyID="EUR">1428.00</cbc:PayableAmount>
</Invoice>
EN 16931
E-Invoicing
Factur-X
ZUGFeRD
XRechnung
Peppol UBL

EU e-invoicing is now in beta

EU e-invoicing is now available in beta through August 12, 2026.

This is for teams that invoice customers in Europe, work with EU legal entities, or need buyers and government portals to accept structured invoice files. Expensicat now helps create the right file, checks it before you send it, and keeps the PDF easy for a human to read.

The goal for the beta is simple: run real invoices through the workflow, make the defaults better for each country, and remove the avoidable back-and-forth that happens when a buyer rejects an invoice for format or missing-field problems.

What you can do

Create invoices in the formats European businesses commonly ask for: Factur-X, ZUGFeRD, XRechnung, EN 16931, and Peppol-ready UBL. You choose the format per legal entity, so a German entity can use German e-invoicing defaults without changing how another entity works.

The invoice still looks like a normal PDF when your customer opens it. Under the hood, it carries the structured invoice data that accounting systems, portals, and e-invoicing networks use to read the document automatically.

You can also review supplier e-invoice files in the same workflow. Upload or forward Factur-X, ZUGFeRD, XRechnung, or Peppol UBL files to your inbox and Expensicat reads the structured data for review.

Entries is now Inbox

Entries has been renamed to Inbox. The functionality has not changed: this is still the place where incoming documents land before you review, approve, categorize, or match them.

The new name is setting up where the product is going. Today, Inbox handles forwarded files and uploaded supplier documents, including structured e-invoice files. We are preparing it to become the natural place for direct e-invoicing network receipt in the future, so invoices from networks such as Peppol can eventually arrive in Expensicat without needing to be emailed or uploaded first.

Checked before sending

E-invoicing failures are usually small details with oversized consequences: a missing buyer identifier, the wrong tax reason, a format mismatch, or a file that looks right but is not accepted by the buyer's system.

Expensicat now checks invoices before they go out and explains what needs fixing in plain language. That gives you a chance to correct the issue before the customer, portal, or access point rejects the invoice.

Peppol delivery

Creating a Peppol-ready file and sending it through the Peppol network are different steps. During the beta, Peppol delivery is available for customers who need network delivery, not just a downloadable file.

If your buyer requires Peppol, we can enable the delivery path with an accredited access point and help confirm the right identifiers before you send.

What's still aspirational

Some countries require more than a compliant invoice file. Italy SDI, Poland KSeF, Spain Verifactu, France PDP, and Romania ANAF each have their own clearance or reporting network.

Those direct country gateways are not all live yet. We are sequencing them by mandate deadlines and customer need. Until then, the beta focuses on creating, reviewing, checking, and, where enabled, delivering EU-ready invoice files.

  • E-InvoicingCreate Factur-X and ZUGFeRD invoices that look like normal PDFs and also include the structured data European buyers expect
  • E-InvoicingBuilt-in checks catch missing buyer details, tax information, and format issues before an invoice reaches your customer
  • E-InvoicingChoose the right format per legal entity, including EN 16931, XRechnung, Factur-X, ZUGFeRD, and Peppol-ready invoice files
  • E-InvoicingReview supplier e-invoice files in Factur-X, ZUGFeRD, XRechnung, and Peppol UBL formats from your inbox
  • E-InvoicingPeppol delivery is available for beta customers who need to send invoices through the Peppol network
  • InboxEntries is now called Inbox. The workflow is the same, but the name better matches where incoming invoices, receipts, and credit notes are reviewed.
  • E-InvoicingClearer validation messages explain what needs fixing before you send an invoice
  • E-InvoicingCountry-specific defaults help each legal entity use the right invoice format without changing workspace-wide settings
  • E-InvoicingInvoice format checks stay up to date as European and German requirements change

EU Compliance

€42.80
Caffè Roma
Apr 11, 2026·Food & Drink
Receipts
Drop it, done
Processed

Scoped to Where the Rules Apply

Compliance only kicks in when the rules actually apply to you. Add a legal entity registered in the EU and Expensicat enables Factur-X format, the issued-document lock, and the strict numbering everywhere it touches your documents. Run only US or India entities and none of those layers activate — your PDFs are plain, edits stay editable, and the workflow matches what your accountant there actually expects.

The trigger is the legal entity, not the workspace. A US holding company with a German subsidiary gets EU-grade enforcement on the German entity's invoices and stays out of your way for the US-side ones.

Compliant by Default in the EU

When the EU rules apply, every euro invoice you issue is a Factur-X PDF. To your customer it looks like the same PDF they've always received; underneath, it carries the structured EN 16931 data that French Chorus Pro reads, that Peppol Access Points consume across the EU, and that German B2B systems use to auto-book the bill into their accounting. Pick the format once per legal entity in template settings — EN 16931 for cross-border, Factur-X / ZUGFeRD for domestic German B2B.

On every euro invoice the PDF also carries a SEPA QR code. Customers open their banking app, scan, and every payment field — IBAN, amount, reference — is pre-filled. Faster paid, no typos, no chasing missing reference numbers. The QR self-skips for non-euro invoices and non-SEPA accounts, so a USD invoice or a US routing number simply doesn't render one.

Locked Once Issued — When the Law Asks for It

For EU-registered entities, the day you issue an invoice or a quote its number, dates, customer, totals, and line items become locked. This is what GoBD in Germany, the DGFiP in France, and SDI in Italy all require — once a document is out the door, the only legitimate way to correct it is by issuing a credit note. If you try to edit a locked field, you'll see a clear message telling you which field is locked and why, with the credit-note path one click away.

Outside the EU, this lock is off. A US sole proprietor or Indian SMB editing a typo on yesterday's invoice gets to fix it the way they always have.

A bounced payment or refund can still move the invoice back to unpaid — that's a real-life thing that happens. On EU workspaces, the amounts and customer info stay frozen across the round-trip, so the document you issued is the document the auditor sees.

Gap-Free Numbering, Universally

Every workspace gets continuous numbering per legal entity per document type — invoice, quote, credit note. No skipped numbers, no reuse. Deleting a draft still consumes its slot. The EU strictly requires this; everywhere else expects it as good practice, so we apply it to all workspaces. If you run two trading names — Acme Ltd and Acme GmbH — each keeps its own line of numbers without bleed-over.

Every number that gets assigned is recorded against the document that received it, so when a tax inspector asks "show me invoice 2026-0042 and the audit trail behind it," the answer is one search away.

One Complete Record

We capture every event that matters in one chronological feed: invoice issued, customer viewed it, payment received, edits attempted on a locked document, quotes sent and accepted from the public link, credit notes raised, members added or removed, legal entity address updated, logins. Each entry carries who did it, when, and what changed in plain language — not internal IDs.

This is the foundation regulator-facing reports project from. SAF-T exports for Norway, Hungary, and Portugal; GoBD queries for German tax audits; the upcoming Spanish Verifactu hash-chain — all read from the same source of truth. Capture is universal and silent — the data is there for every workspace, regardless of country, so when you're ready, it's ready.

Available on Team

The searchable Activity view inside Settings — where admins and owners can browse the full history — is part of the upcoming Team tier. Eligible workspaces will be switched on automatically; you don't need to do anything.

  • E-InvoicingInvoices and credit notes ship as Factur-X / ZUGFeRD hybrid PDFs — they look like a normal PDF to your customer and carry the EN 16931 data Chorus Pro, Peppol, and German B2B receivers expect
  • E-InvoicingPick the e-invoicing format per legal entity — EN 16931 for cross-border, Factur-X for German B2B, or off if your country doesn't require it
  • PaymentsEvery euro invoice now carries a SEPA QR code — your customer scans it with their bank app and the transfer is pre-filled
  • InvoicingQuotes and credit notes are first-class documents with their own lifecycle and locale-aware titles — FACTURE, RECHNUNG, FATTURA, DEVIS, GUTSCHRIFT, NOTA DI CREDITO
  • InvoicingInvoice and credit-note numbers are gap-free per legal entity — what French, German, and Italian tax authorities require on every issued document
  • ComplianceFor workspaces with at least one EU legal entity, issued invoices and quotes lock their amounts, dates, customer, and line items — corrections happen through a credit note, the way regulators expect
  • ComplianceUS, India, and other non-EU workspaces keep editing issued documents in place — no credit-note dance for a typo fix
  • ComplianceEverything that happens — issued, sent, viewed, paid, edits attempted on a locked doc, members added, settings changed, logins — is captured in a single record
  • InvoicingWhen you try to edit a locked field on an EU workspace, you get a clear message naming which field is locked and why
  • PDFSwitched the PDF font to Noto Sans so Czech, Polish, Hungarian, and Greek issuers no longer see missing characters or broken accents
  • PDFPDFs now embed the color profile required for German long-term archive readability (GoBD)
  • InvoicingA bounced or refunded invoice can still flip back to unpaid — and on EU workspaces, the amounts stay locked across that round-trip

Expensicat CLI

CLI
SDK
Terminal & Agents
expensicat
$expensicat login
Waiting for authorization...
Open:expensicat.com/device
Code:A7K-9MX
Logged in successfully!
$expensicat transaction list
DateNameAmountStatus
Apr 15Vercel Pro-$20.00posted
Apr 14Stripe Payout+$2,400posted
Apr 12Figma Team-$45.00posted
npx @expensicat/cli

Your Business in the Terminal

Install with a single command, then manage everything you'd do in the dashboard — right from your terminal:

npx @expensicat/cli
# or install globally
npm i -g @expensicat/cli

Once installed, log in and start working:

expensicat login
expensicat transaction list
expensicat invoice create --customer-id cust_123
expensicat tracking start "Client project"
expensicat metric snapshot

Log In From Anywhere

Run expensicat login and a short code appears in your terminal. Open the link in any browser, confirm the code, and you're in. Your CLI session shows up in Settings alongside your browser sessions — revoke it anytime.

Built for You and Your Tools

Everything outputs clean, structured data when piped — making it perfect for scripts, automations, and AI coding assistants that need access to your workspace. Tools like Claude Code and Cursor can call expensicat invoice list without handling authentication themselves.

  • PlatformExpensicat CLI — manage your entire workspace from the terminal
  • InvoicingCreate, send, and manage invoices from the command line
  • TransactionsSearch, filter, and categorize transactions without opening the dashboard
  • BankingConnect bank accounts, trigger syncs, and check balances from the terminal
  • Time TrackingStart and stop a timer from your editor, hours are logged automatically
  • AuthLog in by confirming a short code in your browser — no API keys to manage
  • PlatformInstall with one command — works on macOS, Linux, and Windows
  • PlatformCLI sessions appear by name in your active sessions list so you can manage them
  • PlatformTab completion for bash, zsh, and fish — discover commands as you type
  • SecurityNew device verification screen to confirm logins before they go through

Instant Receipts

€42.80
Caffè Roma
Apr 11, 2026·Food & Drink
Receipts
Drop it, done
Processed

Zero Wait

You send a receipt, Cat reads it. Amount, vendor, date, line items — extracted and confirmed before you blink. No background queue, no "processing..." spinner. Works on WhatsApp, in the app, through MCP — same speed everywhere.

Bring Your Files

Drop a PDF, an image, a spreadsheet — Cat takes it from there. Files live inside your conversation so you can ask follow-up questions about them. "How much did I spend at this restaurant?" "Split this invoice by category."

Pick Up Where You Left Off

Close the tab mid-conversation? Your chat is exactly where you left it — tools running, context intact. No re-explaining, no starting over.

  • ReceiptsCat processes receipts the moment you send them — amount, vendor, date, and category extracted instantly
  • AssistantUpload files directly in your conversations — PDFs, images, spreadsheets, anything
  • AssistantPick up conversations right where you left off, even after closing the app
  • AssistantComplex results like invoices and reports open in a dedicated panel, keeping your chat clean
  • MCPConnections are faster and more reliable for Claude and Cursor users
  • PlatformReal-time updates are more stable under heavy usage

WhatsApp

HelloHolaBonjourCiao你好مرحباこんにちはПривет안녕하세요OláHalloMerhabaNamasteHabariHejSalutAlohaAhojΓεια σουXin chàoSawubonaKamustaSziaSelamShalomSalamSalutonBuna
×
Expensicat
WhatsApp
Your business, one message away
Connected

Your Business in Your Pocket

Cat is now on WhatsApp. Ask it anything you'd ask in the app — check your revenue, look up a customer, create an invoice — and get a reply in seconds. No login, no dashboard, just a message.

Snap and Upload

Send a photo of a receipt, a contract, or any document — Cat downloads it, stores it in your vault, and can answer follow-up questions about it. Add a caption to tell Cat what to do with it.

Stay in the Loop

Invoice paid? You'll know immediately. Invoice overdue? Same. WhatsApp notifications keep you updated without needing to check the app. Connect your number in Settings → Integrations → WhatsApp.

  • IntegrationMessage Cat directly on WhatsApp — same AI, same tools, no browser needed
  • IntegrationSend photos of receipts or documents and they're automatically uploaded to your vault
  • IntegrationGet notified on WhatsApp when invoices are paid or overdue
  • IntegrationSwitch between teams with /team if you manage multiple workspaces
  • AssistantCat's WhatsApp replies are concise and text-friendly — no charts, no clutter
  • IntegrationImage captions are processed as follow-up questions so you can describe what you're sending