Splenta Procurement - module SCM

One procurement record
your people and your
agents both act on.

SCM is the single record of truth for requisitions, purchase orders, goods receipts, invoices and vendors. People work it through a workbench; software agents drive it too. Both go through the same checks and the same audit trail - no hidden side door for either.

scm.workbenchpurchase order

PO-DEMO-001

Acme Fasteners

$48,200.00

PENDINGAPPROVED

Approved once, recorded once - whether a person clicked it or an agent called it.

Stacked shipping containers at a port terminal
A port container terminal. Photo is illustrative.

What it keeps

One record, from requisition to invoice.

Everything a purchase touches lives on the same record - and every change is written down. One short line each, no jargon.

Intake

Requisitions

Raise and route purchase requisitions, then turn an approved one into an order.

Orders

Purchase orders

The core record - draft, submit, approve or reject, through to fully received.

Receiving

Goods receipts

Record a full or partial receipt against an order, or dispute what turned up.

Payables

Invoices

Match purchase invoices to orders, with spend summaries and top-vendor rollups.

Master data

Vendors

One supplier list that every order, receipt and invoice points back to.

Master data

Items

A catalog of what you buy, with categories, reused across every document.

Trust

Immutable audit

Every change on every record, kept before and after, and never overwritten.

The procure-to-invoice loop

One ordered flow, requisition to paid.

Each step writes to the same record and carries its own status, so an order moves forward only through the checks it has passed - the same whether a person or an agent drives it.

01

Requisition

PENDING to APPROVED

02

Purchase order

PENDING to APPROVED

03

Goods receipt

PARTIALLY_RECEIVED to RECEIVED

04

Invoice

Matched to the order

05

Paid

COMPLETED

People and agents

People and agents, one audited record.

Letting software act on your procurement record usually means a bolt-on side path - a service account and a bag of keys that no person ever walks and no one audits. SCM removes the side door: a person in the workbench and an agent over MCP go through the same checks and land on the same record, so nothing acts on your purchasing that the record cannot explain.
  • One supplier, one order, one receipt, one invoice - shared by everyone
  • The same approval rules apply to a person and to an agent
  • No hidden service account acting where no one can see
A container ship under way at seaSupply
A container ship in transit. Illustrative photo.

Full history

Every change, kept before and after.

Each state change writes an entry that is never overwritten: who did it, through which door, and exactly what the record looked like before and after. Even a denied action is written down, not silently dropped. When you need to know how a purchase order reached the state it is in, the answer is already there.
  • Who acted - a named person or the agent client
  • What changed - the exact before and after snapshot
  • A permanent trail you read back, not a log you hope was on
A procurement team working together in an officeOperations
A procurement team at work. Illustrative photo.

Where it fits

Where SCM fits.

SCM is an agent-native procurement system of record, not a full procure-to-pay suite. The neighbours keep their real strengths - the enterprise P2P suites, the ERP modules and the lightweight tools each cover more breadth. SCM trades that for one thing done well: a single record that people and agents drive through the same checks and the same audit.

Procurement (SCM)P2P suitesERP modulesLightweight tools
What it isAgent-native procurement system of recordAriba, Coupa, Ivalua - enterprise source-to-payOracle, SAP - transactional procurement backbonePrecoro, Procurify - polished spend / requisition UX
Agent accessFirst-class MCP surface, the same core as the workbenchAPIs and configured integrationsERP APIs, integration-ledREST APIs, connector-led
AuthorizationOne scope set gates people and agents identicallyRich roles and approval chainsERP roles and permissionsApp-level roles
Audit of every actionImmutable before and after on every writeFull procurement auditERP audit trailActivity logs
BreadthA focused core - not a full P2P suiteSourcing, contracts, networks, analyticsWhole-business transactional scopeRequisition and approval workflows

The mature suites - SAP Ariba, Coupa, Oracle, Ivalua - and the lightweight tools - Precoro, Procurify, Airbase - keep their real strengths. SCM does not compete on procure-to-pay breadth. It is the trustworthy, agent-drivable record underneath - single-tenant by design, one stack per customer, and not an ERP.

Under the hood

One core, two front doors.

