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
- Install and activate Paid Memberships Pro 3.5 or newer.
- Upload the
usdpay-for-paid-memberships-profolder to/wp-content/plugins/, or install the ZIP in Plugins > Add New. - Activate USDPAY for Paid Memberships Pro.
- Open Memberships > Settings > Payments.
- Edit
USDPAY — USDT, add the Secret API Key and Webhook Secret, and save. - 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.paidwebhook. -
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.
ContributorsTranslate “USDPAY for Paid Memberships Pro” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
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.
