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.
Base URL
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.
| Header | Value | Required |
|---|---|---|
Authorization | Your API key (oris_sk_live_...) | Always |
X-Request-Signature | HMAC-SHA256 of canonical request | Always |
X-Timestamp | Unix epoch seconds | Always |
X-Nonce | Unique request identifier | Always |
X-Agent-ID | Agent UUID | Agent-scoped endpoints |
Idempotency-Key | UUID | POST/PATCH (auto-generated by SDKs) |
SDKs
Official SDKs handle authentication, retries, error mapping, and type safety.
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.
Quick Example
Supported Chains
| Chain | ID | Wallet Type | Stablecoins |
|---|---|---|---|
| Ethereum | ethereum | ERC-4337 | USDC, USDT, EURC |
| Base | base | ERC-4337 | USDC, USDT, EURC |
| Polygon | polygon | ERC-4337 | USDC, USDT |
| Arbitrum | arbitrum | ERC-4337 | USDC, USDT |
| Avalanche | avalanche | ERC-4337 | USDC, USDT |
| BSC | bsc | ERC-4337 | USDT |
| Optimism | optimism | ERC-4337 | USDC, USDT |
| Celo | celo | ERC-4337 | USDC |
| Solana | solana | PDA Multisig | USDC, USDT |
Rate Limits
| Plan | Requests/min | Agents | Transactions/mo |
|---|---|---|---|
| Free | 60 | 3 | 500 |
| Growth | 300 | 25 | 10,000 |
| Scale | 1,000 | 200 | 100,000 |
| Enterprise | Custom | Unlimited | Unlimited |
Rate limit headers are included in every response:
| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests per window |
X-RateLimit-Remaining | Remaining requests in current window |
X-RateLimit-Reset | Unix timestamp when the window resets |
Retry-After | Seconds to wait (only on 429 responses) |
Error Codes
| HTTP | Code | Description |
|---|---|---|
| 400 | BAD_REQUEST | Malformed request body or missing required fields |
| 401 | UNAUTHORIZED | Invalid API key or HMAC signature |
| 403 | FORBIDDEN | Developer KYB not verified or insufficient permissions |
| 403 | POLICY_VIOLATED | Payment rejected by spending policy |
| 403 | PAYMENT_COMPLIANCE_BLOCKED | Payment blocked by Veris compliance screening |
| 402 | WALLET_INSUFFICIENT_BALANCE | Wallet balance too low for this transaction |
| 404 | RESOURCE_NOT_FOUND | Agent, wallet, payment, or policy not found |
| 409 | WALLET_FROZEN | Wallet is frozen for compliance review |
| 422 | VALIDATION_ERROR | Request body fails schema validation |
| 429 | RATE_LIMITED | Too many requests. Check Retry-After header |
| 202 | PAYMENT_ESCALATED | Payment requires human approval (escalation policy) |
Error responses follow a consistent structure:
Support
For technical questions, email developers@fluxa.ventures or open an issue on GitHub.