Open specification and reference implementation for agent-native data commerce.
ACP enables AI agents to autonomously discover, evaluate, and transact with data providers — without human mediation at each access decision. It defines the commercial and governance layer that sits between agent task execution and proprietary data sources.
Traditional SaaS data products were built for human buyers: pricing pages, manual authentication, signed contracts. AI agents can't navigate any of that. When an agent tasked with M&A research hits a paywall, it has no way to evaluate the terms, decide if they comply with its operating policy, or execute a transaction — so it abandons the access attempt.
ACP fills that gap.
Provider publishes Agent carries Agent produces
ATS document ──────▶ AAP policy ──────▶ ATR record
(what's available, (what it's (what was agreed,
what it costs, authorized to audit trail)
terms of access) agree to)
| Schema | Role | Published by |
|---|---|---|
| ATS — Agent Terms Schema | Machine-readable product terms at /.well-known/agent-terms.json |
Data providers |
| AAP — Agent Authorization Policy | Operating authority the agent carries at runtime | Agent creators |
| ATR — Agent Transaction Record | Tamper-evident audit record of every access decision | Agents (to creator's log endpoint) |
Three GTM use cases showing buyer and seller perspectives, ATS/AAP/ATR flows, and outcome distributions. Each answers the same three questions:
"Is a human required in order for us to perform this transaction?" "Where can we realistically provide agentic transactions as a customer segment?" "How can we empower our existing customers with this workflow?"
The scenario: A PE firm deploys a research agent to assemble first-pass due diligence packages across three proprietary data sources — financial data, litigation records, and media intelligence — within 90 minutes of a new target entering the pipeline.
Seller opportunity: Per-query pricing aligned to deal-cycle consumption patterns. New agent buyer segment invisible to current CRM pipelines.
Human required? ~2% — first-time provider access above spend threshold only. 97% fully autonomous.
ACP path: DISC → PARSE → EVAL → APPROVED → PAY (prepaid credit / x402) → ATR
→ Full flow diagram and schema examples
The scenario: A Fortune 500 legal ops team deploys a compliance screening agent to run annual and quarterly supplier screening across OFAC sanctions, ESG violations, adverse media, and litigation records — 200 suppliers, three data sources.
Seller opportunity: Continuous quarterly consumption replacing annual project-based access. ATR audit record satisfies Chief Compliance Officer regulatory defensibility requirements directly.
Human required? ~6% — partial sanctions matches, preliminary ESG investigations, ambiguous jurisdiction only. 89% approved autonomous, 5.5% auto-rejected.
ACP path: DISC → PARSE → EVAL → APPROVED / REJECTED / ESCALATED → PAY (prepaid credit wallet) → ATR
→ Full flow diagram and schema examples
The scenario: A commercial lines carrier deploys an underwriting enrichment agent to pull property valuation, CAT exposure, industry loss history, and financial stability data for 150–200 weekly submissions — reducing manual data assembly from 25–40 minutes to 5–10 minutes per submission.
Seller opportunity: Existing API customer expansion. No new contract, no new sales cycle. Outcome-based pricing ($0.45/enriched submission) replaces capped annual license. Monthly prepaid wallet ($2,500 budget) maps to enterprise procurement patterns.
Human required? ~3% escalations (CAT score >85, below-investment-grade financial stability, valuation anomalies). Human remains in loop for binding decision — not for data assembly.
ACP path: DISC → PARSE → EVAL → APPROVED / ESCALATED → PAY (prepaid credit wallet, auto-topup) → ATR
→ Full flow diagram and schema examples
acp/
├── schemas/
│ ├── ats-schema.json # Agent Terms Schema (JSON Schema draft-07)
│ ├── aap-schema.json # Agent Authorization Policy
│ └── atr-schema.json # Agent Transaction Record
│
├── reference/
│ └── acp/
│ ├── evaluator.py # Core policy evaluation engine
│ ├── atr_builder.py # ATR production with integrity hashing
│ ├── agent_client.py # Full ACP flow client
│ └── mock_provider.py # Mock ATS-enabled data provider servers
│
├── examples/
│ ├── ats/ # Example ATS documents
│ └── aap/
│ └── enterprise-manda.json # M&A research agent policy
│
├── tests/
│ └── test_acp.py # Full test suite (25 tests, stdlib only)
│
└── docs/
├── acp-flow.md # Mermaid flow diagram + decision reference
└── workflow-examples/
├── uc1-pe-research.md
├── uc2-legal-compliance.md
└── uc3-financial-services.md
No external dependencies. Python 3.10+ stdlib only.
git clone https://github.com/fxops-ai/agent-commerce
cd agent-commerce
# Run the full test suite
PYTHONPATH=reference python3 tests/test_acp.py
# Run a live demo (starts mock servers, runs full flow)
PYTHONPATH=reference python3 -c "
import json
from acp import ACPAgentClient
from acp.mock_provider import MockProviderServer
server = MockProviderServer()
server.start()
with open('examples/aap/enterprise-manda.json') as f:
aap = json.load(f)
# Disable new-provider escalation for demo
aap['escalation_rules']['escalate_on'] = []
client = ACPAgentClient(
aap=aap,
agent_id='did:web:acme.com:agents:demo',
known_providers={'com.capitalintel.dataproducts'}
)
result = client.access(
'http://localhost:8001',
task_description='M&A due diligence: company financial analysis'
)
print(json.dumps(result['atr'], indent=2))
server.stop()
"Publish an ATS document at /.well-known/agent-terms.json on your domain. Agents will discover it automatically during task execution.
Minimum viable ATS:
{
"ats_version": "0.1.0",
"provider": { "id": "com.yourco.data", "name": "Your Co Data", "jurisdiction": "US",
"certifications": ["SOC2_TYPE2"] },
"product": { "id": "your-product", "name": "Your Data Product",
"category": "financial_company_data",
"description": "What the data is and what it covers.",
"freshness": { "update_frequency": "daily" } },
"pricing": { "currency": "USD",
"settlement_methods": [
{ "method": "prepaid_credit", "min_purchase_usd": 5.00,
"topup_via": ["stripe", "invoice_net30"] }
],
"models": [{ "model_id": "per-query", "type": "per_query",
"unit_price": 0.05, "unit": "single record" }] },
"access": { "protocol": "rest_json", "endpoint_uri": "https://api.yourco.com/data",
"auth_method": "api_key" },
"usage_policy": { "permitted_uses": ["internal_analysis"],
"prohibited_uses": ["model_training"],
"redistribution": "derived_only",
"downstream_agents": "same_org_only" },
"legal": { "terms_uri": "https://yourco.com/agent-terms",
"governing_law": "State of Delaware, United States",
"auto_renew": false,
"agent_binding": "agent_acts_as_agent_of_buyer" }
}See the full SaaS Provider Implementation Guide and complete ATS schema for all available fields.
ACP is payment-rail agnostic. The authorization decision (ATS + AAP → ATR) is independent of how money moves. Supported settlement methods in the current reference implementation:
| Method | Best for | Notes |
|---|---|---|
prepaid_credit |
Per-query, per-record micropayments | Recommended for enterprise. Human tops up wallet via Stripe or invoice; agent draws autonomously. Maps to standard procurement patterns. |
x402 |
Autonomous micropayments, crypto-native | HTTP-level protocol. No human required per transaction. Ideal for high-frequency sub-cent queries. |
ap2 |
Google ecosystem agents | Google Agent Payment Protocol. |
stripe |
Subscriptions, prepaid wallet top-ups | Not recommended for direct per-query agent billing. Use as topup mechanism for prepaid_credit instead. |
usdc |
Stablecoin settlement | Via Nevermined or direct. |
Note on Stripe: Stripe's per-transaction fee structure (2.9% + $0.30) makes it unsuitable for direct per-query micropayments. Use
prepaid_creditwithtopup_via: ["stripe"]for enterprise-friendly billing that maps to standard procurement workflows. See Issue #2 — Prepaid Credit Wallet for full schema proposal.
This section tracks known ATS publications, agent implementations, and community contributions. If you've published an ATS document or built an ACP-compatible agent, open a PR to add your entry below.
No entries yet. Be the first — open a PR to add your ATS endpoint.
| Provider | Domain | Data Category | Pricing Model | Date Added |
|---|---|---|---|---|
| — | — | — | — | — |
No entries yet. If you've deployed an agent with an ACP-compatible AAP policy, open a PR to add your entry.
| Organization | Use Case | Agent Type | AAP Scope | Date Added |
|---|---|---|---|---|
| — | — | — | — | — |
| Contributor | Contribution | Link |
|---|---|---|
| — | — | — |
To add your implementation:
- Fork this repository
- Edit this README — add a row to the relevant table above
- Open a pull request with the title
[Adopter] Your Organization Name
For ATS publication validation, use the ATS schema to confirm your document is spec-compliant before submitting.
| Issue | Title | Milestone |
|---|---|---|
| #1 | Add prepaid_credit as first-class settlement pattern |
v0.2.0 |
v0.2.0 priorities:
- Prepaid credit wallet settlement pattern (structured
settlement_methodsfield) - TypeScript reference implementation
- ACP validator CLI tool
- LLM-backed semantic policy evaluation
- Enterprise AAP templates — healthcare, legal, financial services
v1.0.0 milestone:
- Stable schema version (no breaking field changes)
- IANA registration of
agent-termswell-known URI suffix - Formal interoperability test suite
ACP v0.1.0 — Draft for public comment.
Schema stability: ATS, AAP, ATR schemas are not yet stable. Field names and enum values may change before v1.0.0. Breaking changes will be communicated via the versioning block in the schemas.
- Code (reference implementation, tests, tooling): Apache 2.0
- Specification (schemas, documentation): CC BY 4.0
Both licenses permit free use, modification, and distribution. Attribution required for specification derivatives.
Issues and PRs welcome at github.com/fxops-ai/agent-commerce.
Priority areas for contribution:
- Real-world ATS documents from production data providers
- TypeScript reference implementation
- LLM-backed semantic policy evaluation (replacing keyword heuristic in
_check_task_relevance) - ACP validator CLI tool
- Enterprise AAP templates for healthcare, legal, and financial services verticals