=== ePayVista Payments: High-Risk Crypto and Card Payment Gateway for WooCommerce ===
Contributors: coellojoseph
Tags: crypto payment gateway, cryptocurrency, high risk, payment gateway, usdc
Requires at least: 5.8
Requires PHP: 7.4
Tested up to: 7.0
Stable tag: 2.9.2
License: GPLv3
License URI: https://www.gnu.org/licenses/gpl-3.0.html

Accept crypto and card payments on WooCommerce at a ~1% fee. Instant approval, no KYC, high-risk friendly. USDC, USDT, Visa, Apple Pay, Google Pay.

== Description ==

ePayVista Payments is a crypto and card payment gateway for WooCommerce, built for any ecommerce business, at a flat ~1% fee (volume tiers available) that is among the lowest anywhere. Onboarding is instant with no KYC and no underwriting, and ePayVista specializes in approving high-risk verticals that mainstream payment processors decline, including vape, CBD, adult, forex and trading, gambling, supplements, subscriptions, and info products.

Your customers pay with cryptocurrency (USDC, USDT, and other stablecoins) or with a card, Apple Pay, or Google Pay on a secure, PCI-compliant hosted checkout, with no chargebacks. Funds settle as stablecoins directly to a wallet you control.

Setup is 100% self-serve. Enter the wallet address where you want to be paid, click **Connect**, and your payment processor account is provisioned automatically, with no business paperwork and no waiting on underwriting. Customers pay on ePayVista's hosted checkout and are returned to your store, and signed webhook callbacks confirm each payment and update the order.

**Why merchants choose ePayVista**

* A true high-risk payment gateway: approved for verticals that Stripe, PayPal, and traditional processors routinely decline.
* Accept crypto payments (USDC, USDT, stablecoins) plus card, Apple Pay, and Google Pay from one plugin.
* A flat ~1% processing fee, with no monthly fees, no rolling reserves, and no chargebacks.
* Instant approval and no KYC: connect and start taking payments the same day.
* Non-custodial settlement: crypto settles straight to a wallet you control.

**Live payment tracking**

* A **Payment tracking** panel on every order in your dashboard: status, amount, network, on-chain confirmations, transaction hash, and a one-click block-explorer link.
* A **live status widget** on the customer's order-received page that updates in real time as the payment confirms (Detected, Confirming, Confirmed).
* A **"Track your payment"** link added to order emails, plus a `[epayvista_track]` shortcode for a standalone tracking page.

**Features**

* Instant approval, no KYC, and 100% self-serve onboarding, with no underwriting and no business paperwork to wait on.
* Crypto payments (USDC, USDT, and other stablecoins) accepted natively, settled to your own wallet.
* Card, Apple Pay, and Google Pay checkout at a flat ~1% fee, approved for high-risk verticals many processors decline.
* Per-method payment modules: offer each hosted option (card, card and wallets, exchange, crypto wallet) as its own payment method at checkout, or the all-in-one hosted page, or both.
* Hosted, PCI-compliant payment page, so no card data touches your server.
* HMAC-signed webhook confirmations, so no order is marked paid without a verified signature.
* Underpayments are placed on-hold for review instead of auto-completing.
* HPOS (High-Performance Order Storage) and Cart/Checkout Blocks compatible.

This plugin requires a free ePayVista account, which you create directly from the plugin settings, with no separate signup and no API-key copying.

== External services ==

This plugin connects to ePayVista, a third-party payment processor, to provision your account, create payments, and confirm them. This connection is required for the plugin to function. When you connect your store, your store details and payout address are sent to ePayVista. When a customer checks out, the order total and their email are sent to create a hosted payment and confirm it. No customer card data is ever sent to or stored by your site, because it is handled entirely on ePayVista's hosted checkout.

Service provider: ePayVista, https://epayvista.com/ | [Terms](https://epayvista.com/terms) | [Privacy Policy](https://epayvista.com/privacy)

== Installation ==

1. Install and activate **WooCommerce**.
2. Upload and activate **ePayVista Payments** (Plugins, then Add New, then Upload, or install from the directory).
3. Go to **WooCommerce, then ePayVista**, enter the wallet address where you want to receive funds, click **Save changes**, then click **Connect to ePayVista**.
4. Go to **WooCommerce, then Settings, then Payments** and enable the ePayVista payment methods you want. You are ready to take payments.

