Reader setup
Verifone P400

Verifone P400 setup

Learn to use the Verifone P400 countertop reader with Stripe Terminal.

The Verifone P400 is a countertop reader for Stripe Terminal apps. It connects to the Stripe Terminal SDK over the internet.

This reader is compatible with JavaScript SDK and the iOS SDK (currently in beta). To view the reader’s parts and features, see the product sheet.

Turning the reader on and off

To turn on the Verifone P400, securely plug the P400 connector cable into the port on the bottom of the reader. The cover slides over the port to hold the cable in place. Plug the power adapter into the connector cable and into a power outlet.

Verifone P400 connector cable

The Verifone P400 automatically turns on when connected to power. In a countertop deployment, leaving the device on for extended periods is expected. If you need to turn the reader off, remove the power source.

Connecting the reader to the internet

Because the Verifone P400 is internet enabled, its reader software communicates directly with Stripe, managing connectivity through a LAN. The reader must connect to the same local network as your application.

WiFi Beta

If you’re setting up a new device, follow the on-screen prompts to connect to the internet using WiFi. To start over, press the red X button on the keypad.

To switch networks, or connect an already online reader to a WiFi network, press 0WIFI (0-9-4-3-4) on the keypad and follow the prompts. Attempting to join a new network disconnects the reader from any existing wireless connection. There’s no fallback to the previously connected network.

Your WiFi network must use WPA-Personal or WPA2-Personal encryption and be password protected. WiFi is not supported for non-password-protected networks or enterprise networks.

Key mapping

To access characters from the keypad, use this multi-tap key mapping scheme. The table shows which characters each key maps to, in the order they’ll appear.

