Accounts payable, all the way into the ledger
An AP product lives or dies on whether the posting lands correctly in the system your customer's accountant actually opens. Maesn delivers the suppliers, accounts, tax rates and dimensions that a correct posting needs, in one shape, across every connected system.
POST /bills POST /payments POST /bookingProposals POST /journalEntries
Before posting journal entries, data mapping is required
Accounts payable looks like a write and behaves like a dependency chain. The documented sequence spends most of its steps before the first record is created.
- Which account a bill lands in
- Whether tax is set or chosen
- Conditional rules per department
- Override at the moment of sync
The create call is the short part. A bill needs a supplier it belongs to, a general ledger account it posts against and a tax code the receiving system recognises, and each of those lives in the customer's own configuration rather than in your product. If the customer works with classes, locations or departments, those dimensions have to be read too, because a posting without them is filed in the wrong place even when every amount is right.
That is why the first stage of the sequence is reading rather than writing, and why supplier synchronisation comes first. A bill references a vendor, so if your records and the accounting platform disagree about who that vendor is, you either get a rejected write or a duplicate that somebody has to clean up later. Getting that agreement in place is its own piece of work, which is why it has a use case of its own.
What Maesn changes is not the number of steps but how many times you implement them. The same reads and the same write work the same way whether the customer is on DATEV, Exact Online or Xero, because they arrive through one normalised data model instead of in each vendor's own vocabulary. The sequence stays; the per-system rebuild goes.
Two neighbours are worth naming because they look like this one and are not. Writing the journal entries that follow a settlement belongs to payment reconciliation, and creating an outgoing invoice rather than recording an incoming bill is invoice creation. Both run on the same connection and the same reads, which is why they are worth separating before a build rather than after.
Four ways an accounts payable product puts data into the ledger
The document only
The lightest route. Your product hands over the file and the accounting side takes it from there.
The document and the payment
The same handover plus the settlement, so the document and the money that cleared it arrive together.
The booking proposal
Your product supplies the structured fields, so the result does not depend on what is legible on the page.
The journal entry
The deepest route, and it asks your product for the finished posting. Teams building for smaller businesses usually run one of the lighter routes in front of it.
Which of the four an accounts payable product uses is decided by the use case rather than by preference, and by what the customer's system does with the result. A product that only has to get the document in front of the accountant is finished after the first box. One that owns the categorisation ends up further right. Most teams start on the left and move right as their product takes on more of the decision.
We help with that decision rather than leaving it to a trial build: tell us which systems your customers are on and what your product already decides, and we say which route is available on each of them and what it needs. Routes that write asynchronously report back through asynchronous processing, so confirming a long-running write is a pattern your code learns once. Where a system needs its own preparation on the customer's side, that is on its own page, as with DATEV Unternehmen Online.
An AP platform already runs on this
Tipalti realises their European integrations via Maesn.
“With Maesn, we accelerated our European expansion by making complex ERP integrations seamless across Benelux and DACH. As an AP platform, reliable access to key local ERP systems is critical and Maesn gives us exactly that.”


Tipalti is one of the larger accounts payable platforms and uses Maesn for several ERP integrations, Exact Online among them, to reach customers across the Benelux and DACH markets. The interesting part for anyone evaluating this is what an AP platform needs from an integration layer: not breadth for its own sake, but dependable access to the specific local systems its customers keep their books in.
We deliver the structures, you set the rules
The documentation is direct about where the line falls, and repeating that line here is more useful than promising accounts payable end to end.
- Every system's word for a supplier
- The connection and its refresh
- Tenant identifiers, filled in
- Change detection as a filter
- Which account a bill posts to
- Whether tax is derived or picked
- How rules and overrides behave
- When a bill leaves your product
The left column is the part that never stops needing maintenance: every system's own vocabulary for a supplier and an account, the authorisation behind each connection and its refresh, the identifiers that say which tenant a call belongs to, and the specific way each platform wants a bill or a payment handed over. Those are absorbed once and stay absorbed, which is the whole reason to build on one authentication layer rather than per vendor.
The right column is your product, and it should be. How a bill is categorised is a decision about your customer's accounting policy, and the documentation says as much: the logic depends on your application. A layer that made that choice for you would be guessing at a policy it cannot see. What it can do is hand you the accounts, the tax rates and the dimensions in a form you can put in front of a user without translating them first.
Read the two columns together and the trade is clear. You keep the decisions that are specific to what you built, and you stop re-implementing the same reads and the same write for every accounting system your next customer happens to use.
Three of those absorptions are worth naming. Asking what changed since the last look is a filter rather than a diff you build, and it behaves identically on every system through one way to filter and page. Where a system pushes instead, one event model gives you a single shape to parse rather than one per vendor. And where a single installation carries a field the shared schema does not, reaching past the model is what keeps that from becoming a fork.
Seen from the other side of the ledger, an approval that never reached the system is a problem for financial teams, who carry the consequence rather than the code.
Common questions
What does it actually take to post one bill into a customer's accounting system?
Do we have to synchronise suppliers first, or can we skip that?
Who decides which account a bill is posted against?
Can we read bills as well as create them?
Can we show our users the original invoice document?
What is a booking proposal?
What is the difference between uploading a document and uploading data with it?
What is a journal entry?
How do we know an upload actually went through?
How do we keep everything current after the first sync?
Does every connected system support every part of this?
Build once on the Unified API.
See how accounts payable works for your integration, or dive into the technical reference.










