1. Documentation /
  2. Stripe /
  3. Accept In-Person Payments with Stripe!

Accept In-Person Payments with Stripe!

We’re excited to introduce a new feature for the Stripe Plugin: now, your customers can tap, swipe, or insert their chip card and even use mobile wallet payments, like Apple Pay, using the M2 card reader. Or you can get started with no additional hardware using Tap to Pay on iPhone.

In-Person Payments via Stripe is available to qualified US merchants using iPhone, iPad, or Android devices for non-subscription-based products. Support for subscriptions and other countries are coming soon.

In addition to a device running iOS 14+ or Android 5+, you will also need the M2 card reader and a connection to the Internet (WiFi or Cellular) to collect payments. Your store should also have the Stripe Plugin (version 6.2.0 or newer) active and connected to a Stripe account in good standing.

If you’d like to collect In-Person Payments using Tap to Pay on iPhone, which is currently available to merchants in the United States, you will need an iPhone which meets the following requirements:

  • iPhone XS or newer.
  • iOS 16.0 or above.
  • The device must be signed in to an iCloud account.
  • The device must have a passcode set.
  • The NFC (near field communication) chip must not be disabled.

Introducing Your Card Reader

↑ Back to top

You can purchase the M2 card reader via your Stripe Dashboard. Click here, for more guidance on how to purchase.

Your M2 card reader is shipped with a partial charge and should be charged before first use. To charge your reader, use the included USB-C cable to connect the reader to any USB charger. A full charge takes just a few hours.

You should NOT pair the card reader in your phone or tablet’s settings. The WooCommerce Mobile App will take care of communicating with the reader automatically.

Getting Started: Testing Your Reader Connection

↑ Back to top

Give your card reader a good charge before proceeding. To do so, connect the USB-C connector on the reader using the supplied cable to a USB charger. Once fully charged, which takes approximately 2 hours, the reader can process hundreds of transactions before needing a recharge.

The next step is to connect your card reader to your mobile device for the first time. To do so, in the WooCommerce Mobile App, go to Menu > Payments.

Then, on the In-Person Payments screen, look for Manage card reader and tap on it:

If you don’t see the Manage card reader item, contact support so that we can sort it out by navigating to the main screen in the WooCommerce Mobile App, and going to Settings (gear icon) > Help & Support > Contact Support.

When you see the Connect your card reader screen, tap on Connect Card Reader:

You should be prompted that Woo Would Like to Use Bluetooth – tap OK to allow it.

Scanning will commence:

Press and briefly hold (a second or so) the power button on your reader to turn it on and keep it near the mobile device.

After a few seconds, you’ll see the Do you want to connect… prompt with your reader’s serial number. Tap Connect to Reader to begin the connection process.

You should see the Allow Woo to Use Your Location prompt. Tap to Allow While Using App.

After a second or less, you’ll see the connected reader and its battery status. That’s it – your reader is now connected and ready to accept payments.

If you’re having trouble getting your site connected to the WooCommerce Mobile App, please make sure your site is connected to a WordPress.com account through the Jetpack plugin and no error is reported there.

Collect Fast Payment

↑ Back to top

To collect quick payments navigate to the Menu tab in your WooCommerce Mobile App, tap on Payments, and tap on Collect Payment. Enter in the amount to collect, add an order note (optional), and click to collect payment. Then swipe, tap, insert your customer’s card or use a digital wallet option, like Apple Pay, to charge this amount. You can also turn the tax option on or off, which will charge the tax in the state where your WooCommerce store is registered.

Buy Online, Pay at Pickup

↑ Back to top

If you offer local pickup or curbside pickup options, you’ll need to decide if you want to deliver to your customers, or if they will be picking up their orders, or both. You’ll then set up Shipping Methods that your customers can choose during checkout.

Option 1: Delivery

↑ Back to top

If you already have shipping set up for delivery, feel free to review or skip this section without making changes.

First, go to WP Admin for your store and click WooCommerce > Settings > Shipping.

If you don’t already have a Shipping Zone that includes delivery, add a new Shipping Zone, and give it a Zone name, e.g. “North End Seattle Metro”:

In Zone regions pick the state you deliver to and then the  specific ZIP Codes:

A screenshot of the Shipping Zone screen showing options for Zone name, Zone regions (that can be more specific via postal codes), and Shipping Methods.

While on this Shipping Zone screen, add a Shipping Method for delivery using the Flat rate method. In this example, we called it “Seattle Metro North End Delivery.”

And if you want to support traditional shipping for these nearby customers, don’t forget to add a Shipping Method for that too (see USPS above as an example.) Remember, for customers whose shipping address falls within the shipping zone, only the shipping methods specified for that zone will be visible. 

Don’t forget to click Save changes when you are finished

Option 2: Local Pickup

↑ Back to top

If you already have shipping set up for local delivery, feel free to review or skip this section without making changes.

First, go to WP Admin for your store and click on WooCommerce > Settings > Shipping.

If you don’t already have a Shipping Zone that includes local pickup, add a new Shipping Zone, and give it a Zone name, e.g. “Washington State”:

In Zone regions pick the state that you want to offer local pickup for and then, optionally, the specific ZIP Codes (or allow any ZIP code in your state if you prefer):

While on this Shipping Zone screen, add a Shipping Method for local pickup using the Local pickup method. In this example, we called it “Local Pickup (Free!)”

An additional screenshot of the Shipping Zones screen. Two Shipping Methods are shown: Pickup in store (Free), and USPS.

And if you want to support traditional shipping for these nearby customers, don’t forget to add a Shipping Method for that too (see USPS above as an example.) Remember, for customers whose shipping address falls within the shipping zone, only the shipping methods specified for that zone will be visible. 

Don’t forget to click Save changes when you are finished

Option 3: Both Delivery AND Local Pickup

↑ Back to top

If you already have shipping set up for delivery and local pickup, feel free to review or skip this section without making changes.

First, go to WP Admin for your store and click on WooCommerce > Settings > Shipping.

If you don’t already have a Shipping Zone that includes delivery and local pickup, add a new Shipping Zone, and give it a Zone name, e.g. “North End Seattle Metro”:

In Zone regions pick the state that you want to offer local pickup for (in this example, Washington State) and then the specific ZIP Codes to which you deliver.

While on this Shipping Zone screen, add a Shipping Method for delivery using the Flat rate method. In this example, we called it “Seattle Metro North End Delivery.”

And then add another Shipping Method for local pickup using the Local pickup method. In this example, we called it “Local Pickup (Free!)”

And if you want to support traditional shipping for these nearby customers, don’t forget to add a Shipping Method for that too (see USPS below as an example.) Remember, for customers whose shipping address falls within the shipping zone, only the shipping methods specified for that zone will be visible. 

When you’re done it should look something like this:

A third screenshot of the Shipping Zone screen, showing yet another Shipping method has been added, this time the Seattle Metro North End Delivery.

Don’t forget to click Save changes when you are finished

For more information on setting up Shipping Zones see https://woo.com/document/setting-up-shipping-zones 

Next, Add a Cash on Delivery Payment Method

↑ Back to top

You already have Stripe setup on your store to allow your customers to enter their card information on your website to complete checkout. But for In-Person Payments, you’ll also need to add another payment method: Cash on Delivery.

Don’t worry about the word “Cash” there – we’ll fix that in the next few steps.

To do so, go to WP Admin for your store and click on WooCommerce > Settings > Payments and enable “Cash on delivery”.

Then click on Manage to access the settings for Cash on delivery. We recommend changing the name to something like “Pay on Delivery” or “Pay in Person” depending on your business, e.g.:

A detailed view of the Cash on delivery payment method. Sowing the Enable/Disable checkbox setting, and title, description, instruction, Enable for shipping methods text fields, and the Accept for virtual orders checkbox setting.

Note that you can limit Cash on delivery to selected Shipping Methods like those we set up earlier. This way your customers will only see the Cash on delivery Payment Method only if they qualify for those Shipping Methods. Just select those Shipping Methods in the Enable for shipping methods box (see above.)

Collect Payment for an Order Placed Online

↑ Back to top

Enter Orders and browse orders in the Processing state. Orders created with the Cash on Delivery Payment Method are initially in the Processing state.