The story above is the plain version. For evaluators, here is how it actually holds together - a people workbench and an agent tool surface arriving at the same service, the same scope checks and the same audit.

No privileged path

When a person clicks Approve and when an agent calls po.approve over MCP, both land on the same service method - one scope check, one status guard, one before/after audit row. The agent has no faster lane and no wider reach than the person, only a different door.

people / REST workbench

PO-DEMO-001

Acme Fasteners - $48,200.00

status PENDING

Approve

agents / MCP

POST /mcp
tools/call
  "name": "po.approve"
  "args": { "id": 42 }

one core

approvePurchaseOrder(id)

one scope guard - one immutable audit

PO-DEMO-001PENDINGAPPROVED

The machine contract

The agent surface is a first-class MCP server on the official MCP Java SDK Streamable HTTP transport (protocol 2025-11-25), served at one /mcp endpoint. Every tool wires to the same real service the workbench calls, and is gated by one scope.

tools/list - 7 groups40 tools
  • po.*7list, get, create, update, submit, approve, reject
  • requisition.*7list, get, create, update, approve, reject, convert_to_po
  • invoice.*8CRUD, approve, reject, spendSummary, topVendors
  • gr.*8CRUD, receive, partial_receive, reject, dispute
  • vendor.*4list, get, create, update
  • item.*5list, get, create, update, deactivate
  • audit.*1list
mcp :: tools/callBearer <ICE-token>
{
"method": "tools/call",
"params": {
"name": "po.approve",
"arguments": { "id": 42 }
}
}
// server checks scm:po:approve + status guard, audits, then:
structuredContent: {
"id": 42, "status": "APPROVED"
} // was PENDING

Scope-gated by construction

Every REST mutation and every MCP tool requires one explicit scm:resource:action scope, and the token must carry an audience of scm-api. The default agent client holds read and non-approval write scopes only; every approve scope, plus vendor, item and item-category writes, is withheld unless explicitly granted.

scm:readwriteapprove
poreadwriteapprove
requisitionreadwriteapprove
invoicereadwriteapprove
grreadwrite-
vendorreadwrite-
itemreadwrite-
item-categoryreadwrite-
auditread--
userread--
held by default clientwithheld - explicit grant- not applicable

Every call leaves a record

Each state change writes an append-only audit record: the resolved actor (a real person or the agent client), the tool or endpoint, the scope it used, and - on a mutation - the exact before and after. A denied scope is an audit row too, not a silent rejection. The shape is identical whether the door was REST or MCP.

audit_record - append-onlyAuditRecord
{
"entityType": "PURCHASE_ORDER",
"entityId": 42,
"changeType": "APPROVED",
"actorType": "AGENT",
"actorId": "arin-scm-client",
"before": { "status": "PENDING" },
"after": { "status": "APPROVED" },
"ts": "2026-07-02T10:03:11Z"
}
// same shape whether the door was REST or MCP

PO-DEMO-001 - status timeline

audit.list
  1. DRAFT

    demo.requesterREST

  2. PENDING

    demo.opsREST

  3. APPROVED

    arin-scm-client (AGENT)MCP

One record walked by three actors across two doors, read back from the same audit rows the API returns.

The people side

The same core people reach through a React 19 + Vite workbench - list, detail, create and edit for every record, plus a live dashboard reading real counts and spend. Illustrative demo data below (PO-DEMO series).

scm.workbench / purchase-orders

18

open purchase orders

4

pending approval

11

received this week

POvendoramountstatus
PO-DEMO-001Acme Fasteners$48,200.00APPROVED
PO-DEMO-002Northwind Steel$21,900.00PENDING
PO-DEMO-003Contoso Freight$3,150.00DRAFT
PO-DEMO-004Globex Tooling$12,480.00PARTIALLY_RECEIVED

POStatus - DRAFT / PENDING / APPROVED / REJECTED / PARTIALLY_RECEIVED / RECEIVED / COMPLETED / CANCELLED

Private - early access

One record people and agents can both trust.

SCM is pre-1.0 and private - no public download, no self-serve sign-up. It is part of the Splenta family and we open it up by request. Tell us about your procurement stack and we will walk you through the workbench, the agent surface and the audit trail on the real system.