| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Invoicing (account) • Discuss (mail) |
| Lines of code | 6098 |
| Technical Name |
odoo_square |
| License | AGPL-3 |
| Website | https://github.com/davaico/odoo-square |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Invoicing (account) • Discuss (mail) |
| Lines of code | 6098 |
| Technical Name |
odoo_square |
| License | AGPL-3 |
| Website | https://github.com/davaico/odoo-square |
Square POS Integration
Connect your Square point of sale with Odoo. Real-time sync of orders, refunds, exchanges, and inventory.
Key Features
Real-Time Webhook Processing
Secure HMAC-SHA256 endpoint receives every Square event:
order.created, order.updated,
refund.created, refund.updated.
Orders, exchanges and refunds appear in Odoo within seconds.
Smart Customer Matching
New Square orders are matched to existing Odoo contacts by email, then phone, then name. If no match is found, a new contact is created automatically. No duplicates, no manual cleanup.
Refunds and Exchanges
Full refunds generate credit notes and stock returns. Equivalent exchanges update lines and trigger simultaneous stock moves. Price-difference exchanges create the appropriate invoice or credit note based on the price delta.
Bidirectional Inventory Sync
Odoo stock moves push updates to Square through the Square Inventory API. Loop prevention excludes Square-originated moves to avoid conflicts. Scoped to a configurable shop warehouse.
Audit Trail and Monitoring
Every webhook, every API call, every refund and every stock adjustment is recorded in a centralized Integration Log. Chatter messages are also added to the source sales order, so the full history is one click away from the order itself.
- Centralized Integration Log with filterable status, level, and operation type
- Automatic chatter messages on each related sales order
- Webhook queue with retry control and replay
- Manual resync wizard for orders, refunds, and stock
Configuration
- Install the module from the Apps menu.
- Open Settings → Square Configuration.
- Enter your Square Application ID, Access Token, Location ID, and Webhook Signature Key.
- Select the warehouse used for inventory synchronization.
- In the Square Developer Dashboard, create a webhook subscription pointing to
https://your-odoo-domain/square/webhook. - Subscribe to the events:
order.created,order.updated,refund.created,refund.updated.
Screenshots
Square Configuration
Configure API credentials, signing key, and the shop warehouse used for inventory sync.
Webhook Queue
Inspect, retry, and replay incoming Square events with full payload visibility.
Integration Logs
Centralized log of every API call, signature check, order processing step, and stock adjustment.
Stock Synchronization
Monitor bidirectional inventory sync between Odoo and Square in real time.
Manual Resync
Wizard to replay a specific order, refund, or stock state on demand.
Requirements
- Odoo 17.0 (Community or Enterprise)
- Python package:
requests - Active Square Developer account with API credentials
- Publicly reachable Odoo URL for the webhook endpoint
Supported Square Events
Orders
order.created→ new sales orderorder.updated→ line changes, exchanges
Refunds
refund.created→ credit note and stock returnrefund.updated→ refund state changes
Data and Privacy
This module communicates only with the Square API endpoints configured by the administrator. No data is sent to third parties. All customer data remains in your Odoo database. Webhook signatures are verified using HMAC-SHA256 against the signing key you provide.
License
Released under the GNU Affero General Public License v3.0 (AGPL-3). The source code is available on GitHub.
Support
Questions, bug reports, and feature requests: support@davai.co.
Please log in to comment on this module