
Building Scalable POS and ERP Integrations: Why Native Direct Integration Infrastructure Wins Over Custom Solutions
How modern POS platforms scale ERP integrations with real-time sync, reconciliation, and multi-tenant architecture

Chris Lopez
Founding GTM
Building Scalable POS and ERP Integrations: Why Native Direct Integration Infrastructure Wins Over Custom Solutions
Introduction
If you're building a payments infrastructure, you've probably encountered this problem: your customers want seamless integration with their ERP systems, particularly NetSuite, SAP, or Sage. They want their point-of-sale transactions to flow directly into accounting and inventory systems. They want real-time visibility into catalog changes. They expect payments, invoices, customer records, and inventory levels to sync bidirectionally without manual reconciliation.
And your engineering team is drowning.
Building a custom integration with a major ERP is deceptively complex. You're not just connecting two APIs. You need to handle bidirectional sync of payments and invoices. You need to manage dynamic field mapping across different seller configurations. You need OAuth token management at scale. You need to handle reconciliation when data diverges. You need monitoring, alerting, error recovery, and retry logic. You need to maintain this forever.
Many of the platform leaders we've advised thought custom integrations were cheaper than buying a solution. They learned the hard way that integration debt compounds faster than almost any other technical debt. This post explores why building native product integrations, integrations that are owned, hosted, and maintained by your platform, requires integration infrastructure, not just API glue.
We'll walk through the specific challenges of POS-to-ERP integration, why traditional approaches fail, and why engineering teams are moving toward managed integration platforms that handle the complexity so they don't have to.
The Hidden Complexity of POS and ERP Sync
At first glance, POS-to-ERP integration sounds straightforward: push transactions to the ERP, pull catalog updates back, sync inventory. In practice, it's one of the most complex integration challenges in commerce technology.
Here's why.
A point-of-sale system and an enterprise resource planning system operate on fundamentally different data models. The POS is transaction-focused and real-time. It captures payments, line items, discounts, taxes, customer data, and inventory changes as they happen. An ERP is accounting-focused and batch-oriented. It thinks in general ledger entries, accounts payable, accounts receivable, and asset depreciation schedules. The two systems have different rhythms, different semantics, and different tolerance for latency.
When you integrate them, you're translating between these two worlds. A payment captured in a POS needs to become an accounts receivable entry in the ERP. A catalog update in the ERP needs to update prices and availability in the POS without breaking ongoing transactions. Inventory in the POS (which might be "available to sell," "reserved," "damaged," or "unsalable") needs to reconcile against the ERP's inventory accounting.
Multi-tenant complexity adds another layer. You're not building one integration. You're building a platform integration that will serve dozens, then hundreds, then thousands of sellers. Each seller uses NetSuite differently. Some have customized fields. Some have multiple subsidiaries or legal entities. Some sync through their accountant's custom GL mappings. The integration needs to handle all of these variations without custom code for each seller.
Then there's the auth problem. You can't ask each seller to hand you their NetSuite password. You need OAuth. But you're operating a platform, so you need to centralize token management. You need to refresh tokens automatically. You need to handle permission scopes. You need to audit who's accessing what data. Managing OAuth at scale, across hundreds of seller accounts, is not trivial.
And then there's the reconciliation problem, which is where custom integrations typically fail. Data diverges. A transaction syncs to NetSuite, but then the seller modifies it in NetSuite directly. An inventory count happens in the ERP that the POS doesn't know about. A payment fails silently and retries hours later. You need a reconciliation layer that can detect these divergences, raise alerts, and provide tooling for resolution.
The engineering leaders we've worked with have all tried to build this in-house at some point. They start with a simple webhook-based architecture: POS change triggers a sync to NetSuite. It works for the happy path. But as they expand to more sellers, more edge cases, and more complex workflows, the system becomes fragile. Token management becomes a nightmare. Reconciliation logic sprawls across three different services. Every new seller requirement means new code. Within two years, they're spending more time maintaining integrations than building product.
Why Custom POS-to-ERP Integrations Hit a Growth Wall
The traditional approach to platform integration is to build custom integration code that your team owns and maintains. You write ETL pipelines, transform data, manage state, handle retries. This works for your first few customers, especially if they have vanilla configurations.
But it breaks under three predictable stresses.
First, configuration sprawl. NetSuite is a highly configurable system. Two customers using NetSuite might have completely different GL structures, custom fields, subsidiary hierarchies, or workflows. Your integration code needs to handle all of these permutations. You either build a huge configuration layer that gets exponentially more complex, or you write custom code for each customer. Either way, your code base becomes unmaintainable.
Second, API coverage gaps. NetSuite has several APIs. The SOAP API is older but comprehensive. The REST API is cleaner but has gaps. Some business workflows can only be done through the UI. You hit a wall where your integration can handle 80% of a seller's use case, but the last 20% requires custom development or manual workarounds. This last 20% causes more support burden than the first 80%.
Third, the velocity cliff. Early on, your integration team can move fast. They understand the domain. They're shipping features. But as the system grows, the number of edge cases explodes. Every new seller configuration is a test case. Every bug fix needs three times the testing because you're managing state across two complex systems. What took two weeks to ship now takes two months. Your team hits a wall and stops shipping. Customers feel the stall.
This is the moment when platform leaders realize that custom integration code is not a scalable business model. The integration debt trap compounds faster than you expect, and the cost of ownership becomes unsustainable.
The Architecture of Modern Integration Infrastructure
Over the past three years, we've seen a shift in how product teams approach native integrations. The best teams have stopped asking "How do we build a custom NetSuite integration?" and started asking "What integration infrastructure do we need so that custom integrations become manageable?"
That infrastructure has a few core pieces.
Declarative, version-controlled configuration. Instead of writing integration code in your application language, you define integrations declaratively, in YAML. You specify which fields map between systems, what sync cadence you want, what transformations are needed. This configuration is code-reviewed, version-controlled, and deployed through CI/CD just like application code. It means integrations are easy to audit, easy to roll back, and easy to modify without touching application code.
Managed authentication and token lifecycle. Your platform owns a centralized OAuth developer application. When a seller authenticates, they grant permission to your application, not directly to their account. Your infrastructure handles token refresh, permission scoping, and revocation. This means you can rotate keys globally without touching customer code. It means you can audit all access through a single source of truth.
Bidirectional sync with sub-second latency. Real-time integration doesn't mean polling the ERP every five seconds. It means webhooks. POS events trigger immediate syncs to NetSuite. NetSuite changes trigger webhooks back to the POS. But webhooks are unreliable, so you need a fallback: scheduled reads that reconcile state periodically. You need backfill logic for when you on-board a new seller and need to sync historical data. You need bulk-write optimization so you're not making one API call per transaction.
Dynamic field mapping and custom objects. Different sellers map POS fields to different GL accounts. Some sellers use custom NetSuite fields. Your infrastructure needs to handle this without code. It should let you define field mappings declaratively, transform data on the fly, and handle custom objects without hard-coding them into your schema.
Observability and reconciliation. You need to see what's syncing, what's failing, and where data diverges between systems. You need dashboards that show sync status, error rates, and latency. You need alerting when reconciliation diverges. And you need tools that let sellers (or your support team) manually reconcile when needed.
This is not something you can bolt on to a custom integration. It requires a foundational rethink of how you architect integration. What is integration infrastructure explains this in depth, but the core idea is that integration infrastructure is a layer between your application and the ERP. It handles all the operational burden, auth, monitoring, reconciliation, retry logic, so your application can stay clean.
Why POS Platforms Need Vertical-Specific Integration Capabilities
Generic integration platforms solve a general problem: "How do I sync data between two arbitrary systems?" But POS and ERP integration is a specific problem with specific semantics.
A generic embedded integration platform might let you map a "payment" field from the POS to an "amount" field in the ERP. But POS payments have a type (cash, card, check), a processor (Stripe, Adyen, Worldpay), a status (pending, settled, failed, refunded), and regulatory requirements (PCI compliance, chargebacks). The ERP cares about this data, but not in the way the POS thinks about it.
Vertical-specific integrations handle these semantics natively. They understand that POS payments become AR entries in the ERP, not just data mappings. They understand that inventory counts in the POS need to become journal entries in the ERP's inventory accounting. They understand the workflows that sellers actually use, not just the API schemas.
This is where native product integrations differ from generic tools. When Ampersand builds a NetSuite POS integration, it's not starting from scratch. It's built on deep domain knowledge of both POS systems and ERP systems. It understands the actual workflows that sellers use. It can handle the edge cases that generic tools miss.
For platform leaders we've advised, vertical-specific integration capabilities mean shorter time-to-market, fewer edge cases, and lower support burden. You're not paying for a generic solution and then building vertical-specific glue on top of it.
The Partnership Model: Ampersand-Owned Integration Infrastructure
There's another architecture pattern that's become increasingly popular for POS platforms: the partnership model.
In the partnership model, you don't ask your team to build and maintain the integration. Instead, you partner with an integration infrastructure provider who owns the integration on your behalf. They build it, host it, maintain it, monitor it, and handle reconciliation. Your platform surfaces their capabilities to your sellers. You focus on POS and product. They focus on ERP connectivity.
This model has huge advantages.
First, you de-risk the integration. Your team isn't betting the roadmap on integration complexity. If there's a bug in NetSuite sync, your partner handles it. If a new NetSuite feature breaks the integration, your partner updates it. You're buying stability and expertise, not building it.
Second, you accelerate to market. Your partner already has the infrastructure in place. They already handle auth, monitoring, reconciliation, custom objects, and field mapping. You're not building integration infrastructure from scratch. You're reusing theirs.
Third, you align incentives. Your partner has a revenue-share structure with you. They only win if your sellers successfully integrate. They have skin in the game. They're invested in making the integration work and scaling it with you.
Fourth, you get ongoing innovation without additional investment. As ERP systems add new APIs, as seller workflows evolve, as new edge cases emerge, your partner handles updates. You benefit from their work with other POS platforms and other verticals. You're getting better over time without engineering expense.
The partnership model is increasingly how successful POS platforms handle deep integrations at scale. You own the seller experience. Your partner owns the integration infrastructure.
Comparing Approaches: Build, Buy, or Partner
To make this concrete, let's compare three approaches side-by-side.
| Dimension | Build In-House | Embedded iPaaS / Unified API | Integration Infrastructure Partner |
|---|---|---|---|
| Time to First Integration | 4-6 months | 6-8 weeks | 2-4 weeks |
| Custom Field Handling | Built by you | Limited; often requires code | Native; declarative mapping |
| OAuth Token Management | You own it | Platform handles it | Partner handles it |
| Multi-Tenant Scaling | You engineer it | Basic | Purpose-built for scale |
| Reconciliation & Alerting | You build it | Often missing | Comprehensive |
| Ongoing Maintenance | 1-2 FTE indefinitely | SaaS updates included | Partner-managed |
| Seller Self-Service Onboarding | You build the UI | Limited | Integrated and optimized |
| Cost (Year 1) | $300k-600k (eng time) | $50k-100k | $80k-150k (includes partnership margin) |
| Cost (Year 3) | $500k-1M+ (eng debt) | $150k-250k | $150k-250k (stable) |
| Ability to Handle Edge Cases | Unlimited | Limited | Very good; improves over time |
| Risk | Very high; integration breaks, you fix it | Medium; coverage gaps, workarounds needed | Low; partner absorbs operational risk |
The choice comes down to your strategic priorities. If integration is core to your product and you have world-class infrastructure engineering talent, build. If you're moving fast and integration is important but not your differentiator, partner. Avoid the middle ground: you'll spend a lot of money on a generic platform and then still need custom engineering on top of it.
The Ampersand Approach to POS and ERP Integration
Ampersand is built for exactly this problem: enabling platforms to offer deep, native integrations without the infrastructure burden.
Ampersand provides a declarative, YAML-based framework for defining integrations. You specify which POS fields map to which ERP fields. You define sync cadence (real-time, hourly, on-demand). You specify which custom objects and fields you need. Ampersand handles everything else: auth, monitoring, reconciliation, retry logic, bulk optimization.
The architecture is purpose-built for multi-tenant platforms. Ampersand manages OAuth centrally. Each seller authenticates once. Ampersand handles token refresh and revocation. Your platform never sees seller credentials. This means you can scale from one seller to a thousand without changing your auth architecture.
For POS-to-NetSuite integration specifically, Ampersand has deep domain knowledge. The NetSuite connector understands the ERP's data model. It knows how POS transactions map to GL accounts. It handles the nuances of inventory accounting, accounts receivable, and cost of goods sold. It can work with your custom fields and subsidiary structures without breaking.
Ampersand is deployed as managed infrastructure on your behalf. You don't run it. Ampersand does. You benefit from automatic updates, security patches, and feature improvements without operational burden. When a new NetSuite API becomes available, Ampersand updates the connector. You get better without engineering effort.
Ampersand's observability is purpose-built for multi-tenant platforms. Dashboards show you sync status, error rates, latency, and reconciliation status across all sellers. Alerting tells you when something diverges. You have visibility into the health of your integration without building monitoring infrastructure.
The 11x case study illustrates this. 11x is an AI phone agent platform. They needed deep CRM integrations to track customer interactions. Using Ampersand, they cut their AI phone agent's response time from 60 seconds to 5 seconds. Not because Ampersand made the AI faster, but because they could fetch fresh CRM data reliably and quickly. Integration infrastructure is invisible when it works. It becomes a bottleneck when it doesn't.
The Ampersand Sell: Why Integration Infrastructure Wins
Here's the reality: if you're building a POS platform and you want to compete upmarket, you need to offer ERP integration. Your customers expect it. Their accountants demand it. It's table stakes.
But if you try to build it yourself, you'll hit a wall. You'll spend months on auth. You'll spend months on data mapping. You'll hit NetSuite API gaps. You'll spend engineering cycles on edge cases. You'll eventually have a system that works, but you'll own it forever.
The alternative is to partner with an integration infrastructure platform that's already solved these problems, already manages the complexity, and already scales.
Ampersand is that platform. We've built deep integration infrastructure specifically for platforms like yours. We handle bidirectional sync of payments, invoices, inventory, and catalog data between POS and ERP systems. We manage auth. We manage monitoring. We manage reconciliation. We do it at scale.
Your team keeps building product. You surface Ampersand's integrations to your sellers. They integrate once, and it just works.
If you're interested in exploring a partnership, reach out to speak with an engineer. We work with platforms at every stage of integration, from early-stage exploration to scaling hundreds of integrations in production.
Learn more at Ampersand's how-it-works page or dive into the docs to understand the architecture.
FAQ: Common Questions About POS-to-ERP Integration
Q: What's the difference between real-time sync and scheduled sync, and which should we use?
Real-time sync means events trigger immediately. A payment is captured in the POS, and within seconds it's in the ERP. Scheduled sync means you batch changes and process them on a schedule (hourly, daily, etc.).
For POS systems, you typically want a hybrid approach. Financial data (payments, invoices) should sync in real-time or near-real-time because your sellers need accurate accounting data. Catalog and inventory can be updated on a schedule because they change less frequently and don't require sub-second latency.
Real-time sync is more operationally complex. It requires webhooks, which are unreliable. You need a fallback mechanism to catch missed events. You need to handle deduplication and idempotency. But for critical financial data, it's worth it.
Ampersand supports both patterns and lets you define sync cadence per object. You can configure payments for real-time sync and inventory for hourly sync, all declaratively.
Q: How do we handle the situation where data diverges between the POS and ERP?
Data diverges. It always does. A seller modifies an invoice in NetSuite directly instead of going through the POS. An inventory count happens in the ERP that the POS doesn't know about. A payment fails silently and retries hours later.
You need a reconciliation layer that detects these divergences and provides tools for resolution. Some platforms do this manually: a support person periodically checks and fixes discrepancies. Better platforms do this automatically: they periodically sync state, detect divergences, and raise alerts only for exceptions.
Ampersand has reconciliation built in. It periodically does full state syncs between the POS and ERP. When it detects a divergence, it alerts you. For most discrepancies, it can auto-resolve. For others, it provides tools for manual review and correction.
Q: How does OAuth work at scale, and why can't we just ask sellers for their password?
You absolutely cannot ask sellers for their NetSuite password. It's a security nightmare. It violates terms of service. It exposes you to liability.
OAuth is the standard approach. The seller authenticates directly with NetSuite and grants your application permission to access their account. NetSuite returns an access token. You use that token to make API calls on their behalf.
The challenge at scale is managing these tokens. Each seller has a token. Tokens expire. You need to refresh them. You need to handle revocation. You need to audit who has access.
Most platforms build a centralized token management service. When a seller authenticates, you store their token securely (encrypted at rest, in a secure vault). When you need to make an API call, you fetch their token from the vault. When the token is about to expire, you refresh it automatically.
Ampersand handles all of this. Your platform integrates with Ampersand's auth layer. Sellers authenticate once. Ampersand manages their token lifecycle. Your team never sees the tokens.
Q: What happens if the NetSuite API changes or breaks?
NetSuite, like all ERP systems, evolves. APIs get deprecated. New fields are added. Business logic changes. This is why custom integrations become liabilities over time.
When you partner with an integration infrastructure provider, API changes are their problem. They monitor for deprecations. They update connectors before breaking changes go live. They test against new API versions. Your integration keeps working.
For platforms building in-house, you need a process for monitoring API changes and updating code. This is often a source of surprise outages.
Q: How do we handle custom fields and custom GL structures?
NetSuite is infinitely customizable. Sellers create custom fields for their specific GL structure, their specific workflows, their specific reporting needs. Your integration needs to handle this.
There are two bad approaches. First, you try to hard-code handling for common custom fields. This doesn't scale. Second, you ask each seller to use vanilla NetSuite fields. This doesn't work for sellers with real GL structures.
The right approach is dynamic field mapping. Let sellers (or their admins) define which POS fields map to which NetSuite fields, including custom fields. Store these mappings. Apply them during sync. This requires a declarative configuration system that's flexible enough to handle arbitrary mappings but simple enough that non-technical admins can use it.
Ampersand has this built in. Sellers can define field mappings through a UI. You can define global mappings in YAML. Ampersand applies them during sync without custom code.
Q: What about compliance and data security?
POS systems handle payment data. ERPs handle financial data. Regulators care about both. You need compliance frameworks in place.
Key requirements: encryption in transit and at rest, audit logging, access controls, data retention policies, and incident response procedures. Your integration infrastructure needs to support all of this.
Ampersand is SOC 2 Type II certified, GDPR compliant, and ISO 27001 certified. All data is encrypted in transit (TLS) and at rest (AES-256). All API calls are logged for audit. Access controls are enforced at multiple levels. If there's a data incident, Ampersand has processes in place for notification and remediation.
When you partner with Ampersand, you inherit these compliance standards. You don't need to build them yourself.
Conclusion
Building a POS platform that competes upmarket means offering ERP integration. Your customers expect it. But building integration infrastructure in-house is a trap. You'll spend months on engineering. You'll own it forever. You'll hit wall after wall of complexity.
The alternative is to partner with an integration infrastructure provider who's already solved these problems, already manages the complexity at scale, and already knows how to handle the edge cases.
Ampersand is that partner. We've built native integration infrastructure for platforms like yours. We handle bidirectional sync of payments, invoices, inventory, and catalog data. We manage auth. We manage monitoring. We manage reconciliation. We do it at scale, reliably, and with minimal integration effort.
If you're at the stage where you're evaluating integration strategies, speak with an engineer to understand how we'd approach your specific challenges.
Learn more about how Ampersand works or explore our comprehensive documentation to understand the technical architecture.
Your sellers deserve integrations that just work. Ampersand makes that possible without integration debt.