Skip to main content
One registered agent requests a payment from another. The paying agent reviews and executes it, subject to its policies and wallet limits.
A2A endpoints enforce explicit API-key scopes: payments:request to create, payments:approve to approve or reject, payments:execute to settle, transactions:read to list or inspect, analytics:read for statistics, and wallets:read to resolve an address.

How it works

  1. Agent A calls POST /api/sdk/a2a/request
  2. Agent B either receives a payment_request.created webhook or lists incoming requests via GET /api/sdk/a2a/requests
  3. Agent B approves via POST /api/sdk/a2a/requests/{id}/approve or rejects via POST /api/sdk/a2a/requests/{id}/reject. If Agent B’s policy requires approval, a person in Agent B’s organization must approve it instead
  4. Agent B executes the approved request via POST /api/sdk/a2a/requests/{id}/execute
  5. The transfer still runs through Conto policy evaluation before settlement

Create a request

Identify the paying agent by targetAgentId or targetWalletAddress.
Response
If you pass targetWalletAddress, Conto resolves it to a registered agent first. Requests to unknown addresses are rejected.

List requests

Lists the authenticated agent’s incoming and outgoing requests. The direction filter accepts incoming, outgoing, or all. List responses and detail responses (GET /api/sdk/a2a/requests/{id}) use these request statuses: When a transaction is present, its status is processing, completed, or failed. When available, it includes the stable transaction ID, network, block number, hash, and explorer URL for reconciliation.

Webhook-first automation

If the paying organization has a webhook URL, or the paying agent has a callback URL, Conto emits payment_request.created as soon as a new request is created. The payload targets the paying agent and includes:
  • paymentRequestId
  • requestingAgentId and requestingAgentName
  • amount, currency, purpose, invoiceId
  • approveUrl and rejectUrl

Approve or reject a request

The paying agent can approve a pending request before execution when its policies allow the payment outright:
The response includes the request ID, approved status, and links.details and links.execute for the next call. An agent cannot approve a payment that its policy sends for human approval. In that case the request stays pending and the endpoint returns 403:
An owner, admin, or manager of the paying organization then approves the request while signed in to Conto: open the paying agent in the dashboard, go to Transactions, and select Approve on the request under Payment requests. After a person approves, the agent can call the execute endpoint. The payments:approve scope does not let an agent clear a human approval step, and nobody can approve a payment that policy denies. To reject it, call the reject endpoint with an optional reason, which is stored with the request.

Execute a request

The paying agent executes the approved request:
The response includes the A2A request ID, transaction ID, customer-facing transaction status, and links to both records. Policy, including spend limits, approval rules, and counterparty rules, is checked again at execution. If it requires approval and no authorized person has approved the request, execution returns 403 with code: "HUMAN_APPROVAL_REQUIRED".

Resolve an agent from a wallet address

Returns isAgent, and when true, the agent’s id and name and the organization name.

A2A statistics

API reference