Documentation
OverviewQuickstartConceptsDecisions and errorsApprovalsVersioningSecurityExtensionsFAQPartner integration profileRCTP documentation
Status: Draft 0.4, pre-release. Every name, field and number may change. Release
v0.2.0-draft.4implements the Starter profile of Draft 0.4 [17.4]. Do not depend on it in production without talking to the editors.
What RCTP is
- RCTP (Re-Commerce Trust Profile) lets AI agents buy and sell used goods for people.
- A seller connects an agent once through their marketplace and confirms which verbs it may use, and which need their own approval. The marketplace records that as an Agent Grant, bound to the agent's key.
- For each item, the seller sets Listing Terms on a page the marketplace hosts: a private floor, plus public terms such as delivery options and the date the offer closes. No agent ever receives the private terms.
- An enforcement point in front of the marketplace API checks every signed agent call against the grant and the terms. The agent never decides on its own.
- The enforcement point answers each call with one of three decisions, and writes every decision to a signed, hash-chained deal record.
- RCTP is a profile of existing standards (UCP profiles, identity linking and message signatures; OAuth 2.0 with PKCE; RFC 9421; WebAuthn). It defines no new cryptography, transport or payment rail.
The three decisions
| Decision | HTTP | What it means | What the agent does next |
|---|---|---|---|
auto |
200 (201 for creates) | Done. | Carry on. |
ask |
202 | Waiting for the seller to approve with their own passkey. No answer means no. | Show the approval page, then wait for the outcome. |
forbid |
401, 403, 409, 422 or 429 | Refused, with one registered reason such as below_floor. |
Act on the reason. Never retry the same thing unchanged. |
The decision travels in the RCTP-Decision response header. The floor is never revealed. A tier or a term cannot be
talked out of the enforcement point: only the seller, on a page the marketplace hosts, can change a grant or terms
(INV-5).
Pages
| Page | Read it when |
|---|---|
| Quickstart | You want to make your first signed call and your first approval against the sandbox. |
| Core concepts, one page | You want the whole picture in one read: what RCTP solves on top of UCP and AP2, its roles, five constructs, discovery, rules and versioning. Open it in a browser, or with the simulator's Core concepts button. |
| Concepts | You want the ideas RCTP is built from: Agent Grant, Listing Terms, offer, decision, tier, approval, deal record, UCP profile, enforcement point. |
| Decisions and errors | You are handling responses. Every reason code, its HTTP status and what to do next. |
| Approvals | Your agent gets an ask. How the seller approves and sets terms, what is signed, and how you learn the outcome. |
| Versioning | You need to know which versions exist, how long they are supported and how things are deprecated. |
| Security | You want the nine invariants, how the reference gateway enforces them, the tests that prove it, and how to report a flaw. |
| Extensions | You need something the current draft does not have. How x- experiments and reverse-domain values work. |
| FAQ | You have a sharp question, such as "why does no agent see the floor?" |
| Partner integration profile | You are a partner preparing to integrate. A template to fill in. |
What v0.2 covers
| In v0.2 (Starter profile) | Not yet |
|---|---|
| Agent Grants: key-bound, introspected on every call, revocable | Party Credentials and bands [11.1], so counterparty requirements cannot be met yet (B-6) |
Listing Terms under goods.small/1 (and vehicles/1 when a gateway enables it), set on the hosted page |
Identity facts [11.2] and Item Passport [11.3] |
Offers with Deal Terms, negotiation_id, supersedes and expires_at; reservation and single-use checkouts |
AP2 buyer authority (vector V25, #59) |
Approval level hosted_embedded |
Approval levels marketplace_app and certified_operator |
Deal events funds_held, accepted, rejected, released, UCP fulfillment events, return and refund, under the money rules |
Verified custody [11.4], seals, relayed partner events (V20) |
| REST binding, UCP signed webhooks, a conformance runner (V1–V15, V26–V29, S1–S4) | MCP and A2A bindings, deal record export |
See CHANGELOG.md for the full list.
Where things live
| Source | Status |
|---|---|
spec/rctp-draft-0.4.md |
Normative. What an implementation must do. |
spec/v0.2-binding.md |
Normative for this repository. The wire choices v0.2 makes. |
spec/AMBIGUITIES.md |
The readings v0.2 chose where the draft is unclear (B-1 to B-9). Always the more restrictive one. |
schemas/ and registries/ |
The single source of truth for object shapes and registered values. |
spec/rctp-draft-0.3.md, spec/v0.1-binding.md |
History: what v0.1.0-draft.3 implemented. |
Precedence: Draft 0.4 text, then the binding, then code. If the code and the binding disagree, the code is wrong.
Section numbers in brackets, such as [9.3], point to Draft 0.4. "Binding 4.2" points to the v0.2 binding.
Source: docs/index.md