# Finalize payments on the server Build an integration where you render the Payment Element before you create a PaymentIntent or SetupIntent, then confirm the Intent from your server. ## Index This article has multiple variants. Fetch one of the following URLs to view specific content for your use case: - Web: - [Accept a payment](https://docs.stripe.com/payments/finalize-payments-on-the-server-legacy.md?platform=web&type=payment) - [Set up a payment method](https://docs.stripe.com/payments/finalize-payments-on-the-server-legacy.md?platform=web&type=setup) - [Create a subscription](https://docs.stripe.com/payments/finalize-payments-on-the-server-legacy.md?platform=web&type=subscription) - iOS: - [Accept a payment](https://docs.stripe.com/payments/finalize-payments-on-the-server-legacy.md?platform=ios&type=payment) - [Set up a payment method](https://docs.stripe.com/payments/finalize-payments-on-the-server-legacy.md?platform=ios&type=setup) - Android: - [Accept a payment](https://docs.stripe.com/payments/finalize-payments-on-the-server-legacy.md?platform=android&type=payment) - [Set up a payment method](https://docs.stripe.com/payments/finalize-payments-on-the-server-legacy.md?platform=android&type=setup) - React Native: - [Accept a payment](https://docs.stripe.com/payments/finalize-payments-on-the-server-legacy.md?platform=react-native&type=payment) - [Set up a payment method](https://docs.stripe.com/payments/finalize-payments-on-the-server-legacy.md?platform=react-native&type=setup)