What you need
| Field | What it does |
|---|---|
| API key | Lets us call Dodo to create the hosted checkout. Secret. |
| Webhook signing secret (whsec_…) | Confirms a webhook truly came from Dodo. Secret. |
| Return URL | Where the buyer lands after checkout. |
Why we ask for each field
API key
Authorizes creating the hosted checkout, so the charge runs through your account.
Webhook signing secret
Proves an incoming webhook is genuinely from Dodo, so nobody can forge a "paid" event. It is a separate value from the API key.
Return URL
Plain setting: where the buyer lands after checkout. Not secret.
Set up
- Use test mode (free)
Dodo has a separate test environment. Test-mode keys run against the Dodo test host, and no real money moves.
- Sign in at app.dodopayments.com.
- Dodo separates Live and Test keys. Set up test first, then repeat in live.
- Copy your API key
Go to Developer → API Keys and copy the Test key to verify, or the Live key to take real payments.
Dodo → Developer → API Keys - Add the webhook
- Add a webhook in Dodo.
- Set the webhook URL to your project webhook address (below).
- Copy the webhook signing secret (whsec_…). Add a separate webhook in test and in live.
https://<your Coin Moebius host>/webhook/dodopayments/<your project id>Dodo → Developer → Webhooks - Connect in the dashboard
Add provider → Dodo Payments. Enter the Return URL and the Live group (Live API key, Live webhook signing secret). Add the optional Test group to verify first. The Test group is paired: add both a test API key and a test webhook secret, or leave both blank. Live and test are checked separately.
After you connect
Run one test payment before going live:
- Create a product and set its Environment to Testing. That runs the product on your test credentials, so you can place a full order without moving money. (If you skipped the test set, a Testing product falls back to live, so add it first.)
- Place the buy button on a page (a local HTML file works) pointed at your project.
- Complete checkout in Dodo’s test mode.
- Open the Transactions tab. A new row appears, tagged Testing. When its status reaches succeeded, your credentials and webhook are both working end to end.
Switch the product Environment to Live when you are ready for real payments.
Troubleshooting
Start with Verify. In the dashboard, click Verify (or Verify test credentials) to check your API key.
Verify test credentials says no test credentials saved.
Add a test API key in the Test tab, save the provider, then reopen the dialog and verify.
Payment completes but the order stays pending.
Confirm the webhook URL matches and that the signing secret matches the webhook in the same environment (test secret for test, live for live).
Saving the Test group is rejected.
The Test group is paired: add both a test API key and a test webhook secret, or leave both blank.
Confirm it end to end.
Dodo Dashboard → Developer → Webhooks → Send Example (or the Dodo CLI) pointed at your webhook URL, then watch the order update.
Good to know
One-time payments only. Coin Moebius uses Dodo for single payments, not subscriptions.
Rotating secrets. Roll the API key or webhook secret anytime, then paste the new value. Secret fields stay blank on edit.
Questions? [email protected]