Skip to main content

Introduction

The Dodo Payments for WooCommerce plugin adds Dodo Payments as a payment method to your store’s checkout. Customers pay on the Dodo Payments checkout page, which shows the payment methods available for their location, currency, and device, such as cards, digital wallets, and UPI. Webhooks from Dodo Payments then update the order status in WooCommerce.
The plugin requires WordPress 6.1 or later, PHP 7.4 or later, and WooCommerce 7.9 or later. To sell subscriptions, you also need the WooCommerce Subscriptions extension.
The plugin works with the classic WooCommerce checkout. It doesn’t support the block-based checkout or physical product shipping, and it accepts only one percentage discount code per order.

Step-by-Step Installation Guide

  1. Download dodo-payments-for-woocommerce.zip from the latest release on GitHub.

    Download Plugin

    Get the latest version of the Dodo Payments plugin for WooCommerce
    You can also install the plugin from the WordPress plugin directory. On the Add Plugins page, search for Dodo Payments for WooCommerce, click Install Now, then click Activate, and continue with the configuration guide.

    WordPress Plugin Directory

    Install Dodo Payments for WooCommerce from WordPress.org
  2. Log in to your WordPress site as an administrator. WooCommerce must be installed and active.
  3. Go to Plugins → Add New Plugin.
    WordPress admin sidebar with the Plugins menu open
  4. Click Upload Plugin. An upload form appears.
    Add Plugins page with the Upload Plugin button
    Plugin upload form with a Browse button and an Install Now button
  5. Click Browse… and select the zip file you downloaded.
  6. Click Install Now.
    Plugin upload form with the plugin zip file selected and the Install Now button
  7. When the installation finishes, click Activate Plugin. You can also activate the plugin later from Plugins → Installed Plugins.
    Plugin installed successfully message with the Activate Plugin button
  8. The plugin is installed but not configured yet. Continue with the configuration guide below.

Configuration Guide

Setting Up API Keys and Webhooks

The plugin needs two values from each Dodo Payments mode: an API key to create checkouts, and a webhook signing key to verify the webhooks that update your orders. These steps set up live mode.
  1. Go to WooCommerce → Settings → Payments, or click Payments under WooCommerce in the sidebar.
    WooCommerce payment settings with Dodo Payments active and a Manage button
    WooCommerce sidebar menu with Payments highlighted
  2. Turn on Dodo Payments if it isn’t active, then click Manage.
  3. The plugin settings open, with a description under each option. Check that Enable Dodo Payments is selected, then start with Live API Key.
    Dodo Payments plugin settings with the Enable/Disable, Title, Description, Instructions, Test Mode, and Live API Key fields
  4. In the Dodo Payments dashboard, turn on the Live Mode switch in the sidebar. Go to Developer → API Keys, or use this direct link, and click Add API key.
    Dodo Payments API Keys page with no keys and an Add API key button
  5. Enter a name for the key, such as WooCommerce Plugin, and click Create.
    Create New API dialog with the key name WooCommerce Plugin and a Create button
  6. Click Copy API Key. The dashboard shows the key only once. Paste it into Live API Key in the plugin settings.
    New API key dialog with the Copy API Key and Close buttons
    Live API Key field in the plugin settings
  7. Next, set up the webhook signing key. Dodo Payments sends payment updates to your store by webhook, and the plugin uses the key to verify that each webhook comes from Dodo Payments.
  8. At the bottom of the plugin settings, under Webhook Endpoint, copy the URL. It has the form https://your-store.com/?wc-api=dodo_payments.
    Webhook Endpoint URL at the bottom of the plugin settings, above the Save changes button
  9. In the Dodo Payments dashboard, still in live mode, go to Developer → Webhooks and click Add endpoint.
    Webhooks page in live mode with no endpoints and an Add endpoint button
  10. Paste the URL from step 8 into Endpoint URL. Leave Subscribed events empty to receive every event, or select only the payment, refund, and subscription events, which are the events the plugin handles. Then click Create endpoint.
    Add endpoint dialog with the WooCommerce webhook URL in Endpoint URL
  11. The endpoint’s Overview tab opens. Under Signing secret, click the eye icon to reveal the secret, then click the copy icon.
    Endpoint Overview tab with the hidden signing secret, the reveal and copy icons, and Rotate secret
  12. Paste the secret into Live Webhook Signing Key in the plugin settings, then click Save changes.
    Live Webhook Signing Key field in the plugin settings
  13. Review Global Tax Category and All Prices are Tax Inclusive. The plugin applies them when it creates a product in Dodo Payments, which happens the first time a customer checks out with the product. After that, the product keeps the tax settings it has in the Dodo Payments dashboard, where you can change them per product. Test API Key and Test Webhook Signing Key are needed only for Test Mode.
    Test API Key, Test Webhook Signing Key, Global Tax Category, and All Prices are Tax Inclusive settings
