=== CatCode Moov Payments for WooCommerce ===
Contributors: catcodestudio
Tags: moov, ach, payments, woocommerce, credit card
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Take card payments through hosted Moov payment pages in US dollars.

== Description ==

Adds Moov as a payment method to WooCommerce. At the checkout the buyer is sent to a Moov [payment link](https://docs.moov.io/guides/money-movement/payment-links/) — a hosted page, so card and bank details never touch your shop — and the order is settled when Moov tells the shop that the transfer is completed. You use your own Moov account and keys.

* **Hosted payment page** — one single-use payment link per order, with the amount, the order number and an expiry (24 hours by default).
* **Settled by webhook** — Moov calls the shop; the call is checked with its HMAC-SHA512 signature, the transfer is read from Moov (status, amount, order reference) and only then the order is paid. A transfer for a different amount puts the order on hold instead.
* **Plain results** — failed and cancelled transfers give a failed order with the reason in words; a reversed transfer puts the order on hold; a repeated webhook changes nothing.
* **Check payment status** — a button on the order screen asks Moov for the transfer if the webhook did not arrive.
* **Check connection** — finds the wallet payment method of your account; "Create a test link" makes a $1.00 link without charging anything.
* Works with the classic and the block checkout, HPOS. Keys and the signing secret are stored encrypted. Offered in US dollars only.
// @pro-begin
* Translations included: English.
// @pro-end

// @pro-begin
= Pro =

The Pro version is sold on [catcode.com.ua](https://catcode.com.ua/modules/catcode-moov-payments-for-woocommerce/), with a 7-day trial that never starts by itself:

* **More ways to pay on the page** — ACH bank debit, Apple Pay and Google Pay, when they are enabled for your Moov account.
* **Refunds from WooCommerce** — a full or partial refund of an order is sent to Moov.
* **New payment link** — a button on the order screen creates a fresh link for an unpaid order (for example after the first one expired).
* Updates from catcode.com.ua.

The licence runs for 1-5 years and includes updates and support for that term; a purchased licence keeps its Pro features after the term ends. One key covers two sites: the shop and its test copy.
// @pro-end

Moov is a trademark of Moov Financial, Inc. This plugin is an independent integration made by CatCode; it is not an official plugin of Moov and is not affiliated with or endorsed by it. You need your own Moov account, approved by Moov to accept payments.

== External services ==

The plugin connects to the Moov API (Moov Financial, Inc., [moov.io](https://moov.io/), documentation at [docs.moov.io](https://docs.moov.io/)) at `api.moov.io`, and only after you enter your keys. The buyer is sent to the Moov payment page (`moov.link`), where Moov collects the payment details.

* When you press "Check connection", create a test link, and whenever a token is needed: the public key and the secret key, to get an access token.
* When the buyer pays: the amount in US dollars, your account and wallet IDs, the shop name and the order number (shown on the payment page), the allowed payment methods, and the order ID and order key as a reference that Moov returns in the transfer.
* When a webhook arrives or you press "Check payment status": the transfer ID, to read the transfer.
// @pro-begin
* On a refund (Pro): the transfer ID and the amount.
// @pro-end

[Moov privacy policy](https://moov.io/legal/privacy-policy/)

== Installation ==

1. Upload the plugin and activate it. WooCommerce must be active and the shop currency US dollars.
2. In the Moov dashboard create an API key; in WooCommerce → **Moov** paste the public key, the secret key and your account ID, press "Check connection" and save.
3. In the Moov dashboard add the webhook address shown on the plugin screen for the transfer events and paste its signing secret into the plugin.
4. WooCommerce → Settings → Payments: enable "Moov". Press "Create a test link" to check the account, then place a test order.

== Frequently Asked Questions ==

= Do I need a Moov account? =

Yes, and Moov has to approve your business before live payments. The plugin does not do the onboarding.

= Does the buyer come back to my shop after paying? =

Moov's payment page does not offer a return address in its documentation, so the buyer stays on the Moov page after paying. The shop confirms the order by e-mail when the webhook arrives.

= Why is the order "on hold" after checkout? =

It waits for the payment. It moves to Processing when Moov reports the transfer completed; a bank debit can take days.

== Changelog ==

= 1.0.0 =
* First release.
