RailbedDocs

WooCommerce

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

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.
  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 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.

Updated · This page as Markdown