# 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[​](#features "Direct link to 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[​](#installation "Direct link to Installation")

1

#### Install Stripe Terminal for WooCommerce

Install from `WP Admin > POS > Settings > Extensions`, or download the latest **plugin zip asset** (not the GitHub source-code zip or tarball) from the [GitHub releases page](https://github.com/wcpos/stripe-terminal-for-woocommerce/releases) and upload it via `Plugins > Add New > Upload 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[​](#usage "Direct link to Usage")

### Connecting a Reader[​](#connecting-a-reader "Direct link to 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[​](#processing-payments "Direct link to 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[​](#testing-with-simulator "Direct link to 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)[​](#phone-orders-moto "Direct link to 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[​](#setup "Direct link to Setup")

1

#### Request MOTO access from Stripe

MOTO is not enabled by default. Contact [Stripe support](https://support.stripe.com/contact) 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](#supported-terminals-internet-connected). The toggle will not appear for other reader types.

#### Taking a Phone Order[​](#taking-a-phone-order "Direct link to Taking a Phone Order")

1. Connect a compatible reader (see [Supported Terminals](#supported-terminals-internet-connected))
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[​](#requirements "Direct link to 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[​](#hardware-compatibility "Direct link to 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)[​](#supported-terminals-internet-connected "Direct link to Supported Terminals (Internet-Connected)")

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

### Unsupported Terminals (Bluetooth)[​](#unsupported-terminals-bluetooth "Direct link to Unsupported Terminals (Bluetooth)")

* **BBPOS Chipper 2X BT** ❌ - Bluetooth only
* **BBPOS WisePad 3** ❌ - Bluetooth only
* **Verifone P400** ❌ - Bluetooth only

Future Support

Bluetooth terminal support is planned for a future iOS and Android app release. When available, this will enable support for all Stripe Terminal certified readers including the M2 and WisePad 3.

### Common Issues[​](#common-issues "Direct link to Common Issues")

Reader won't connect

* Ensure you're using a [supported internet-connected terminal](#supported-terminals-internet-connected)
* 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](#supported-terminals-internet-connected)) — 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](https://support.stripe.com/contact) 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[​](#getting-help "Direct link to Getting Help")

For technical support:

* Visit the [GitHub repository](https://github.com/wcpos/stripe-terminal-for-woocommerce) to report issues
* Check the [Stripe Terminal documentation](https://stripe.com/docs/terminal) for hardware-specific guidance
* Contact Stripe support for account-related issues

## Screenshots[​](#screenshots "Direct link to 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