Tap on an order from the list, e.g.:

Scroll down to the Payment section and tap on the Collect Payment button, e.g.:

You will be prompted to select a payment method. Select Card for any type of card-present payment, using either a Bluetooth card reader, or Tap to Pay on iPhone.

Now, you should be prompted to Collect payment from your customer. Have your customer insert their chip card, or swipe their older non-chip card. Newer cards that support tap-and-pay can be simply tapped to the reader. The reader also supports NFC wallets for mobile devices including, for example, wallets on Apple and Google mobile devices.

If a chip card was inserted, remove the card from the reader when prompted.

Wait for the payment to be processed. This can take up to 10 seconds or more.

On success, on iPhones you should hear a sound and feel a haptic vibration. On an iPad and Android devices, you will hear a sound.

Now, you should be prompted to print or email a receipt (or No thanks to doing neither). You can also print a receipt later.

Collecting Payment with Tap to Pay on iPhone

↑ Back to top

After selecting Tap to Pay on iPhone, if this is the first time using the feature, the app will check that your device is ready to use Tap to Pay on iPhone and display a prompt to accept the terms and conditions.

You will have the option to continue with your device’s Apple ID or another Apple ID. The Apple ID you use will be associated with a merchant account for merchant account management and fraud prevention and compliance purposes through Apple.

You can unlink your Apple ID from a merchant account by contacting Apple Support or using the instructions that are sent by email after setup.

Once that one-time setup process is complete, the built-in reader will prepare to take the payment and then display the payment screen.

The card or phone used as the payment method can be tapped on the area indicated on your device. The app will then process the payment and, once completed, adjust your inventory automatically.

Now, you should be prompted to print or email a receipt (or No thanks to doing neither). You can also print a receipt later.

Receipt Printing

↑ Back to top

As an In-Person Payments merchant, you are obligated to provide your customers the option of a printed receipt for any payment.

Printing Receipts to a Printer Accessible via the Same WiFi Network

↑ Back to top

If your mobile device has access to a WiFi Network, e.g. for curbside payments or point-of-sale type payments, you should be able to print any printer accessible via that WiFi network using AirPrint (iOS) or Mopria (Android). 

Android users should note that for some printers (including the Brother RJ-4250WB-L and many others), you may need to install additional software like, for example, the Brother Print Service Plugin – see https://play.google.com/store/apps/details?id=com.brother.printservice&hl=en&gl=US )

Printing Receipts to a Portable WiFi Direct Printer (e.g. Brother RJ-4250WB-L or similar)

↑ Back to top

WiFi Direct printers like the Brother RJ-4250WB-L have their own internal WiFi access point/hotspot that a mobile device can connect to directly for printing receipts.

If you have access to a WiFi Direct Printer like the Brother RJ-4250, ensure your mobile device has access to cellular data and then connect to the printer WiFi using your device’s WiFi settings. In the case of a RJ-4250WB, the printer will have 4250WB in its SSID and the password is 425 followed by the last 5 digits of the serial number, e.g. 42533007.

You can then accept payments (over cellular data) and print receipts (over WiFi Direct). This can be especially useful for in-person delivery at a customer’s home.

Why Not Both?

↑ Back to top

Some printers, like the Brother RJ-4250WB-L can be used both with a traditional WiFi network AND with WiFi Direct. This is great for maximizing the use of a somewhat expensive printer like the Brother RuggedJet. Android users may also be able to connect to printers, like the Brother RJ-4250WB-L, using Bluetooth as a third option.

The idea is that, when you have your printer at their place of business, it can be accessed like any other printer on their WiFi network.  But when you take the printer somewhere else, like a customer’s home or trade show, the WiFi Direct mode takes precedence.

