{"openapi":"3.1.0","info":{"title":"Rose Bounty M2 API","version":"0.4.3-cf1+launch-1.0.0-final-repaired","description":"Agent-first capability discovery, governance, quoting, execution, independent verification and receipts. Sandbox payments only."},"servers":[{"url":"https://rose.agttglobal.org","description":"Canonical Rose Bounty production service"}],"tags":[{"name":"Verification","description":"Independent outcome verification and immutable Rose Receipts."},{"name":"Discovery"},{"name":"Marketplace"},{"name":"Governance"},{"name":"Agents"},{"name":"Payments"},{"name":"Messaging"},{"name":"Policies"}],"paths":{"/health":{"get":{"tags":["Discovery"],"summary":"Service health","operationId":"getHealth","responses":{"200":{"description":"Healthy service","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}}}}},"/.well-known/agent-card.json":{"get":{"tags":["Discovery"],"summary":"A2A agent card","operationId":"getAgentCard","responses":{"200":{"description":"Agent card","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}}}}},"/.well-known/rose-bounty.json":{"get":{"tags":["Discovery"],"summary":"Rose Gold Layers architecture manifest","operationId":"getRoseManifest","responses":{"200":{"description":"Architecture manifest","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}}}}},"/.well-known/security.txt":{"get":{"tags":["Discovery"],"summary":"Security contact and disclosure policy","operationId":"getSecurityPolicy","responses":{"200":{"description":"Security policy","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/llms.txt":{"get":{"tags":["Discovery"],"summary":"Agent discovery guide","operationId":"getLlmsTxt","responses":{"200":{"description":"Plain-text guide","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/openapi.json":{"get":{"tags":["Discovery"],"summary":"OpenAPI document","operationId":"getOpenApi","responses":{"200":{"description":"OpenAPI 3.1 document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}}}}},"/capabilities/web.status.check":{"get":{"tags":["Discovery"],"summary":"Website-status capability definition","operationId":"getWebsiteStatusCapability","responses":{"200":{"description":"Capability definition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Capability"}}}}}}},"/v1/capabilities":{"get":{"tags":["Marketplace"],"summary":"List capabilities","operationId":"listCapabilities","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Capability list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CapabilityList"}}}},"401":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/v1/search":{"post":{"tags":["Marketplace"],"summary":"Search capabilities","operationId":"searchCapabilities","security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchRequest"}}}},"responses":{"200":{"description":"Search results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CapabilityList"}}}},"400":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/v1/quotes":{"post":{"tags":["Marketplace"],"summary":"Create an immutable quote","operationId":"createQuote","security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CapabilityRequest"}}}},"responses":{"201":{"description":"Quote created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Quote"}}}},"400":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/v1/jobs":{"post":{"tags":["Marketplace"],"summary":"Execute an accepted quote","description":"Repeating the same request with the same Idempotency-Key returns the same job.","operationId":"createJob","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobRequest"}}}},"responses":{"200":{"description":"Existing idempotent job","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}}},"201":{"description":"Job created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}}},"400":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/v1/jobs/{id}":{"get":{"tags":["Marketplace"],"summary":"Read job state and result","operationId":"getJob","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Job","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}}},"401":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/v1/receipts/{id}":{"get":{"tags":["Marketplace"],"summary":"Read verification and settlement receipt","operationId":"getReceipt","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Receipt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Receipt"}}}},"401":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/v1/admin/review-queue":{"get":{"tags":["Governance"],"summary":"List pending governance reviews","operationId":"getReviewQueue","security":[{"AdminApiKeyAuth":[]}],"responses":{"200":{"description":"Review queue","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"401":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/v1/admin/providers/{id}/approve":{"post":{"tags":["Governance"],"summary":"Approve a pending provider","operationId":"approveProvider","security":[{"AdminApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DecisionRequest"}}}},"responses":{"200":{"description":"Provider approved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"401":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/v1/admin/providers/{id}/reject":{"post":{"tags":["Governance"],"summary":"Reject a pending provider","operationId":"rejectProvider","security":[{"AdminApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DecisionRequest"}}}},"responses":{"200":{"description":"Provider rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"401":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/v1/admin/capability-submissions/{id}/approve":{"post":{"tags":["Governance"],"summary":"Approve a capability submission","operationId":"approveCapabilitySubmission","security":[{"AdminApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DecisionRequest"}}}},"responses":{"200":{"description":"Submission approved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"401":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/v1/admin/capability-submissions/{id}/reject":{"post":{"tags":["Governance"],"summary":"Reject a capability submission","operationId":"rejectCapabilitySubmission","security":[{"AdminApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DecisionRequest"}}}},"responses":{"200":{"description":"Submission rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"401":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/mcp":{"post":{"tags":["Agents"],"summary":"MCP JSON-RPC endpoint","operationId":"mcp","security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpRequest"}}}},"responses":{"200":{"description":"MCP response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"400":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/a2a/v1/message:send":{"post":{"tags":["Agents"],"summary":"Send an A2A message","operationId":"sendA2AMessage","security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"responses":{"200":{"description":"A2A response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"400":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"Typed API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/v1/verify":{"post":{"tags":["Verification"],"summary":"Submit work and acceptance criteria to Rose for independent verification","security":[{"RoseMembership":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["buyer_agent_id","provider_agent_id","transaction_reference","transaction_value","currency","task","acceptance_criteria","submitted_result","evidence"],"properties":{"buyer_agent_id":{"type":"string"},"provider_agent_id":{"type":"string"},"transaction_reference":{"type":"string"},"transaction_value":{"type":"number","minimum":0},"currency":{"type":"string","pattern":"^[A-Z]{3}$"},"task":{"type":"string"},"acceptance_criteria":{"type":"array","minItems":1,"items":{"type":"object"}},"submitted_result":{"type":"object"},"evidence":{"type":"array"},"payment_reference":{"type":["string","null"]}}},"example":{"buyer_agent_id":"buyer-agent-1","provider_agent_id":"provider-agent-9","transaction_reference":"order-2026-0001","transaction_value":25,"currency":"USD","task":"Check the public service status page.","acceptance_criteria":[{"type":"web.status.check","url":"https://example.com/","expected_status":200,"content_match":"Example Domain"}],"submitted_result":{"provider_claim":"status page is available"},"evidence":[]}}}},"responses":{"201":{"description":"Verification decision and receipt reference"},"422":{"description":"Strict validation failure"}}}},"/v1/verification/{verification_id}":{"get":{"tags":["Verification"],"summary":"Get criteria-level independent verification status","parameters":[{"name":"verification_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Verification status"},"404":{"description":"Not found"}}}},"/v1/receipt/{receipt_id}":{"get":{"tags":["Verification"],"summary":"Get immutable machine-readable Rose Receipt","parameters":[{"name":"receipt_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Signed receipt"},"404":{"description":"Not found"}}}},"/.well-known/rose-marketplace.json":{"get":{"summary":"Marketplace discovery and access boundaries","security":[],"responses":{"200":{"description":"Machine-readable marketplace guide"}}}},"/v1/services":{"get":{"summary":"Discover the five Rose services and current operational availability","security":[],"responses":{"200":{"description":"Service catalog; unavailable services have no executable operations"}}}},"/.well-known/rose-services.json":{"get":{"summary":"Discover the five Rose services and current operational availability","security":[],"responses":{"200":{"description":"Service catalog; unavailable services have no executable operations"}}}},"/v1/payment-intents/flutterwave":{"post":{"tags":["Payments"],"summary":"Create a Flutterwave-backed Rose payment intent","security":[{"ApiKeyAuth":[]}],"responses":{"201":{"description":"Checkout created"},"4XX":{"description":"Typed error"}}}},"/v1/payment-intents/{id}/execute":{"post":{"tags":["Payments"],"summary":"Execute after independently verified payment","security":[{"ApiKeyAuth":[]}],"responses":{"201":{"description":"Execution created"},"402":{"description":"Payment not verified"}}}},"/v1/inbox/messages":{"post":{"tags":["Messaging"],"summary":"Send a machine-to-machine message to Rose","security":[{"ApiKeyAuth":[]}],"responses":{"201":{"description":"Message accepted"}}}},"/.well-known/policies.json":{"get":{"tags":["Policies"],"summary":"Machine-readable policy manifest","responses":{"200":{"description":"Policy manifest"}}}},"/v1/passports":{"post":{"summary":"POST /v1/passports","security":[{"MemberKey":[]}],"parameters":[{"name":"idempotency-key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}}],"description":"Controlled staging interface. Owner-scoped. TEST-only payment execution. Permission preview is not execution authorization.","responses":{"200":{"description":"Successful request"},"201":{"description":"Resource created"},"401":{"description":"Credential invalid or revoked"},"403":{"description":"Authority denied"},"404":{"description":"Owned resource not found"},"409":{"description":"Conflict; inspect existing state before retrying"},"422":{"description":"Input rejected"},"429":{"description":"Credential rate limit reached"},"503":{"description":"Feature disabled"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["name","client_reference"],"properties":{"name":{"type":"string","minLength":1,"maxLength":100},"client_reference":{"type":"string","minLength":1,"maxLength":100}}}}}}}},"/v1/passports/{id}":{"get":{"summary":"GET /v1/passports/{id}","security":[{"MemberKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":160}}],"description":"Controlled staging interface. Owner-scoped. TEST-only payment execution. Permission preview is not execution authorization.","responses":{"200":{"description":"Successful request"},"201":{"description":"Resource created"},"401":{"description":"Credential invalid or revoked"},"403":{"description":"Authority denied"},"404":{"description":"Owned resource not found"},"409":{"description":"Conflict; inspect existing state before retrying"},"422":{"description":"Input rejected"},"429":{"description":"Credential rate limit reached"},"503":{"description":"Feature disabled"}}}},"/v1/passports/{id}/authority-grants":{"post":{"summary":"POST /v1/passports/{id}/authority-grants","security":[{"MemberKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":160}},{"name":"idempotency-key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}}],"description":"Controlled staging interface. Owner-scoped. TEST-only payment execution. Permission preview is not execution authorization.","responses":{"200":{"description":"Successful request"},"201":{"description":"Resource created"},"401":{"description":"Credential invalid or revoked"},"403":{"description":"Authority denied"},"404":{"description":"Owned resource not found"},"409":{"description":"Conflict; inspect existing state before retrying"},"422":{"description":"Input rejected"},"429":{"description":"Credential rate limit reached"},"503":{"description":"Feature disabled"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["capability_id","capability_version","max_amount_minor","currency","expires_at"],"properties":{"capability_id":{"type":"string","minLength":1,"maxLength":160},"capability_version":{"type":"integer","minimum":1},"max_amount_minor":{"type":"integer","minimum":0,"maximum":9007199254740991},"currency":{"type":"string","pattern":"^[A-Z]{3}$"},"expires_at":{"type":"string","format":"date-time"},"daily_budget_minor":{"type":"integer","minimum":0,"maximum":9007199254740991},"daily_execution_limit":{"type":"integer","minimum":1,"maximum":1000}}}}}}}},"/v1/passports/{id}/authority-grants/{grant_id}/revoke":{"post":{"summary":"POST /v1/passports/{id}/authority-grants/{grant_id}/revoke","security":[{"MemberKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":160}},{"name":"grant_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":160}},{"name":"idempotency-key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}}],"description":"Controlled staging interface. Owner-scoped. TEST-only payment execution. Permission preview is not execution authorization.","responses":{"200":{"description":"Successful request"},"201":{"description":"Resource created"},"401":{"description":"Credential invalid or revoked"},"403":{"description":"Authority denied"},"404":{"description":"Owned resource not found"},"409":{"description":"Conflict; inspect existing state before retrying"},"422":{"description":"Input rejected"},"429":{"description":"Credential rate limit reached"},"503":{"description":"Feature disabled"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":[],"properties":{}}}}}}},"/v1/passports/{id}/authority/evaluate":{"post":{"summary":"POST /v1/passports/{id}/authority/evaluate","security":[{"MemberKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":160}},{"name":"idempotency-key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}}],"description":"Controlled staging interface. Owner-scoped. TEST-only payment execution. Permission preview is not execution authorization.","responses":{"200":{"description":"Successful request"},"201":{"description":"Resource created"},"401":{"description":"Credential invalid or revoked"},"403":{"description":"Authority denied"},"404":{"description":"Owned resource not found"},"409":{"description":"Conflict; inspect existing state before retrying"},"422":{"description":"Input rejected"},"429":{"description":"Credential rate limit reached"},"503":{"description":"Feature disabled"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["grant_id","capability_id","capability_version","amount_minor","currency"],"properties":{"grant_id":{"type":"string","minLength":1,"maxLength":160},"capability_id":{"type":"string","minLength":1,"maxLength":160},"capability_version":{"type":"integer","minimum":1},"amount_minor":{"type":"integer","minimum":0,"maximum":9007199254740991},"currency":{"type":"string","pattern":"^[A-Z]{3}$"}}}}}}}},"/v1/passports/{id}/capabilities":{"post":{"summary":"POST /v1/passports/{id}/capabilities","security":[{"MemberKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":160}},{"name":"idempotency-key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}}],"description":"Controlled staging interface. Owner-scoped. TEST-only payment execution. Permission preview is not execution authorization.","responses":{"200":{"description":"Successful request"},"201":{"description":"Resource created"},"401":{"description":"Credential invalid or revoked"},"403":{"description":"Authority denied"},"404":{"description":"Owned resource not found"},"409":{"description":"Conflict; inspect existing state before retrying"},"422":{"description":"Input rejected"},"429":{"description":"Credential rate limit reached"},"503":{"description":"Feature disabled"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["capability_id","capability_version"],"properties":{"capability_id":{"type":"string","minLength":1,"maxLength":160},"capability_version":{"type":"integer","minimum":1}}}}}}}},"/v1/trust/{id}":{"get":{"summary":"GET /v1/trust/{id}","security":[{"MemberKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":160}}],"description":"Controlled staging interface. Owner-scoped. TEST-only payment execution. Permission preview is not execution authorization.","responses":{"200":{"description":"Successful request"},"201":{"description":"Resource created"},"401":{"description":"Credential invalid or revoked"},"403":{"description":"Authority denied"},"404":{"description":"Owned resource not found"},"409":{"description":"Conflict; inspect existing state before retrying"},"422":{"description":"Input rejected"},"429":{"description":"Credential rate limit reached"},"503":{"description":"Feature disabled"}}}},"/v1/passports/{id}/relay":{"post":{"summary":"POST /v1/passports/{id}/relay","security":[{"MemberKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":160}},{"name":"idempotency-key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}}],"description":"Controlled staging interface. Owner-scoped. TEST-only payment execution. Permission preview is not execution authorization.","responses":{"200":{"description":"Successful request"},"201":{"description":"Resource created"},"401":{"description":"Credential invalid or revoked"},"403":{"description":"Authority denied"},"404":{"description":"Owned resource not found"},"409":{"description":"Conflict; inspect existing state before retrying"},"422":{"description":"Input rejected"},"429":{"description":"Credential rate limit reached"},"503":{"description":"Feature disabled"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["failed_job_id"],"properties":{"failed_job_id":{"type":"string","minLength":1,"maxLength":160}}}}}}}},"/v1/passports/{id}/relay/{relay_id}/approve":{"post":{"summary":"POST /v1/passports/{id}/relay/{relay_id}/approve","security":[{"MemberKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":160}},{"name":"relay_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":160}},{"name":"idempotency-key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}}],"description":"Controlled staging interface. Owner-scoped. TEST-only payment execution. Permission preview is not execution authorization.","responses":{"200":{"description":"Successful request"},"201":{"description":"Resource created"},"401":{"description":"Credential invalid or revoked"},"403":{"description":"Authority denied"},"404":{"description":"Owned resource not found"},"409":{"description":"Conflict; inspect existing state before retrying"},"422":{"description":"Input rejected"},"429":{"description":"Credential rate limit reached"},"503":{"description":"Feature disabled"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["target_quote_id"],"properties":{"target_quote_id":{"type":"string","minLength":1,"maxLength":160}}}}}}}},"/v1/passports/{id}/relay/{relay_id}/cancel":{"post":{"summary":"POST /v1/passports/{id}/relay/{relay_id}/cancel","security":[{"MemberKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":160}},{"name":"relay_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":160}},{"name":"idempotency-key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}}],"description":"Controlled staging interface. Owner-scoped. TEST-only payment execution. Permission preview is not execution authorization.","responses":{"200":{"description":"Successful request"},"201":{"description":"Resource created"},"401":{"description":"Credential invalid or revoked"},"403":{"description":"Authority denied"},"404":{"description":"Owned resource not found"},"409":{"description":"Conflict; inspect existing state before retrying"},"422":{"description":"Input rejected"},"429":{"description":"Credential rate limit reached"},"503":{"description":"Feature disabled"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":[],"properties":{}}}}}}},"/v1/passports/{id}/relay/{relay_id}":{"get":{"summary":"GET /v1/passports/{id}/relay/{relay_id}","security":[{"MemberKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":160}},{"name":"relay_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":160}}],"description":"Controlled staging interface. Owner-scoped. TEST-only payment execution. Permission preview is not execution authorization.","responses":{"200":{"description":"Successful request"},"201":{"description":"Resource created"},"401":{"description":"Credential invalid or revoked"},"403":{"description":"Authority denied"},"404":{"description":"Owned resource not found"},"409":{"description":"Conflict; inspect existing state before retrying"},"422":{"description":"Input rejected"},"429":{"description":"Credential rate limit reached"},"503":{"description":"Feature disabled"}}}},"/v1/passports/{id}/quotes":{"post":{"summary":"POST /v1/passports/{id}/quotes","security":[{"MemberKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":160}},{"name":"idempotency-key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}}],"description":"Controlled staging interface. Owner-scoped. TEST-only payment execution. Permission preview is not execution authorization.","responses":{"200":{"description":"Successful request"},"201":{"description":"Resource created"},"401":{"description":"Credential invalid or revoked"},"403":{"description":"Authority denied"},"404":{"description":"Owned resource not found"},"409":{"description":"Conflict; inspect existing state before retrying"},"422":{"description":"Input rejected"},"429":{"description":"Credential rate limit reached"},"503":{"description":"Feature disabled"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["grant_id","capability_id","inputs"],"properties":{"grant_id":{"type":"string","minLength":1,"maxLength":160},"capability_id":{"type":"string","minLength":1,"maxLength":160},"inputs":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","maxLength":2048},"expected_status":{"type":"integer","minimum":100,"maximum":599}}}}}}}}}},"/v1/passports/{id}/quotes/{quote_id}":{"get":{"summary":"GET /v1/passports/{id}/quotes/{quote_id}","security":[{"MemberKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":160}},{"name":"quote_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":160}}],"description":"Controlled staging interface. Owner-scoped. TEST-only payment execution. Permission preview is not execution authorization.","responses":{"200":{"description":"Successful request"},"201":{"description":"Resource created"},"401":{"description":"Credential invalid or revoked"},"403":{"description":"Authority denied"},"404":{"description":"Owned resource not found"},"409":{"description":"Conflict; inspect existing state before retrying"},"422":{"description":"Input rejected"},"429":{"description":"Credential rate limit reached"},"503":{"description":"Feature disabled"}}}},"/v1/passports/{id}/jobs/{job_id}":{"get":{"summary":"GET /v1/passports/{id}/jobs/{job_id}","security":[{"MemberKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":160}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":160}}],"description":"Controlled staging interface. Owner-scoped. TEST-only payment execution. Permission preview is not execution authorization.","responses":{"200":{"description":"Successful request"},"201":{"description":"Resource created"},"401":{"description":"Credential invalid or revoked"},"403":{"description":"Authority denied"},"404":{"description":"Owned resource not found"},"409":{"description":"Conflict; inspect existing state before retrying"},"422":{"description":"Input rejected"},"429":{"description":"Credential rate limit reached"},"503":{"description":"Feature disabled"}}}},"/v1/passports/{id}/evidence":{"get":{"summary":"GET /v1/passports/{id}/evidence","security":[{"MemberKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":160}}],"description":"Controlled staging interface. Owner-scoped. TEST-only payment execution. Permission preview is not execution authorization.","responses":{"200":{"description":"Successful request"},"201":{"description":"Resource created"},"401":{"description":"Credential invalid or revoked"},"403":{"description":"Authority denied"},"404":{"description":"Owned resource not found"},"409":{"description":"Conflict; inspect existing state before retrying"},"422":{"description":"Input rejected"},"429":{"description":"Credential rate limit reached"},"503":{"description":"Feature disabled"}}}},"/v1/passports/{id}/trust-events":{"get":{"summary":"GET /v1/passports/{id}/trust-events","security":[{"MemberKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":160}}],"description":"Controlled staging interface. Owner-scoped. TEST-only payment execution. Permission preview is not execution authorization.","responses":{"200":{"description":"Successful request"},"201":{"description":"Resource created"},"401":{"description":"Credential invalid or revoked"},"403":{"description":"Authority denied"},"404":{"description":"Owned resource not found"},"409":{"description":"Conflict; inspect existing state before retrying"},"422":{"description":"Input rejected"},"429":{"description":"Credential rate limit reached"},"503":{"description":"Feature disabled"}}}},"/v1/passports/{id}/checkout":{"post":{"summary":"POST /v1/passports/{id}/checkout","security":[{"MemberKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":160}},{"name":"idempotency-key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}}],"description":"Controlled staging interface. Owner-scoped. TEST-only payment execution. Permission preview is not execution authorization.","responses":{"200":{"description":"Successful request"},"201":{"description":"Resource created"},"401":{"description":"Credential invalid or revoked"},"403":{"description":"Authority denied"},"404":{"description":"Owned resource not found"},"409":{"description":"Conflict; inspect existing state before retrying"},"422":{"description":"Input rejected"},"429":{"description":"Credential rate limit reached"},"503":{"description":"Feature disabled"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["quote_id","customer"],"properties":{"quote_id":{"type":"string","minLength":1,"maxLength":160},"customer":{"type":"object","required":["email"],"properties":{"email":{"type":"string","format":"email"},"name":{"type":"string"},"phone":{"type":"string"}}}}}}}}}},"/v1/passports/{id}/execute":{"post":{"summary":"POST /v1/passports/{id}/execute","security":[{"MemberKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":160}},{"name":"idempotency-key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}}],"description":"Controlled staging interface. Owner-scoped. TEST-only payment execution. Permission preview is not execution authorization.","responses":{"200":{"description":"Successful request"},"201":{"description":"Resource created"},"401":{"description":"Credential invalid or revoked"},"403":{"description":"Authority denied"},"404":{"description":"Owned resource not found"},"409":{"description":"Conflict; inspect existing state before retrying"},"422":{"description":"Input rejected"},"429":{"description":"Credential rate limit reached"},"503":{"description":"Feature disabled"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["payment_intent_id"],"properties":{"payment_intent_id":{"type":"string","minLength":1,"maxLength":160}}}}}}}},"/v1/passports/{id}/credits":{"get":{"summary":"Get available/reserved service credits","security":[{"RoseMemberKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Authenticated result"},"201":{"description":"Created"},"409":{"description":"Conflict; inspect existing operation before retrying"}}}},"/v1/passports/{id}/credits/ledger":{"get":{"summary":"Read private append-only credit history","security":[{"RoseMemberKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Authenticated result"},"201":{"description":"Created"},"409":{"description":"Conflict; inspect existing operation before retrying"}}}},"/v1/passports/{id}/credits/reconciliation":{"get":{"summary":"Owner-only conservation and held-reservation report","security":[{"RoseMemberKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Authenticated result"},"201":{"description":"Created"},"409":{"description":"Conflict; inspect existing operation before retrying"}}}},"/v1/passports/{id}/credits/funding":{"post":{"summary":"Create owner-authorized top-up; idempotency-key required","security":[{"RoseMemberKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"idempotency-key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":128}}],"responses":{"200":{"description":"Authenticated result"},"201":{"description":"Created"},"409":{"description":"Conflict; inspect existing operation before retrying"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"amount_credits":{"type":"integer","minimum":100,"maximum":100},"customer_email":{"type":"string","format":"email"},"checkout_adapter":{"type":"string","enum":["HTML","STANDARD"],"default":"HTML"}},"required":["amount_credits","customer_email"],"additionalProperties":false}}}}}},"/v1/passports/{id}/credits/funding/{funding_id}":{"get":{"summary":"Read funding status without minting from client claims","security":[{"RoseMemberKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"funding_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Authenticated result"},"201":{"description":"Created"},"409":{"description":"Conflict; inspect existing operation before retrying"}}}},"/v1/passports/{id}/credits/execute":{"post":{"summary":"Execute an authorized quote using credits; idempotency-key required","security":[{"RoseMemberKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"idempotency-key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":128}}],"responses":{"200":{"description":"Authenticated result"},"201":{"description":"Created"},"409":{"description":"Conflict; inspect existing operation before retrying"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"quote_id":{"type":"string"}},"required":["quote_id"],"additionalProperties":false}}}}}},"/v1/passports/{id}/credits/receipts/{receipt_id}":{"get":{"summary":"Read immutable credit execution receipt","security":[{"RoseMemberKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"receipt_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Authenticated result"},"201":{"description":"Created"},"409":{"description":"Conflict; inspect existing operation before retrying"}}}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key"},"AdminApiKeyAuth":{"type":"apiKey","in":"header","name":"X-Admin-API-Key"},"MemberKey":{"type":"apiKey","in":"header","name":"x-rose-member-key"},"RoseMemberKey":{"type":"apiKey","in":"header","name":"x-rose-member-key"}},"schemas":{"Object":{"type":"object"},"Health":{"type":"object","required":["status","service","version","database"],"properties":{"status":{"type":"string","example":"ok"},"service":{"type":"string","example":"rose-bounty"},"version":{"type":"string"},"database":{"type":"string","example":"d1"}}},"ErrorEnvelope":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","retryable"],"properties":{"code":{"type":"string","example":"UNAUTHORIZED"},"message":{"type":"string"},"retryable":{"type":"boolean"},"correlation_id":{"type":"string"}}}}},"Price":{"type":"object","required":["amount_minor","currency"],"properties":{"amount_minor":{"type":"integer","minimum":0,"example":3},"currency":{"type":"string","example":"USD"}}},"Capability":{"type":"object","required":["id","version","price"],"properties":{"id":{"type":"string","example":"web.status.check"},"version":{"type":"integer","example":1},"description":{"type":"string"},"input_schema":{"type":"object"},"output_schema":{"type":"object"},"price":{"$ref":"#/components/schemas/Price"},"quote_ttl_seconds":{"type":"integer"},"keywords":{"type":"array","items":{"type":"string"}}}},"CapabilityList":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Capability"}},"next_cursor":{"type":["string","null"]}}},"StatusInputs":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","example":"https://example.com/"},"expected_status":{"type":"integer","minimum":100,"maximum":599,"default":200}}},"CapabilityRequest":{"type":"object","required":["capability_id","inputs"],"properties":{"capability_id":{"type":"string","const":"web.status.check"},"inputs":{"$ref":"#/components/schemas/StatusInputs"}}},"SearchRequest":{"type":"object","properties":{"query":{"type":"string","example":"website status uptime"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":20},"cursor":{"type":"string"}}},"DecisionRequest":{"type":"object","required":["reason"],"properties":{"reason":{"type":"string","minLength":1,"maxLength":1000}}},"Quote":{"type":"object","required":["id","capability_id","price","created_at","expires_at"],"properties":{"id":{"type":"string"},"capability_id":{"type":"string"},"capability_version":{"type":"integer"},"input_hash":{"type":"string"},"price":{"$ref":"#/components/schemas/Price"},"created_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"delivery_seconds":{"type":"integer"},"verification_policy":{"type":"string"},"refund_policy":{"type":"string"},"contract_hash":{"type":"string"},"quote_hash":{"type":"string"}}},"JobRequest":{"type":"object","required":["quote_id","payment_token"],"properties":{"quote_id":{"type":"string"},"payment_token":{"type":"string","description":"Sandbox token: sandbox_ok, sandbox_decline, or sandbox_capture_fail."}}},"Job":{"type":"object","required":["id","quote_id","state"],"properties":{"id":{"type":"string"},"quote_id":{"type":"string"},"state":{"type":"string","enum":["PENDING","RUNNING","COMPLETED","DECLINED","REFUND_PENDING","FAILED"]},"result":{"type":["object","null"]},"failure_code":{"type":["string","null"]},"receipt_id":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"Receipt":{"type":"object","required":["id","job_id","quote_id","outcome"],"properties":{"id":{"type":"string"},"job_id":{"type":"string"},"quote_id":{"type":"string"},"capability_id":{"type":"string"},"capability_version":{"type":"integer"},"amount_minor":{"type":"integer"},"currency":{"type":"string"},"payment_reference":{"type":"string"},"input_hash":{"type":"string"},"output_hash":{"type":"string"},"evidence":{"type":"object"},"verifier_checks":{"type":"object","additionalProperties":{"type":"boolean"}},"confidence":{"type":"string"},"outcome":{"type":"string","example":"CAPTURED"},"created_at":{"type":"string","format":"date-time"},"receipt_hash":{"type":"string"}}},"McpRequest":{"type":"object","required":["jsonrpc","method"],"properties":{"jsonrpc":{"type":"string","const":"2.0"},"id":{},"method":{"type":"string"},"params":{"type":"object"}}}}},"x-rose-readiness":{"public_discovery":true,"owner_approved_membership":false,"paid_public_purchasing":false,"test_member_execution":false,"provider_self_service":false,"multi_provider_comparison":false,"resolve_orchestration":false,"resolve_guide":"/.well-known/rose-resolve.json","execution_scope":"ROSE_HOSTED_STATUS_ADAPTER","payment_scope":"SANDBOX_ONLY"},"x-rose-credits":{"denomination_usd_minor":1,"mode":"LIVE","closed_loop":true,"transfers":false,"withdrawals":false,"checkout":{"primary":"HTML","secondary":"STANDARD","html_action":"https://checkout.flutterwave.com/v3/hosted/pay","checksum":"SHA256(amount + currency + customer_email + tx_ref + SHA256(secret_key))","redirect_confirms_payment":false},"quotes":"Use existing authorized Passport quotes; USD amount_minor equals credits for web.status.check.","funding_refunds":"OWNER_REVIEW_REQUIRED"}}