== Frequently Asked Questions ==

= Is there an approval process or KYC? =
No. Click Connect and your payment processor account is provisioned instantly, with no underwriting, no KYC, and no business paperwork to submit or wait on.

= Does ePayVista work for high-risk businesses? =
Yes. ePayVista specializes in high-risk verticals that mainstream processors decline, including vape, CBD, adult, forex and trading, gambling, supplements, subscriptions, and info products.

= Can I accept cryptocurrency payments? =
Yes. Customers can pay directly in stablecoins such as USDC and USDT, and funds settle to a crypto wallet you control. Card, Apple Pay, and Google Pay are also available on the same checkout.

= Do I need an ePayVista account? =
Yes, a free account, created automatically from the plugin settings when you click Connect. You never copy or paste an API key.

= Where does the money go? =
Funds are settled in stablecoins to the wallet address you set in the plugin. Settlement is handled on the ePayVista backend.

= Is card data stored on my site? =
No. Customers pay on ePayVista's hosted, PCI-compliant checkout. Your site never sees or stores card details.

= How are payments confirmed? =
ePayVista sends a signed (HMAC-SHA256) webhook to your store. Orders are only marked paid when the signature is valid, and the transaction details are stored for tracking.

= Can customers track their payment? =
Yes. The order-received page shows a live status widget, order emails include a tracking link, and you can place a `[epayvista_track]` shortcode on any page.

= Can I control which payment methods customers see? =
Yes, two ways. First, on the all-in-one gateway, tick exactly which options appear on the hosted checkout under "Payment methods shown at checkout", and leave everything ticked (the default) to show all options and let the customer choose. Second, enable any hosted option as its own payment method at your WooCommerce checkout (Pay by Card, Card and Wallets, Buy on an Exchange, Crypto Wallet), and the customer picks it in your store and lands on the hosted page already set to that method. The modules share the main gateway's connection, so you connect once.

= What currency does ePayVista support? =
Any major currency. ePayVista prices and settles in USD, and automatically converts orders placed in other currencies at checkout using a live, dual-source exchange rate that is locked per order. The customer sees the approximate USD amount before paying.

= Is there a minimum order amount? =
There is a small network minimum for the payment method. Orders below it hide ePayVista at checkout, and if one slips through, the customer sees a clear message asking them to add to their order or pick another method.

= What happens if a customer's payment fails or expires? =
The order-received tracking widget and the order email both show a "Restart payment" link, so the customer can retry without contacting you.

= What if a customer sends the wrong coin or network? =
Use the built-in **Recover missed funds** tool on the ePayVista settings page. If a customer accidentally sends the wrong coin or the wrong network, click "Scan for missed funds" to check your deposit addresses across Base, Polygon, and Ethereum, then send anything found to your payout wallet.

== Screenshots ==

1. One-step setup: enter your wallet address and click Connect.
2. Live payment tracking on the customer's order-received page.
3. The Payment tracking panel on the WooCommerce order screen, with a block-explorer link.

== Changelog ==

= 2.9.2 =
* Improved: **Recover missed funds** now runs the send-to-wallet step as a background job with a live progress indicator and shows the real recovered amount when it finishes, so a recovery that takes several network transactions (an Ethereum recovery in particular) no longer risks reporting a premature zero. If the result cannot be confirmed right away it says the recovery is still processing and to check back, instead of showing nothing recovered.
* Improved: recovered payments now reflect the network gas cost. Moving funds on the blockchain costs a network fee, so a recovery deducts that gas along with the standard 1% fee, and your payout total shows exactly what landed in your wallet.
* New: a recovered payment that covers the order total now marks the order paid automatically. When a customer paid in full but on the wrong network, recovering it completes the order and updates its status, with no manual step.

= 2.9.1 =
* Improved: **Recover missed funds** now runs as a background scan with a live progress bar and an address-by-address counter, so it completes reliably even for stores with hundreds of deposit addresses (previously a very large scan could time out before it finished). By default the scan skips addresses whose payments already settled, where nothing is ever stranded, so it finishes faster. A new "Deep scan" toggle re-checks those already-paid addresses too when you want to be thorough. No change to how recovered funds are sent to your wallet.

