=== Satqo Crypto Payments for WooCommerce ===
Contributors: satqo
Tags: crypto, usdt, stablecoin, payment gateway, woocommerce
Requires at least: 6.2
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

Accept USDT, USDC and other coins in WooCommerce. Customers pay on a Satqo payment page and the order is marked paid automatically.

== Description ==

Satqo lets your store take stablecoin payments: USDT on TRON, TON and Ethereum, USDC on Ethereum, Arbitrum and Base, and a few other coins. Prices stay in your store currency (USD or EUR); Satqo converts the order total at the current rate when the customer starts paying.

How it works:

1. At checkout the customer chooses "Pay with crypto" and, if you offer several, the coin and network.
2. They are sent to the Satqo payment page with the exact amount, the address and a QR code. They pay from any wallet or exchange; no account is needed.
3. Satqo tells your store the moment the payment arrives. The order moves to Processing (or Completed, your choice) and the money is on your Satqo balance.
4. The customer comes back to your normal thank-you page.

Features:

* Works with the block checkout (Cart and Checkout blocks) and the classic shortcode checkout.
* Compatible with High-Performance Order Storage (HPOS).
* Order statuses for each outcome are configurable: paid in full, paid less than the total (the order note says how much is missing), expired after a partial payment, not paid in time.
* A paid order is never moved back. Every notification is verified (HMAC-SHA512 signature) and handled once, and the status is re-read from the Satqo API before the order changes.
* No webhook to configure: each payment carries this store's notification address. If your store can't be reached from the internet (a local test site), the thank-you page and a check every 10 minutes update the order instead.
* "Test connection" button in the settings.
* English, Spanish and Brazilian Portuguese.

Fees: Satqo charges a small percentage of each incoming payment; see https://satqo.com/#fees. There is no monthly fee.

== External services ==

This plugin connects to the Satqo payment API (https://api.satqo.com), operated by Satqo (Fluenta SAS, Uruguay). It is required to take payments.

* When a customer places an order with this payment method, the plugin sends Satqo: an order reference, the order total and currency, the chosen coin and network, the order description (order number and store name), the customer's billing email, and the addresses of your thank-you page, order payment page and this store's notification endpoint.
* When an order is waiting for payment, the plugin asks Satqo for the status of its payment (from the thank-you page, after a payment notification, and every 10 minutes for orders of the last two days).
* "Test connection" in the settings reads your Satqo account name.

The customer then pays on the Satqo payment page (pay.satqo.com).

Satqo terms of service: https://satqo.com/terms.html
Satqo privacy policy: https://satqo.com/privacy.html

== Installation ==

1. Create a free account at https://dash.satqo.com and open Developers. Copy the API key and the signing secret.
2. In WordPress go to Plugins → Add New → Upload Plugin and upload the zip (or install "Satqo Crypto Payments for WooCommerce" from the directory). Activate it.
3. Go to WooCommerce → Settings → Payments → Satqo (crypto). Paste the API key and the signing secret, press "Test connection", choose the coins you take, tick "Accept crypto with Satqo" and save.
4. Place a small test order (a few USDT on TRON costs cents in network fees) and check that the order moves to Processing.

Your store currency must be USD or EUR (or USDT/USDC if your store prices in them).

== Frequently Asked Questions ==

= Do I need to set a webhook URL in the Satqo dashboard? =

No. Each payment tells Satqo where to notify this store (https://your-store/?wc-api=satqo). If you already use a webhook URL for something else, it is not affected.

= What happens if the customer pays less? =

The order goes to the status you chose for "Paid less than the total" (On hold by default) with a note saying how much arrived and how much is missing. The part received is on your Satqo balance; you can ask the customer for the rest or refund it.

= What if the customer pays too much? =

The order is marked paid and a note shows the extra amount. All of it is on your Satqo balance.

= What if the customer doesn't pay? =

The payment page holds the price for the payment window you set (60 minutes by default). After that the order is cancelled (or left pending, or marked failed — your choice) and the stock is returned.

= Can the customer switch to another coin? =

Yes. From the order payment page they can start again with another coin; a payment on any of the order's Satqo invoices counts.

= Are refunds supported? =

Not from WooCommerce. Send a refund from your Satqo balance in the dashboard (Payouts) and mark the order refunded.

= Is there a test mode? =

Satqo has no sandbox. Test with a small real payment on TRON: network fees are cents and small payments are credited in about 10 seconds.

== Screenshots ==

1. Settings: API key, signing secret, Test connection, coins and order statuses.
2. Block checkout with the Satqo payment method and the coin choice.
3. The Satqo payment page the customer is sent to.
4. The order marked paid, with the Satqo notes.

== Changelog ==

= 1.0.0 =
* First release: block and classic checkout, HPOS, per-order webhook, thank-you page and scheduled status checks, configurable order statuses, English, Spanish and Brazilian Portuguese.

== Upgrade Notice ==

= 1.0.0 =
First release.
