SaaS keeps the work, the accounting system takes the invoice
Your product runs the profession: the hours, the jobs, the projects. What comes out of it still has to land in whichever accounting system your customer keeps their books in, and that is their choice rather than yours. Maesn reaches all of them through one integration.
The endpoints Maesn publishes for Clockin, a time tracking platform: Get Customers, Get Suppliers, Post Invoice.
The accounting system has an object for the invoice, and barely one for the work behind it
Read the connected systems object by object, from the records around an invoice back up the chain into what your product actually manages.
- Customers/customers2020
- Chart of accounts/accounts1919
- Invoices/invoices1313
- Tax rates/taxRates1212
- Items/items66
- Sales orders/salesOrders44
- Offers and quotes/offers33
- Projects/projects33
- Units of measure/units11
Every bar is the same 29 systems, so the rows compare by length and not just by number. The middle segment repeats the vendor's own wording, on demand: feasible, implementable for you, not switched on today.
The top of that chart is the paperwork around a transaction and the bottom is the work that produced it. A sales order is defined in the documentation as a basis for generating invoices, an offer as a document a seller gives a buyer, a unit as pieces, kilograms, liters or hours. Those are the objects a vertical platform lives in all day, and they are the ones the accounting systems expose least, because an accounting system is built around the document that creates a financial obligation rather than around the job that led to it.
The useful reading of that chart is not the drop, though. Offers are live at three systems and reachable at twenty-two, which is the same total as customers. What separates the top of the chart from the bottom is not whether the object exists in the model, it is whether it is switched on today. The widest of the systems upstream is Business Central, the one connected system that accepts a written offer today and one of the four that expose sales orders, which is worth knowing if your customers sit at the larger end of the mid-market.
The second half of the problem is arithmetic rather than architecture. Your customers did not pick their accounting system to suit you, and a vertical platform inherits whatever mix its own customer base carries. HubSpot ran into exactly this in the German-speaking market, where a multitude of accounting systems and industry-specific tools made building and updating a connection per system unfeasible even at their scale. Clockin, a much smaller company, reached the same conclusion for the same reason and said so plainly: with that spread of tools in use, building the integrations in-house was unrealistic. The system directory has a country filter, and the useful thing to do with it is to check the spread you have already inherited.
One write puts the invoice in their books, four reads make it right
If the chain is thin upstream and thick at the invoice, the sensible integration does not try to mirror your workflow into somebody else's ledger. It keeps the work where it already runs and hands over the one document the accounting system was designed to receive. That is the whole shape of it, and the documented recipe is four reads and one write.
Only the first is required. Whether the other three exist at all depends on the system.
Created inside the accounting platform your customer already keeps their books in, against the accounts and rates that platform defines.
The first read is the one to take seriously, and the guide treats it that way: it points at the whole contact synchronization use case rather than listing a call, because everything after it references a counterparty. Match on the VAT ID, the email address and the company name, resolve the conflicts, then write. Get that wrong and the invoice either fails or lands against a duplicate customer that somebody has to merge by hand.
The three reads after it exist so the invoice is right rather than merely accepted. A line has to point at something the customer's system recognizes, an account or an item from their catalogue, and it has to carry a tax rate that system publishes. All three are marked optional in the guide for the honest reason: not every system exposes them, and on one that has no item catalogue a line carries your description plus a ledger account instead. The full mechanics of the write, including what belongs on a line and what does not, are on the invoice creation page, and this page does not repeat them.
What makes the same four calls work against the next system is that they arrive in one shape rather than in whatever each vendor happens to call those four things. Your code learns customers, accounts, items and tax rates once. Adding a system after that is a connection rather than a project, which is the difference between an integration roadmap that ends and one that grows with your customer list.
The integration your customers ask for is also how new ones find you
Both of the SaaS customers with a full case study describe the same second effect, and it is not the one the feature request was about.

