# Recourse > Recourse is independent outcome metering for AI work. Payment protocols prove the agent was allowed to buy; Recourse proves the seller delivered. A vendor and a buyer sign one outcome definition, and the units are counted against that definition by a party neither side employs — then issued as a statement both parties can verify without asking us. Recourse is never in the flow of funds. > WHAT RUNS TODAY: parties and agent keys, terms and the terms hash, the signed hash-chained record, and holds on a manual rail. Verification, disputes, rulings and party records are specified in the Rulebook and are NOT implemented yet — a commitment funded today is not checked against its criteria and no dispute can be ruled on it. The manual rail records that a hold was instructed; it does not move money and cannot enforce a release. Parties are organizations or agents, symmetrically. An agent key (`ak_…`) resolves to a party with keys, a record, and obligations, and calls the same endpoints an organization calls. Five calls run a commitment from nothing to a signed record a counterparty can verify without trusting Recourse. Rulebook 0.4.0, effective 2026-08-26. Outcome Standards: OS-1, OS-2, OS-3. Money is integer cents, USD. Every error carries a stable machine code and the call that resolves it. Every call that moves money takes an `Idempotency-Key`. ## Protocol - [The five steps](https://recourse-mu.vercel.app/#protocol): terms, hold, verification, ruling, record — the sequence every commitment runs, in order. - [The whole protocol in one file](https://recourse-mu.vercel.app/llms-full.txt): the whole protocol in one fetch: steps, states, standards, reason codes, errors, endpoints. - [A sealed commitment](https://recourse-mu.vercel.app/#record): a worked example with real hashes, its event chain, and its seal. - [An example statement](https://recourse-mu.vercel.app/statement): the monthly document a buyer pays from — every unit submitted, which counted, which did not and why, and the hash both parties recompute. - [How to check our work](https://recourse-mu.vercel.app/trust): the checks a counterparty runs without asking us, each with what it does NOT prove, and the one that is still open. - [Design-partner pilot](https://recourse-mu.vercel.app/pilot): what a first engagement is, what it needs, and what it produces. ## Standards - [OS-1 Support Resolution](https://recourse-mu.vercel.app/standards#OS-1): One customer conversation resolved by the vendor's agent without human handoff. - [OS-2 Qualified Lead](https://recourse-mu.vercel.app/standards#OS-2): One lead delivered that meets the buyer's stated qualification profile and is contactable. - [OS-3 Booked Meeting, Held](https://recourse-mu.vercel.app/standards#OS-3): One meeting booked by the vendor's agent with an external prospect that the buyer's representative attended and that lasted at least the minimum duration. - [CD-0 Custom Deliverable](https://recourse-mu.vercel.app/standards#CD-0): One deliverable as described in the terms. - [All Outcome Standards](https://recourse-mu.vercel.app/standards): every standard with its acceptance criteria, evidence schema, exclusions, and hash. ## Rulebook - [Rulebook 0.4.0](https://recourse-mu.vercel.app/rulebook): definitions, procedure, verification order, appeals, records, and amendments. Rules are data, versioned, public. - [Reason codes](https://recourse-mu.vercel.app/rulebook#reason-codes): the 24 codes a ruling may cite, each with the rule text it applies. ## API - [Quickstart](https://recourse-mu.vercel.app/docs): get a key, run the five calls, and verify the result yourself. - [OpenAPI 3.1](https://api.recourse.dev/openapi.json): openAPI 3.1, generated from the live route table. Every client is generated from it. - [Discovery document](https://api.recourse.dev/.well-known/recourse.json): machine discovery: the API base, the scopes, the rulebook version, and the standards in force. - [Log public keys](https://api.recourse.dev/.well-known/recourse-keys.json): the Ed25519 public keys events and record snapshots are signed with. Verify without asking Recourse. ## MCP - [MCP server](https://recourse-mu.vercel.app/docs#mcp): `@recourse/mcp` over stdio. The commitment lifecycle as tools, with the API key held in the server's environment and never in a prompt. ## Optional - [Ledger](https://recourse-mu.vercel.app/ledger): what the layer has settled, in aggregate. No party is named.