Keypad Number Characters Keypad Number Characters
0 0-+=_!?@$%^&/\()[]{}<>~| 6 6mnoMNO
1 1qz.QZ 7 7prsPRS
2 2abcABC 8 8tuvTUV
3 3defDEF 9 9wxyWXY
4 4ghiGHI * *,’␣”`:;
5 5jklJKL # #

For example, if your network password is Stripe, enter 7-7-7-7-7-7-7-8-8-7-7-7-4-4-4-4-7-7-3-3-3.


Connect an Ethernet cable from your router to the Verifone P400, using the ETH port (not the RS232 port).

Connecting Ethernet cable to Ethernet port

The reader obtains an IP address using DHCP. As soon as the network cable is plugged in, the reader attempts to establish communication with Stripe.

Network priority

The Verifone P400 resets its priority to Ethernet when rebooting. Even if previously configured for WiFi, the reader switches to Ethernet if it detects an Ethernet cable connection while starting up.

If you connect to WiFi while an Ethernet cable is connected, the reader switches to the WiFi connection. If the reader fails to connect to WiFi on the first attempt, it falls back to Ethernet connection. Otherwise, the reader continues to prioritize WiFi until rebooted.

Reader screens

The reader has a few screens to indicate its connectivity state. The default splash screen indicates that the reader is connected to Stripe and ready for processing.

You can customize the reader’s default splash screen by setting up locations.

Default splash screen

Downloading update screen

Not connected screen


To begin troubleshooting, use the following common scenarios to help diagnose what’s broken.

Checking connectivity

Stripe provides two debug screens on the reader. Use these screens to help diagnose common connectivity and network issues. To access a debug screen, enter the following key sequences while on the splash screen:

Key Sequence Debug Screen Description
0-4-2-6-8 Device Status Shows the device's IP address, account ID, location, gateway, network mask, and connectivity status.
0-8-6-2-4 Connectivity Starts a network test, by attempting to connect to the required endpoints.

To exit a debug screen, press 0 on the keypad. You can also program your app to re-render the screen by calling any of these functions:

  • connectReader() JavaScript iOS
  • collectPayment() JavaScript iOS
  • setReaderDisplay() JavaScript iOS

Problems updating

If you reader is not updating, it’s possible that it cannot connect to Stripe. Check its connectivity.

Reader does not have an IP address

The Device Status debug screen shows the reader’s IP address, or No ETH if the device does not have an IP address. Use the following steps to debug a No ETH condition.

Router networking

If using a router, please refer to your router’s manual, and reconfigure the networking setup.

Other IP-address

If the above steps do not reveal an IP address on the reader, try these further measures:

  • Unplug and reconnect the Ethernet connection to the network source (i.e., the modem for router networking, or your computer for bridged networking).
  • Restart the reader while the network source is attached to it. You can restart the reader by unplugging and reconnecting the power cable from the connector cable.
  • Check the connectors for any broken hardware (such as bent pins).

Reader has IP address, but is unable to communicate with Stripe

The Connectivity debug screen indicates whether the P400 is connected to Stripe. Here are some common reasons for failing this test, with corresponding troubleshooting steps.

  • Stripe endpoints cannot be accessed:
    • Check your computer’s firewall/blacklists.
  • The network source is not connected to the internet:
    • In the case of bridged connections, ensure that the selected source is connected to the internet.
    • In the case of router connections, refer to your router’s documentation to restart the network.

Reader has IP address and can communicate with Stripe, but not with your point of sale application

Make sure your application and your reader are on the same local network.

  • If your Verifone P400 is connected via WiFi, make sure the device running your point of sale application and the Verifone P400 are able to communicate over the local network (typically this means they should be on the same subnet).
  • If your Verifone P400 is connected via Ethernet, make sure that your application is connected to the same switch, and that that switch has access to your router.

Stripe Terminal requires that both the point of sale application and the reader be able to interact with specific domain names, all of which should be whitelisted on your network.

Some DNS providers block DNS resolution of local IP addresses. Stripe Terminal uses the partially qualified domain name *.device.stripe-terminal-local-reader.net which resolves to the local IP address of your Verifone P400. If your DNS provider blocks local IP resolution, you should change your network settings to use one of the following DNS providers:

The Stripe reader software

Stripe maintains the software that controls the Verifone P400. The reader receives updates automatically from Stripe when not in use. Read about reader software updates for details.

Leave your reader connected to power to receive automatic software updates. This ensures that updates happen at midnight (in the timezone of the assigned location) to avoid interruption to sales. If you unplug the reader at night, an update could start when you turn it back on. To manually check for an update, reboot the reader.

You can always check the current reader version by pressing 0-4-2-6-8.

Verifone P400 software releases

Version Description Improved reader reliability. Updated messaging to more strongly advocate for the use of contactless payment methods. Added automatic handling of soft declines. Added support for cardholder_name in payment method details. Added support for additional integration methods, fixed some localization issues. Fixed some international refunds issues, improved WiFi disconnection handling and retries. Added regional support for Canadian merchants. Added improved triaging tools, bug fixes, and prerequisite work for future features. Implemented WiFi upgrades improving re-connection of cached networks, bug fixes. Added support for regional EMV configurations, bug fixes. Changed red X button behavior in testmode (now clears a transaction’s payment method instead of canceling that transaction; this mirrors livemode behavior), added MAC address to Device Status debug screen, bug fixes. Added new reader screens for better UX, disabled contactless sources during readReusableCard, fixed bugs.

For additional instruction on maintaining PCI compliance when installing updates to your Verifone P400 device, refer to the reader PCI implementation guide.

Next steps

now that you have your reader set up, you are ready to connect it to your application and collect your first Terminal payment.

The BBPOS and Chipper™ name and logo are trademarks or registered trademarks of BBPOS Limited in the United States and/or other countries. The Verifone® name and logo are either trademarks or registered trademarks of Verifone in the United States and/or other countries. Use of the trademarks does not imply any endorsement by BBPOS or Verifone.

Was this page helpful?
Questions? Contact us.
Developer tutorials on YouTube.
You can unsubscribe at any time. Read our privacy policy.