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
Download and Install
- Visit the Stripe Terminal for WooCommerce releases page
- Download the latest stripe-terminal-for-woocommerce.zip file
- In your WordPress admin, go to
Plugins > Add New > Upload Plugin - Upload the zip file and activate the plugin
Configure Stripe Settings
- Navigate to
WP Admin > WooCommerce > Settings > Payments - Find Stripe Terminal in the payment methods list
- Click on Stripe Terminal to access settings
- Enter your Stripe Secret Key (you can get this from your Stripe Dashboard)
- Save the settings
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.
Enable in WCPOS
- Go to
WP Admin > POS > Settings > Checkout - Find the Stripe Terminal gateway in the list
- Enable the gateway for use in the POS
- Save your settings
Usage
Connecting a Reader
When you select the Stripe Terminal gateway during checkout in the POS:
- Choose Connection Method: You can either connect a physical reader or use the simulator
- Physical Reader: Follow the on-screen instructions to connect your Stripe Terminal device
- Simulator: Select simulator mode to test various payment scenarios without hardware
Processing Payments
- Add Items: Add products to your cart in the POS
- Select Gateway: Choose "Stripe Terminal" as the payment method
- Connect Reader: Connect your reader or choose simulator mode
- Process Payment: Follow the prompts to complete the transaction
- 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
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.
Enable in plugin settings
- Navigate to
WP Admin > WooCommerce > Settings > Payments > Stripe Terminal - Check the Phone Orders (MOTO) checkbox
- Save the settings
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
- Connect a compatible reader (see Supported Terminals)
- At the payment screen, toggle Phone Order on
- Click Collect Card Payment — the reader will display a card number entry screen instead of prompting for a tap/insert
- Key in the customer's card number, expiry, and CVV on the reader
- The payment processes as normal from there
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.
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
Hardware Compatibility
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
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:
- Visit the GitHub repository to report issues
- Check the Stripe Terminal documentation for hardware-specific guidance
- Contact Stripe support for account-related issues
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