maesn
Use case

Debt collection starts in somebody else's ledger

A collections platform is only as good as the receivables it can see. Maesn pulls the debtor, the unpaid invoice and the document behind it out of your customers' accounting systems, in one shape, so the reminder you send is the right one at the right moment.

From their booksthree reads
The debtor/customers
The unpaid invoice/invoices
The invoice itself/document
one shape, every system
Then the process starts
ReminderDunningCollection
Trusted by winning software teams
HubSpotTipaltiPaywiseRallyQredNordhealthFindityFintoClockinProvetHeroHolviLanes & PlanesHubSpotTipaltiPaywiseRallyQredNordhealthFindityFintoClockinProvetHeroHolviLanes & Planes
The problem

Overdue invoices live in the creditor's accounting system

Collections runs as an escalation ladder, from payment reminder through formal dunning to collection. Which rung an invoice belongs on is decided by facts your product does not hold.

Level 1
Payment reminder

A nudge with no legal weight attached.

Sent by
Your platform
Level 2
Formal dunning

Fees and a deadline enter the letter.

Sent by
Your platform
Level 3
Collection

The claim moves outside your product.

Sent by
A collections lawyer
GET /invoiceReminders
Which rung is this invoice already on?

So the same debtor is not dunned twice for the same invoice.

GET /payments
Has it quietly been paid since?

So the chase stops the moment the money arrives.

How far the ladder goes depends on the platform. Some products stop at a polite reminder, others carry a claim all the way into formal collection, and behind the ones that do there is usually a law firm specialising in exactly that. The scope differs; the data question does not. Every rung needs to know who owes what, since when, and on the strength of which document.

That is the awkward part of building a collections product: none of those facts originate with you. They sit in the creditor's ledger, they change without telling you, and the two most damaging mistakes in this field both come from acting on a stale version of them. Sending a second reminder for an invoice that was already chased makes a careful process look careless. Dunning somebody who paid last Tuesday is worse.

So the two boxes underneath the ladder are not extras. They are the reason the documented flow has six steps rather than three, and they are what turns a list of overdue invoices into a process you can defend.

How Maesn solves it

One API for the debtor, the invoice and the document

Maesn reads all three out of the creditor's accounting system through one connection, in the same shape on every system. Each has a documented call, and one of the three deserves a footnote.

What a claim needs
Debtor master dataWho owes the money, in the creditor's own records rather than a copy you keep. Names, addresses and identifiers as the accounting system holds them.GET /customers
The open itemsThe unpaid invoices, filtered by payment status or due date, with their line items when you open one. This is the documented route to what an accountant calls open items.GET /invoices?paymentStatus
The document behind itThe original invoice as a PDF. A claim that has to hold up needs the document itself, not the numbers somebody read off it.GET /invoices/{id}/document

The debtor comes first, because a claim addressed to the wrong legal entity is not a claim. Reading the customer record from the creditor's own system means you work with the name, address and identifiers their accountant uses, rather than whatever was typed into a form once. It arrives through the same normalized object on every system, so a debtor from a Dutch system and one from a German system read the same way in your code. The creditor authorises once, whether their books sit in Lexware Office, Xero or one of the other connected systems, and the calls below are the same either way.

The open items are where the wording deserves care. Accountants say open items, the documented route is the invoice list with a payment-status or due-date filter, and those are the same information reached two ways. There is also an open items object in the model, and only a couple of connected systems expose it directly, so the filtered invoice list is the route that actually works everywhere. The same filtering and paging behaves identically across systems, which is what makes a nightly sweep for newly overdue invoices a single query rather than one per vendor.

The document is the part people underestimate until a claim is contested. A dunning notice with fees attached, or a handover to a lawyer, rests on the invoice as it was issued. There is a dedicated call for that original file, so it can travel with the case instead of being reconstructed from fields.

What you get

Never dun twice, and stop the moment they pay

A collections product is judged on precision rather than volume. The two errors that damage it most are not bugs in the escalation logic, they are decisions made without a fact that was available. Both have a documented step in the flow whose only job is to prevent them.

The second reminder

duplicate
What happens
A reminder goes out that already went out.
Why
Your system cannot see what the creditor already sent.
The documented step
GET /invoiceReminders

Chasing a settled invoice

already paid
What happens
A debtor is dunned for an invoice they settled.
Why
The payment landed in the ledger, not in your product.
The documented step
GET /payments

The reminder read is the more interesting of the two, because it carries something a bare invoice list cannot: the dunning level an invoice has already reached. The documentation is explicit that this is what it is for, identifying the correct level and avoiding duplicate communication, and that is exactly the knowledge a platform inherits when it takes over a creditor's receivables mid-process rather than from the first day.

The payment read is simpler and just as consequential. Money lands in the ledger, not in your product, so a scheduled read of payments is what lets the chase stop by itself. Where a system emits events, webhooks shorten that loop further, and settling the outstanding item against the incoming payment is the neighbouring job described under payment reconciliation.

Proof

A collections platform already runs on this

Paywise automates debt collection with Maesn.

With Maesn, we enable our customers to connect their accounting and ERP systems directly within Paywise, making debt collection seamless, automated and significantly more efficient.
Felix Pieper
CTO, Paywise

Paywise connects its customers' accounting and ERP systems from inside its own product, which is the shape this use case takes in practice: the creditor authorises once, and the receivables that drive the process flow from there. It is also the honest test of the model, because a collections platform cannot work around bad debtor data with clever workflow.

