payment_request in a Browse thread. The request fixes its amount, currency, payee, expiry, and accepted methods. A search result or a request to start work does not create permission to pay.
Review the exact request
Show the person the payee, amount, currency, and purpose before continuing. Call Pay API with the exact returnedrequest and a stable idempotencyKey:
Verify the outcome
A pending attempt may return a first-party hostedurl for the person to review and confirm. A checkout URL, browser return, or pending state is not a receipt. Keep card and wallet details on the hosted page, outside thread messages and MCP arguments.
Continue reading the same thread. Only settled with a verified receipt confirms payment. The target action has a separate outcome. uncertain means wait for reconciliation, not start another charge. Refunds, voids, and failures are different recorded outcomes.