Best Practices

Follow these Best practices while doing TPV integration.

Given below are some of the best practices to be followed for a smooth TPV integration and payment experience:

Capture Payment Using Payment Capture Settings

When a payment made by your customer is authorised, it needs to be captured for it to be settled to your bank account. Use the

to configure the capture settings at an account level using the Razorpay Dashboard.

Integrate Orders API

Orders help in binding multiple payment attempts against a single order. This helps to prevent multiple payments. Integrate with Orders API on your server-side and pass the order_id to Checkout.

Verify Signature to Avoid Data Tampering

This is a mandatory step that allows you to confirm the authenticity of the details returned to the Checkout form for successful payments. Know more about how to


Check Payment/Order Status Before Providing Services

Check the payment/order status if the payment's status is captured and the order's status is paid before providing the services to the customers.

You can determine payment and order status using:

Use Webhooks

Use Webhooks or API query to avoid any cases of callback failure (drop-offs can be dues to connectivity or network failure) and to verify the payment details using an S2S call. Following are some of the Webhook events you should enable:

  • payment.captured
  • payment.failed
  • order.paid

Know more about


Use Callback URL

Use the callback_url if your customers make online payments on browsers such as Instagram, Facebook Messenger, Opera, UC browsers and so on. This is because these browsers do not support i-frame.

Was this page helpful?