hundred/ for Sage 100

Guide ยท Sage 100 2026, 64-bit

Sage 100 2026 is 64-bit only: what breaks in your integration and how to fix it

Checked against the Sage knowledge base, Microsoft documentation and partner guides on 2026-10-05.

Short answer: Sage 100 2026 installs and runs only as a 64-bit program, on 64-bit Windows. Sage's own FAQ says: "All integrations, add-ons, and custom solutions must be 64-bit compatible to work with Sage 100 2026." Anything that loads Sage 100 components into a 32-bit process breaks: a 32-bit program calling the Business Object Interface (BOI), a 32-bit ODBC client looking for a 64-bit DSN, a scheduled job that starts a 32-bit interpreter. The fix in each case is the same idea: run the part that touches Sage 100 as a 64-bit process, and test it on a machine that has only the 64-bit Sage 100 installed.

What changed, and when

  • 2021 to 2024: both 32-bit and 64-bit install options (Sage KB: 64-bit ODBC driver). 64-bit has been the default since 2021, but some customers stayed on 32-bit because of third-party add-ons (Kissinger Associates).
  • 2025: the installer sets up both a 32-bit and a 64-bit SOTAMAS90 ODBC connection automatically, and the separate optional 64-bit ODBC driver install is removed (Sage KB: 64-bit ODBC driver).
  • 2026 (version 7.5, released April 16, 2026): 64-bit only (Kissinger Associates for the date). The installer no longer offers 32-bit and stops on 32-bit Windows. It needs a 64-bit edition of Windows 10 or higher, and you must be on version 2021 or newer before you upgrade (Sage KB: Sage 100 2026 64-Bit Only FAQ).
  • No mixing on one machine. 32-bit and 64-bit Sage 100 cannot be installed side by side, because they share files in C:\ProgramData\Sage\Common Components; installing 2026 breaks an older 32-bit install on the same computer. Data converted to 64-bit cannot be opened by older 32-bit versions (Sage FAQ).
  • How long 32-bit stays around: Kissinger Associates lists the end of Sage support for 2024 as April 2027 and for 2025 as April 2028 (Kissinger Associates). So for a while you will have customers on both sides of the change.

What breaks

Part of your integrationWhat you seeWhy
A 32-bit program calling BOI (ProvideX.Script)NewObject errors, or the COM object cannot be createdYour process must match the bitness of the installed Sage 100 components (see the BOI guide). The Sage FAQ names "NewObject Error" after an upgrade when old 32-bit components or add-ons remain.
A 32-bit ODBC client (32-bit Python, Excel, an x86 .NET build)[IM014] ... The specified DSN contains an architecture mismatch between the Driver and Application, or "Data source name not found"On 64-bit Windows there is a 32-bit and a 64-bit ODBC Data Source Administrator, each with its own drivers and DSNs. A 32-bit program sees only the 32-bit ones.
Scheduled tasks and scriptsA job that worked for years fails after the upgradeThe task still starts a 32-bit interpreter, for example a 32-bit Python, or cscript.exe from %windir%\SysWOW64, which is the 32-bit folder on 64-bit Windows.
Your own test machineAn older 32-bit Sage 100 stops working after you install 2026The two cannot coexist on one computer (shared Common Components).

One case is documented as still working: Sage Alerts & Workflow (KnowledgeSync) stays a 32-bit program and keeps working with Sage 100 2026 through two System DSNs with the same name and settings, one 32-bit and one 64-bit (Sage KB: Alerts & Workflow and 64-bit). That is a supported setup for that product. For your own integration, treat a 64-bit build as the fix and a dual DSN as a stopgap you test yourself.

How to fix each part

1. Find out what bitness you are running

In Python, the reliable check is sys.maxsize > 2**32, which is true in a 64-bit interpreter (Python docs: platform). In PowerShell, list the ODBC drivers each side can load (Microsoft: Get-OdbcDriver):

Get-OdbcDriver -Platform "64-bit" | Select-Object Name
Get-OdbcDriver -Platform "32-bit" | Select-Object Name

If the Sage driver appears only under 32-bit on a 2026 machine, the workstation components are stale: Sage's advice is to remove older Sage 100 programs and rerun the 2026 Workstation Setup on that PC (Sage FAQ).

2. ODBC reads: a 64-bit client and a DSN-less connection