= 2.9.0 =
* New: **Recover missed funds** on the ePayVista settings page. If a customer accidentally sends the wrong coin or the wrong network, for example native ETH when the checkout asked for USDC, those funds do not show up as a normal payment. Click "Scan for missed funds" to check your deposit addresses across Base, Polygon, and Ethereum, then send anything found to your payout wallet, minus the standard 1% fee. Admin-only, and your merchant key stays on your server.

= 2.8.0 =
* New payment method: **Pay with Coinbase**. Let customers pay with a debit card, Apple Pay, bank transfer, or their Coinbase balance, and it settles as USDC on Base like your other card options. Off by default: enable it under WooCommerce, then Settings, then Payments, then ePayVista Payments, then "Pay with Coinbase". Also available as its own standalone checkout button. Existing checkouts are unchanged until you turn it on.

= 2.7.14 =
* Security and reliability: when reconnecting an already-connected store, the plugin now proves ownership with its stored key so your payout-wallet changes still apply. (Hardening for the onboarding service so a store that only knows your public URL cannot alter your account.)

= 2.7.13 =
* New: create your payments-dashboard login while connecting. Choose a password on the settings page and sign in at pay.epayvista.com (with your admin email) for a live view of every payment. Optional, and your password is bcrypt-hashed before it leaves your site and is never stored by the plugin.

= 2.7.12 =
* New: set your store logo from WooCommerce, then ePayVista, shown on your hosted checkout page.

= 2.7.11 =
* Listing update: repositioned copy and tags. External Services section condensed to a single compliant disclosure. Added instant-approval, no-KYC, and 100% self-serve onboarding messaging. No functional changes.

= 2.7.10 =
* Listing update: the tag list now uses the highest-intent terms. Repositioned copy for any ecommerce business, with the flat ~1% fee stated up front. No functional changes.

= 2.7.9 =
* Corrected the External Services disclosure: the onboarding endpoint listed was a stale pre-launch URL. The plugin has called `pay.epayvista.com` for this since its current release. No functional changes.

= 2.7.8 =
* Listing update only: repositioned as a high-risk payment processor (card, Apple Pay, Google Pay first, with crypto payment noted as an additional option). No functional changes.

= 2.7.7 =
* Fixed: the "Card and Wallets" and "Credit / Debit Card" single-method checkout options (and their Cart/Checkout Blocks equivalents) now correctly hide themselves when an order is under that method's own minimum, instead of an unrelated lower threshold. Previously a too-small order could show a card option that always failed.
* Card checkout error messages now state the actual dollar minimum instead of a raw error code.

= 2.7.6 =
* Re-added Ethereum as a "Card settlement network" option (now properly gas-funded and safety-gated with a $20 order minimum). Fixed card settlement to actually honor the selected network. Polygon and Ethereum previously silently settled on Base regardless of the setting.

= 2.7.5 =
* Fixed the All-in-One gateway's default title and description, which incorrectly read "Apple Pay / Credit Card". It now correctly describes the full checkout (crypto, card, and exchange). Existing stores are corrected automatically on update unless the title or description was customized.

= 2.7.4 =
* Card payments now default to USDC on Base (Ethereum removed) so they always settle instantly at the low network fee.
* Removed the "Bank and Local Payment Methods" option.

= 2.7.3 =
* Removed the pre-emptive "$20 minimum" checkout notice: card now settles via a lower-minimum route, and the network minimum is already enforced by hiding the method for too-small orders. No more misleading warning.

= 2.7.2 =
* Hide the gateway and show a clear message for orders under the network minimum, instead of a generic checkout error.

= 2.7.1 =
* The cart now survives the payment page: customers who go back to retry or switch payment methods no longer find an empty cart.
* The payment page gains a "Back to store / change payment method" link and, after paying, a "Return to store" button that completes the order flow.

= 2.7.0 =
* Multi-currency support: stores in any major currency now work, and orders are converted to USD at checkout with a dual-source, cross-checked exchange rate that is locked per order.
* Checkout shows the USD amount before paying, and the locked rate is recorded on the order.
* USD stores are completely unaffected.

= 2.6.3 =
* Payments now settle through ePayVista's upgraded 1% settlement engine (same checkout, lower cost).
* Connect now pins the correct gateway endpoint automatically, with no manual API Base changes needed.
* Faster, more reliable onboarding connection.

