USDPAY for Paid Memberships Pro

Description

USDPAY for Paid Memberships Pro adds USDPAY as a payment gateway for one-time, lifetime, and fixed-duration memberships. Customers pay with USDT through the hosted USDPAY checkout, and membership access is activated only after a signed invoice.paid webhook is verified.

Supported networks:

  • TRC20
  • TON
  • BEP20

Funds are sent directly to the merchant’s configured wallet. The plugin does not store private keys or wallet seed phrases.

Automatic recurring crypto charges are not supported in version 1.0.0.

External services

This plugin connects to the USDPAY service at https://usdpay.me to create and retrieve payment invoices. The service receives the final order amount, PMPro currency, a non-personal order identifier, optional selected network, invoice expiration, webhook callback URL, and browser return URL. It does not receive the customer’s WordPress password or the merchant’s webhook secret. Requests occur only when a customer starts a USDT payment or when the site verifies an invoice.

USDPAY terms and privacy information are available at:

  • https://usdpay.me/legal/terms
  • https://usdpay.me/legal/privacy

Configure USDPAY

Create a dedicated Secret API Key and Webhook Secret in the USDPAY merchant dashboard. Add this callback URL to the matching store:

https://example.com/wp-json/usdpay-pmpro/v1/webhook

Replace example.com with the WordPress site domain. HTTPS is required in production.

Configure Paid Memberships Pro

Create a one-time paid, lifetime, or fixed-duration membership level. Select USDPAY in Memberships > Settings > Payments. The invoice amount is the final PMPro order total after standard discount and tax calculation.

For Customer chooses network, no network is sent while creating the invoice. The USDPAY checkout lets the customer choose TRC20, TON, or BEP20.

Supported membership types

  • One-time paid memberships.
  • Lifetime memberships.
  • Memberships with a fixed PMPro expiration period.
  • New and existing WordPress users.
  • Standard PMPro discounts, including a final total of zero.
  • Standard PMPro sales tax and final order totals.

Free final totals use PMPro’s normal free checkout flow and do not create a USDPAY invoice.

Recurring memberships

Automatic recurring crypto charges are not supported in version 1.0.0. USDPAY creates a separate invoice and cannot automatically debit a customer’s wallet. Checkout is blocked for membership levels that require automatic recurring payments. No fake subscription IDs or automatic renewal cron jobs are created.

Refund limitations

Changing or cancelling membership access is separate from returning blockchain funds. Version 1.0.0 does not initiate automatic crypto refunds. Arrange any refund directly with the customer and record it according to the site’s accounting process.

Security

  • API credentials stay on the WordPress server and are masked in settings.
  • Webhooks are authenticated with HMAC-SHA256 over the raw request body.
  • Signatures use timing-safe comparison.
  • Webhook deliveries and membership fulfillment are protected by database uniqueness constraints.
  • Browser return URLs never prove payment or activate membership.
  • Paid Memberships Pro performs the final membership change and standard confirmation emails.

Troubleshooting

The checkout says recurring payments are unavailable

Use a one-time, lifetime, or fixed-duration level. Automatic recurring debit is not supported.

The payment returns but membership is still pending

Confirm that the USDPAY webhook URL is correct, publicly reachable over HTTPS, and uses the Webhook Secret saved in WordPress. Browser return does not activate access.

The invoice cannot be created

Verify the Secret API Key, PMPro currency, outbound HTTPS connectivity, and the selected network. Enable debug logging temporarily with WP_DEBUG to record safe identifiers and error codes. Credentials and webhook payloads are never logged.

Does the plugin support upgrades or downgrades?

It supports changes where PMPro produces a final one-time order amount. Flows that require recurring proration or automatic subscription changes are not supported.

Installation

  1. Install and activate Paid Memberships Pro 3.5 or newer.
  2. Upload the usdpay-for-paid-memberships-pro folder to /wp-content/plugins/, or install the ZIP in Plugins > Add New.
  3. Activate USDPAY for Paid Memberships Pro.
  4. Open Memberships > Settings > Payments.
  5. Edit USDPAY — USDT, add the Secret API Key and Webhook Secret, and save.
  6. Select USDPAY as the primary payment gateway.

FAQ

Which currencies are accepted?

The plugin sends the current PMPro currency and final order total to USDPAY. USDPAY calculates the corresponding USDT amount. The plugin does not perform its own foreign exchange conversion.

Is opening the return URL enough to activate membership?

No. Membership activates only after a valid signed invoice.paid webhook.

What happens when an invoice expires?

The attempt and pending PMPro order are marked expired/error. No membership is granted. The customer can start a new logical checkout attempt.

Are historical payments deleted on uninstall?

No. Plugin settings and secrets are removed, but PMPro orders, transaction identifiers, and payment-attempt history are retained for audit and reconciliation.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“USDPAY for Paid Memberships Pro” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.0.0

  • Initial release.
  • One-time, lifetime, and fixed-duration PMPro memberships.
  • Hosted USDPAY checkout for TRC20, TON, and BEP20.
  • Signed, idempotent webhook fulfillment.