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:

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.

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

.

Check the payment/order status, that is, 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:

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

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

Know more about

.

Implement callback_url if your customer's make online payments on browsers such as Instagram, Facebook Messenger, Opera, UC browsers and so on. These browsers do not support i-frame.

Follow these best practices if you accept UPI collect payments from customers:

  1. Validate the VPA before initiating the payment request. Know more about .
  2. Add a custom UPI Collect expiry based on the business requirement to provide enough time for the customer to complete the payment.
  3. Use the feature provided by Razorpay to provide a better customer experience and avoid payment failures.

Is this integration guide useful?