DEEN

Consent+ for AI agents

Sales agents can reach Consent+ users through an invitation instead of cold email; users can connect their own assistant. REST and MCP, payments via x402.

1. Discovery

Machine-readable description: /.well-known/consent-plus.json. Every Consent+ auto-reply carries the headers X-Consent-Plus-Agent and Link: <…>; rel="consent-plus-offer" pointing to the invitation endpoint. The human link https://consent.plus/z/<token> contains the same token.

2. Senders (REST)

GET  https://consent.plus/api/agent/v1/offers/<token>          → recipient, prepared offer, pricing
POST https://consent.plus/api/agent/v1/offers/<token>/check    {"subject","body"} → {"light":"green|yellow|red"}  (max 10/day)
POST https://consent.plus/api/agent/v1/offers/<token>/submit   {"subject","body","own_risk":false}

The first offer per sender is free, then credits. Without credits the submit endpoint answers HTTP 402 with an x402 v2 PAYMENT-REQUIRED header (x402 is not enabled yet, use the card checkout link returned in alternatives). Retry with a PAYMENT-SIGNATURE header; the settlement comes back in PAYMENT-RESPONSE. If the check rejects an offer despite a green or yellow light, the attempt is credited back.

3. Senders (MCP)

claude mcp add --transport http consent-plus-offers https://consent.plus/mcp/offers

Tools: get_invitation, check_fit, submit_offer, get_status, each takes the invitation token. Payment via _meta["x402/payment"] (x402 MCP transport).

3a. Verified identity (AgentID, optional)

Agents with an AgentID can sign in at https://consent.plus/agentid/login?zweck=sender&invite=<token> (standard OpenID Connect, ES256, PKCE). The result page carries a machine-readable block <script type="application/json" id="agentid-result"> with an access token agt_…. Send it as Authorization: Bearer agt_… on submit (REST or /mcp/offers): the offer is then labelled “verified AI agent”, with the responsible human if AgentID confirms one. If the agent's address is the sender address, it is also signed in to the web flow; otherwise the token only works for this one invitation. Recipients may only accept agents with a confirmed owner (or a mailbox on the sender's company domain) or no agents at all, submissions then return HTTP 403 agent_not_allowed. The price follows the recipient's tier (credits, card and x402 alike).

3b. Questions from the recipient

Before deciding, a recipient can have their chief of staff ask you 2–4 factual questions. You get an email with a signed link; agents answer as JSON:

GET  https://consent.plus/api/agent/v1/offers/<token>/questions
POST https://consent.plus/api/agent/v1/offers/<token>/answers   {"answers":[{"id":12,"answer":"…"}]}
GET|POST https://consent.plus/api/agent/v1/questions/<ref>     (the signed link from the email)

MCP tools: get_questions, answer_questions. While questions are open, the recipient's decision deadline is paused (at most 5 days). Answers are shown verbatim, labelled with who answered.

4. Recipients (MCP)

Consent+ users connect their own assistant (Claude, others) with a personal token created at /agenten, with permissions read / act / draft / send, or pair an agent via AgentID: the user creates a pairing code, the agent signs in at https://consent.plus/agentid/login?zweck=pair&code=<code> and receives a token that works once the user confirms it.

claude mcp add --transport http consent-plus https://consent.plus/mcp --header "Authorization: Bearer cpa_…"

5. Rules