Maesn publishes that number for Clockin, whose platform turns tracked project hours into invoices in whichever system their customer books in.
Read the Clockin case study
HubSpot reaches the German-speaking accounting market through one connection instead of maintaining a project per system for a single region.
Read the HubSpot case studyEvery accounting system behind those integrations runs a marketplace, and that marketplace is where small and mid-sized businesses go looking for software that fits their existing setup. Integrating through Maesn opens a certified listing there under your own name, your brand shown to the end customer at the moment they connect, the authorization flow embedded in your own interface and co-marketing with the vendor. The integration is the entry ticket. The distribution is what it turns out to be worth, and Clockin's published figure is what that looks like in a fortnight.
The second effect is quieter and shows up in the roadmap. Once the connection exists, the workflows next to invoicing are additions rather than projects: pushing expenses into the customer's accounting structure, following a receivable from issue to settlement, or delivering reconciled bookings once payments arrive. Each of those has its own documented recipe, and each one reuses the reads you built for the first.
Eighteen software categories, and the same last step in all of them
For every profession there is a software category of its own, and the customers Maesn publishes are the evidence rather than the claim. The agent-native products are in the list too, because they are SaaS.
None of them is an accounting product. They track hours, run building sites, manage treatments, schedule shifts, administer properties, handle legal matters and, in three cases, do their own work with a model rather than a form. Every one of them still ends up writing into an accounting system. That is the whole argument for treating this as a platform capability rather than a customer-specific feature: the profession changes completely from one row to the next, and the last step does not change at all.
Two of them have the whole story on record. Clockin is the useful one if you are weighing a build, because its previous solution is stated plainly as manual creation of invoices in the accounting system, which is what the integration replaced. The list is complete rather than curated: it holds every SaaS customer whose category Maesn publishes, in the order the categories happen to fall. A profession that is missing from it is genuinely missing, not left out for space.
SaaS object coverage, system by system
The chart further up answers what you can read. This one answers what you can put back, object by object and in exact counts rather than in proportions.
| What you need | Today | On demand | System cannot |
|---|---|---|---|
| Create customers | 16 | 4 | 9 |
| Create suppliers | 14 | 4 | 11 |
| Create contacts | 10 | 5 | 14 |
| Create invoices | 10 | 17 | 2 |
| Create booking proposals | 10 | 17 | 2 |
| Create journal entries | 10 | 11 | 8 |
| Create expenses | 7 | 19 | 3 |
| Create payments | 6 | 15 | 8 |
| Create items | 4 | 22 | 3 |
| Create offers | 1 | 21 | 7 |
| Create sales orders | 1 | 9 | 18 |
The gap between creating a customer and creating an item is the one to plan around. Sixteen systems accept a customer record you write and four accept an item, so an onboarding flow that plans to add a missing article to the customer's catalogue will succeed in a minority of cases, while the same line pointing at a ledger account succeeds in most. And the two rows at the bottom are the upstream objects the chart further up ends on, kept here on purpose: a page that showed you the thin read support and then quietly dropped the thin write support would be making its own argument easier than the data does.
The three columns are three different answers and the table is only worth reading while they stay apart. The left one is something you can build against this quarter. The right one is the target system's own ceiling: it holds no such object at all, so there is nothing there to normalize and nothing we could supply without inventing it. The middle one repeats the vendor's own wording, on demand, which in the definition that applies here means feasible, implementable for you and not switched on today, and it belongs in a question about one named system rather than in a roadmap that assumes it. What none of the three tells you is how the data behaves once you start fetching it in volume, and how filtering and paging behave is the next thing to read for that.
Agent-based products change the output, not the write into the ledger
Three of the platforms above run their core on a model rather than on a form. It changes what the product produces and it does not change what the accounting system will accept.
Agent-native software is a development of SaaS rather than a category beside it, and the customer list says the same: Finto, Donnerstag.ai and Syntinels sit above with the other fifteen, because what they share with a time tracking platform is exactly what this page is about. The work happens in their product, and the result has to reach an accounting system they do not control.
What does change is where the uncertainty sits. A classic product decides what to write in code, so the output is as fixed as the form that produced it. An agent-based product decides more of it at runtime, and that flexibility is the point of building it that way. The integration is then the part that must not be flexible, in both directions: the data the model works from has to be the customer's actual ledger rather than an approximation of it, and what the model produces has to arrive as a posting the accounting system accepts or as a failure you can see. The endpoints are deterministic and the write is confirmed rather than assumed, which is a smaller promise than certainty and a more useful one.
Finto is the published example, and it is worth reading for the sequence rather than the adjective: a production-ready DATEV integration in days, giving their AI structured financial data. The depth of that argument, including what an agent can and cannot reach and why most target systems are not prompt-ready to begin with, is on the MCP server page, which is where it belongs. One honest limit while you are there: reporting across a customer's whole stack is not something the coverage above supports everywhere, and a product that promises it will meet the same thin rows this page already showed you.
We absorb the accounting systems, you keep the workflow you built
A vertical platform hands this over precisely because none of it is what its customers are paying for. Which half is which is therefore the whole question.
- Auth and tokens per system
- One vocabulary for every object
- The write shape each expects
- Their yearly breaking changes
- When an invoice is sent over
- Which account a line points at
- The work your product runs
- Your users' booking rules
The line sits where it does because of what each side can actually know. A shared layer can absorb how a system wants to be authorized, what it calls a customer and which identifier says whose books a call belongs to, and it can keep doing that when the vendor changes its mind next spring. It cannot know that your customer books maintenance revenue to one account and installation revenue to another. The documentation is explicit that categorization logic depends on your application, and anything that settled it centrally would be inventing an accounting policy for a company it has never seen.
Two neighbouring parts follow the same principle, and both matter more to a vertical platform than the general case suggests. You will have one or two customers whose installation carries a field nobody else asks for, and reaching past the model returns that field without you forking an integration for a single account. Which of your customers, and which of their companies, a call belongs to is settled by one authentication layer, instead of an identifier scheme you would otherwise learn once per vendor. Freshness follows the same shape: ask the GET endpoints what has changed since a timestamp rather than diffing copies, and where a system emits events, webhooks carry the same normalized payload with far less traffic. None of that puts a copy of your customers' books on our side, and the security posture sets out what is kept instead.
If you want the mechanics rather than the argument, the invoice creation guide is the shortest complete example: one required read, three optional ones, your own trigger and the write, with the endpoint behind each step and the point where the documentation hands a decision back to you. Read by role rather than by industry, the same ground is covered for product and engineering teams.
Common questions
We are not a finance product. Why does an accounting integration matter to us?
What does the integration actually consist of?
Can we push quotes, orders or projects into the accounting system as well?
Our product measures work in hours. How does that reach the invoice?
Do the customer records have to match on both sides first?
What if a customer's accounting system has no item catalogue?
Is this only about invoices?
Which accounting systems do our customers use, and how do we find out?
Will our customers see Maesn?
What happens when a target system changes its API?
Does Maesn store our customers' accounting data?
Build once on the Unified API.
See how SaaS works for your integration, or dive into the technical reference.









