{"openapi":"3.1.0","info":{"title":"checkout402 API","description":"Hosted checkouts that machines can pay (x402). JSON API only.","version":"0.0.0"},"paths":{"/v1/sellers/{slug}/offers":{"get":{"tags":["discovery","discovery"],"summary":"Seller Offers","description":"A seller's machine-readable catalogue.","operationId":"seller_offers_v1_sellers__slug__offers_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Seller Offers V1 Sellers  Slug  Offers Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/health":{"get":{"tags":["health"],"summary":"Health","description":"Liveness by default — instant, no DB. Render's checker polls this every\nfew seconds, and each default-mode ping used to cost a cross-region DB\nround-trip. Pass `?deep=1` for the DB-inclusive check (monitors, humans).\nNever raises — reports component state.","operationId":"health_health_get","parameters":[{"name":"deep","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Deep"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Health Health Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/health/facilitator":{"get":{"tags":["health"],"summary":"Health Facilitator","description":"Per-chain facilitator health. Stub until the facilitator modules land\n(Roadmap Stage 1). Shape is stable so monitoring can wire to it now.","operationId":"health_facilitator_health_facilitator_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Facilitator Health Facilitator Get"}}}}}}},"/v1/checkouts":{"post":{"tags":["checkouts"],"summary":"Create Checkout","operationId":"create_checkout_v1_checkouts_post","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["checkouts"],"summary":"List Checkouts","operationId":"list_checkouts_v1_checkouts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Checkouts V1 Checkouts Get"}}}}}}},"/v1/analytics":{"get":{"tags":["checkouts"],"summary":"Seller Analytics","description":"What you earned, from how many buyers, and what failed to deliver.","operationId":"seller_analytics_v1_analytics_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Seller Analytics V1 Analytics Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/c/{checkout_id}":{"get":{"tags":["checkouts"],"summary":"Checkout Page","operationId":"checkout_page_c__checkout_id__get","parameters":[{"name":"checkout_id","in":"path","required":true,"schema":{"type":"string","title":"Checkout Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/c/{checkout_id}/pay":{"post":{"tags":["checkouts"],"summary":"Pay Checkout","operationId":"pay_checkout_c__checkout_id__pay_post","parameters":[{"name":"checkout_id","in":"path","required":true,"schema":{"type":"string","title":"Checkout Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/webhooks":{"get":{"tags":["checkouts"],"summary":"List Webhooks","operationId":"list_webhooks_v1_webhooks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Webhooks V1 Webhooks Get"}}}}}},"post":{"tags":["checkouts"],"summary":"Create Webhook","operationId":"create_webhook_v1_webhooks_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Create Webhook V1 Webhooks Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/r/{payment_id}":{"get":{"tags":["checkouts"],"summary":"Receipt","operationId":"receipt_r__payment_id__get","parameters":[{"name":"payment_id","in":"path","required":true,"schema":{"type":"string","title":"Payment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/c/{checkout_id}/prepare":{"post":{"tags":["checkouts"],"summary":"Prepare Payment","description":"Build the EIP-712 typed data for a browser wallet to sign.\n\nSigns nothing and holds no key — it only computes the nonce commitment so\nthe browser doesn't have to reimplement consensus-critical crypto in JS.","operationId":"prepare_payment_c__checkout_id__prepare_post","parameters":[{"name":"checkout_id","in":"path","required":true,"schema":{"type":"string","title":"Checkout Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrepareRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Prepare Payment C  Checkout Id  Prepare Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/checkouts/{checkout_id}":{"patch":{"tags":["checkouts"],"summary":"Patch Checkout Offer","description":"Update offer-card fields on an existing checkout (same object, no catalogue).","operationId":"patch_checkout_offer_v1_checkouts__checkout_id__patch","parameters":[{"name":"checkout_id","in":"path","required":true,"schema":{"type":"string","title":"Checkout Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutOfferPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Patch Checkout Offer V1 Checkouts  Checkout Id  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/keys":{"get":{"tags":["keys"],"summary":"List Keys","operationId":"list_keys_v1_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Keys V1 Keys Get"}}}}}},"post":{"tags":["keys"],"summary":"Create Key","operationId":"create_key_v1_keys_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeyCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Create Key V1 Keys Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/keys/{key_id}":{"delete":{"tags":["keys"],"summary":"Revoke Key","operationId":"revoke_key_v1_keys__key_id__delete","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/origin-keys":{"get":{"tags":["origin-keys"],"summary":"List Origin Keys","operationId":"list_origin_keys_v1_origin_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Origin Keys V1 Origin Keys Get"}}}}}},"post":{"tags":["origin-keys"],"summary":"Create Origin Key","description":"Store an upstream credential once, reference it from many checkouts.","operationId":"create_origin_key_v1_origin_keys_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OriginKeyCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Create Origin Key V1 Origin Keys Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/origin-keys/{secret_id}":{"patch":{"tags":["origin-keys"],"summary":"Rotate Origin Key","description":"Replace the value. Every checkout referencing this key uses the new one\nfrom its next forward — no per-checkout edit.","operationId":"rotate_origin_key_v1_origin_keys__secret_id__patch","parameters":[{"name":"secret_id","in":"path","required":true,"schema":{"type":"string","title":"Secret Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OriginKeyRotate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Rotate Origin Key V1 Origin Keys  Secret Id  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["origin-keys"],"summary":"Revoke Origin Key","operationId":"revoke_origin_key_v1_origin_keys__secret_id__delete","parameters":[{"name":"secret_id","in":"path","required":true,"schema":{"type":"string","title":"Secret Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Revoke Origin Key V1 Origin Keys  Secret Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mcp":{"post":{"tags":["mcp"],"summary":"Mcp Endpoint","operationId":"mcp_endpoint_mcp_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/magic-link/request":{"post":{"tags":["auth"],"summary":"Request Magic Link","operationId":"request_magic_link_auth_magic_link_request_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MagicLinkRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Request Magic Link Auth Magic Link Request Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/verify":{"post":{"tags":["auth"],"summary":"Verify","operationId":"verify_auth_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Verify Auth Verify Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/wallet/challenge":{"post":{"tags":["auth"],"summary":"Wallet Challenge","description":"Agent-native bootstrap, step 1: get a single-use message to sign.","operationId":"wallet_challenge_auth_wallet_challenge_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletChallengeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Wallet Challenge Auth Wallet Challenge Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/wallet/verify":{"post":{"tags":["auth"],"summary":"Wallet Verify","description":"Agent-native bootstrap, step 2: trade the signed challenge for an account\n+ the FIRST automation key (shown once). The signing wallet is registered as\na verified default payout wallet. Re-signing later mints a fresh key — this\nis also key recovery for wallet-only accounts.","operationId":"wallet_verify_auth_wallet_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletVerifyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Wallet Verify Auth Wallet Verify Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/logout":{"post":{"tags":["auth"],"summary":"Logout","operationId":"logout_auth_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/me":{"get":{"tags":["auth"],"summary":"Me","description":"The signed-in provider's own profile — the whole record, not a stub.\n\n`/auth/me` IS the profile resource, so it returns everything PATCH can\nchange. Returning three fields meant a CLI had no way to show a profile\nbefore editing it.","operationId":"me_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Me Auth Me Get"}}}}}},"patch":{"tags":["auth"],"summary":"Update Me","description":"Patch your own profile. Only provided fields change.\n\nEmpty string clears a text/URL field; omitted leaves it alone. `verified` is\nabsent by design — it's a manual review, never self-serve.","operationId":"update_me_auth_me_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProfileRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Update Me Auth Me Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/.well-known/oauth-protected-resource/mcp":{"get":{"tags":["oauth"],"summary":"Protected Resource","operationId":"protected_resource__well_known_oauth_protected_resource_mcp_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/oauth-protected-resource":{"get":{"tags":["oauth"],"summary":"Protected Resource","operationId":"protected_resource__well_known_oauth_protected_resource_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/oauth-authorization-server/mcp":{"get":{"tags":["oauth"],"summary":"Authorization Server","operationId":"authorization_server__well_known_oauth_authorization_server_mcp_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/oauth-authorization-server":{"get":{"tags":["oauth"],"summary":"Authorization Server","operationId":"authorization_server__well_known_oauth_authorization_server_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/oauth/register":{"post":{"tags":["oauth"],"summary":"Register","operationId":"register_oauth_register_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/oauth/authorize":{"get":{"tags":["oauth"],"summary":"Authorize","operationId":"authorize_oauth_authorize_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/oauth/consent":{"post":{"tags":["oauth"],"summary":"Consent","operationId":"consent_oauth_consent_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/oauth/token":{"post":{"tags":["oauth"],"summary":"Token","operationId":"token_oauth_token_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/x402/base/supported":{"get":{"tags":["facilitator:base"],"summary":"Base Supported","operationId":"base_supported_x402_base_supported_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Base Supported X402 Base Supported Get"}}}}}}},"/x402/base/verify":{"post":{"tags":["facilitator:base"],"summary":"Base Verify","operationId":"base_verify_x402_base_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FacilitatorRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Base Verify X402 Base Verify Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/x402/base/settle":{"post":{"tags":["facilitator:base"],"summary":"Base Settle","operationId":"base_settle_x402_base_settle_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FacilitatorRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Base Settle X402 Base Settle Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/x402/stellar/supported":{"get":{"tags":["facilitator:stellar"],"summary":"Stellar Supported","operationId":"stellar_supported_x402_stellar_supported_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Stellar Supported X402 Stellar Supported Get"}}}}}}},"/x402/stellar/verify":{"post":{"tags":["facilitator:stellar"],"summary":"Stellar Verify","operationId":"stellar_verify_x402_stellar_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FacilitatorRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Stellar Verify X402 Stellar Verify Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/x402/stellar/settle":{"post":{"tags":["facilitator:stellar"],"summary":"Stellar Settle","operationId":"stellar_settle_x402_stellar_settle_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FacilitatorRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Stellar Settle X402 Stellar Settle Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/x402/solana/supported":{"get":{"tags":["facilitator:solana"],"summary":"Solana Supported","operationId":"solana_supported_x402_solana_supported_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Solana Supported X402 Solana Supported Get"}}}}}}},"/x402/solana/verify":{"post":{"tags":["facilitator:solana"],"summary":"Solana Verify","operationId":"solana_verify_x402_solana_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FacilitatorRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Solana Verify X402 Solana Verify Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/x402/solana/settle":{"post":{"tags":["facilitator:solana"],"summary":"Solana Settle","operationId":"solana_settle_x402_solana_settle_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FacilitatorRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Solana Settle X402 Solana Settle Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/":{"get":{"tags":["meta"],"summary":"Root","description":"The service root is the self-describing JSON map (how to buy, how to\nsell) in one request.\n\nNo HTML face here: the marketing landing page is a separate static\ndeployment on the brand domain (`scripts/build_site.py`), so this\nservice never renders marketing. The two-faces principle still holds\nwhere it earns its keep — on `/c/:id`, which must serve a human pay page\nand an agent 402 for the same checkout.","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"CheckoutCreate":{"properties":{"price_usd":{"type":"string","title":"Price Usd"},"pay_to":{"type":"string","title":"Pay To"},"title":{"type":"string","title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"fulfillment":{"type":"string","title":"Fulfillment","default":"inline"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{},"type":"array"},{"type":"string"},{"type":"null"}],"title":"Payload"},"origin_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Origin Url"},"origin_method":{"type":"string","title":"Origin Method","default":"GET"},"origin_auth_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Origin Auth Type"},"origin_auth_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Origin Auth Value"},"origin_auth_header":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Origin Auth Header"},"origin_auth_secret_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Origin Auth Secret Id"},"reusable":{"type":"boolean","title":"Reusable","default":false},"max_deliveries":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Deliveries"},"test_mode":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Test Mode"},"expires_in_minutes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires In Minutes"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{},"type":"array"},{"type":"string"},{"type":"null"}],"title":"Input Schema"},"output_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{},"type":"array"},{"type":"string"},{"type":"null"}],"title":"Output Schema"},"example_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{},"type":"array"},{"type":"string"},{"type":"null"}],"title":"Example Input"},"example_output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{},"type":"array"},{"type":"string"},{"type":"null"}],"title":"Example Output"},"freshness":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Freshness"},"coverage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coverage"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"constraints":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Constraints"}},"type":"object","required":["price_usd","pay_to","title"],"title":"CheckoutCreate"},"CheckoutOfferPatch":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{},"type":"array"},{"type":"string"},{"type":"null"}],"title":"Input Schema"},"output_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{},"type":"array"},{"type":"string"},{"type":"null"}],"title":"Output Schema"},"example_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{},"type":"array"},{"type":"string"},{"type":"null"}],"title":"Example Input"},"example_output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{},"type":"array"},{"type":"string"},{"type":"null"}],"title":"Example Output"},"freshness":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Freshness"},"coverage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coverage"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"constraints":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Constraints"}},"additionalProperties":false,"type":"object","title":"CheckoutOfferPatch"},"FacilitatorRequest":{"properties":{"network":{"$ref":"#/components/schemas/Network"},"requirement":{"additionalProperties":true,"type":"object","title":"Requirement"},"payload":{"additionalProperties":true,"type":"object","title":"Payload"}},"type":"object","required":["network","requirement","payload"],"title":"FacilitatorRequest","description":"The 402 `requirement` the relay issued plus the buyer's signed `payload`."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"KeyCreate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"scope":{"type":"string","title":"Scope","default":"payments"},"mode":{"type":"string","title":"Mode","default":"test"}},"type":"object","title":"KeyCreate"},"MagicLinkRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"return_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Return To"}},"type":"object","required":["email"],"title":"MagicLinkRequest"},"Network":{"type":"string","enum":["eip155:8453","eip155:84532","stellar:pubnet","stellar:testnet","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1"],"title":"Network","description":"CAIP-2 network IDs. Base + Stellar at launch; Solana added behind the\n`expose_solana` gate (hidden until its facilitator + smoketest land)."},"OriginKeyCreate":{"properties":{"auth_type":{"type":"string","title":"Auth Type"},"value":{"type":"string","title":"Value"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"header_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Header Name"}},"additionalProperties":false,"type":"object","required":["auth_type","value"],"title":"OriginKeyCreate"},"OriginKeyRotate":{"properties":{"value":{"type":"string","title":"Value"}},"additionalProperties":false,"type":"object","required":["value"],"title":"OriginKeyRotate"},"PrepareRequest":{"properties":{"payer":{"type":"string","title":"Payer"},"network":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Network"},"params":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Params"}},"type":"object","required":["payer"],"title":"PrepareRequest"},"UpdateProfileRequest":{"properties":{"slug":{"anyOf":[{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{1,38}$"},{"type":"null"}],"title":"Slug"},"name":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Name"},"profile_type":{"anyOf":[{"type":"string","pattern":"^(individual|team|company)$"},{"type":"null"}],"title":"Profile Type"},"bio":{"anyOf":[{"type":"string","maxLength":600},{"type":"null"}],"title":"Bio"},"avatar_url":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}],"title":"Avatar Url"},"website_url":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}],"title":"Website Url"},"social_links":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Social Links"}},"type":"object","title":"UpdateProfileRequest","description":"Patch the provider's public profile (the share-worthy /u/<slug> page).\n\nOnly provided fields change. To CLEAR a text/URL field send an empty string;\n`null`/omitted leaves it unchanged. `social_links` is replaced wholesale when\nprovided (send `{}` to clear all). `verified` is NOT here — it's a manual team\nreview set only via the admin surface, never self-serve.\n\n`slug` is your public HANDLE (the `/u/<slug>` page + the `/r/<slug>/…` call\nURLs). Changing it is allowed but **breaks any call URLs buyers have already\nsaved** — claim a good handle early. Lowercase `[a-z0-9-]`, 2–39 chars; must be\nunique and not a reserved word."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VerifyRequest":{"properties":{"token":{"type":"string","title":"Token"}},"type":"object","required":["token"],"title":"VerifyRequest"},"WalletChallengeRequest":{"properties":{"address":{"type":"string","maxLength":128,"minLength":4,"title":"Address"},"network":{"type":"string","maxLength":64,"minLength":3,"title":"Network"}},"type":"object","required":["address","network"],"title":"WalletChallengeRequest","description":"Ask for a wallet sign-in challenge (agent-native provider bootstrap)."},"WalletVerifyRequest":{"properties":{"message":{"type":"string","maxLength":4000,"minLength":1,"title":"Message"},"signature":{"type":"string","maxLength":2048,"minLength":1,"title":"Signature"}},"type":"object","required":["message","signature"],"title":"WalletVerifyRequest","description":"Return a signed challenge. `signature`: 0x-hex (EVM) / hex (Stellar)."},"WebhookCreate":{"properties":{"url":{"type":"string","title":"Url"},"events":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Events"}},"type":"object","required":["url"],"title":"WebhookCreate"}}}}