Skip to main content

WooCommerce Integration

Accept crypto payments on your WordPress store with the Peer Pay Gateway plugin for WooCommerce. Customers pay with Venmo, Cash App, Zelle, and other platforms; you receive USDC.

Requirements​

  • WordPress 5.8+
  • WooCommerce 7.0+ (tested up to 9.0)
  • PHP 7.4+
  • Current plugin version: 1.6.0
  • A Peer merchant account (merchant.pay.peer.xyz)

Installation​

1. Download the Plugin​

Download peer-pay-gateway.zip

2. Upload to WordPress​

  1. Go to Plugins > Add New > Upload Plugin in your WordPress admin
  2. Choose the peer-pay-gateway.zip file
  3. Click Install Now, then Activate

Configuration​

Navigate to WooCommerce > Settings > Payments > Peer Pay to configure the plugin.

Required Settings​

SettingDescription
API KeyYour API key from Settings > Developer in the dashboard
Webhook SecretGenerated when you create a webhook under Settings > Developer in the dashboard

Optional Settings​

SettingDefaultDescription
Enable/DisableDisabledTurns the gateway on or off at checkout
TitlePeer PayPayment method name shown at checkout
DescriptionPay with Venmo, CashApp, Zelle, PayPal, Revolut, Wise, Chime, Monzo, or N26.Description shown at checkout
API Base URLhttps://api.pay.peer.xyzPeer Pay API host. Leave the default; sandbox is selected by the API key you paste, not by the host
Checkout Base URLhttps://pay.peer.xyzHosted checkout host the customer is sent to
Recipient Wallet AddressNoneEVM wallet address (0x...) to receive USDC. Overrides the default address on your merchant account
Destination Chain IDBase (8453)Blockchain to receive funds on. Current plugin UI options: Base, Ethereum, Arbitrum
Destination TokenUSDCToken to receive. Enter an alias (USDC, USDT) or a contract address
Tile sizeMediumSmall, Medium, or Large payment-method tiles. Split mode only

Split mode and the Crypto tile​

In Checkout display mode, choose Split to show selected Peer Pay rails as separate WooCommerce payment methods. Split mode requires Allowed payment methods to be set to Customize here with at least one method selected.

Selecting Crypto in split mode creates a single Crypto tile at checkout. That tile covers all 12 crypto rails supported by Peer Pay: Ethereum, Optimism, BNB Smart Chain, Polygon, World Chain, Hyperliquid, Arc, Base, Arbitrum, Bitcoin, Tron, and Solana.

In compact mode, selecting Crypto widens the enabledRails sent to Peer Pay but does not render a separate WooCommerce tile. Customers still see one Peer Pay option and choose the final rail inside hosted checkout.

Currency Note​

The current WooCommerce plugin supports USD and non-USD store currencies. USD totals create USDC-denominated orders. Other currencies create fiat-denominated orders that Peer converts to USDC using the live exchange rate.

Setting Up Webhooks​

Webhooks let Peer notify your store about order/payment lifecycle updates. In the WooCommerce plugin, order status changes are driven by order-level events (ORDER_FULFILLED, ORDER_CANCELLED).

1. Find Your Webhook URL​

Your webhook URL follows this format:

https://yourstore.com/wc-api/WC_Gateway_Peer_Pay/

Replace yourstore.com with your actual domain.

2. Add the Webhook in the Dashboard​

  1. Go to merchant.pay.peer.xyz and open Settings > Developer
  2. Create a new webhook with your store's webhook URL
  3. Copy the Webhook Secret shown after creation
  4. Paste the secret into the plugin's Webhook Secret field in WooCommerce settings

Webhook Events​

The plugin handles these events automatically:

EventAction
PAYMENT_SETTLEDAdds an order note that payment settled and fulfillment is pending
ORDER_FULFILLEDMarks the order paid: Processing, or Completed when every item is virtual and downloadable
ORDER_CREATEDAdds a note that an order was created
PAYMENT_CREATEDAdds a note that a payment attempt was created
ORDER_CANCELLEDMarks order as Cancelled
PAYMENT_BRIDGE_FAILEDAdds a note when bridge payout fails for settlement

Minimum recommended subscriptions for this plugin:

  • ORDER_FULFILLED
  • ORDER_CANCELLED
  • Add ORDER_CREATED, PAYMENT_CREATED, PAYMENT_SETTLED, and PAYMENT_BRIDGE_FAILED if you want informational order notes.

How It Works​

  1. Customer checks out and selects Peer Pay
  2. WooCommerce creates an order in On-Hold status
  3. Customer is redirected to the Peer checkout page
  4. Customer pays via their chosen platform (Venmo, Zelle, etc.)
  5. Peer verifies payment and sends lifecycle webhooks
  6. WooCommerce marks the order paid when ORDER_FULFILLED is received (Processing, or Completed when every item is virtual and downloadable)

The plugin adds the payment link to WooCommerce's own On-Hold order email, so the customer can finish paying later. That email comes from your store, not from Peer.

Checkout Compatibility​

The plugin works with both:

  • Classic WooCommerce Checkout (shortcode-based)
  • WooCommerce Blocks Checkout (block editor-based)

No additional configuration is needed.

Supported Payment Platforms​

Customers can pay using any platform enabled on your Peer merchant account:

  • Venmo
  • Cash App
  • Zelle
  • PayPal
  • Revolut
  • Wise
  • Chime
  • Monzo
  • N26
  • Crypto (all 12 supported chains)

Troubleshooting​

Plugin doesn't appear at checkout​

Ensure the payment method is enabled and both required fields are filled: API Key and Webhook Secret. The payment method is hidden until it is enabled and these credentials are configured.

Orders stay on "On-Hold"​

Check that your webhook URL is correctly configured in the Peer dashboard and that the webhook secret matches. You can verify webhook delivery in the dashboard's webhook logs.

Viewing plugin logs​

Go to WooCommerce > Status > Logs and select the peer-pay log file to see detailed plugin activity.

Next Steps​