Muntin

Every legal entity in your group, in one payroll register

Muntin checks every entity's payroll file against the others before the close, then posts a journal per entity to your ERP.

No card. The rate is on this page.

A fine-tuned classifier proposes column mappings and an embedding model proposes identity matches across entities. An operator confirms each.

Scope

Muntin sits above whatever runs your payroll.

Your payroll system or bureau calculates every figure; Muntin reconciles it.

What's in scope

  • 01The entity register. One row per entity: calendar, currency, cost center tree.
  • 02The cross-entity checks. One person on two registers; a leaver still paid.
  • 03The output. A journal per entity, the headcount webhook, the locked period record.

What we don't do

  • 01No pay run. No PF, ESI or gratuity, and no US tax filing.
  • 02Nothing pays anyone. Muntin holds no payment file, bank connection or payslip.
  • 03No audit opinion. Passing the fixed check list says nothing about lawfulness.

Who it fits

Three reasons to keep your spreadsheet. Three to replace it.

This is for you if

  • ✓Two or more entities on different systems, one still on a spreadsheet.
  • ✓A monthly close where one person reconciles two payroll truths by hand.
  • ✓An ERP waiting on the journal, and a controller who countersigns it.

This is not for you if

  • ✕One registered entity. Every cross-entity check would compare it with itself.
  • ✕Under about 150 employees. The flat fee costs more than the spreadsheet.
  • ✕Replacing an HRMS or payroll provider. Muntin needs one already running.

Compare

Keka carries the payroll engine. Muntin carries the entities.

Everything here about Keka is read off its own pricing pages in a browser.

CriterionMuntinKeka
A second entityA register row, day oneMultiple Legal Entities is an Add On
Headcount to the ERPJournal and webhook, includedAPI & Webhooks is an Add On
Statutory payroll and filingNoneListed inside its US plans
Hiring, performance, learningNot built, not plannedSold separately

Setup

Week one, before the first close.

Four steps. Nobody enjoys the third.

The setup page in week one: the register stated and three closed periods mapped, 17 of 23 double-counted people cleared, and the ERP service user waiting for IT
  1. 01State the registerit runs one entity longer than finance expected
  2. 02Drop three closed periodsexports, bureau CSVs or a spreadsheet, by upload or Azure Data Factory
  3. 03Clear the double countsthe first run's backlog, and most of the week
  4. 04Issue one ERP service userscoped to journals; IT's job, and it arrives last

Mapping and matching

A bureau file nobody has mapped, and one person paid by two entities.

Two models propose; an operator on your side confirms each proposal.

◆

New bureau file

a fine-tuned classifier reads each header with a fingerprint of its values, then proposes a mapping

▲

Counted twice

an embedding model reads name, date of birth and role, then proposes a match

●

Unsure means unresolved

below the threshold, the period stays open

■

Retraining

on headers and fingerprints your operators confirmed, never cell values; identity pairs stay in your partition

A proposed mapping for a new bureau file: each Czech column header, a sample of its values and the field it lands as, with the national identifier dropped

What you get

Three screens and one API.

◆

Entity register

one entity and cost center per person per period

▲

One fixed row contract

entity, period, employee, cost center, gross, employer cost, net, currency, pay date

●

Template changes

header dictionary, then classifier; one confirmation per file shape

■

One person, two entities

confirmed matches share one lineage id

◇

Corrections

after the lock, a new period version with its reason

△

The journal

on lock, one per entity posts to NetSuite, Sage Intacct, Xero or QuickBooks Online

what you get

The exceptions queue, two days before a close

What the checks found across every entity at once, and what the lock is waiting on.

period 2026-08 · 3 entities · not locked
exceptionentityownerstate
same person on two registersoperating co, subsidiarypayroll ops✓merged, one lineage id
cost center not in the chartsubsidiaryfinance✓added to the chart
employer cost outside bandoperating copayroll ops✓confirmed, bonus month
leaver still on registersubsidiaryHR ops✓removed
identity match under threshold, 0.71subsidiary, bureau filepayroll ops✕unresolved, lock held
Four rows cleared and one open. The period does not close while that row is unresolved.

A drawn queue, not a customer period. The last row is a proposal nobody confirmed, so nothing is guessed and the close waits.

What we chose

The lock has no override, for you or for us.

A period stays open while one exception is unresolved. No button skips it.

An override gets used at six on close day. Two quarters later, reconciling is optional.

The lock is what makes a period record worth countersigning.

A duplicate found late can hold a journal past the deadline; we staff support for that hour.

Pricing

€1,290a month. The whole group.

Flat per company group, up to 2,500 employees. Entities, users and endpoints are not metered.

  • Onboarding: register build, column mapping, three-period backfill
  • Operator and read-only users, including your auditor
  • The published check list, on every entity
  • Period records exportable as CSV and JSON
Pin it up
  • Thirty days on your last three closed periods, no card, no call
  • Month to month after three months, 30 days' notice; price held 24 months

Ask for the exclusion list.

Two fields, name and work email. No call gets booked from this form.

We reply within one business day.

Your request has been received.

Expect a message from Muntin. It goes to the address you gave.