Supergood | Sage 300 Construction API
Programmatically access Sage 300 Construction and Real Estate job cost, accounting, payroll, and property management data with a stable REST API. Supergood builds and operates production-grade, unofficial Sage 300 CRE integrations so your team can automate field-to-office workflows without heavy custom engineering.
Plain English: Sage 300 Construction and Real Estate (formerly Timberline) is back-office software used by construction firms and property managers to run the financial side of projects and portfolios. An unofficial API lets you pull jobs and cost codes, budgets and commitments (POs/subcontracts), AP invoices, change orders, employees/payroll time entries, and property/lease data—and push new records or updates back into Sage 300 CRE.
For a construction tech startup integrating with Sage 300 CRE, this means you can ingest real-time job and cost data to power dashboards, sync procurement commitments to accounting, automate AP invoice creation from field receipts, track change orders against budgets, or enrich your platform with employee time and property/lease information. You can also push new commitments, code invoices to jobs and cost codes, update change order statuses, and keep stakeholder systems (ERP, analytics, project management) in lockstep.
What is Sage 300 Construction and Real Estate?
Sage 300 Construction and Real Estate (Sage 300 CRE) (https://www.sage.com/en-us/products/sage-300-construction-and-real-estate/) is an integrated suite for construction accounting and property management. It centralizes job cost, commitments, payables/receivables, payroll, and real estate leasing, giving finance and operations a single source of truth.
Core product areas include:
- Job Cost & Project Management (e.g., jobs, cost codes/categories, budgets, commitments, change orders)
- Financials (e.g., Accounts Payable, Accounts Receivable, General Ledger, Payroll)
- Procurement (e.g., purchase orders, subcontracts, vendors)
- Property Management (e.g., properties, units, leases, tenants, billing)
- Equipment/Service (e.g., equipment cost, service work orders in certain configurations)
Common data entities:
- Companies, Users, Roles
- Jobs (job numbers, status, addresses, managers)
- Cost Codes & Categories, Budgets/Estimates
- Commitments (subcontracts, purchase orders) and line items
- AP Invoices, Retainage, Tax codes, Distributions
- Change Orders (owner, internal, subcontract) and impacts
- Vendors, Employees, Payroll Time Entries
- Properties, Units, Tenants, Leases, Charges
The Sage 300 Construction Integration Challenge
Sage 300 CRE is mission-critical for finance, but turning desktop-first workflows into API-driven automation is non-trivial:
- Deployment variability: On-premises Windows + SQL Server, hosted, or hybrid environments with different authentication paths
- Module-specific data: Job Cost, AP, Payroll, and Property each use distinct schemas, controls, and approval states
- Accounting rigor: Retainage, tax codes, period controls, and auditability must be respected programmatically
- Role-based access: User entitlements and company codes govern what’s visible and writable across datasets
- Legacy UX: Many capabilities are optimized for the desktop app, with exports/reports spread across modules
How Supergood Creates Sage 300 CRE APIs
Supergood reverse-engineers authenticated desktop/browser flows and network interactions to deliver a resilient API endpoint layer for your Sage 300 CRE environment.
- Handles username/password, company code selection, and MFA (SMS, email, TOTP) securely; supports SSO/OAuth where enabled
- Operates with on-prem or hosted deployments via secure connectors and session orchestration
- Maintains session continuity with automated refresh and change detection
- Normalizes responses so you can integrate once and rely on consistent objects across modules
- Aligns with customer entitlements and role-based permissions to ensure compliant data access
Use Cases
Job Data Sync
- Mirror jobs, cost codes, categories, and budgets into your internal systems
- Keep job metadata current for analytics and field planning
- Normalize statuses, managers, and addresses for multi-tenant operations
Procurement & Commitments
- Push subcontracts/POs from your procurement or project platform
- Tie line items to cost codes/categories and retainage for accurate encumbrance
- Track approval states and revisions to keep finance aligned
AP Automation
- Create AP invoices from field receipts and delivery confirmations
- Distribute invoice lines to jobs, cost codes, and categories programmatically
- Reconcile invoice status and payment dates with your ERP or cash flow tools
Change Order Management
- Generate owner, internal, or subcontract change orders from detected scope changes
- Update budgets and commitments when changes are approved
- Maintain an audit trail with attachments and references
Available Endpoints
Authentication
POST /sessions: Establish a session using credentials and company code. Supergood manages MFA (SMS, email, TOTP) and SSO/OAuth when enabled. Returns a short-lived auth token maintained by the platform.
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/sessions \
--header 'Authorization: Basic <Base64 encoded token>' \
--header 'Content-Type: application/json' \
--data '{
"username": "[email protected]",
"password": "<password>",
"companyId": "cmp_001",
"mfa": { "type": "totp", "code": "123456" }
}'
Example response
{
"authToken": "eyJhbGciOi...",
"expiresIn": 3600,
"user": {
"id": "u_729c10",
"name": "Controller",
"companyId": "cmp_001",
"entitlements": ["jobs", "commitments", "ap", "change_orders", "property_management"]
}
}
POST /sessions/refresh: Refresh an existing token to keep sessions uninterrupted.
Jobs
GET /jobs: List jobs with filters and summary details.
Query parameters
- companyId: string
- status: open | closed | hold
- updatedFrom, updatedTo: ISO 8601 timestamps
- page, pageSize: integers for pagination
Example response
{
"items": [
{
"jobId": "job_1f92a0",
"jobNumber": "2026-001-EMC",
"name": "Eastside Medical Center",
"status": "open",
"companyId": "cmp_001",
"jobSiteAddress": {
"line1": "500 Eastside Blvd",
"city": "Atlanta",
"region": "GA",
"postalCode": "30312",
"country": "US"
},
"projectManager": {"userId": "u_45af1d", "name": "Project Manager"},
"startDate": "2026-02-01",
"estimatedCompletionDate": null,
"financialSummary": {
"originalBudget": 12000000.00,
"revisedBudget": 12150000.00,
"costToDate": 2450000.25,
"committedCost": 4100000.00,
"unbilledCost": 180000.00
},
"updatedAt": "2026-01-20T13:45:00Z"
}
],
"page": 1,
"pageSize": 50,
"total": 1
}
Commitments (Subcontracts & POs)
POST /jobs/{jobId}/commitments: Create a new commitment (subcontract or purchase order) with line items and retainage.
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/jobs/job_1f92a0/commitments \
--header 'Authorization: Bearer <authToken>' \
--header 'Content-Type: application/json' \
--data '{
"type": "subcontract",
"vendorId": "vnd_3aa91d",
"commitmentNumber": "SC-033100-001",
"description": "Concrete foundations",
"issueDate": "2026-01-15",
"status": "pending",
"retainagePercent": 10.0,
"lineItems": [
{
"costCode": "033100",
"category": "labor",
"description": "Formwork and placement",
"scheduledValue": 250000.00
},
{
"costCode": "033100",
"category": "material",
"description": "Rebar and mix",
"scheduledValue": 180000.00
}
],
"attachments": [
{"fileName": "subcontract.pdf", "uploadToken": "upl_7fa223"}
],
"referenceId": "proc-9821"
}'
Example response
{
"commitmentId": "cmt_3aa91d",
"status": "pending",
"jobId": "job_1f92a0",
"totalScheduled": 430000.00,
"retainagePercent": 10.0,
"createdAt": "2026-01-21T11:20:44Z"
}
Accounts Payable Invoices
POST /ap-invoices: Create an AP invoice and distribute lines to jobs, cost codes, and categories. Optionally link to a commitment.
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/ap-invoices \
--header 'Authorization: Bearer <authToken>' \
--header 'Content-Type: application/json' \
--data '{
"vendorId": "vnd_3aa91d",
"invoiceNumber": "INV-2026-01-082",
"invoiceDate": "2026-01-31",
"dueDate": "2026-02-30",
"termsCode": "NET30",
"commitmentId": "cmt_3aa91d",
"lines": [
{
"jobId": "job_1f92a0",
"costCode": "033100",
"category": "labor",
"description": "Work completed Jan",
"amount": 40000.00
},
{
"jobId": "job_1f92a0",
"costCode": "033100",
"category": "material",
"description": "Rebar and mix delivered",
"amount": 22000.00
}
],
"taxAmount": 0.00,
"retainageWithheld": 6200.00,
"attachments": [
{"fileName": "invoice.pdf", "uploadToken": "upl_98dc3a"}
],
"notes": "Materials received 01/28; retainage per subcontract."
}'
Example response
{
"apInvoiceId": "api_51af80",
"status": "submitted",
"vendorId": "vnd_3aa91d",
"total": 62000.00,
"retainageWithheld": 6200.00,
"createdAt": "2026-01-21T12:14:10Z"
}
Change Orders
POST /jobs/{jobId}/change-orders: Create a change order with budget and commitment impacts.
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/jobs/job_1f92a0/change-orders \
--header 'Authorization: Bearer <authToken>' \
--header 'Content-Type: application/json' \
--data '{
"changeOrderNumber": "CO-033100-004",
"type": "owner",
"description": "Additional waterproofing at cold joints",
"status": "draft",
"effectiveDate": "2026-02-05",
"budgetImpacts": [
{"costCode": "071300", "category": "material", "increase": 15000.00},
{"costCode": "071300", "category": "labor", "increase": 8000.00}
],
"commitmentImpacts": [
{"commitmentId": "cmt_3aa91d", "increase": 12000.00}
],
"attachments": [
{"fileName": "detail.png", "uploadToken": "upl_08ab73"}
],
"referenceId": "obs-8793"
}'
Example response
{
"changeOrderId": "co_67c21a",
"status": "draft",
"jobId": "job_1f92a0",
"totalBudgetIncrease": 23000.00,
"createdAt": "2026-01-21T13:02:31Z"
}
Technical Specifications
- Authentication: Username/password with company selection; supports MFA (SMS, email, TOTP) and SSO/OAuth where enabled; service accounts or customer-managed credentials supported
- Deployment: Works with on-prem or hosted Sage 300 CRE via secure connector; supports Windows + SQL Server environments
- Response format: JSON with consistent resource schemas and pagination across modules
- Rate limits: Tuned for enterprise throughput while honoring customer entitlements and usage controls
- Session management: Automatic reauth and cookie/session rotation with health checks
- Data freshness: Near real-time retrieval of jobs, commitments, AP invoices, and change orders
- Security: Encrypted transport, scoped tokens, and audit logging; respects Sage 300 CRE role-based permissions and period controls
- Webhooks: Optional asynchronous delivery for long-running workflows (e.g., invoice approvals, change order reviews)
Performance Characteristics
- Latency: Sub-second responses for list/detail queries under normal load
- Throughput: Designed for high-volume job data sync and AP invoice processing
- Reliability: Retry logic, backoff, and idempotency keys minimize duplicate actions
- Adaptation: Continuous monitoring for UI/DB changes with rapid adapter updates
Getting Started
- Schedule Integration Assessment
Book a 30-minute session to confirm your modules, licensing, deployment, and authentication model.
- Supergood Builds and Validates Your API
We deliver a hardened Sage 300 CRE adapter tailored to your workflows and entitlements.
- Deploy with Monitoring
Go live with continuous monitoring and automatic adjustments as Sage 300 CRE evolves.
Frequently Asked Questions
Q: Which Sage 300 CRE modules can this integration cover?
Supergood supports workflows across commonly used modules such as Job Cost (jobs, cost codes, budgets), Financials (AP, AR, GL, Payroll), Procurement (POs, subcontracts), Change Orders, and Property Management (properties, units, leases), subject to your licensing and entitlements. We scope coverage during integration assessment.
Q: How do you handle on-prem Sage 300 CRE deployments?
We operate via a secure connector and session orchestration against your Windows/SQL Server environment, with encrypted transport and strict role-based access. MFA/SSO are supported where applicable.
Q: Can you sync commitments and AP invoices to our ERP or project platform?
Yes. We normalize commitments and AP invoices to match your schema (e.g., cost codes, categories, retainage, tax) and deliver updates via webhooks or polling while complying with rate and permission constraints.
Q: How are period controls and approvals respected?
Our adapter detects accounting periods, approval states, and user entitlements before writing. We enforce draft/approved statuses, retainage rules, and audit trails to maintain compliance.
Q: Are attachments supported for commitments and change orders?
Yes. We support downloading artifacts and uploading attachments via signed uploads, with checksum validation and time-limited URLs.
Related Integrations
Intralinks API - Programmatically access the Intralinks VDR with Supergood
Ready to automate your Sage 300 Construction workflows?
Supergood can have your Sage 300 CRE integration live in days with no ongoing engineering maintenance.