For the Brother RJ-4250WB-L, a special Windows-based Printer Setting Tool is needed to set up the WiFi network SSID and password. To get this tool

  • Visit https://support.brother.com/g/b/downloadtop.aspx?c=eu_ot&lang=en&prod=rj4250wbeuk 
  • Click on Windows for OS Family and then choose your OS (e.g. Windows 10 (64-bit))
  • To the right of “Software/Document Installer” click on “Click to choose” and choose your preferred language.
  • Agree to the EULA, download and run the installer
  • Connect the RJ-4250WB-L to your computer using a USB “Mini-B” cable. The port is near the paper opening button:
  • After installation completes, launch the Printer Setting Tool, connect to your RJ-4250 over USB, and click on Communication Settings
  • Switch to the Wireless LAN tab, then pick Wireless Settings. Enter (or search for) your wireless network and give its passphrase. Hit Apply to send the settings to the printer.
  • Lastly, on the printer itself:
    • Press the Menu (down arrow) button until you see WLAN
    • Press the OK button
    • Press the Menu (down arrow) button until you see Mode
    • Press the OK button
    • The Menu (down arrow) button until you see Direct/Infra
    • Press the OK button
  • Your printer should now be able to function both on your WiFi network (Infra) and off network (Direct).

Update Your Privacy Policy

↑ Back to top

Like any Payment Method, customers using In-Person Payments should be aware of what data is shared about them and their transactions with others. Customers using card-present-payments can expect to have the following personal data shared with our partner Stripe:

  • their location at the time and date of purchase
  • their email address
  • their name
  • a Stripe assigned customer ID if the buyer has prior payments for this store
  • the buyer’s address and phone number
  • the quantity, price, and description of items in the order

All this data is used to support fraud detection during payment collection.

More details on privacy on our products can be found here: https://automattic.com/privacy/ 

To manage your store’s privacy policy, go to WP Admin for your store and click on Settings > Privacy.

Powering Off Your Reader

↑ Back to top

If you ever want to power off your reader (e.g. to save battery life), hold down the power button for about 4 seconds. The light will go off and stay off.

When not in use, the reader will power off automatically after a few minutes to conserve power. To turn it back on, simply press the power button.

Refunds

↑ Back to top

You can refund your customers In-Person Payment just as you would any other Stripe payment. Simply follow the refund flow on their order in the app or on your site via WP Admin. When refunding orders via WP Admin, be sure to select Refund $x.xx via Stripe (avoid using the Refund $x.xx Manually button as this button does NOT refund the customer’s money automatically through Stripe – see Manual Refunds for more information.)

Authorizations and Captures

↑ Back to top

If you have enabled Issue an authorization on checkout, and capture later in Settings (this is disabled by default – see image below) it is important to capture in-person payments right away. A best practice is to capture all in-person authorizations at the end of the business day.

Note: Unlike online payments (which allow 7 days to capture), in-person payment authorizations must be captured within 2 days or the authorization and order will be canceled.

FAQ

↑ Back to top

Does In-Person Payments work with Test Mode enabled on WooCommerce Stripe ?

↑ Back to top

No. In-Person Payments is not compatible with Test Mode. You should ensure that Test Mode is NOT enabled in WP ADMIN under WooCommerce > Settings > Payments -> Credit Card (Stripe).

Does my mobile device need an Internet connection in order to collect payments?

↑ Back to top

Yes. Your mobile device needs to be connected to the Internet to collect payments. If using cellular (e.g. for delivery), be sure Cellular Data is enabled for the “Woo” application in your iPhone or iPad’s Cellular Settings.

What cards and Digital Wallets are supported?

↑ Back to top

In addition to most credit and debit cards, we also support in-person payments using Apple Wallet, Google Wallet, Samsung Pay, VISA payWave, MasterCard PayPass, AMEX ExpressPay, and Discover D-PAS.

Can I use In-Person Payments for my subscription-based products?

↑ Back to top

No, not at this time. Support for subscriptions products will be coming in a future release.

Can I bring my own Card Reader?

↑ Back to top

Yes, M2 and WisePad 3 card readers purchased from a different site work as expected with the WooCommerce mobile apps. If you have a supported iPhone, you can also get started collecting contactless payments with Tap to Pay on iPhone without any additional hardware.

What is the minimum version of the WooCommerce Mobile App I need on my mobile device for In-Person Payments with Stripe?

↑ Back to top

Version 8.6 for iOS and version 8.6 for Android.

What is the Card Reader Return Policy?

↑ Back to top

Refer to the Stripe’s documentation for more information.