# 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"}'
```