= 2.6.2 =
* Single-method checkouts now go straight into the payment flow: when a customer picks one of the ePayVista method modules (for example "Credit / Debit Card"), the hosted page opens that method automatically, with no extra selection step.
* New central settings page at WooCommerce, then ePayVista: your payout wallet, Connect button, API base, and debug logging now live in one dedicated place shared by every ePayVista payment method.
* Fixed the module settings pages showing the method name twice.

= 2.6.1 =
* New "Card settlement network" setting: choose whether "Pay by card" purchases settle as USDC on Ethereum (default), Base, or Polygon. You are paid USDC either way, and the buyer can still switch networks in the card flow.
* Clearer module settings: each single-method module now shows its live connection status and payout wallet.
* The all-in-one gateway is now labelled "ePayVista Payments (All-in-One)" in the admin payment methods list.

= 2.6.0 =
* New: each hosted payment option can now be enabled as its own payment method at your WooCommerce checkout. "Credit / Debit Card", "Card and Wallets", "Bank and Local Payment Methods", "Pay via Crypto Exchange", and "Pay with Crypto" appear as separate choices, and the customer lands on the hosted page already set to the method they picked.
* All five modules are off by default and share the main ePayVista connection, so you connect once and enable any mix. The existing all-in-one gateway is unchanged.
* Cart/Checkout Blocks support for every module.

= 2.5.6 =
* The "Checkout experience" setting is now per-method: tick exactly which payment options appear on the hosted checkout. Leave everything ticked (the default) to show all options and let the customer choose.
* Stores that used the previous single-choice selector keep the same result automatically until they open the settings and pick per method.
* No changes to payment, settlement, or tracking behaviour.

= 2.5.5 =
* New "Checkout experience" setting: keep the full hosted checkout (default) or pre-select a single method (card only, crypto only, or wallet on-ramp only) for your customers. Existing stores are unchanged unless you switch it.
* Verified conditional asset loading, so nothing from this plugin loads on ordinary front-end pages.
* Confirmed compatibility with the current WordPress and WooCommerce releases (HPOS and Cart/Checkout Blocks).

= 2.5.4 =
* Added the required translators comments to the two placeholder strings flagged by Plugin Check. No functional changes.

= 2.5.3 =
* Compliance: all JavaScript is now registered and loaded with wp_enqueue_script() and passed data via wp_localize_script() or data attributes, instead of inline script tags.
* Compliance: every translatable string now uses the "epayvista-payments" text domain so it matches the plugin slug.
* No changes to payment, settlement, or tracking behaviour.

= 2.5.2 =
* ePayVista now supports USD-priced stores only: the payment method is hidden at checkout when your store currency is not USD, with a clear admin reminder.
* Safer handling of duplicate payment callbacks.
* Fixed the "track your payment" link in order emails so it works for guest customers too.
* Payout wallet changes are now validated on save.
* Expired or failed payments now show a "Restart payment" link, and the customer gets a one-time email with a pay-again link.

= 2.5.1 =
* Clearer payout-wallet guidance on the settings screen: use a self-custody wallet you control (never an exchange deposit address), and a note that payouts settle as stablecoins (USDC or USDT) on Ethereum, Base, or Polygon.

= 2.5.0 =
* New: Live payment tracking. Order panel, customer order-received widget, email tracking link, and `[epayvista_track]` shortcode. Shows status, network, confirmations, transaction hash, and a block-explorer link.

= 2.3.0 =
* Settlement payout model, with a per-merchant signed callback secret for verified confirmations.

= 2.2.0 =
* Self-serve onboarding: enter your wallet, click Connect, and your account is provisioned automatically.

== Upgrade Notice ==

= 2.9.2 =
Recover missed funds now shows the real recovered amount as it processes, accounts for network gas in your payout, and marks an order paid when a recovered payment covers it.

= 2.9.1 =
Recover missed funds now runs as a fast background scan with a live progress bar, so it completes reliably even on stores with hundreds of deposit addresses.

= 2.9.0 =
New Recover missed funds tool: catch crypto a customer sent on the wrong coin or network and send it to your payout wallet.

= 2.8.0 =
New Pay with Coinbase method (debit card, Apple Pay, bank transfer, or Coinbase balance). Off by default.
