Skip to main content

WooCommerce Setup

The official Manatee Bitcoin Payment Gateway for WooCommerce lets store owners accept on-chain Bitcoin without giving custody of funds to a third party.

The plugin keeps WooCommerce as the order system while Manatee monitors Bitcoin payments and sends signed status events. Its WordPress.org page contains the current download, screenshots, compatibility information, and release notes.

Setup flow

  1. Create a Manatee account.
  2. Get a testnet API key.
  3. Install the official plugin from WordPress.org and activate it in WordPress.
  4. Enter the testnet API key in plugin settings.
  5. Configure webhook handling and order status mapping.
  6. Create a test order and pay with testnet BTC.
  7. Confirm that WooCommerce updates the order after payment.confirmed.
  8. Switch to mainnet only after the full test flow works.

Payment flow

  1. Customer chooses Bitcoin at checkout.
  2. The plugin creates a Manatee payment for the WooCommerce order.
  3. The checkout shows a Bitcoin address, amount, and expiry time.
  4. Manatee detects the transaction and sends payment.detected.
  5. Manatee tracks confirmations and sends payment.confirmed.
  6. The plugin verifies the signature and updates the WooCommerce order.

Order status mapping

Store labelManatee signalMeaning
Waiting for paymentpendingNo matching transaction has been detected yet.
Seen in mempooldetectedA matching transaction was seen.
Confirmingdetected with confirmations below thresholdPayment exists but is not final enough for fulfillment.
PaidconfirmedPayment reached the configured confirmation count.
Underpaidreceived_sats below expected amountStore policy decides whether to wait, expire, or review manually.
Overpaidreceived_sats above expected amountStore policy decides how to handle the difference.
ExpiredexpiredThe checkout expired before a matching transaction was detected.

Underpayment and overpayment are not separate Manatee lifecycle statuses. They are plugin/store reconciliation cases based on amount fields.

Test mode

Use Testnet4 before going live. Test mode should validate:

  • API key connectivity
  • payment creation
  • checkout display
  • webhook reachability
  • webhook signature verification
  • order status updates
  • expiry behavior

Plugin cannot connect

If the plugin cannot connect:

  • Confirm the API key is copied exactly.
  • Confirm the plugin is using the right network mode.
  • Check that the backend can reach the Manatee API.
  • Confirm the webhook endpoint is publicly reachable.
  • Check whether the API key was rotated or revoked.
  • Test the webhook route with Send a test webhook.

Concurrent payment limit

Each checkout payment created with a webhook occupies one concurrent-payment slot for its API key while it is pending or detected. Beta accounts have three slots per API key. A slot is released when the payment becomes confirmed, expired, or cancelled.

An abandoned checkout can therefore remain active until its payment expires. If its WooCommerce order is still pending and you cancel it, the plugin also cancels the related Manatee payment and releases the slot. A payment that is already detected cannot be cancelled because Manatee has seen a matching Bitcoin transaction and must continue tracking its confirmations.

If payment creation returns HTTP 402 with limit: "active_webhooks", the plugin shows the customer a temporary capacity message and records the current usage in the order notes for the store owner. Wait for an active payment to finish, cancel an abandoned pending order, or let an unpaid payment expire before retrying. Failed webhook delivery attempts are tracked separately and do not consume additional payment slots.

For the product overview, see WooCommerce Bitcoin Payment Gateway. For the current download and release information, open the official plugin page on WordPress.org.