Skip to main content
Version: 1.x

Stripe Terminal Gateway

The Stripe Terminal gateway allows you to accept in-person payments using Stripe Terminal hardware readers directly within WCPOS. This gateway supports both physical card readers and simulator mode for testing.

Features

Hardware Integration

Connect physical Stripe Terminal readers via internet connection

Simulator Mode

Test payments without hardware using Stripe's simulator

Real-time Processing

Instant payment processing and confirmation

Secure Transactions

PCI-compliant payment processing through Stripe

Phone Orders (MOTO)

Accept card payments over the phone by keying details into the reader

Installation

1

Download and Install

  1. Visit the Stripe Terminal for WooCommerce releases page
  2. Download the latest stripe-terminal-for-woocommerce.zip file
  3. In your WordPress admin, go to Plugins > Add New > Upload Plugin
  4. Upload the zip file and activate the plugin
2

Configure Stripe Settings

  1. Navigate to WP Admin > WooCommerce > Settings > Payments
  2. Find Stripe Terminal in the payment methods list
  3. Click on Stripe Terminal to access settings
  4. Enter your Stripe Secret Key (you can get this from your Stripe Dashboard)
  5. Save the settings
note

You do not need to enable the Stripe Terminal gateway in WooCommerce settings. It will be enabled specifically for the POS in the next step.

3

Enable in WCPOS

  1. Go to WP Admin > POS > Settings > Checkout
  2. Find the Stripe Terminal gateway in the list
  3. Enable the gateway for use in the POS
  4. Save your settings

Usage

Connecting a Reader

When you select the Stripe Terminal gateway during checkout in the POS:

  1. Choose Connection Method: You can either connect a physical reader or use the simulator
  2. Physical Reader: Follow the on-screen instructions to connect your Stripe Terminal device
  3. Simulator: Select simulator mode to test various payment scenarios without hardware

Processing Payments

  1. Add Items: Add products to your cart in the POS
  2. Select Gateway: Choose "Stripe Terminal" as the payment method
  3. Connect Reader: Connect your reader or choose simulator mode
  4. Process Payment: Follow the prompts to complete the transaction
  5. Confirmation: The order will be automatically completed upon successful payment

Testing with Simulator

The simulator allows you to test various payment methods and scenarios:

  • Card Payments: Test different card types (Visa, Mastercard, etc.)
  • Contactless Payments: Simulate tap-to-pay transactions
  • Error Scenarios: Test declined payments and other error conditions
  • Different Amounts: Test various transaction amounts

Phone Orders (MOTO)

MOTO (Mail Order/Telephone Order) lets you process card payments for customers who aren't physically present — for example, when taking an order over the phone. Instead of tapping or inserting a card, the merchant keys the card details directly into the terminal reader's screen.

Setup

1

Request MOTO access from Stripe

MOTO is not enabled by default. Contact Stripe support and ask them to enable MOTO permissions for your account. This is a quick process but requires manual approval from Stripe.

2

Enable in plugin settings

  1. Navigate to WP Admin > WooCommerce > Settings > Payments > Stripe Terminal
  2. Check the Phone Orders (MOTO) checkbox
  3. Save the settings
3

Connect a compatible reader

MOTO only works with compatible internet-connected readers listed in Supported Terminals. The toggle will not appear for other reader types.

Taking a Phone Order

  1. Connect a compatible reader (see Supported Terminals)
  2. At the payment screen, toggle Phone Order on
  3. Click Collect Card Payment — the reader will display a card number entry screen instead of prompting for a tap/insert
  4. Key in the customer's card number, expiry, and CVV on the reader
  5. The payment processes as normal from there
tip

MOTO payments use card as the payment method type rather than card_present. This means they are treated more like online transactions from Stripe's perspective, so standard online card processing fees apply rather than in-person rates.

caution

The Phone Order toggle only appears when all three conditions are met: the MOTO setting is enabled in plugin settings, a compatible reader is connected, and the reader is not a simulator. If you don't see the toggle, check these conditions.

Requirements

Stripe Account: Active Stripe account with Terminal enabled
API Keys: Stripe secret key from your dashboard
WCPOS: Pro version required for POS checkout
HTTPS: Your site must use SSL/HTTPS for security

Hardware Compatibility

Connectivity Requirements

This implementation uses Stripe's JavaScript SDK, which means it works through web applications but requires internet-connected terminals only. Bluetooth terminals are not currently supported.

Supported Terminals (Internet-Connected)

  • Stripe Reader S700/S710 ✅ - Ethernet/WiFi-connected terminal
  • WisePOS E ✅ - WiFi-connected terminal

Unsupported Terminals (Bluetooth)

  • BBPOS Chipper 2X BT ❌ - Bluetooth only
  • BBPOS WisePad 3 ❌ - Bluetooth only
  • Verifone P400 ❌ - Bluetooth only
Future Support

Bluetooth terminal support will be added to the iOS and Android applications in Q1 2026. This will enable support for all Stripe Terminal certified readers including the M2 and WisePad 3.

Common Issues

Reader won't connect
  • Ensure you're using a supported internet-connected terminal
  • Verify the terminal is connected to WiFi/Ethernet and online
  • Check that your Stripe account has Terminal enabled
  • Confirm the terminal is registered in your Stripe Dashboard
Payment declined
  • Check that your Stripe account is active and in good standing
  • Verify the card being used is valid
  • Ensure sufficient funds are available
Phone Order toggle not showing
  • Verify the Phone Orders (MOTO) setting is enabled in WooCommerce > Settings > Payments > Stripe Terminal
  • Make sure you're connected to a compatible reader (see Supported Terminals) — the toggle is hidden for other reader types
  • The toggle does not appear when using the simulator
MOTO payment fails with an error
  • Confirm that Stripe has enabled MOTO permissions on your account — contact Stripe support if you haven't already
  • Double-check that the card details were entered correctly on the reader
  • MOTO payments may have stricter fraud checks — ensure the card is valid and has sufficient funds
SSL certificate errors
  • Stripe Terminal requires HTTPS - ensure your site has a valid SSL certificate
  • Check that your SSL certificate is properly configured

Getting Help

For technical support:

Screenshots

Screenshots will be added in a future update to show:

  • Gateway configuration in WooCommerce payment settings
  • POS checkout interface with Stripe Terminal selection
  • Simulator testing interface with various payment methods