Connecting Agents via API
This guide shows how to connect different AI agent frameworks to Conto, enabling them to request, approve, execute, and confirm payments depending on the wallet model you choose.Before integrating, make sure you’ve connected your agent, linked a wallet, and generated an SDK
key. If you are an autonomous agent evaluating Conto without a human account,
use the agent sandbox quickstart first.
SDK Authentication
All SDK endpoints require the agent’s SDK key in theAuthorization header:
CONTO_API_KEY. Do not use CONTO_ORG_API_KEY for these /api/sdk/* calls.
Choose Your Wallet Flow First
Before wiring up tool calls, decide whether your agent uses a managed wallet or an external wallet.Register The Wallet The Right Way
If your integration already has a wallet, register that same wallet in Conto instead of creating a second one.- For an existing Privy wallet, create the Conto wallet with
custodyType=PRIVY,externalWalletId, andaddress. Conto will attach or reuse the wallet record instead of minting a new Privy wallet. - For a self-custodied wallet or MPC stack outside Conto, register it as
custodyType=EXTERNALwith itsaddress. - Wallet registration is idempotent per
externalWalletId + chainIdoraddress + chainId, so your backend can safely retry the request.
PRIVY attach path. Register that wallet as EXTERNAL and use the external
approve -> transfer -> confirm flow instead.
The Shared Payment Helper
Every framework integration wraps the same two-call flow: request (policy check), then execute. Define it once and reuse it from each framework’s tool handler:Framework Integrations
With the shared helper in place, each framework only needs its own tool wiring.OpenAI Assistants
Anthropic Claude (Tool Use)
LangChain
Python (Any Framework)
Registermake_payment (defined above) as a tool in your framework of choice (CrewAI, AutoGen,
or a custom loop) and return its dict result to the model as the tool output.
Payment Endpoints Reference
Error Handling
Policy denials are not HTTP errors. When a payment violates a policy (spend limit, time window,
counterparty rule),
/api/sdk/payments/request returns 200 with status: "DENIED" and a
violations array describing each violation (for example DAILY_LIMIT or TIME_WINDOW).
For full error handling patterns, see Error Handling.
Next Steps
Make Your First Payment
Detailed payment flow walkthrough
SDK Reference
Full SDK documentation
Examples
Complete integration examples
Error Handling
Handle errors gracefully