# WooCommerce

> Add Railbed card checkout to a WordPress store with the Railbed for WooCommerce plugin. Orders complete from verified payments, with no code.

Source: https://railbed.io/docs/guides/woocommerce/ · Updated: 2026-09-26 · Railbed by DeepWork developer docs

## What the plugin does

Railbed for WooCommerce adds Railbed as a payment method at your store's checkout. When a buyer places an order, the plugin creates a checkout session and sends the buyer to Railbed's hosted page. The order completes only after the plugin has verified the payment with Railbed: a signed webhook starts the check, and the plugin confirms it with an authenticated status request before marking the order paid. Card details never touch WordPress.

**Requirements:** WordPress 6.9 or later, WooCommerce 10.9 or later, PHP 8.3 or later. Works with classic checkout and Checkout Blocks, and with both order storage modes. Order currencies USD, EUR, GBP, CAD and AUD; amounts from 1.00 to 100,000.00.

## Install and connect

1. Download the plugin from **Integrations** in the [dashboard](https://app.railbed.io/integrations).
2. In WordPress, open **Plugins → Add new → Upload plugin**, upload the ZIP and activate it alongside WooCommerce.
3. Open **WooCommerce → Settings → Payments → Railbed**. Start in **Test** mode.
4. In Railbed, switch to **Test**, open [Developers](https://app.railbed.io/developers) and **Create key**. Then **Add endpoint** with the webhook address shown in the plugin's settings (it ends in `?wc-api=railbed_webhook`).
5. Paste the secret key and the endpoint's signing secret into the plugin's Test fields and save. Saving checks the key.
6. In Railbed, choose **Send test event** on the endpoint, then reload the plugin settings and tick **Enable** (Offer Railbed at checkout). When the settings show **Connection verified** and Enable is ticked, the payment method appears at checkout.
7. Place a test order and pay it with **Simulate successful payment**. The order becomes Processing (or Completed when every item is virtual and downloadable), as with any paid order.

## Going live

Add your payout wallet in Railbed, switch the plugin's **Payment mode** to Live, and repeat steps 4 to 6 with a live key and a live endpoint (in Railbed, a Live endpoint takes **Send ping** instead of test events). The payment method is offered only on an HTTPS store, in Test mode too (unless WordPress's environment type is `local`). Orders keep the mode they were placed in, so switching the plugin to Live doesn't affect test orders in progress.

## Store settings that matter

- Your store must accept a public POST to its webhook address without a login, cache or bot challenge, and keep the `Railbed-Signature` header and the request body unchanged. Security plugins and CDN rules sometimes block it; allow the address.
- Run WordPress cron regularly (a real cron job is best). The plugin uses it to re-check orders whose webhook was missed.
- If you change the webhook address, send another test event before new checkouts are offered.
- When you roll the signing secret in Railbed, paste the new one into the plugin straight away. From the roll on, deliveries are signed with the new secret and the plugin rejects them until it has it; they're retried for about a day, and the plugin's status checks keep orders moving meanwhile. After saving the new secret, send another test event: until a delivery signed with it arrives, the payment method isn't offered at checkout.

## Moving from another gateway

Install Railbed as a separate payment method. Keep your old gateway active until its outstanding orders finish, then disable it for new purchases. Orders aren't moved between gateways.