Under Checkout Feature Flags, you can also control options of the Dodo Payments checkout page, such as Allow Currency Selection and Allow Discount Codes. A flag left at Default isn’t sent, so Dodo Payments applies its own default.
To take test payments, turn on Test Mode in the plugin settings. The plugin then uses Test API Key and Test Webhook Signing Key, and connects to the Dodo Payments test environment. Test mode has its own API keys and webhook endpoints. To get them, turn off the Live Mode switch in the dashboard, follow steps 4 to 12 in test mode, and paste the values into the test fields. Turn off Test Mode before you go live.

You’re All Set!

Customers can now choose Dodo Payments at checkout.
WooCommerce checkout page with the billing form and the Place order button
When a customer places an order, the plugin sends them to the Dodo Payments checkout page to pay. After the payment, Dodo Payments sends a webhook, and the plugin updates the order status.
Dodo Payments checkout page with card, UPI QR code, and UPI ID payment options

Key Features

  • Hosted Checkout: Customers pay on a Dodo Payments checkout page, then return to your store’s order confirmation page.
  • Multiple Payment Methods: The checkout shows the payment methods available for each customer’s location, currency, and device.
  • Order Status Sync: Webhooks set the order to Completed, Processing, Failed, or Cancelled as the payment status changes. Failed and cancelled payments return the items to stock.
  • Refunds: Issue refunds from the Dodo Payments dashboard. When a refund succeeds, the plugin sets the order to Refunded.
  • Subscriptions: With WooCommerce Subscriptions, status changes sync in both directions, including when a subscription is cancelled, suspended, or reactivated. Changes to subscription dates in WooCommerce aren’t synced.
  • Order Notes: The plugin adds order notes for each checkout session, status change, and error, so you can follow each payment from the order page.
  • Multi-currency Support: Products sync to Dodo Payments in your WooCommerce store currency. The Allow Currency Selection flag controls whether customers can change the currency at checkout.

Troubleshooting

Common Issues

  1. Payment Processing Failures
    • Check that the API key matches the plugin mode. With Test Mode off, the plugin uses Live API Key, which must come from the dashboard in live mode. With Test Mode on, it uses Test API Key.
    • Check the order notes. When the plugin can’t create a checkout, it adds a note with the error, such as one that starts with Dodo Payments Error:.
    • If Dodo Payments doesn’t appear at checkout, check that your checkout page uses the classic checkout, not the Checkout block.
    • If the order has a discount code, check that it’s a single percentage code.
    • Live payments start after your account passes Account Verification.
  2. Webhook Synchronization Problems
    • Check that Endpoint URL is the exact URL under Webhook Endpoint in the plugin settings.
    • Check that the signing key in the plugin matches the endpoint’s Signing secret, and that both come from the same mode.
    • Check your PHP error log for lines that start with Dodo Payments:, such as Dodo Payments: Could not verify webhook event. In live mode, the plugin returns 200 even when verification fails, so the Dodo Payments logs show the delivery as successful. In Test Mode, it returns 401.
    • Check that your site has a valid SSL certificate. Endpoint URL accepts only HTTPS URLs.
    • Check that your server, firewall, and security plugins accept POST requests to the webhook URL from the Dodo Payments IP addresses.
    • Open the Logs tab in Developer → Webhooks to see each delivery and your site’s response.

Support Resources

For more help:

Maintenance Best Practices

  1. Update the plugin when a new version is released, to get security fixes and new features.
  2. Test all payment flows in Test Mode before you take live payments.
  3. Keep WordPress and WooCommerce up to date.
  4. Back up your site regularly.
  5. Watch your orders and the Dodo Payments dashboard for unusual activity.
  6. Store API keys securely, and never share them publicly.
Last modified on September 26, 2026