=== Geat.io for WooCommerce ===
Contributors: geatio
Tags: woocommerce, payment-gateway, crypto, bitcoin, ethereum, stablecoin
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 8.1
WC requires at least: 7.0
WC tested up to: 9.0
Stable tag: 0.1.0
License: MIT
License URI: https://opensource.org/licenses/MIT

Accept Bitcoin, Ethereum, USDT, and 5 other cryptocurrencies in your WooCommerce store via the Geat.io hosted-checkout payment gateway.

== Description ==

Geat.io for WooCommerce adds a crypto payment method to your WooCommerce checkout. When a customer chooses it, they're redirected to Geat.io's hosted invoice page to pay in any supported cryptocurrency. When the payment confirms on-chain, Geat.io POSTs a signed callback to your store and the order automatically advances to Processing.

Supported coins out of the box: BTC, LTC, DOGE, DASH, BCH, ETH, USDT-ERC20, USDC-ERC20. The merchant configures which subset their store accepts inside the Geat.io dashboard - the plugin reflects whatever's enabled there.

= Why hosted checkout =

Card-style on-site payment forms put your store inside the regulatory scope for handling sensitive payment data. Hosted checkout puts that scope on Geat.io. Your WooCommerce site never sees crypto addresses, private keys, or PCI-equivalent data - just a signed callback when the payment lands.

= Webhook security =

Every callback delivery is HMAC-SHA256-signed with your profile's webhook secret and committed to a unix timestamp to defeat replay. The plugin rejects any delivery whose signature does not verify or whose timestamp is outside a +/- 300-second window from the receiving server's clock. Untrusted deliveries never touch the order.

= Refunds =

Refunds are operator-driven inside the Geat.io dashboard, not initiated from WooCommerce. The plugin declares the `refunds` capability so WC's UI lists the gateway alongside others, but the actual refund flow is initiated on Geat.io's side - it requires an operator to approve and dispatch the crypto reversal.

== Installation ==

1. Download the plugin ZIP (built artifact with `vendor/` bundled).
2. WordPress Admin -> Plugins -> Add New -> Upload Plugin -> select the ZIP.
3. Activate it.
4. WooCommerce -> Settings -> Payments -> Geat.io (crypto) -> click "Manage".
5. Fill in API key, profile UUID, webhook secret, and API base URL from your Geat.io dashboard. Enable the gateway.
6. In the Geat.io dashboard, set your profile's callback URL to `https://yourshop.example/wp-json/geatio/v1/webhook`.

== Frequently Asked Questions ==

= Which currencies can I quote in? =

Any of the 147 ISO currencies Geat.io supports. The plugin sends the order's currency to Geat.io at invoice creation, so a customer paying in JPY sees the BTC quote in JPY, not the merchant's profile default.

= What if a customer underpays? =

Geat.io emits an `invoice.partial` event. The plugin records this as a private order note. The order status does NOT advance to Processing until the full amount confirms. If the invoice expires while still under-paid, the plugin adds a second note flagging that operator action is required (refund, top-up, or write-off - the gateway will not auto-cancel because that destroys the audit trail).

= Does it work with HPOS (High-Performance Order Storage)? =

Yes. The plugin uses only the documented `WC_Order` API and declares `custom_order_tables` compatibility.

== Changelog ==

= 0.1.0 =

* Initial release. Gateway, signed webhook handler, HPOS-compatible.
