Watch this video to see how the Razorpay Checkout form works.
A customer visits your website or app, selects items they want to purchase and clicks the pay button to place an order. For each order placed by your customer, you create a transaction_id or checkout_id on your server for your reference. For example, #trn-345.
For each order placed by your customer, use the Razorpay Orders API to create an order from your Server.
Razorpay processes the details sent and returns an
order_id to you, for example, order_EKwxwAgItmmXdp. Map this
order_id to the transaction_id #trn-345, you had created in the previous step. Know more about order states..
order_id returned by Razorpay to your integration. This invokes the Razorpay Checkout, the client-side UI, which displays various payment methods and enables your customer to complete the payment. The payment details entered by the customer are secured and stored by Razorpay as tokens. The generated tokens are exchanged with your servers for further use.
Internally, Razorpay sends an authentication request to the customer's bank. After authentication, Razorpay is authorized to deduct the amount from the customer's bank account.
For successful payments, the Checkout returns the
Know more about payment states.
Once your customer completes the payment and Razorpay authenticates it, you must capture the payment either automatically or manually. You can also verify the payment signature. This allows you to ensure that the payment is received from an authentic source.
Know more about payment capture settings.
After the payment is successfully captured, the amount is settled to your account according to your settlement schedule.
Know more about settlements.
Customers may claim refunds after the transaction. In such cases, you can initiate a refund, post which the funds are sent back to the customer's account. Know more about refunds.