Travel platforms hold the trip, the ledger takes it line by line
Your users book the flights, the hotels and the rail legs in your product, and the trip already knows its amounts, its rates and the cost centre it belongs to. Maesn posts it into your customer's accounting system.
- account
- 4900
- tax rate
- Tax19, 19%
- dimension
- CostCenter
- its name
- Material/Waren
An extract from the request example Maesn publishes for creating an expense. The wording, the cost centre and the trip are all theirs.
A trip is one booking to your users, and a stack of lines in their books
There is no trip in an accounting system. There is one documented object shaped closely enough to carry one, and this is what fits into it and what does not.
The container is an expense, and the documentation describes it as a grouping with each individual expense recorded in the lines object. That is a booking, described by somebody who was not thinking about travel: one document for the trip, one line for every item on it, and every line free to point somewhere different. It has to be free, because a rail leg and a hotel night are not the same category of spend and rarely carry the same rate.
So the job is the split. Someone has to decide which account each item books to, which rate applies to it and which part of the business carries it, and without a connection that someone is a person with the confirmation open in one window and the accounting system in the other. A travel platform meets that as a recurring feature request. The finance team at the other end of it meets it as a monthly afternoon.
What the diagram above adds is that the split is not the end of it. The seven systems that accept an expense do not agree on what an expense line contains. Four require the amount gross and three require it net, so the format is the target system's decision rather than yours. Six take a description on the line and one does not. The cost centre, which is the field this industry is actually about, is documented at two. Those differences are the reason a travel platform that integrates directly discovers its second accounting system is not much cheaper than its first, and they are the reason the same product reaches all of them through one data model here.
The rules are set once per customer, every trip after that is one call
Read the documented expense guide and the balance of it is striking. Almost every step happens once, when a customer first connects, and it is all about learning their structure rather than sending yours. What repeats for every trip afterwards is a single write.
No second pass to enrich it. The account, the rate and the cost centre were settled by the rules above, and the guide is explicit that those rules are business logic your application owns.
The setup half is where the coverage numbers bite. Reading a chart of accounts is supported at nineteen of the connected systems and reading tax rates at twelve, so for most customers you can present their own accounts and their own rates rather than a translation of them. Reading the configured cost centres is supported at three, and that is why the guide marks that step optional. Where a system holds a field the shared schema has no place for, reaching past the model returns it without a fork of your integration.
The per-trip half is deliberately thin, and one detail in it is worth knowing before you plan a rollout. DATEV Unternehmen Online, which is both the largest German target and one of the two systems that keep a cost centre on the line, takes this write asynchronously: the call is accepted and the result is confirmed afterwards through a task lookup. That is a different shape of success than an immediate response, and a product that treats every write as instant will find out about it on the busiest system rather than the quietest one.
Which customer, and which of their companies, a call belongs to is settled by one authentication layer rather than per vendor, and the full sequence with the endpoint behind each step is on the expense synchronization page, which this page hands the mechanics to instead of restating them.
More systems take the posting than take the expense endpoint
A travel platform inherits its customers' accounting systems and cannot choose them. So the useful question is not whether one endpoint exists but which of the connected systems can receive a trip at all, by any documented route.
| Their accounting system | Expense | Journal entry |
|---|---|---|
| Business Central | ||
| Exact Online | ||
| QuickBooks | ||
| Twinfield | ||
| Xero | ||
| bexio | ||
| DATEV Rechnungswesen | ||
| DATEV Unternehmen Online | ||
| Dinero | ||
| Fortnox | ||
| Lexware Office | ||
| odoo |
Two routes are documented and the guide points at the second itself, noting that a simplified way to post expenses is to create bookings directly. The expense object is the richer of the two, since it is the one built to carry lines with their own rates and a receipt. A journal entry is the plainer one and reaches systems the expense endpoint does not, including DATEV Rechnungswesen and the Nordic platforms.
Reading the table by column is the part that pays off in a roadmap. Xero and Business Central take both, so a customer on either can be served whichever way you build first. DATEV Unternehmen Online takes only the expense, and it is also the one that keeps your cost centre, so for German customers that route is the route. The system directory has a country filter, so the way to size this is to check it against the customers you already have rather than against a market you might enter.
The reads behind all of it are reusable, which shows up later rather than in the first release. A platform that has fetched a customer's accounts, rates and counterparties for expenses has already done the fetching that delivering reconciled bookings needs, and keeping suppliers aligned is the same call in the other direction. The second workflow is a feature rather than a project.
One published travel customer, and a reference example to match
This industry has a thinner customer record than the others in this menu. What it does have is documentation written with travel in view.

