Skip to content

Plugins

On this page

Easy Digital Downloads Plugin

Connect Paymos to Easy Digital Downloads, test a stablecoin order, verify signed payment updates, and release files only after confirmation.

1. Requirements

  • WordPress 6.2+, Easy Digital Downloads 3.x, PHP 7.4+ with OpenSSL
  • A Paymos account with a project selected in the dashboard
  • The official package from GitHub Releases

Official packages are identical for every merchant and contain no API keys, API secrets, project IDs, webhook secrets, OAuth tokens, or device codes.

2. Install

Upload and activate the release in WordPress, open Downloads → Settings → Payments → Paymos, and click Connect Paymos.

3. Connect

  1. Open the project you want to connect in the Paymos dashboard. The plugin uses that current project automatically; it never asks you to select it again.
  2. Click Connect Paymos in Easy Digital Downloads.
  3. Approve the displayed store URL and current project in Paymos. There is no second project selector.
  4. Return to the CMS after the connected status appears.

For Sandbox and Live, Paymos reuses the merchant's single active Payment key or creates one when none exists. It reuses a webhook only when the exact callback URL, Invoice category, and current project match; otherwise it creates a dedicated Invoice webhook. A conflicting webhook at the same URL is never silently overwritten:

https://your-store.example/wp-json/paymos-edd/v1/webhook

OAuth device authorization is only the one-time delivery channel. The short-lived token is discarded; runtime Merchant API calls remain HMAC signed.

4. Secret storage

Credentials and temporary device state are stored in a non-autoloaded AES-256-GCM WordPress option keyed from the installation security salts. Saved secrets are not rendered back into the administration page.

5. Test and go live

Select Sandbox, place a test order, and confirm the invoice and webhook-driven status update. Switch the same installation to Live when ready; reconnect only after changing the store URL, revoking a Payment key, or rotating a webhook secret.