Connect Dodo Payments so customers can subscribe to your listing packages. This page walks you through it step by step.
Before you start
You will need a Dodo Payments account and a few minutes in both the plugin and the Dodo dashboard. You will move between three places: the plugin’s Settings tab, the plugin’s Products tab, and the Dodo dashboard.
Step 1: Choose Dodo in the plugin Settings
- Open the plugin’s Settings tab.
- In the provider logo toggle, choose Dodo. The Dodo fields appear below.
Step 2: Fill in the Dodo settings fields
Three fields control your Dodo connection.
- API mode – A dropdown with two choices: Test (the default) and Live. Test mode talks to the host
test.dodopayments.comand lets you try the whole flow without charging real cards. Live mode talks tolive.dodopayments.comand takes real payments. Start in Test, then switch to Live when you are ready to sell. - Bearer token– A password field. Paste your Dodo Payments API key for the mode you chose above. A test-mode key for Test, a live-mode key for Live.
- Webhook secret – The signing secret for your Dodo webhook. You get this in Step 4 when you create the webhook in Dodo, then paste it back here.

Where to find your bearer token
- Log in to your Dodo Payments dashboard.
- Make sure the dashboard is in the same mode you picked in the plugin (Test or Live).
- Open the API keys page and copy your API key.
- Paste it into the Bearer token field in the plugin and save.
Step 3: Register the webhook in Dodo
The webhook is how Dodo tells your site about new subscriptions, renewals, and cancellations. Without it, customers can pay but never receive their package access.
- In the Dodo dashboard, go to the webhooks section and add a new webhook.
- Set the endpoint URL to your site’s Dodo webhook address (see below).
- Subscribe it to the events listed below.
- Save the webhook, then copy its signing secret.
Webhook endpoint URL
Use this address, replacing YOUR-SITE.com with your real domain:
https://YOUR-SITE.com/wp-json/listeo-recurring-packages/v1/dodo/webhook
Events to subscribe to
Subscribe the webhook to all of these subscription events:
subscription.activesubscription.renewedsubscription.on_holdsubscription.pausedsubscription.updatedsubscription.plan_changedsubscription.cancelledsubscription.failedsubscription.expired
Dodo also sends payment.succeeded and checkout.completed events, which the plugin uses to confirm the very first payment. If your dashboard lets you include them, do so.
Step 4: Copy the signing secret back into the plugin
- After saving the webhook in Dodo, copy its signing secret (it may start with
whsec_). - Paste it into the plugin’s Webhook secret field on the Settings tab.
- Save the plugin settings.
Step 5: Create your product in Dodo and map it
The plugin does not create products in Dodo for you. You create the subscription product in Dodo, then tell the plugin which product belongs to each package.
- In the Dodo dashboard, create your subscription product with the price and billing interval you want.
- Open the product and copy its product ID. Dodo product IDs start with
pdt_. - In the plugin, open the Products tab and find the package you want to sell.
- Paste the product ID into Test Dodo Product ID or Live Dodo Product ID, matching the mode you are using.
- Save.

For the full details on mapping product IDs to packages and how the Test and Live ID fields work, see Products & packages.
Customers can manage their own subscription
Dodo provides a customer billing portal. That means your subscribers get a working Manage button where they can update their payment method and cancel on their own, without contacting you.



