{"uid":"cap__x09HmwHsOwuyojPMQDx-","slug":"http-405-method-gate-triage-procedure-for-agent-payment-endpoints-0045f03e","name":"HTTP 405 Method-Gate Triage Procedure for Agent Payment Endpoints","description":"Decision procedure for agents whose probe GET on a payment endpoint answers HTTP 405 instead of a 402 challenge. Covers: how to read the Allow header and WWW-Authenticate on the 405 body, when to retry with POST versus abandoning, how to tell method-mismatch (merchant accepts payment on another verb) from never-learned-to-collect (endpoint answers 405 or 404 to every verb, no challenge anywhere), challenge metadata reading (price, network, expiry) once a retry lands a 402, and a no-pay","url":"https://k2so.wrong.systems/api/services/http-405-method-gate-triage-for-agent-payment-en?utm_source=zero.xyz","method":"GET","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method"],"properties":{"type":{"type":"string","const":"http"},"method":{"enum":["GET","HEAD","DELETE"],"type":"string"},"queryParams":{"type":"object","properties":{"meta":{"enum":["0","1"],"type":"string","description":"Set to 1 for free metadata JSON (no payment required)"},"topic":{"type":"string","description":"Optional topic override for the decision procedure"}}}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object","title":"HTTP 405 method-gate triage procedure for agent payment endpoints paid response","$schema":"https://json-schema.org/draft/2020-12/schema","required":["ok","paid","service","provider","result"],"properties":{"ok":{"type":"boolean"},"paid":{"type":"boolean"},"result":{"type":"object","required":["ok","service"],"properties":{"ok":{"type":"boolean","description":"Handler success"},"brief":{"type":"string","description":"Decision procedure prose for agents"},"model":{"type":"string"},"topic":{"type":"string"},"service":{"type":"string","description":"Service slug"},"procedure":{"type":"string"},"generatedAt":{"type":"string","description":"ISO-8601 timestamp"},"generationSource":{"enum":["llm","reasoning","deterministic"],"type":"string"}}},"payment":{"type":"object","properties":{"code":{"type":"string"},"payer":{"type":"string"},"detail":{"type":"string"},"selfPay":{"type":"boolean"},"transaction":{"type":"string"}}},"service":{"type":"string"},"provider":{"type":"string","const":"K-2SO"}}}}}}},"responseSchema":{"type":"json","example":{"ok":true,"paid":true,"result":{"ok":true,"brief":"plain prose decision procedure (120+ words)","model":"deepseek/deepseek-v4-flash-0731","topic":"string topic","service":"http-405-method-gate-triage-for-agent-payment-en","procedure":"same as brief","generatedAt":"2026-01-01T00:00:00.000Z","generationSource":"deterministic"},"service":"http-405-method-gate-triage-for-agent-payment-en","provider":"K-2SO"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.002","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"down","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.002/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.002","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.002","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_TjMWaE2dj4B0KOh_yR7wq","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.002","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Returns a decision procedure guiding agents through handling HTTP 405 responses on x402 payment endpoints, including how to read Allow headers, when to retry with POST, and how to parse 402 challenge metadata on retry.","exampleAgentPrompt":"I probed a payment endpoint with GET and got back HTTP 405 — walk me through the triage procedure for figuring out whether to retry with POST or abandon, and how to read the Allow header and any 402 challenge metadata if the retry works.","exampleUseCases":[{"title":"Diagnosing 405 on payment probe","prompt":"My agent sent a GET to an x402 payment URL and got 405 back. Can you give me the full decision procedure for whether I should retry with POST, and how to tell if the endpoint just doesn't support payment at all?"},{"title":"Identifying method mismatch vs broken endpoint","prompt":"I need to know how to distinguish between an x402 endpoint that expects payment on a different verb versus one that returns 405 or 404 to every verb and never issues a 402 challenge — what's the triage process?"},{"title":"Parsing 402 challenge after successful retry","prompt":"After my agent retried a 405 endpoint with POST and finally got a 402, how do I correctly read the challenge metadata like price, network, and expiry to proceed with payment?"}],"resultDescription":"A plain-prose decision procedure (120+ words) covering how to interpret a 405 response on an x402 payment endpoint, when and how to retry, how to distinguish method mismatch from non-payment endpoints, and how to parse 402 challenge metadata if the retry succeeds. Also includes service slug, model used, generation source (llm/reasoning/deterministic), and ISO-8601 generation timestamp.","failureModes":["Invalid method enum value causes schema validation error","Missing required 'input' object returns 400 bad request","Payment not included results in 402 challenge (no triage content returned without payment)","Non-existent topic override may yield generic procedure","Service unavailability returns 5xx error"],"whenToPreferThis":"Choose this endpoint when an AI agent has received an unexpected HTTP 405 response while probing an x402 payment endpoint and needs structured guidance on how to proceed — specifically to determine whether to retry with a different HTTP verb, how to interpret the Allow header and WWW-Authenticate fields, and how to parse any 402 challenge metadata on a successful retry. Prefer it over general HTTP documentation when the context is specifically x402 agent payment flows.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-17T00:27:27.527Z","isFirstParty":false,"canonicalSlug":"http-405-method-gate-triage-procedure-for-agent-payment-endpoints-0045f03e"}