RyzeDeskRyzeDesk

Stripe

4105 articles

Customise redirect behaviour


Customise redirect behaviour

Display a confirmation page with your customer's order information.

If you have a Checkout integration that uses a hosted page, Stripe redirects your customer to a success page that you create and host on your site. You can use the details from a Checkout Session to display an order confirmation page for your customer (for example, their name or payment amount) after the payment.

Redirect customers to a success page

To use the details from a Checkout Session:

  1. Modify the success_url to pass the Checkout Session ID to the client side.
  2. Look up the Checkout Session using the ID on your success page.
  3. Use the Checkout Session to customize what’s displayed on your success page.

Webhooks are required for fulfilment

You can’t rely on triggering fulfilment only from your checkout landing page, because your customers aren’t guaranteed to visit that page. For example, someone can pay successfully and then lose their connection to the internet before your landing page loads.

Set up a webhook event handler so Stripe can send payment events directly to your server, bypassing the client entirely. Webhooks provide the most reliable way to confirm when you get paid. If webhook event delivery fails, Stripe retries multiple times.

Modify the success URL Server-side

Add the {the related setting} template variable to the success_url when you create the Checkout Session. This is a literal string and you must add it exactly as you see it here. Don’t substitute it with a Checkout Session ID – this happens automatically after your customer pays and is redirected to the success page.

Select a language

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

Create the success page Server-side

Look up the Checkout Session using the ID and create a success page to display the order information. This example prints out the customer’s name:

Select a language

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

# This example sets up an endpoint using the Sinatra framework.


# Don't put any keys in code. See https://docs.stripe.com/keys-best-practices.
client = Stripe::StripeClient.new('sk_test_Ou1w6LVt3zmVipDVJsvMeQsc')

require 'sinatra'

get '/order/success' do
 session = client.v1.checkout.sessions.retrieve(params[:session_id])
 customer_account = client.v2.core.accounts.retrieve(session.customer_account)

 "<html><body><h1>Thanks for your order, #{customer_account.display_name}!</h1></body></html>"
end

Test the integration

To confirm that your redirect is working as expected:

  1. Click the checkout button.
  2. Fill in the customer name and other payment details.
  3. Click Pay .

If it works, you’re redirected to the success page with your custom message. For example, if you used the message in the code samples, the success page displays this message: Thanks for your order, Jenny Rosen!

Last verified 2026-09-27

Is this helpful?