Payment controls and records

A working payment return page does not prove the callback works

The customer return and the server notification use different routes. A browser can reach the return page while the registered webhook destination responds with an HTTP 3xx redirect. Stripe treats that redirect response as a delivery failure. Compare the configured customer return URL with the notification destination and the response recorded for an actual event. Have the integration owner identify the final HTTPS endpoint that should receive the notification directly. A working return page does not prove webhook delivery, and a successful delivery acknowledgment does not prove the store completed the order work.

For: A research-only store owner or integration lead comparing successful customer returns with failed payment notifications.

Updated 2026-10-01

Identify which route produced the result

The customer return route is where checkout sends the browser. The notification destination is the server endpoint the provider contacts with an event. Even if both addresses share a domain, they serve different purposes. A screenshot of a thank-you page belongs to the browser route; the delivery result in the provider’s event record belongs to the notification route.

Stripe’s Checkout fulfillment guide says fulfillment cannot depend solely on a customer reaching the landing page, because a customer can pay without visiting it. The reverse inference is also unsupported: visiting the landing page does not establish that Stripe delivered a particular event to the store. Keep the browser observation, payment record and notification attempt as separate evidence.

Confirm that the reported failure actually concerns a webhook destination. If a plugin calls several different operations callbacks, ask its owner which provider event and destination the message describes. Do not apply Stripe’s webhook response rules to a different provider or to an unrelated browser navigation error.

Use the recorded redirect response to locate the handoff

For an affected existing event, preserve the destination address, attempt time and time zone, response status and any available redirect destination. Record which account and event type the attempt belongs to. The useful observation is the response Stripe received on that attempt, not the page an administrator eventually sees after opening a URL.

Stripe documents 3xx responses from webhook endpoints as failures. If the recorded response is a redirect, the integration owner should trace the configured address to the intended final HTTPS notification endpoint and identify the component issuing that redirect. Compare the host and path in the registration with the intended handler. An address that ultimately displays a page has not thereby demonstrated that the event reached its handler.

Until the owner has matched the routing configuration with the observed response, the redirect’s cause remains unconfirmed. Do not blame the theme, host or gateway from timing alone. A 4xx response, a timeout or a signature error is a different recorded failure and should retain its own description.

Define the repair without weakening notification verification

The repair target is direct delivery to the intended HTTPS handler, with the integration’s required verification still operating. Have the authorized integration owner determine the exact destination and the narrow routing or registration change needed. The customer return page need not be the notification endpoint, and replacing the webhook address with a thank-you page is not a substantiated repair.

Stripe’s verification guidance depends on the raw request body and the endpoint signing secret. Preserve those requirements while correcting routing; disabling verification to get a successful response would answer a different and inadequate question. Keep secrets in the integration’s authorized configuration, never in the worksheet or a support screenshot.

Use the provider’s delivery record for a genuine event to establish the post-change response. Stripe treats a 2xx response as delivery acknowledgment. That is one milestone. The integration’s own processing record and the matching store order are separate evidence of whether the event produced the intended result. Returning success alone is not an order-reconciliation method.

Separate future delivery from the existing affected events

A corrected destination does not prove what happened to earlier events. Build a bounded list from real failed attempts at the affected endpoint. State the earliest and latest observed failures without assuming they mark the exact start and end of the incident. Match those events to available payment and order references, and record any work already performed.

Stripe documents that events can be duplicated and arrive out of generation order. It also says manually resending an event does not cancel automatic retries. Before any recovery action, the integration owner must account for prior handling and later attempts. This page does not authorize a replay, new charge, refund or fulfillment action. Missing confirmation about prior work stays unresolved.

For a Prism checkout-review consultation, summarize the two routes, the observed response and the affected period without sending event payloads or customer records through the public form. Ask for the investigation and implementation responsibilities to be defined in the scope. Repairing delivery does not decide whether the provider supports the research-only business, and an inquiry does not itself repair the integration.

Two-route comparison

Complete this for one registered notification destination and actual affected events. Use redacted host/path references, not private URL tokens or payloads. The decision is whether the notification route returns a redirect and which endpoint should receive it directly; track order processing separately from delivery.

Worksheet entries are not submitted by Prism’s worksheet and are not saved by the site. Use record types, availability, anonymized observations, or match/mismatch results. Do not enter government identifiers, customer names or addresses, customer messages, receipt-access links, card or bank details, passwords, or keys. Send sensitive documents only through the provider’s verified secure channel.

Two-route comparison. The last column is for temporary notes.
Route or recordEvidence to preserveInterpretation and next checkYour finding
Customer return routeThe configured return host/path and an actual observation of the browser arriving.Shows browser navigation only. Do not use it as evidence of notification delivery.
Notification destinationThe registered endpoint host/path, associated account scope and relevant event type.Identifies where the provider tried to send the event. Compare with the intended handler, not the return page.
Observed HTTP responseThe actual delivery attempt’s timestamp, time zone and status code.A Stripe 3xx webhook response is a delivery failure; a different code requires its own investigation.
Final resolved routeThe redirect destination, where available, and the integration owner’s routing trace.Establish whether it is the intended HTTPS handler. A browser-visible page alone does not confirm this.
Routing change and ownerThe exact destination or routing correction authorized for the integration.Keep signature verification intact and record what changed, by whom and when.
Post-change deliveryThe genuine event delivery result after the correction.A 2xx acknowledges endpoint delivery; separately inspect downstream processing and the corresponding order.
Affected existing eventsRedacted references to real failures at this destination, their observed period and any later attempts.Bound the known affected set. Do not infer that every order in the period failed or that earlier attempts did no work.
Recovery decisionThe owner’s record of prior processing, pending retries and the authorized action for each unresolved event.Duplicate and out-of-order delivery must be accounted for before recovery. Manual resending does not cancel automatic retries.

These are temporary notes. Leaving or reloading this page may clear them. Worksheet entries are not sent automatically. If you copy notes into the consultation message and submit the form, Prism receives them as part of your request.

Limits

  • The documented 3xx failure behavior is for Stripe webhooks. Another provider or plugin needs its own destination and delivery documentation.
  • A successful browser return, a 2xx delivery acknowledgment and completed order processing establish different things. None establishes processing eligibility.
  • Do not replay events, weaken verification, charge, refund or fulfill from this worksheet. Keep signing secrets, API keys, private URL tokens, full payloads and customer records out of public inquiries.

Sources

  • Stripe event delivery and verification — checked 2026-09-29. Stripe treats 3xx webhook responses as delivery failures. A 2xx acknowledges delivery rather than downstream completion. Verification uses the raw body and endpoint secret; events can repeat or arrive out of order, and manual resending does not cancel automatic retries.
  • Fulfill orders with Checkout — checked 2026-09-21. Stripe says fulfillment cannot rely solely on the customer reaching the landing page, because the customer may pay without visiting it. The browser return is not sufficient fulfillment evidence.

Get help with checkout

Is this happening on your own store?