AI-first ERP

The ERP that runs itself, so you can run the business

nemphi reads your documents, writes the journal entries, issues e-invoices, chases receivables, and reconciles payments — with agents that pace themselves to your operation and ask before they touch money.

33
tools in one registry, one pipeline
Double-entry
balanced, append-only, reversible
MCP
your outside agents, the same rules
Interactive demo

Ask. The dashboard builds itself.

This is the product's overview as it looks from the inside. Switch dashboards or ask a question: every answer comes back as blocks — stats, charts, tables — and any of them can be saved as a dashboard that recomputes on live data.

Sample data

Overview

Andina Distribution on auto-pilot: live metrics, agents that pace themselves to your activity, and answers about your data.

Revenue (90 days)
COP 778M
Receivables
COP 186.4M
Payables
COP 92.7M
Awaiting approval
3
Cash flow · 13 weeks
Revenue per week
Top customers
CustomerInvoicesTotal
Comercial Los Andes18$148,600,000
Ferretería El Roble14$112,300,000
Agrícola Sabana11$96,800,000
Distrimás Caribe9$81,500,000
Textiles Nariño7$63,200,000

What it already does, today

This isn't a chatbot on top of an ERP. Every capability is a tool in one registry, invoked through one pipeline: authentication, tenant scoping, policy, idempotency, transaction, and ledger.

Agents that execute, not suggest
Durable runs from plain-language goals. The agent chains tools until the job is done; anything that touches money parks the run and waits for your approval.
Auto-pilot that paces itself
Every company starts with its own crew — autopilot, bookkeeper, collections. The regulator reads your real activity and tunes each cadence up or down: a quiet month means a quiet system.
From document to journal entry
Drop in a vendor invoice: tax id, number, VAT, and currency are extracted, the payable draft is assembled, and once you approve it, it's on the books.
Real double-entry accounting
A PUC-style chart of accounts, balanced append-only entries, corrections as mirror reversals, a trial balance that nets to zero, withholdings, and FX conversion at posting.
Colombian e-invoicing
DIAN-authorized numbering ranges, the draft → posted → cleared lifecycle, and CUFE plus clearance state recorded against the same invoice.
Collections that reconcile themselves
Connect Wompi or MercadoPago: the signed webhook arrives, gets verified and deduped, and the payment is recorded against the invoice by its reference — journal entry included.
Ask, and get the dashboard
A tenant-bounded metrics catalog answers in plain language with blocks generated on the spot. Save any answer and the dashboard recomputes on live data.
Search that understands your paperwork
Hybrid retrieval over your documents — full-text in Spanish and English fused with embeddings — so agents cite the source instead of inventing it.
Audit-ready by construction
An append-only action ledger with actor, input, and output; policy as an autonomy dial per tool and tenant; and a live feed that streams every change as it happens.

The whole loop, with no data entry

Here's a vendor invoice from the moment it arrives to the moment it's on the books.

  1. 01

    It arrives

    A document is uploaded or emailed in. Text is extracted, chunked, and indexed.

  2. 02

    It's understood

    The model classifies it and pulls the fields — party, number, VAT, currency — and the event wakes the agent.

  3. 03

    It's proposed

    The agent pulls the supporting context, assembles the draft, and checks it against invoices already recorded.

  4. 04

    You approve

    Policy stops anything financial. On approval it posts, and the balanced entry lands in the same transaction.

For technical teams

One pipeline for your people, your agents, and everyone else's

Everything the UI does is a tool invocation. The TypeScript SDK, the key-authenticated API, and the MCP endpoint all take exactly the same path — same policy, same ledger.

  • Typed, zero-dependency SDK, shared with the web app
  • Per-tenant API keys, role scoping, and approvals
  • MCP endpoint: outside agents, same guardrails
Posting an invoice from the SDK
import { createClient } from "@nemphi/sdk";

const nemphi = createClient({
  baseUrl: "https://api.nemphi.com",
  token: process.env.NEMPHI_API_KEY,
});

// Same pipeline the UI uses: policy, idempotency, and the action ledger.
const { invoice, journal_entry } = await nemphi.postInvoice(id, {
  idempotencyKey: `post-${id}`,
});

console.log(invoice.status, journal_entry.entry_number);
// → posted 1043

Frequently asked questions

Stop operating your ERP. Start supervising it.

Leave your details and we'll reach out within a couple of days to onboard you with the next early-access batch.