| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Point of Sale (point_of_sale)
• Discuss (mail) • Inventory (stock) • Invoicing (account) |
| Lines of code | 712 |
| Technical Name |
pos_stripe_server_driven |
| License | AGPL-3 |
| Website | https://d.sb/odoo-modules |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Point of Sale (point_of_sale)
• Discuss (mail) • Inventory (stock) • Invoicing (account) |
| Lines of code | 712 |
| Technical Name |
pos_stripe_server_driven |
| License | AGPL-3 |
| Website | https://d.sb/odoo-modules |
POS Stripe (Server-driven)

This module integrates the Odoo Point of Sale with Stripe Terminal using the server-driven integration. Unlike the built-in pos_stripe module which uses Stripe’s JavaScript Terminal SDK (requiring the card reader to be on the same LAN as the browser), this module communicates with the reader through Stripe’s server-to-server API.
This means the terminal reader can be on any network — it only needs an internet connection to communicate with Stripe’s servers. This is especially useful with the Stripe Reader S710 and Verifone V660p terminals, as these terminals have cellular connectivity.
Supported hardware
Stripe Terminal readers that support the server-driven integration. This includes the WisePOS E, Stripe Reader S700/S710, and Verifone smart readers.
Features
- No LAN requirement between POS and card reader
- Webhook-based real-time payment status updates
- Card brand and transaction ID displayed on payment
Table of contents
Configuration
- In Invoicing > Payment Providers, enable the Stripe payment
provider.
- Click the “Generate your Webhook” button next to Terminal Webhook Secret to configure a webhook for terminal events. This only needs to be done once, regardless of how many Stripe terminals you have.
- In Point of Sale > Configuration > Payment Methods, add a Stripe
payment method.
- Integrate with: Select Stripe (server-driven).
- Stripe Reader ID: Select the correct terminal.
- In Point of Sale > Configuration > Settings, select the relevant Point of Sale, then select the payment method.
Note: If you have multiple Stripe terminals, you will need to create a separate payment method for each one.
Payment flow
- Cashier initiates payment in POS
- Odoo server creates a PaymentIntent and hands it off to the reader via Stripe API
- Customer taps/inserts card on reader
- Stripe sends a webhook notification to Odoo, which notifies the POS frontend
- Server captures the payment and POS shows success
Note: If you are a developer and want to work on this module, refer to TESTING.md for instructions on how to test it with a simulated Stripe reader.
Bug Tracker
Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.
Do not contact contributors directly about support or help with technical issues.
Credits
Authors
- Daniel Lo Nigro
Contributors
- Daniel Lo Nigro
Maintainers
Current maintainer:

This module is part of the Daniel15/odoo-modules project on GitHub.
You are welcome to contribute.
Please log in to comment on this module