Sandbox APIhttps://sandbox-api.nuvante.io

API reference

Sandbox API conventions

The public API is versioned under /api/v1 and uses JSON for requests and responses.

Base URL

Code sample
https://sandbox-api.nuvante.io

System status

GET /api/v1/system/status tells you how the engine, the on-chain probe and the settlement adapter are doing.

Code sample
curl "https://sandbox-api.nuvante.io/api/v1/system/status" \
  -H "Authorization: Bearer nvt_sandbox_your_key"

A successful response contains data and meta. The status data includes checkedAt, the engine and on-chain status, the RTGS connection state and, where available, latency figures.

Transactions

Transaction operations live under /api/v1/transactions. A clearing member with transactions:write can initiate a transaction with POST. To read transactions you need transactions:read, and transactions:write covers it too.

Code sample
POST /api/v1/transactions
GET  /api/v1/transactions
GET  /api/v1/transactions/{id}
POST /api/v1/transactions/{id}/cancel

An initiation request has a useCase (redeem or swap), a payment reference, and source and target money objects. A successful initiation returns 201. You can also include an optional agent field (agentId and mandateProof) when an autonomous agent is submitting on a participant's behalf.

Open authenticated API reference →

Reserve proofs

Issuers generate and verify ZK reserve proofs under /api/v1/reserves. This needs the generateReserveProof capability, which only issuer tenant admins have.

Code sample
POST /api/v1/reserves/{issuerId}/proof/generate
GET  /api/v1/reserves/{issuerId}/proof
POST /api/v1/reserves/proof/verify

Proofs are verified against reserve-policy-v1-sandbox, and any artifact with a different key ID is rejected with a 400. The Reserve proofs reference has the full request and response details.

Agents

Tenant admins mint agent identities under /api/v1/sandbox/agents and submit transactions through them. Mandate scoping, capability intersection and revocation are all live today. Interoperability across platforms (AP2 and x402, DIDs, credentials recognised between organisations) is planned for Phase 2. See Agentic compliance. You'll need manageOwnAgents.

Code sample
POST /api/v1/sandbox/agents
GET  /api/v1/sandbox/agents
GET  /api/v1/sandbox/agents/{id}
POST /api/v1/sandbox/agents/{id}/revoke

Agent mandates are checked against your capabilities when they're minted. Expired or revoked mandates and over-scope transactions are all rejected before they reach the clearing core. See the Agents reference.

Webhooks

Register HTTPS endpoints for transaction and reserve events under /api/v1/webhooks. This needs webhooks:manage. Deliveries are signed with HMAC-SHA256 over timestamp.body and have a five-minute replay window.

Code sample
POST /api/v1/webhooks
GET  /api/v1/webhooks
GET  /api/v1/webhooks/{id}
DELETE /api/v1/webhooks/{id}

Event notifications has the full delivery contract.

Production

Production runs at https://api.nuvante.io, with the same auth model and API surface as sandbox. To settle through a particular central-bank scheme, Nuvanté still needs to hold real participant status at that scheme.

Idempotency and versioning

For requests that change something, you can send an optional Idempotency-Key header (up to 256 characters) so retries are safe. Conflicts return 409. Every response includes the API version used in a Nuvante-Version header, and you can pin a supported date version by sending the same header on your request.

Response envelopes

Successful responses contain a data object and meta. Failed requests contain an errors array and meta. Base your handling on the structured type and code fields, because message text can change.