Key facts

Debt collection coverage, system by system

Counted per system from the per-system documentation, with what is supported today kept apart from what is only marked on demand.

Across the 29 connected systems
What you needTodayOn demandSystem cannot
Debtor master data2027
Invoices, reading13142
Payments, reading4187
Credit notes5195
Open items, as an object2225
The last row is the one to read carefully. Open items exist as their own object, but only a couple of systems expose it directly, which is exactly why the documented route to unpaid invoices is the invoice list with a payment-status filter. Payment reminders are not in this table at all: the flow uses them, and the per-system documentation does not yet cover them.

The first two rows are the ones this use case stands on, and they are the strong ones: debtor records and invoice reading are the best covered objects in the whole chain. That matters more than a high average would, because a collections process that cannot identify the debtor or list the unpaid invoices has nothing to escalate.

Payment reminders are absent from the table on purpose. The documented flow uses them, and the per-system documentation does not yet describe them, so there is no honest number to print. Where one system keeps something the shared model does not carry, reaching past the model is the documented way to it, and the receivable side of the same relationship is accounts receivable.

Where the line runs

We deliver the data, you run the collection process

In this field the line between data and decision is also a line between engineering and law, which is why it is drawn rather than blurred.

What Maesn delivers
  • The debtor from their ledger
  • Unpaid invoices, filtered
  • The original document
  • Reminders already sent
What stays your platform
  • When a reminder escalates
  • Fees, deadlines and wording
  • The legal process itself
  • Which claims a lawyer takes

Everything on the left is a read from somebody else's system, kept current and shaped the same way regardless of which system it came from. That is the part that would otherwise become one integration per accounting platform, each with its own authentication, its own field names and its own idea of what an unpaid invoice is. Building on one authentication layer is what collapses that work into a single connection your customer approves once.

Everything on the right is your platform, and in collections it is more than product design. When a reminder becomes a formal dunning, which fees and deadlines attach to it, how the wording escalates and which claims a lawyer takes on are decisions with legal weight. A layer that made them for you would be overstepping, and a layer that pretended those decisions were technical would be misleading you about what it does.

One property belongs here rather than only on the security page. Requests are processed in real time, and what Maesn keeps is the record that a transfer happened, not the transferred data. For a platform that handles other companies' debtor information, that is a smaller surface to explain to a customer and a smaller one to defend. The lastModified filter on the read endpoints is what makes staying current cheap without keeping a copy of everything.

Whether a dunning run stops at the right moment is judged by financial teams, not by the integration that sent it.

Debt Collection FAQ

Common questions

What does a collections platform actually need from the accounting system?

Three things beyond the connection itself. The debtor master data, so you know who owes the money as the creditor's own records describe them. The unpaid invoices, filtered by payment status or due date, which is what an accountant means by open items. And the original documents, because a claim that has to hold up needs the invoice itself and not a summary of it.

How do we avoid sending a reminder that has already been sent?

By asking first. The documented flow includes a step for retrieving the payment reminders that already exist for an invoice, which is there to identify the correct dunning level and to avoid duplicate communication. Without it your product cannot see what the creditor sent last week, and the second notice is the one that costs trust.

What stops us chasing an invoice that has already been paid?

Reading payments on a schedule. The flow has you retrieve payments periodically so reminders stop as soon as the invoice is settled. Payment usually lands in the ledger rather than in the collections product, so without that read the money can arrive and the dunning can continue, which is the worst version of this failure.

Is this about reminders, dunning or collection?

Whichever of them your platform covers. The escalation runs from payment reminder through formal dunning to collection, and how far a given platform goes depends on its own scope and on the legal setup behind it. The data need is the same at every rung, which is why one integration serves all of them.

You mention open items. Is there an open items endpoint?

There is an open items object, and only a couple of connected systems expose it directly today. The documented route to the same information is the invoice list with a payment-status or due-date filter, which is supported far more widely. If a specific system's own open items structure is what you need, that is a conversation to have about that system.

Can we get the invoice as a PDF, or only the data?

Both. There is a dedicated call for the original document of an invoice, so you can present or attach the file the creditor actually issued. For a formal dunning or a handover to a lawyer that document is usually the part that matters most.

Do we have to keep a copy of our customers' receivables?

No, and that is a deliberate property rather than a limitation. Requests are processed in real time and Maesn stores that a transfer happened rather than the transferred data itself. For a platform handling other companies' debtor data, holding less of it is easier to defend.

How current is the data we read?

As current as you ask for. Requests go to the source system rather than to a cached copy, and the GET endpoints take a lastModified filter, so a nightly or hourly job can ask only for what changed since the last run instead of comparing full lists.

Which systems does this work with?

The chain is strongest exactly where it matters: debtor master data is supported today on twenty of the connected systems and invoice reading on thirteen, with most of the remainder marked on demand in the per-system documentation. The table on this page shows each object separately rather than averaging them, because an average would hide the row you care about.

Does Maesn run the collection process for us?

No. Maesn delivers the data the process runs on, and every decision inside it stays with your platform: when a reminder becomes a dunning, what fees and deadlines apply, how the wording escalates, and which claims go to a lawyer. Those are your product and, in this field, often a legal question rather than a technical one.

Build once on the Unified API.

See how debt collection works for your integration, or dive into the technical reference.