The category is Maesn's own wording beside the logo in its customer row, which makes it a designation rather than a story. What Lanes & Planes built with it is published nowhere, so it is not on this page either.
Read the Lanes & Planes case studyThe rest of Maesn's published customers sit in neighbouring categories, and the closest of them is an expense management platform rather than a travel one.
The second reference is unusual and it is stronger than it looks. Maesn's own documentation chose this industry as its illustration twice over, before anybody wrote a page about it. The expense guide names travel expenses in the step where it explains what gets synchronized. The endpoint reference goes further: the request example it publishes for creating an expense is a business trip, described as Expense_07/25 for business trip, with a line for the fuel and a cost centre attached to it. Neither was written to make an argument here.
What that is worth is a matter of what you are weighing. A named customer with a full story tells you the thing has been done. A worked example in the endpoint reference tells you the shape was designed for it, which is a different assurance and the one that survives a technical review. On this page you get one of each, and the honest reading of the customer row is that there is one travel platform in it, not a set.
Travel platform object coverage, system by system
Everything above the write depends on reading a customer's own configuration first. These are the objects the expense guide fetches, in the order it fetches them, with what is supported today kept apart from what a vendor's own documentation marks on demand.
| What you need | Today | On demand | System cannot |
|---|---|---|---|
| Their chart of accounts | 19 | 8 | 2 |
| Their tax rates | 12 | 14 | 3 |
| Their suppliers | 19 | 2 | 8 |
| Their cost centres | 3 | 17 | 9 |
| Their payment terms | 2 | 14 | 13 |
| Expenses already posted | 4 | 21 | 4 |
The first two rows are the ones a categorization interface is built on and they are the healthy ones. The fourth is the one to check per customer before promising anything: cost centres are treated by most accounting platforms as an advanced feature rather than a default, and the numbers say so plainly. Payment terms are thinner still, which is why reimbursement timing stays out of what this connection moves.
The last row answers a question travel products ask more often than others do, which is whether you can see what you already posted. Reading expenses back is supported at four systems, so a reconciliation view that assumes it can compare against the accounting system on every customer will be right some of the time.
On demand in the middle column is the vendor's word rather than ours, and it has a definition worth holding to: the object is feasible, it can be implemented for you, and it is switched off today. A figure there is the start of a conversation about one named system. A roadmap that quietly adds it to the left-hand column is planning on an answer nobody has given yet. How the data behaves once you fetch it in volume is a separate question again, and how filtering and paging behave is where to read about it.
We put the expense in their books, the trip stays in your product
Two of the things a booking carries have no documented field in any accounting system we connect to. Both stay where they already are, which is in your product.
- One expense shape per system
- Their own accounts and rates
- The receipt on the same request
- Their yearly breaking changes
- Which account an item books to
- The dates and the traveller
- Approval before anything is sent
- What your customers may claim
Everything on the left is a property of the target system rather than of your customer: its authorization, its vocabulary, the shape it insists a write arrives in and the fact that all three move on that vendor's schedule instead of yours. None of it changes depending on who is posting, so one implementation serves every customer you have. Everything on the right does change per customer. One of them books rail travel to a different account than air travel. Another puts every trip under a hundred euros on a single catch-all. That is an accounting policy written one company at a time, and the documentation says plainly that it depends on your application.
The two absences are different in kind. An expense carries a transaction date and not a period, so a trip that spans four days is posted against one of them and the span itself stays with you. There is no employee object anywhere in the accounting model, so the traveller has no field either, and a cost centre answers a different question: which part of the business paid, not who went. Neither of those is a gap we could close by trying harder, and neither is a problem for a product that already holds both. What we do keep on our side is nothing at all from the posting itself, which the security posture sets out in full.
If you would rather check the detail than the argument, the create-expense reference is where the numbers on this page come from: it lists, integration by integration, exactly which request parameters that system supports. Read by role rather than by industry, the same ground is covered for product and engineering teams.
Common questions
Our product already holds the whole trip. What does the integration actually send?
A trip has items at different tax rates. Does that survive the write?
Where does the cost centre end up?
Can we attach the receipt to the posting?
What happens to the travel dates and the person who travelled?
A trip gets cancelled. How does the reversal reach the books?
Our customer is not on one of the systems with an expense endpoint. Are we stuck?
A trip is booked in one currency and reimbursed in another. What is documented?
Do we have to build a categorization interface, or does Maesn do that?
Will the people booking travel ever see Maesn?
Does the expense data sit anywhere on your side?
Build once on the Unified API.
See how travel expense sync works for your integration, or dive into the technical reference.










