Sign in
An image of the Stripe logo
Create account
Sign in
Home
Payments
Business operations
Financial services
Developer tools
Security
All products
Home
Payments
Business operations
Home
Payments
Business operations
Financial services
Developer tools
Support
Overview
Overview
What is Terminal
Design an integration
Example applications
Quickstart
Accept an in-person payment
Set up your reader
Set up your integration
Connect to a reader
Collect payments
Regional considerations
Terminal payments features
Multiparty payments with Connect
Collect tips
Save cards for future use
Refund transactions
Provide receipts
Cart display
Incremental authorizations
Extended authorizations
Deploy at scale
Order hardware
Manage locations
Configure readers
References
API references
Bluetooth readers
Smart readers
BBPOS WisePOS E reference
Verifone P400 reference
SDK migration guide
Testing
Deployment checklist
Stripe Terminal reader product sheets
Testing
No-code options
terminal
·
HomePaymentsIn-person paymentsSmart readers

Verifone P400

Learn about the Verifone P400 reader.

The Verifone P400 is no longer available for purchase. If you’re getting started with Stripe Terminal, we recommend viewing our current reader offerings.

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.

Troubleshoot the reader

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

Reader is unable to connect

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 SequenceDebug ScreenDescription
0-4-2-6-8Device StatusShows the device’s IP address, account ID, location, gateway, network mask, and connectivity status.
0-8-6-2-4ConnectivityStarts 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()
  • collectPayment()
  • setReaderDisplay()

Debug screens overlay the reader’s normal screen display, and can trigger only while on the reader screens shown above.

Reader is unable to update

If your reader isn’t updating, it’s possible that it can’t connect to Stripe. Check its connectivity.

Reader doesn’t have IP address

The Device Status debug screen shows the reader’s IP address, or No ETH if the device doesn’t 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 don’t reveal an IP address on the reader, try these additional steps:

  • Unplug and reconnect the Ethernet connection to the network source (that is, the modem for router networking, or your computer for bridged networking).
  • Restart the reader with the network source 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).

Remember to connect production deployments to the merchant network through router networking.

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

The Connectivity debug screen indicates the connection status between the P400 and Stripe. Here are some common reasons for failing this test, with corresponding troubleshooting steps:

  • Stripe endpoints can’t be accessed:

    • Check your computer’s firewall/deny-list.
  • The network source isn’t connected to the internet:

    • In the case of bridged connections, ensure 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 through 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’re on the same subnet).
  • If your Verifone P400 is connected through Ethernet, make sure that your application is connected to the same switch, and that the switch has access to your router.

Stripe Terminal requires that both the point of sale application and the reader can interact with specific domain names, all of which are added to an allow-list on your network.

Stripe Terminal also requires that your reader be assigned an IP address in one of the private IPv4 address blocks.

Some DNS providers block DNS resolution of local IP addresses. Stripe Terminal uses the partially qualified domain name *.[random-string].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, change your network settings to use one of the following DNS providers:

  • Cloudflare DNS (1.1.1.1 and 1.0.0.1)
  • Google Public DNS (8.8.8.8 and 8.8.4.4)

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. These can include improvements and required security updates from Stripe and our hardware partners. As reader software updates are made available, update your readers to the latest available version to continue using Stripe Terminal. Failing to install a required update can prevent a reader from accepting payments.

The reader restarts every day at midnight for PCI compliance, and disconnects from the POS app every morning. 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

VersionDescription
3.0.2.3Fixed cardholder_name for contactless transactions.
3.0.2.1Updated server on-device to now host a unique PQDN per device.
3.0.1.18Improved reader reliability.
3.0.1.16Updated messaging to more strongly advocate for the use of contactless payment methods.
3.0.1.15Added automatic handling of soft declines.
3.0.1.14Added support for cardholder_name in payment method details.
3.0.1.13Added support for additional integration methods, fixed some localization issues.
3.0.1.12Fixed some international refunds issues, improved WiFi disconnection handling and retries.
3.0.1.10Added regional support for Canadian merchants.
3.0.1.8Added improved triaging tools, bug fixes, and prerequisite work for future features.
3.0.1.6Implemented WiFi upgrades improving re-connection of cached networks, bug fixes.
3.0.1.5Added support for regional EMV configurations, bug fixes.
3.0.1.2Changed 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.
3.0.1.0Added 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.

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.
View developer tutorials on YouTube.
Check out our product changelog.
Powered by Markdoc
You can unsubscribe at any time. Read our privacy policy.
On this page
Troubleshoot the reader
Stripe reader software
Stripe Shell
Test mode
▗▄ ▄▟█ █▀▀ ▗▟████▙▖ ██████ ███▗▟█ ███ ███▗▟██▙▖ ▗▟█████▙▖ ███▖ ▀▀ ███ ███▀▀▀ ███ ███▀ ███ ███ ███ ▝▜████▙▖ ███ ███ ███ ███ ███ █████████ ▄▄ ▝███ ███ ▄ ███ ███ ███▄ ███ ███ ▄▄ ▝▜████▛▘ ▝▜███▛ ███ ███ ███▝▜██▛▘ ▝▜█████▛▘ ███ ▀▘
Welcome to the Stripe Shell! Stripe Shell is a browser-based shell with the Stripe CLI pre-installed. Login to Stripe docs and press Control + Backtick on your keyboard to start managing your Stripe resources in test mode. - View supported commands: - Find webhook events: - Listen for webhook events: - Call Stripe APIs: stripe [api resource] [operation] (e.g. )
The Stripe Shell is best experienced on desktop.
$