Platform
Enterprise-grade — and we will show you where
Every statement on this page is a mechanism in the shipped product, not a roadmap item. Each is something we will open up and demonstrate during an evaluation, on your own configuration and your own data.
Architecture & isolation
Separated by the database, not by a WHERE clause
Multi-tenant platforms fail at the boundary between customers. That boundary is enforced as close to the data as it can be — and it is tested, not assumed.
Isolation the database enforces
Row-level security is enabled and FORCED on every table that holds a customer’s data — over two hundred of them — so it binds the table owner too. Each request pins its tenant inside the transaction; a query that forgets to filter still cannot cross a boundary.
Tenant SQL behind two walls
SQL your own people author for reports and tiles is parsed before it runs, allowed only as a read, and executed under a database role that cannot write. One wall is a single mistake away from none.
Secrets kept out of configuration
Every integration credential is encrypted in a vault, referenced by name and resolved on the server at the moment of use. Rotating one needs no change anywhere else.
Your own private cloud, if you need it
The Sovereign edition runs a dedicated single-tenant deployment with data-residency controls, for organisations whose policy rules out shared infrastructure.
The few tables read before a customer is known — sign-in sessions and password links — are global by design and guarded in code. The full control set is on security & governance.
Correctness by construction
A ledger you never have to repair
In a system that moves money between trading partners, “we fixed the data” is the sentence an auditor fears most. The design makes it unnecessary.
Exact decimal money
Every amount is a fixed-point decimal to the cent — never floating point — so a billion-dollar programme sums to the same penny every time.
Corrections are entries, not edits
A posted accrual is never changed. A correction posts an offsetting reversal, and the same accrual cannot be reversed twice. Closing an agreement back-dated reverses the accruals after the date, the same way.
Settlement changes reverse their own GL
Changing how an obligation is settled posts the compensating journal automatically, so the ledger never carries a settlement method that no longer applies.
Closed periods stay closed
Accrual, billing and adjustment engines check the accounting calendar before they write. Reopening a period is a controlled, recorded act — not a side effect.
What was true on the date
Agreements, contracts, ship-and-debit rules and authorisations are versioned, so the terms that applied to any transaction can be reconstructed exactly as they stood.
Gates where money turns irreversible
Multi-step approval workflows can hold agreements, payments, adjustments and claims before they take effect, under the policy each customer configures.
Traceability & monitoring
Every number can explain itself
“The system calculated it” is not an answer. The platform records how it reached each result, so the answer is a trace you can open — months later, for any figure.
Decision traces for engine runs
Accrual runs, lump-sum schedules, accrual-review cut-offs, stacking, price-protection claims and placement ageing record the full path of every decision. The trace is written in its own transaction, so a run that fails still explains itself.
Request tracing, three levels deep
Administrators switch on tracing for a user or a session — from a summary of each call up to every request and response body — with secrets redacted, a size cap and an expiry so it never stays on by accident.
One id from browser to database
Every API call carries a correlation id into the request log and the application logs, so one action can be found in every line it wrote.
An audit trail of material actions
Hundreds of distinct actions are recorded with the actor, the time and what changed — including which AI agent assisted, when one did.
Every integration run accounted for
Each run records what succeeded, failed, was skipped or is waiting on a parent, record by record, with the reason. Every outbound message records its attempts, its last error and its acknowledgement.
Support that reads the trace
When something needs investigating, an analyst agent reads the recorded trace and the request log first — so a support case starts from evidence rather than a description.
Reversal & recovery
Undo by design, not by database surgery
Every way back is a recorded, controlled operation in the product — the same path for a mistaken accrual, a malformed file or a partner that was offline.
Fix the cause, then replay
A failed integration run is retried as a whole, or a single record is corrected and re-run, without touching the rows that already landed.
Resending cannot double-count
Inbound batches carry an idempotency key and records carry their own identity, so a partner retrying after a timeout resolves to the original rather than a duplicate.
Nothing outbound is lost quietly
Messages to ERPs and partners wait in an outbox and retry with back-off. One that exhausts its attempts stays visible for a person to resend once the far end is fixed, or to cancel.
Configuration promoted, not re-keyed
Set-up proven in a test environment is promoted to production as configuration, so what was tested is what goes live.
Quality engineering
Tested where it matters — against the real database
Mocks prove that code calls what it meant to call. Running against PostgreSQL with row-level security on proves that it does the right thing under the same isolation your data lives in.
More than two thousand automated tests
Across the platform, the Partner Portal and the operations console — engines, accounting, authorisation, integration, partner formats and the portal exchange. Most execute against a real PostgreSQL database rather than a stand-in, so tenant isolation, period locks and the ledger’s reversal rules are exercised exactly as they run in production.
An end-to-end harness that runs on your set-up
For any customer configuration, the harness creates a disposable mirror tenant with that configuration and synthetic data, then walks fourteen module scenarios — vendor and customer rebates, ship & debit, claims, accounting, cash, contracts, pricing, promotions, workflows, reporting, master data, platform and tenant isolation — including the negative paths. It destroys the mirror afterwards and leaves an evidence report, with a comparison to the previous run.
Releases ship continuously, each one versioned with its notes published inside the product, and every schema change is a versioned migration — so what changed, and when, is never a matter of memory.
Performance
Measured, with the method beside it
Integration
Any ERP, any middleware, one engine
- ✓ REST API with a published OpenAPI contract and keys scoped to each interface
- ✓ SFTP inbox and outbox; CSV, Excel and JSON; per-partner file formats
- ✓ Idempotent batches, per-record isolation, parent-before-child ordering
- ✓ Outbound outbox with retries, acknowledgements and OAuth 2.0
- ✓ SAP, Oracle, Dynamics 365, NetSuite, Epicor, Infor, MuleSoft, Boomi, Workato — each route set out
Your evaluation
Put us through it
Ask to see any line on this page. This is what an evaluation with us includes, without being asked.
-
01
Architecture and security walkthrough
With your security and IT teams, at whatever depth they want, and your questionnaire answered in writing.
-
02
Your data, in a sandbox, in week one
Send a real extract. You see matched, rejected and queued records on screen in a tenant of your own — not a slide about what would happen.
-
03
The test harness, on your configuration
We clone your configuration into a disposable tenant, run every module scenario against it and hand you the evidence report.
-
04
A volume run at your scale
We load synthetic data at your annual transaction volume and run the engines with the decision traces open, so you see the timings for yourself.
-
05
Your integration route, drawn
For your ERP and middleware: which extract, which route, which interface and what comes back — before anything is signed.
Send us your evaluation criteria.
Security questionnaire, architecture review, a proof of concept on your own extract, a volume test at your scale — tell us what your process requires and we will plan the evaluation around it.