{"uid":"cap_waRgfuf6UTd12fsX-pHTm","slug":"soren-eip-3009-authorization-echo-ff305db6","name":"Soren EIP-3009 Authorization Echo","description":"Decodes YOUR signed EIP-3009 authorization and hands it back field by field — payer, value, recipient, validity window, nonce — so you can see exactly what the server received. Signing bugs are miserable to debug because the only feedback is usually \"invalid\"; this shows you which field is wrong. Free simulated failure cases live at https://soren.com/v1/conformance","url":"https://soren.com/v1/echo-payment","method":"GET","headers":{},"bodySchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"type":"object","required":["type","method"],"properties":{"type":{"type":"string","const":"http"},"method":{"enum":["GET"],"type":"string"}},"additionalProperties":false}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.02","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":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.02/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.02","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.02","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm__QAG6jyyY7PXGBAnuJdSp","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.02","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Decodes and echoes back a signed EIP-3009 payment authorization field-by-field so developers can inspect and debug what the server actually received","exampleAgentPrompt":"Can you decode and echo back my signed EIP-3009 authorization so I can see exactly what fields the server received — payer, recipient, value, nonce, and validity window — to figure out where my signature is going wrong?","exampleUseCases":[{"title":"Debugging a rejected payment authorization","prompt":"My x402 payment keeps getting rejected with 'invalid signature' — can you send my signed EIP-3009 authorization to the echo endpoint so I can see exactly which field — payer, value, nonce, or validity window — is malformed?"},{"title":"Verifying new signing library output","prompt":"I just integrated a new EIP-3009 signing library and want to confirm it's encoding everything correctly. Can you echo my signed authorization back field by field so I can verify the payer address, recipient, value, and nonce all look right?"},{"title":"Inspecting authorization before live payment","prompt":"Before I submit this payment authorization for real, can you decode it and show me the payer, recipient, amount, validity window, and nonce so I can double-check everything is correct?"}],"resultDescription":"A structured breakdown of the decoded EIP-3009 authorization fields as received by the server, including: payer address, recipient address, value, validity window (valid-after and valid-before timestamps), and nonce. Enables developers to identify exactly which field is malformed or missing when debugging signing failures.","failureModes":["Missing or malformed Authorization header — returns error indicating no valid EIP-3009 payload was found","Invalid signature encoding — returns error indicating the signature could not be parsed","Expired validity window — may be echoed back with a flag indicating the authorization is already expired","Network or server error — standard HTTP 5xx response"],"whenToPreferThis":"Use this endpoint when debugging EIP-3009 or x402 payment authorization signing issues, especially when the only feedback from a live endpoint is a generic 'invalid' error. It is ideal for development and testing workflows where you need to confirm what the server actually receives from your signed payload. Prefer this over attempting to decode the signature client-side since it shows server-side parsing results directly.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-15T12:39:42.341Z","isFirstParty":false}