{"openapi":"3.1.0","info":{"title":"Rogue UCP checkout","version":"2026-04-08","description":"UCP checkout for prepaid digital Pro access using explicitly declared Rogue x402 or Stripe SPT handlers. No fulfillment, shopping carts, order-management API, delegated account linking or raw-card collection is advertised."},"servers":[{"url":"https://rogue.camp/api/v1/payments/ucp"}],"paths":{"/checkout-sessions":{"post":{"operationId":"create_checkout","summary":"Create one prepaid Rogue Pro checkout","security":[{"bearerAuth":[]}],"parameters":[{"name":"UCP-Agent","in":"header","required":true,"schema":{"type":"string"},"description":"RFC 8941 profile string: profile=\"https://rogue.camp/.well-known/ucp/platform\", or your public platform profile URL. Capabilities are negotiated before processing."},{"name":"Request-Id","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_.:-]+$"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9_.:-]+$"},"description":"New key per distinct mutation; retain it for an uncertain retry. Different input with the same key conflicts. Encrypted operation receipts are retained seven days."}],"description":"payments:write. Select one public package ID and quantity 1. Only currently enabled, mutually supported handlers can be selected. By default prefer x402, then Stripe SPT. A quote expires in 15 minutes. Creating it does not charge. Payment credentials belong only in completion requests.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"line_items":{"minItems":1,"maxItems":1,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":128},"item":{"type":"object","properties":{"id":{"type":"string","enum":["pro-1-month","pro-3-months","pro-6-months","pro-12-months"]}},"required":["id"],"additionalProperties":false},"quantity":{"type":"number","const":1}},"required":["item","quantity"],"additionalProperties":false}},"buyer":{"type":"object","properties":{"first_name":{"type":"string","maxLength":256},"last_name":{"type":"string","maxLength":256},"email":{"type":"string","maxLength":320,"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"phone_number":{"type":"string","maxLength":32}},"additionalProperties":false},"context":{"type":"object","properties":{"address_country":{"type":"string","maxLength":256},"address_region":{"type":"string","maxLength":256},"postal_code":{"type":"string","maxLength":256},"intent":{"type":"string","maxLength":1024},"language":{"type":"string","maxLength":256},"currency":{"type":"string","maxLength":256},"eligibility":{"maxItems":32,"type":"array","items":{"type":"string","maxLength":256}}}},"signals":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"attribution":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"payment":{"type":"object","properties":{"instruments":{"maxItems":1,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":128},"handler_id":{"type":"string","enum":["rogue-x402","rogue-stripe-spt"]},"type":{"type":"string","enum":["x402","tokenized_card"]},"selected":{"type":"boolean","const":true}},"required":["id","handler_id","type"],"additionalProperties":false}}},"required":["instruments"],"additionalProperties":false}},"required":["line_items"],"additionalProperties":false}}}},"responses":{"201":{"description":"Unwrapped UCP checkout. completion may be complete_in_progress; use GET to follow an already submitted transaction without another payment proof.","content":{"application/json":{"schema":{"$ref":"https://ucp.dev/2026-04-08/schemas/shopping/checkout.json"}}}},"400":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"401":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"403":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"404":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"409":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"422":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"429":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"500":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"503":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}}}}},"/checkout-sessions/{id}":{"get":{"operationId":"get_checkout","summary":"Read your UCP checkout and receipt state","security":[{"bearerAuth":[]}],"parameters":[{"name":"UCP-Agent","in":"header","required":true,"schema":{"type":"string"},"description":"RFC 8941 profile string: profile=\"https://rogue.camp/.well-known/ucp/platform\", or your public platform profile URL. Capabilities are negotiated before processing."},{"name":"Request-Id","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_.:-]+$"}},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"description":"agent:read. A pending x402 checkout checks its already submitted transaction for confirmation; this never signs or submits another transfer.","responses":{"200":{"description":"Unwrapped UCP checkout. completion may be complete_in_progress; use GET to follow an already submitted transaction without another payment proof.","content":{"application/json":{"schema":{"$ref":"https://ucp.dev/2026-04-08/schemas/shopping/checkout.json"}}}},"400":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"401":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"403":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"404":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"409":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"422":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"429":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"500":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"503":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}}}},"put":{"operationId":"update_checkout","summary":"Replace optional buyer/context fields on an unsubmitted checkout","security":[{"bearerAuth":[]}],"parameters":[{"name":"UCP-Agent","in":"header","required":true,"schema":{"type":"string"},"description":"RFC 8941 profile string: profile=\"https://rogue.camp/.well-known/ucp/platform\", or your public platform profile URL. Capabilities are negotiated before processing."},{"name":"Request-Id","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_.:-]+$"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9_.:-]+$"},"description":"New key per distinct mutation; retain it for an uncertain retry. Different input with the same key conflicts. Encrypted operation receipts are retained seven days."},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"description":"payments:write. Include the original line item; price, package, quantity and handler stay fixed. Omitted buyer/context fields are retained; provided fields replace that object. Cancel and create a new quote to change package or handler.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"line_items":{"minItems":1,"maxItems":1,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":128},"item":{"type":"object","properties":{"id":{"type":"string","enum":["pro-1-month","pro-3-months","pro-6-months","pro-12-months"]}},"required":["id"],"additionalProperties":false},"quantity":{"type":"number","const":1}},"required":["item","quantity"],"additionalProperties":false}},"buyer":{"type":"object","properties":{"first_name":{"type":"string","maxLength":256},"last_name":{"type":"string","maxLength":256},"email":{"type":"string","maxLength":320,"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"phone_number":{"type":"string","maxLength":32}},"additionalProperties":false},"context":{"type":"object","properties":{"address_country":{"type":"string","maxLength":256},"address_region":{"type":"string","maxLength":256},"postal_code":{"type":"string","maxLength":256},"intent":{"type":"string","maxLength":1024},"language":{"type":"string","maxLength":256},"currency":{"type":"string","maxLength":256},"eligibility":{"maxItems":32,"type":"array","items":{"type":"string","maxLength":256}}}},"signals":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"attribution":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"payment":{"type":"object","properties":{"instruments":{"maxItems":1,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":128},"handler_id":{"type":"string","enum":["rogue-x402","rogue-stripe-spt"]},"type":{"type":"string","enum":["x402","tokenized_card"]},"selected":{"type":"boolean","const":true}},"required":["id","handler_id","type"],"additionalProperties":false}}},"required":["instruments"],"additionalProperties":false}},"required":["line_items"],"additionalProperties":false}}}},"responses":{"200":{"description":"Unwrapped UCP checkout. completion may be complete_in_progress; use GET to follow an already submitted transaction without another payment proof.","content":{"application/json":{"schema":{"$ref":"https://ucp.dev/2026-04-08/schemas/shopping/checkout.json"}}}},"400":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"401":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"403":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"404":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"409":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"422":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"429":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"500":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"503":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}}}}},"/checkout-sessions/{id}/complete":{"post":{"operationId":"complete_checkout","summary":"Complete with an explicitly authorized payment credential","security":[{"bearerAuth":[]}],"parameters":[{"name":"UCP-Agent","in":"header","required":true,"schema":{"type":"string"},"description":"RFC 8941 profile string: profile=\"https://rogue.camp/.well-known/ucp/platform\", or your public platform profile URL. Capabilities are negotiated before processing."},{"name":"Request-Id","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_.:-]+$"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9_.:-]+$"},"description":"New key per distinct mutation; retain it for an uncertain retry. Different input with the same key conflicts. Encrypted operation receipts are retained seven days."},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"description":"payments:write. Pass one selected instrument matching the negotiated handler. Rogue x402 uses the base64 PAYMENT-SIGNATURE as credential.token with credential.type=x402. Rogue Stripe SPT uses credential.type=stripe_spt and an spt_ token. Never send raw card numbers. A pending/review result requires state inspection, never a second signature or charge.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"payment":{"type":"object","properties":{"instruments":{"minItems":1,"maxItems":1,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":128},"handler_id":{"type":"string","enum":["rogue-x402","rogue-stripe-spt"]},"type":{"type":"string","enum":["x402","tokenized_card"]},"selected":{"type":"boolean","const":true},"credential":{"type":"object","properties":{"type":{"type":"string","enum":["x402","stripe_spt"]},"token":{"type":"string","minLength":1,"maxLength":48000}},"required":["type","token"],"additionalProperties":false}},"required":["id","handler_id","type","credential"],"additionalProperties":false}}},"required":["instruments"],"additionalProperties":false},"signals":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"attribution":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["payment"],"additionalProperties":false}}}},"responses":{"200":{"description":"Unwrapped UCP checkout. completion may be complete_in_progress; use GET to follow an already submitted transaction without another payment proof.","content":{"application/json":{"schema":{"$ref":"https://ucp.dev/2026-04-08/schemas/shopping/checkout.json"}}}},"400":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"401":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"403":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"404":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"409":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"422":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"429":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"500":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"503":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}}}}},"/checkout-sessions/{id}/cancel":{"post":{"operationId":"cancel_checkout","summary":"Cancel an unsubmitted UCP checkout","security":[{"bearerAuth":[]}],"parameters":[{"name":"UCP-Agent","in":"header","required":true,"schema":{"type":"string"},"description":"RFC 8941 profile string: profile=\"https://rogue.camp/.well-known/ucp/platform\", or your public platform profile URL. Capabilities are negotiated before processing."},{"name":"Request-Id","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_.:-]+$"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9_.:-]+$"},"description":"New key per distinct mutation; retain it for an uncertain retry. Different input with the same key conflicts. Encrypted operation receipts are retained seven days."},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Unwrapped UCP checkout. completion may be complete_in_progress; use GET to follow an already submitted transaction without another payment proof.","content":{"application/json":{"schema":{"$ref":"https://ucp.dev/2026-04-08/schemas/shopping/checkout.json"}}}},"400":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"401":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"403":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"404":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"409":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"422":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"429":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"500":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}},"503":{"description":"UCP error with ucp.version, ucp.status=error, and actionable messages. Credentials and raw proofs are omitted.","content":{"application/json":{"schema":{"type":"object","required":["ucp","messages"],"properties":{"ucp":{"type":"object","properties":{"version":{"const":"2026-04-08"},"status":{"const":"error"}}},"messages":{"type":"array","items":{"type":"object"}}}}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Rogue account credential, scoped OAuth token or agent_auth access token. Mutations require payments:write; reads require agent:read."}}},"externalDocs":{"url":"https://rogue.camp/guides/ucp.md"}}