Skip to content
Changelog

Suppliers and Contacts

Expensicat now matches your bills and receipts to the supplier who sent them, shows what you spent with each one, and keeps your customers and suppliers in one contact list.

Suppliers come from your bills

Expensicat looks for the sender of every invoice, receipt and credit note you receive among your contacts, by tax number first (with or without the country prefix), then by Peppol address, website and name. When nothing matches and the bill names its seller, it creates a new supplier. A contact whose tax number differs from the one on the bill counts as a different company, however close the name. Outgoing transactions take the supplier of the bills they paid, or none if those bills name different suppliers. Documents from your own business are still filed but never get a supplier, and bank transactions never create one.

Corrections stick

Choose a different supplier on a bill and its tax number, Peppol address, name and website move to that contact, so the next bill from the same seller lands there. The transactions that paid the bill move too, unless you set their supplier yourself or another bill they paid names someone else. Expensicat also learns the bank description of every charge that paid a supplier's bills, and of every transaction you choose a supplier on, so later charges with that description and no supplier yet get the same one. Moving a seller's details or a bank description to another contact takes permission to edit contacts. Someone with the Accounting role can still set a supplier, but that doesn't change where the next bill or charge goes.

One contact per company

Customers and suppliers now share one list, and a company that is both carries a Customer and a Supplier badge. When a bill matches one contact by tax number or Peppol address and its website or name points at another, Expensicat merges the second into the first, but only if it's a supplier with no tax number, and never if it's a customer. Contacts that merely look alike, with similar names or the same brand in their websites, wait under Possible duplicate on the contact's sheet until you choose Merge here. Two contacts with different tax numbers are never suggested. A merge you make moves invoices, quotes, projects, bills, transactions and documents to the contact you keep, deletes the other, and can't be undone. Portal links you emailed to the merged contact keep working and open the kept contact's portal.

What it doesn't do

Expensicat doesn't pay your suppliers or move money to them, and there are no reminders yet for bills coming due. Spend counts only settled transactions, in your base currency, so a pending charge shows up once it settles. Transactions you excluded from reports stay out of it, a refund from the supplier brings it down, and the bill count leaves out purchase orders.

New9
  • Inbox
    • Expensicat matches the invoices, receipts and credit notes you receive to a contact you already have by tax number, Peppol address, website or name, and creates a new supplier only when nothing matches
    • The Suppliers page sits under Customers and lists everyone who bills you, with what you spent with each over the past 12 months, how many bills they sent and when the last one came
    • Every bill and receipt in your inbox has a Supplier field, and choosing a different supplier sends the next bill from that seller to the one you chose
    • A supplier's sheet shows what you spent with them over the past 12 months, how many bills they sent, their latest bills marked Paid or Unpaid, and their latest payments
  • Banking
    • Outgoing transactions have a Supplier field, filled from the bills they paid, and later charges with the same bank description and no supplier yet get the same one
    • Automatic matching never changes a supplier you picked or cleared on a transaction
  • Invoicing
    • Merge two contacts with Merge into on the contact's edit panel, which moves invoices, quotes, projects, bills, transactions and documents to the one you keep and deletes the other
    • Contacts that look like the same company show under Possible duplicate on the contact's sheet, and Merge here asks you to confirm before it merges them
  • Workspace
    • Search lists suppliers in their own group and has a Suppliers action that opens the page
Improvements4
  • Invoicing
    • Customers and suppliers share one contact list, so a company you invoice that also bills you is one contact with both roles
    • When one bill matches a contact by tax number or Peppol address and another by website or name, Expensicat merges the second into the first if it's a supplier with no tax number, and never merges a customer this way
  • Workspace
    • Members who can edit bills and transactions but not contacts, such as the Accounting role, can still set a supplier, but only people who can edit contacts change where future bills and charges go
  • Inbox
    • Documents filed before Expensicat started writing titles and summaries get them too
API4
  • Invoicing
    • Integrations that call /v1/customers need updating, because those paths are gone and contacts now live at /v1/contacts and /v1/contacts/{id}, with a roles field and a role filter
  • Developers
    • The customers:read and customers:write scopes are now contacts:read and contacts:write, and Expensicat switched your existing API keys, OAuth apps and custom roles to the new names
    • The expensicat customer commands in the CLI are now expensicat contact, and the old commands are gone
  • Inbox
    • Inbox items take and return supplier_id
MCP server2
  • Invoicing
    • The customer tools are now list-contacts, create-contact and update-contact, and the old tool names are gone
  • Inbox
    • Inbox tools take supplierId in place of vendorId