# 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)