Run your reader in 64-bit Python and connect without relying on a DSN at all. A DSN-less connection string avoids the question of which ODBC Administrator the DSN lives in, and avoids SOTAMAS90, which Sage 100 recreates each time it starts (see the ODBC guide). This example uses hundred-odbc, our free, MIT-licensed, read-only package that runs SELECT through the Sage 100 ODBC driver and returns typed records. It is installed from GitHub:

pip install "hundred-odbc[odbc] @ git+https://github.com/tessaherself/sage100-odbc"
import sys
import pyodbc
from hundred_odbc import SageReader, connect

# Sage 100 2026 is 64-bit only: this process must be 64-bit too.
if not sys.maxsize > 2**32:
    sys.exit("Run this with a 64-bit Python for Sage 100 2026")

# The drivers this 64-bit process can load. Use the exact Sage driver name shown here.
print(pyodbc.drivers())

conn = connect(connection_string=(
    "Driver={MAS 90 4.0 ODBC Driver};Company=ABC;UID=APIUSER;PWD=...;"
    r"Directory=\\sage-server\Sage\Sage 100 Standard\MAS90;StripTrailingSpaces=1"
))
sage = SageReader(conn)
for order in sage.open_sales_orders():
    print(order.sales_order_no, order.customer_id, len(order.lines))

pyodbc.drivers() lists the ODBC drivers visible to the running process (pyodbc wiki). If the Sage driver is missing from that list, you are in the wrong bitness or the workstation setup has not run. The package reads customers, open sales orders with their lines, and items. It cannot write; for writes, see the next step.

3. BOI writes: a 64-bit host process

  • Python: use a 64-bit Python with pywin32, and run the same sys.maxsize check before win32com.client.Dispatch("ProvideX.Script"). The full sales order example is in the BOI guide.
  • .NET: build with platform target x64. anycpu32bitpreferred (the "Prefer 32-bit" option) runs your program in 32-bit mode on 64-bit Windows (Microsoft: PlatformTarget).
  • VBScript: start it with %windir%\System32\cscript.exe, the 64-bit folder on 64-bit Windows, not the one in SysWOW64 (Microsoft: File System Redirector).

4. Scheduled jobs

Open each Task Scheduler job that touches Sage 100 and check the program it starts: the full path to a 64-bit interpreter, not a 32-bit Python or anything in SysWOW64. Run each job once by hand after the upgrade, before you trust the schedule.

5. Testing across versions

Because 32-bit and 64-bit Sage 100 cannot share one computer, keep one virtual machine per Sage 100 version you support, for example a 2025 machine and a 2026 machine. Sage's FAQ suggests a separate machine or a virtual machine for the same reason.

Checklist for a vendor upgrading customers to 2026

  1. List every component you install at a customer: services, scripts, scheduled tasks, add-ins, DSNs. Mark each 32-bit or 64-bit.
  2. Ship 64-bit builds of everything that loads BOI or the ODBC driver, and keep the 32-bit builds for customers still on 2025 or earlier.
  3. Replace DSN-based connections with DSN-less connection strings, or create the DSN in the 64-bit ODBC Administrator.
  4. Ask the customer's Sage partner when the server and each workstation move to 2026, and plan your update for the same window. Sage's upgrade steps tell customers to contact their add-on vendors for 64-bit updates (Sage FAQ).
  5. Test on a copy of the customer's company on a 2026 virtual machine with no 32-bit Sage 100 on it: one read, one write, one scheduled run.
  6. After go-live, run every scheduled job once by hand and check its log.

Sources: Sage KB: Sage 100 2026 64-Bit Only FAQ, Sage KB: 64-bit ODBC driver, Sage KB: Alerts & Workflow and 64-bit, Kissinger Associates: Sage 100 2026 guide, Microsoft: ODBC Data Source Administrator, Stack Overflow: IM014 architecture mismatch.

Rather not ship a bitness-matched ODBC or BOI component to every client's server? Hundred is a planned REST API for Sage 100: your code would call one HTTPS endpoint, and a connector at each client, which we would build and keep current, would carry the call into their Sage 100. It is not built yet. Planned price: $99/month per connected Sage 100 company; nothing is sold and no payment is taken. What Hundred plans for software vendors and Sage partners.

Join early access