Q&A
Frequently Asked Questions
Common questions about OPDC: how it connects to Sage 100 Contractor, what it does about security, and what it costs.
API & Developer Experience
Most Sage integrations expose internal field codes and storage details, so you spend the first week guessing what each value means. OPDC maps every endpoint to the names the business already uses: "jobNumber", "vendorName", "costCode", "invoiceAmount". You don't need a Sage data dictionary open in another tab. This was a deliberate design choice after building 20+ Sage integrations and watching developers waste hours decoding field names.
That's by design. OPDC is more like an SDK than a raw database connector. When you query a job, you get "jobNumber", "description", and "contractAmount" rather than dozens of implementation-specific fields. Field mapping, data type conversion, null handling, and cross-table joins happen on our side, so you get predictable JSON without learning Sage's internal schema. If you need a field we don't return, tell us and we'll look at exposing it.
Yes. OPDC exposes a standard REST API with JSON responses, and every endpoint is documented in an OpenAPI 3.1 contract. The Developers page carries the full reference plus a guide to the query contract, error handling, and the write endpoints. You can't fire live requests from the docs page, because each customer reaches OPDC on their own hostname rather than a shared public one. Point the examples at your own install and they work as written.
Read the API documentationJobs, vendors, cost codes, cost types, GL accounts, AP invoices, purchase orders, payroll records, inventory items, and more. OPDC covers the core Sage 100 Contractor data areas that accounting teams and integrators work with daily. If you need access to a data area we haven't exposed yet, let us know. We add new endpoints based on customer need.
Yes, on the Standard plan and above. OPDC supports validated write operations for specific workflows: payroll import, AP invoice posting, inventory transactions, and ledger entries. Every write goes through a validation layer that enforces Sage's own business rules, including cost code structures, GL account formats, and fiscal period rules, before anything touches the database. There is no raw SQL path through OPDC. A write either satisfies those rules or it is rejected with a reason.
OPDC returns structured error responses with human-readable messages. If a cost code doesn't exist, a GL account format is wrong, or a fiscal period is closed, you get a specific error naming the field that failed and the rule it violated, not a generic database exception. In v3, a successful request uses a 2xx status and a failure uses the appropriate 4xx or 5xx status with an application/problem+json body. Branch on the HTTP status and the stable error code; the Developers page covers the error contract in detail.
See how OPDC reports errorsThere are no hard rate limits or per-call metering on the standard plan. Bulk payroll imports, report generation, and inventory syncs all run without throttling. The practical limit is your own server. If you're planning an unusually high-volume workload, let us know during onboarding and we'll make sure it's sized for that.
Multi-Company & Architecture
Sage 100 Contractor, the construction product formerly sold as Master Builder. Not Sage 100 ERP, formerly MAS 90 and MAS 200. The distinction matters more than the names suggest. They are separate products on separate databases with different data models, so an integration built for one does not reach the other. Plenty of vendors connect to Sage 100 ERP; far fewer connect to Contractor, which is the one we built for. If you are on Sage 100 ERP, we are not the right fit and we will tell you that on the first call rather than the third.
Yes, natively. One install handles every company on your Sage instance, so there is no separate connector per company to install, patch, and monitor. Each company is configured with its own API key and its own database credentials. The key you call with is what selects the company, which also means a caller holding one company's key cannot reach another's, and you can revoke access to one company without touching the rest.
OPDC connects directly to the database that Sage 100 Contractor uses. It runs as a Windows service on the same server, or on one with network access to the Sage database. There are no ODBC wrappers and no middleware in between; it speaks the database's native protocol.
Yes. OPDC supports a wide range of Sage 100 Contractor versions. The underlying database structure is stable across versions, and our field mapping layer handles version-specific differences. If you're unsure about your version, reach out and we'll confirm compatibility.
Yes. Reports, inventory apps, payroll integrations, and custom dashboards all connect through the same API at the same time. Each connection is authenticated independently with its own API key, so you can revoke one without affecting the others.
Security & Infrastructure
No. OPDC sits on-premise inside your network. No firewall ports need to be opened and no VPN is required, which is usually the part IT cares about most. The Sage database stays isolated: callers reach OPDC through its secure tunnel, and nothing outside your network ever addresses the database itself. All communication is encrypted using mutual TLS (mTLS), so both the client and server authenticate each other before any data is exchanged.
See the full checklist for ITUsers authenticate through Auth0 with support for LDAP and enterprise identity providers before any API key is issued or validated. This applies to both Twinn Reports and the integrations dashboard. Once authenticated, every API request requires a valid API key tied to a specific organization and permission set. Keys are issued through the Twinn dashboard and can be revoked at any time. All traffic is encrypted using mTLS.
Yes. Every API call, read or write, is logged with the authenticated user, timestamp, endpoint, and payload. You can review audit logs through the Twinn dashboard, which is where most compliance reviews and "who changed this" questions get answered.
OPDC runs as a Windows service and restarts itself if it stops. Your Sage 100 Contractor installation is unaffected either way: OPDC is read-only by default and only modifies the Sage database when it is performing a validated write you asked for. Sage continues to operate normally with or without OPDC running.
OPDC requires administrative rights to install on the server. The installer registers a Windows service, configures the secure tunnel, and sets up local certificates for mTLS. All of our code is EV (Extended Validation) signed, the highest assurance tier for Windows code signing, so SmartScreen and enterprise application control policies recognise OPDC as software from a verified publisher rather than blocking it. One signed executable is the entire install footprint.
What your IT company has to doWe are not currently SOC 2 certified. What we do have is mTLS encryption, Auth0 authentication with LDAP support, EV code signing, full audit logging, and on-premise isolation, so your data never leaves your network. Those are the controls enterprise compliance teams usually ask about, and members of our team have prepared multiple companies for SOC 2 audits in previous roles, so we know what the process involves. If certification is a requirement for your organization, we're happy to start it. We can also walk through our security posture in detail during onboarding, or provide documentation for your IT review.
Every OPDC subscription includes direct access to our engineering team for setup, troubleshooting, and ongoing support. We respond within one business day and most issues are resolved in a single session. For integrator plans, support is covered under contracted SLAs with guaranteed response times. If you need priority support on the standard plan, reach out and we'll discuss options.
Pricing
The Reports plan is $3,000 per year and covers read-only API access, Twinn Reports, and the on-premise connector. Nothing on that plan can change data in Sage. Standard is $6,500 per year and adds the write endpoints: payroll import, AP invoice posting, inventory transactions, and ledger entries, all through OPDC's validated pipeline. The Integrator plan is $11,000 per year and adds OpenTelemetry observability, structured logging, and contracted SLAs, plus per-customer keys at $1,500 per year read and $2,500 per year read and write. Every plan includes multi-company support and ongoing updates. There are no per-user fees and no per-call metering, just one flat annual subscription. Contact us if you'd like a walkthrough or a quote for your environment.
We offer time and materials consulting for custom integrations: payroll imports, AP automation, inventory workflows, or anything else that connects to Sage 100 Contractor through OPDC. Engagements start at 15 hours, valid over 60 days, and larger packages are available on request. You get a developer who already knows the Sage data model, so none of those hours go to ramp-up.
We don't offer a self-serve trial, but we're happy to run a live demo against sample data so you can see the API in action. If you want to see something specifically tailored to your data, have a recent backup of your Sage company available for upload and we'll configure the demo around it. Reach out through the contact page or book a call and we'll set one up.
Integrators & Partners
Yes, and this is the case OPDC was built for. If you're a software vendor or integrator whose product needs to read or write Sage 100 Contractor data, OPDC is the managed middleware layer between your application and Sage. You build against our API. We handle the database connectivity, field mapping, validation, and infrastructure, so your team never has to learn Sage internals. Authentication runs through Auth0, so we can accept provisioned users from your identity provider instead of you managing a second set of credentials.
The integrator plan starts at $11,000 per year. It includes everything in the standard OPDC subscription plus OpenTelemetry traces, metrics, and logs, rich structured logging for every API call, and contracted SLAs. You get the same view of request volume, latency, error rates, and payload details that we use internally, exported through OpenTelemetry so it lands in whatever backend you already run. SLAs are tailored to your integration requirements and agreed upon during onboarding. Once the license is in place, keys are priced per customer so you can bake OPDC into your own application with multi-tenant and multi-company support: $1,500 per year for a read key and $2,500 per year for a read and write key.
Either way works. Some integrators route all traffic through their own backend and treat OPDC as an internal service. Others provision API keys per customer and let them connect directly. We'll help you design the architecture that fits your product.
Getting Started
Most installations are completed in a single session. Install the Windows service, point it at your Sage 100 Contractor database, configure your API keys, and you're live. There's no lengthy onboarding, no data migration, and no cloud setup required. If you plan to use OPDC for updating or inserting data, we recommend spinning up a replica of your production instance first to validate all transactions before going live.
No. OPDC installs separately and connects to your existing Sage database. It doesn't modify any Sage files, settings, or database structures. Your Sage installation remains completely untouched.
OPDC runs on Windows Server (2016 or later) or Windows 10/11, and needs network access to the database that Sage 100 Contractor uses. Resource requirements are light enough that it runs alongside Sage on existing hardware.
Reach out through our contact page or schedule a call. We'll walk you through the setup, confirm compatibility with your Sage version, and get you up and running. Most teams are pulling data through the API within a day of installation.
Still have questions?
We're happy to walk you through OPDC and answer anything specific to your Sage 100 Contractor setup.
Get in Touch