Run it yourself
cd examples/marketplace-mercatto
npm install
npm run typecheck
npm run test:happy-path
npm run test:scenarios
Requires Node.js ≥ 18. By default this runs against the real public Ishtaran Sandbox
(https://sandbox-api.ishtaran.com) — no credentials to configure. Every run provisions its own
Organization, Application, and Accounts, namespaced by a run ID derived from the current timestamp,
so repeated runs never collide and never touch anyone else's Sandbox data.
To point it at a local instance instead:
export MERCATTO_BASE_URL=http://localhost:18100 # or wherever your local API is running
npm run test:happy-path
What you'll see
Real output, not illustrative text — every ID is different on your own run, the shape is not:
=== release-order (settlement) ===
[release-order] settlementId=… settledAmount=200.000000000000000000 remainingReservedAmount=0.000000000000000000
=== withdraw (expected real block -- see withdraw.ts) ===
[withdraw] blocked as expected (activation cooldown): WITHDRAWAL_DESTINATION_NOT_USABLE
Mercatto happy path: all assertions passed.
A note on where this code lives right now
This Business Case currently lives in the private Ishtaran platform repository, at
examples/marketplace-mercatto/. Every official SDK (Java, TypeScript, Python, Go) is mirrored to
its own public GitHub repository — this example isn't synced to a public location yet. If you're
reading this on the public documentation site without private repository access, treat the code
blocks throughout this tutorial as the literal, complete, executable source (they're excerpted
verbatim, not paraphrased) until that sync exists.
Release gate
The same suite that ran the output above is what gates every SDK release and every platform
release: mercatto-e2e in .github/workflows/ci.yml. If this Business Case's happy path or any of
its 11 failure scenarios stop passing, the release is blocked — this isn't a marketing demo, it's a
regression test for the platform's actual financial correctness.