USDPAY for Easy Digital Downloads

Description

USDPAY adds a USDT payment gateway to Easy Digital Downloads. A customer completes the normal EDD checkout, is redirected to the hosted USDPAY checkout, and sends USDT directly to the merchant’s configured wallet. USDPAY monitors the blockchain and sends a signed webhook. Only a valid invoice.paid webhook completes the EDD order and unlocks the standard receipt and download access.

USDPAY is non-custodial. It does not hold customer funds, request private keys, or request seed phrases.

External Service

This plugin connects to USDPAY, an external payment-invoice and blockchain-verification service, when a customer selects USDPAY and submits the Easy Digital Downloads checkout.

The plugin sends the order amount, currency, merchant order reference, invoice expiration, return URL, webhook callback URL, and the selected payment network when one is configured. It does not send the customer’s name, email address, billing address, purchased item details, private keys, or seed phrases.

The customer is then redirected to the hosted USDPAY checkout. When that page is opened, USDPAY may process standard technical information such as the customer’s IP address, browser, and device information, as described in the USDPAY Privacy Policy.

USDPAY uses the submitted payment metadata to create an invoice, monitor the selected blockchain network, match the payment, and send payment-status webhooks to the merchant’s website.

Customer funds are sent directly to the merchant’s wallet. USDPAY does not receive or hold the payment funds and does not have access to the merchant’s private keys.

USDPAY service:
https://usdpay.me/

Terms of Service:
https://usdpay.me/legal/terms

Privacy Policy:
https://usdpay.me/legal/privacy

Requirements

  • WordPress 6.7 or newer.
  • PHP 8.0 or newer.
  • Easy Digital Downloads 3.0 or newer.
  • A USDPAY merchant account with an active API key, webhook secret, and receiving wallet.

Setup

Enable the gateway in the standard EDD Payment Gateways settings. Configure the API credentials, webhook, invoice expiration, network, checkout copy, and debug logging under Downloads > Settings > Extensions > USDPAY.

API Key Configuration

Paste the USDPAY Secret API Key under Downloads > Settings > Extensions > USDPAY. The saved key is stored server-side, displayed only as a mask, and is never sent to browser JavaScript or written to plugin logs.

Webhook Configuration

Copy the webhook URL shown in the settings to the matching USDPAY store. Paste the store’s Webhook Secret into WordPress. Webhooks are verified over the raw request body with HMAC-SHA256 and processed with durable idempotency locks.

Supported Networks

TRC20, TON, and BEP20 are supported. When Customer chooses network is selected, the plugin omits the network from invoice creation and USDPAY shows the available choices.

Supported Purchases

Version 1.0.1 supports one-time digital purchases for guests and logged-in customers.

Cart Support

One USDPAY invoice is created for the final payable total of the complete EDD order, including carts with multiple products and supported bundles.

Variable Pricing

The gateway uses the final EDD order total, so the customer’s selected variable price is respected.

Discounts

Fixed and percentage EDD discounts are reflected in the final order total. A 100% discounted order uses EDD’s free checkout and does not call USDPAY.

Taxes

Taxes are calculated by EDD. The plugin sends the final grand total and does not recalculate tax.

Free Orders

Orders with a final total of zero use the standard EDD free checkout. No USDPAY invoice is created.

Recurring Payments

Automatic recurring crypto payments are not supported in version 1.0.1. Recurring carts are blocked before a USDPAY invoice can be created.

Refunds

USDPAY does not process automatic blockchain refunds because payments are sent directly from the customer to the merchant’s wallet. USDPAY does not have access to the merchant’s wallet or private keys. If an order is marked as refunded or cancelled in Easy Digital Downloads, the plugin can update the local order and access status, but no USDT is sent back automatically. Any financial refund must be sent manually by the merchant from their own wallet.

The original invoice ID, transaction hash, network, amount, currency, and payment time remain in the order history for audit purposes.

Security

The plugin verifies webhook signatures over the raw body, uses timing-safe comparison, correlates both invoice ID and order ID, and uses database uniqueness constraints for webhook and fulfillment idempotency. Browser return parameters never complete an order. Secrets and customer payloads are excluded from debug logs.

Troubleshooting

If checkout cannot start, verify that Easy Digital Downloads is active, the gateway is enabled, both USDPAY secrets are configured, the store currency is supported, and the webhook URL belongs to the same USDPAY store as the API key.

Installation

  1. Upload the usdpay-for-easy-digital-downloads folder to /wp-content/plugins/ or install the ZIP in WordPress.
  2. Activate the plugin.
  3. Open Downloads > Settings > Payments > Gateways and enable USDPAY — USDT.
  4. Open Downloads > Settings > Extensions > USDPAY and complete the setup.

FAQ

When are download links released?

Only after a correctly signed invoice.paid webhook changes the order to complete through the standard EDD lifecycle.

Does returning from hosted checkout confirm payment?

No. The return page is read-only. It shows whether the webhook has already completed the order.

Can the plugin refund USDT automatically?

No. USDT goes directly to the merchant wallet, so the merchant must send any financial refund manually.

Are subscriptions supported?

No. Version 1.0.1 supports one-time payments only.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“USDPAY for Easy Digital Downloads” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.0.1

  • Moved USDPAY-specific settings to Downloads > Settings > Extensions > USDPAY to align with Easy Digital Downloads third-party extension guidelines.
  • Added backward-compatible, idempotent settings migration without changing existing setting keys.
  • Preserved the existing payment, checkout, REST webhook, HMAC, idempotency, fulfillment, free-order, recurring, refund, and uninstall behavior.

1.0.0

  • Initial release.
  • Hosted USDPAY checkout for EDD 3.x.
  • Signed, idempotent paid and expired webhook handling.
  • Single and multi-product carts, variable pricing, discounts, taxes, and free checkout behavior.
  • Explicit one-time purchase and manual-refund model.
  • Declared Easy Digital Downloads as the required plugin dependency.
  • Limited administrative notices to the relevant plugin and EDD order screens.