# Manually approve payments on your server Run custom logic on your server before finalizing a payment. Before finalizing payment, you can run custom logic on your server based on information collected from the customer. Use manual approval to: - Run your own custom or third-party fraud prevention logic - Perform inventory checks to make sure you have sufficient inventory to fulfill an order before confirming payment - Make sure that you can support a customer’s chosen payment information before confirming payment ### Feature compatibility You can use manual approval with the [dynamic line items](https://docs.stripe.com/payments/checkout/dynamically-update-line-items.md) feature. > #### Payment Intents API > > Manual approval isn’t available for the Payment Intents API. However, you can run custom logic by [finalizing payments on your server](https://docs.stripe.com/payments/finalize-payments-on-the-server.md) with the Payment Intents API. ### Use manual approval We're developing a feature that allows you to run custom logic on your server before finalizing payment. If you want to join the preview, enter your email address below. ```bash curl https://docs.stripe.com/preview/register \ -X POST \ -H "Content-Type: application/json" \ -H "Referer: https://docs.stripe.com/payments/custom/manual-approval" \ -d '{"email": "EMAIL", "preview": "checkout_manual_approval_preview"}' ```