ERP systems are the backbone of most serious businesses—but they were built in an era before APIs were a first-class citizen. Connecting a modern application to a legacy ERP is one of the most underestimated challenges in enterprise software. Here's what it actually takes.

Why ERP Integration Is Hard

Most ERP systems weren't designed to be queried by external applications. They expose data through proprietary interfaces, require specific authentication flows, and often have undocumented behaviors that only surface in production. SAP Business One, for example, exposes a Service Layer REST API—but only certain endpoints behave predictably under all conditions.

⚠️ The biggest mistake: assuming the ERP API documentation is complete. It never is. Budget time for discovery.

The Pattern That Works

After integrating multiple systems against SAP B1, we've settled on a middleware-first architecture:

GET /b1s/v1/BusinessPartners?$filter=CardCode eq 'PTC10002' Authorization: Bearer {session_token} → Returns: Customer master data with address, contacts, credit limit

Authentication Gotchas

SAP B1 Service Layer uses session-based auth, not API keys. Sessions expire after a configurable timeout (default: 30 minutes of inactivity). Your integration needs to handle session refresh gracefully—ideally with automatic re-login on 401 responses rather than crashing.

Real-World Wins

The integrations that deliver the most value fall into three categories: customer lookup (is this email in our system?), inventory availability (can we fulfill this order?), and order creation (push a new SO without touching the ERP UI). Get these three right and you've automated the core commerce loop.

The Bottom Line

ERP integration is hard, but it's learnable. The businesses that invest in connecting their ERP to modern tools—email, AI, web—get compounding returns. Every hour of integration work replaces dozens of hours of manual data entry, forever.