Oris Developer Documentation

Oris is the payment infrastructure layer for autonomous AI agents. This documentation covers everything you need to integrate agent wallets, spending policies, compliance screening, and payment execution into your application.

First time here? Start with the Quickstart guide. You will register your first agent and execute a test payment in under 5 minutes.

Base URL

https://api.useoris.ai/api/v1

All API endpoints are prefixed with /api/v1. The SDKs handle this automatically.

Authentication

Every request requires HMAC-SHA256 signing. You receive an api_key and api_secret when you register as a developer. The SDK signs requests automatically. For direct API calls, see Authentication.

HeaderValueRequired
AuthorizationYour API key (oris_sk_live_...)Always
X-Request-SignatureHMAC-SHA256 of canonical requestAlways
X-TimestampUnix epoch secondsAlways
X-NonceUnique request identifierAlways
X-Agent-IDAgent UUIDAgent-scoped endpoints
Idempotency-KeyUUIDPOST/PATCH (auto-generated by SDKs)

SDKs

Official SDKs handle authentication, retries, error mapping, and type safety.

Python pip install oris TypeScript npm install @oris/sdk Rust oris-core (N-API + PyO3) MCP 13 tools for any MCP agent

API Reference

The Oris API is organized into 10 resource groups. All endpoints require HMAC authentication. Financial operations require verified KYB status.

POST/oris/developers/registerRegister as a developer POST/oris/agents/registerRegister an agent POST/oris/agents/{id}/kyaKYA state transition POST/oris/wallets/createCreate agent wallet GET/oris/wallets/{id}/balanceGet wallet balance POST/oris/policiesCreate spending policy POST/oris/policies/evaluateSimulate policy evaluation POST/oris/payments/sendExecute payment GET/oris/payments/{id}Get payment status POST/oris/micropayments/channels/openOpen payment channel POST/oris/micropayments/meterExecute micropayment POST/oris/marketplace/listingsCreate service listing POST/oris/marketplace/ordersPlace order POST/oris/fiat/onrampFiat to stablecoin GET/oris/whitelabel/configGet white-label config

Quick Example

Python
from oris import Agent agent = Agent(api_key="oris_sk_live_...", api_secret="oris_ss_live_...") agent.register(name="my-bot", platform="openai") agent.verify() agent.create_wallet(chain="base") agent.set_policy(max_daily=500, max_per_tx=50) result = agent.pay(to="0x7f3a...", amount=12.50) print(result.status) # "confirmed"

Supported Chains

ChainIDWallet TypeStablecoins
EthereumethereumERC-4337USDC, USDT, EURC
BasebaseERC-4337USDC, USDT, EURC
PolygonpolygonERC-4337USDC, USDT
ArbitrumarbitrumERC-4337USDC, USDT
AvalancheavalancheERC-4337USDC, USDT
BSCbscERC-4337USDT
OptimismoptimismERC-4337USDC, USDT
CeloceloERC-4337USDC
SolanasolanaPDA MultisigUSDC, USDT

Rate Limits

PlanRequests/minAgentsTransactions/mo
Free603500
Growth3002510,000
Scale1,000200100,000
EnterpriseCustomUnlimitedUnlimited

Rate limit headers are included in every response:

HeaderDescription
X-RateLimit-LimitMaximum requests per window
X-RateLimit-RemainingRemaining requests in current window
X-RateLimit-ResetUnix timestamp when the window resets
Retry-AfterSeconds to wait (only on 429 responses)

Error Codes

HTTPCodeDescription
400BAD_REQUESTMalformed request body or missing required fields
401UNAUTHORIZEDInvalid API key or HMAC signature
403FORBIDDENDeveloper KYB not verified or insufficient permissions
403POLICY_VIOLATEDPayment rejected by spending policy
403PAYMENT_COMPLIANCE_BLOCKEDPayment blocked by Veris compliance screening
402WALLET_INSUFFICIENT_BALANCEWallet balance too low for this transaction
404RESOURCE_NOT_FOUNDAgent, wallet, payment, or policy not found
409WALLET_FROZENWallet is frozen for compliance review
422VALIDATION_ERRORRequest body fails schema validation
429RATE_LIMITEDToo many requests. Check Retry-After header
202PAYMENT_ESCALATEDPayment requires human approval (escalation policy)

Error responses follow a consistent structure:

Error Response
{ "error": { "code": "POLICY_VIOLATED", "message": "Payment rejected by spending policy.", "request_id": "req_8f3a2b...", "details": { "violated_rules": ["max_per_transaction"], "action": "reject" } } }
Fail-closed compliance. If the Veris compliance pre-screen times out or encounters an error, the payment is automatically rejected. The system defaults to blocking when it cannot verify. There is no way to bypass this behavior.

Support

For technical questions, email developers@fluxa.ventures or open an issue on GitHub.