1. Build Integration

A step-by-step guide on how to integrate WooCommerce-enabled WordPress site with Razorpay.


Follow the steps given below to integrate Razorpay Payment Gateway to your WooCommerce-enabled WordPress site using the Razorpay Subscription for WooCommerce plugin.

Follow these steps to complete the integration:

  1. .
  2. .
  3. .
  4. .

  1. . These 3 webhooks are auto configured for woocommerce subscription plugin:
    • subscription.cancelled
    • subscription.paused
    • subscription.resumed

There are two methods to install the Razorpay Subscription for WooCommerce plugin:

  • Install via WordPress Plugin Directory
  • Manual Installation

You can search for the plugin on the WordPress Admin Dashboard and add it.

  1. In the WordPress Admin Dashboard, navigate to PluginsAdd New.
  2. Search for Razorpay Subscriptions for WooCommerce and click Install Now.
  3. Click Activate.

  1. of the Razorpay WooCommerce Subscriptions Plugin from the repository on Github.
  2. Unzip this file and upload the contents in wp-content → Plugins.
  3. The plugin now appears in your WordPress DashboardPlugins folder.
  4. Click Activate.

On your WordPress Dashboard, navigate to WooCommerceSettingsPayments tab.

  1. Under the Payments tab, go to RazorpayAllow customers to securely pay via Razorpay and click Manage.


  2. On the Razorpay Payment Gateway page, fill in the following field details and click Save:

    FieldDescription
    Enable/DisableEnsure that the Enable this module? option is selected.
    TitleAdd the title that is visible to the customer during checkout of a product with type - Simple Product .
    DescriptionEnter a short description that is visible to the customer during checkout.
    Key IDEnter the Key ID generated from the Razorpay Dashboard.
    Key SecretEnter the API Key Secret generated from the Razorpay Dashboard.
    Payment ActionTo automatically capture successful payments, select Authorize and Capture option in the drop-down. Select Authorize if you want to capture payments manually from the or using .
    Order Completion MessageEnter the message that must be displayed after an order is successfully placed.
    Enable WebhookEnsure that Enable Razorpay Webhook option is selected. from the Razorpay Dashboard.
    Webhook SecretEnter the webhook secret here. Webhook secret is used for webhook signature verification. This must match with the one added on the Razorpay Dashboard.

  1. Under the Payments tab, go to Razorpay SubscriptionsAllow customers to securely pay via Razorpay and click Manage.

  2. On the Razorpay Subscriptions Payment Gateway page, fill in the following field details and click Save:

    FieldDescription
    Enable/DisableEnsure that the Enable this module? option is selected.
    TitleAdd the title that is visible to the customer during checkout of the subscription product with type Simple Subscription .
    DescriptionEnter a short description that is visible to the customer during checkout.

Let's assume Acme Corp. provides a streaming service called GoFlicks. There are two plans, GoFlicks PremiumWatch and GoFlicks StandardWatch. The details are mentioned below:

Plan NameRate/Month (₹)Free Trial (days)
GoFlicks PremiumWatch HD99915
GoFlicks StandardWatch499N/A

Let us create a Subscriptions product for GoFlicks PremiumWatch HD.

  1. In the WordPress Dashboard, navigate to ProductsAdd New.
  2. Enter the product name and add a brief description.
  3. In the Product data section, enter the following details and click Publish:
    1. Select Simple Subscription as the product type in the drop-down list.

    2. Select Virtual check box as GoFlicks is a streaming service.

    3. Under the General tab, enter the following details:

      1. Subscription Price: Enter the price, select every as the interval and month as the duration.

      2. Expire after: Select the period after which the subscription will expire. This period is in addition to any free trial or time provided before a synchronized first renewal date. Do not select Never Expire as it is not supported by Razorpay.

        Handy Tips

        WooCommerce supports Subscriptions for a maximum of 24 months.

      3. Sign-up fee: Add an amount to be charged at the outset of the subscription. This fee will be charged immediately, even if the product has a free trial.

      4. Free trial: Enter the period up to which the subscriber can use the product for free. The trial period cannot exceed 90 days, 52 weeks, 24 months or 5 years. A sign-up fee will still be charged from the outset of the subscription.

      5. Sale Price: Enter the discounted price at which you want to offer the product. For example, you may offer GoFlicks PremiumWatch HD at INR 899 per month for a limited period. You can schedule the special price by clicking Schedule and selecting the required dates on the calendar.

The product is created successfully. Similarly, create another Subscriptions product for GoFlicks StandardWatch.

  • Check that the products are visible on the website to the users so that they can add it to their cart.
  • to ensure that the integration is working properly.

You can track the payment status in three ways:

Handy Tips

  • On the Dashboard, ensure that the payment status is captured. Refer to the payment capture settings page to know how to .
  • Subscribe to our webhooks or poll the Fetch a Payment API to track the payment status.

To verify the payment status from the Dashboard:

  1. Log in to the and navigate to TransactionsPayments.
  2. Check if a Payment Id has been generated and note the status. In case of a successful payment, the status is marked as Captured.
Check if the payment id is generated and the status is captured

You can use Razorpay webhooks to configure and receive notifications when a specific event occurs. When one of these events is triggered, we send an HTTP POST payload in JSON to the webhook's configured URL. Know how to

If you have subscribed to the order.paid webhook event, you will receive a notification every time a customer pays you for an order.

to check the payment status.


Is this integration guide useful?