Skip to main content

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.