Supergood | PCS McLeod API

Supergood | PCS McLeod API

Programmatically access McLeod TMS load data, dispatch operations, tracking events, and billing with a stable REST API. Supergood builds and operates production-grade, unofficial McLeod integrations so your team can automate fleet and brokerage workflows without heavy custom engineering.

Plain English: McLeod Software (LoadMaster for asset-based carriers and PowerBroker for freight brokers) is transportation management software used by trucking fleets and brokerages to run orders, dispatch drivers/equipment, exchange EDI, track loads, and bill customers. An unofficial API lets you programmatically pull loads, customers, carriers, drivers and equipment, stop appointments, tracking/status events, invoices/settlements—and push new loads, dispatch assignments, status updates, documents, and billing data back into McLeod.

For a tech company integrating with McLeod, this means you can ingest real-time order and dispatch data to power visibility dashboards, automate driver assignment from your planning engine, sync status events (arrive/depart/delivered/POD) from telematics, reconcile billing with your ERP, and keep customer/carrier portals in sync. You can also create loads from external tenders, attach BOL/POD artifacts, push appointment changes, and align safety/compliance systems with unit/driver data.

What is McLeod?

McLeod Software (https://www.mcleodsoftware.com/) provides transportation management systems (TMS) for carriers and brokers. LoadMaster centralizes fleet operations (orders, dispatch, drivers, tractors/trailers, EDI, settlements), while PowerBroker manages brokerage workflows (customer/capacity management, rating, tendering, carrier pay). Organizations use McLeod to plan and execute loads, manage stops and appointments, communicate with drivers, track progress via mobile/ELD integrations, and handle billing and settlements.

Core product areas include:

  • Order & Load Management (e.g., customers, reference numbers, PRO/BOL, stops and appointments)
  • Dispatch & Driver/Equipment (e.g., driver assignments, tractors/trailers, planned/actual times)
  • Tracking & Visibility (e.g., status events, geolocation, ETA, documents like POD)
  • Financials (e.g., rating, accessorials, invoices/AR, settlements/AP)
  • EDI & Integrations (e.g., 204 tender, 990 response, 214 status, 210 invoice)

Common data entities:

  • Companies (customers/bill-to, carriers, divisions), Users, and Permissions
  • Loads (metadata, references, division codes, statuses)
  • Stops & Appointments (pickup/delivery, windows, locations)
  • Drivers, Tractors, Trailers (assignments, unit numbers)
  • Tracking Events (arrived, departed, delivered, POD)
  • Rates & Accessorials (line items, fuel surcharge)
  • Invoices/Settlements (AR/AP, terms, attachments)

The McLeod Integration Challenge

Fleets and brokerages rely on McLeod daily, but turning portal-based and EDI-driven workflows into API automation is non-trivial:

  • Deployment model variability: Many tenants are on-prem or private cloud with custom modules and entitlements; connectivity and authentication differ by customer
  • Module/licensing gates: Access to loads, dispatch, EDI, documents, and financials often depends on purchased modules, making uniform API coverage tricky
  • Portal-first features: Document imaging (e.g., BOL/POD), appointment editing, and driver messaging are optimized for the thick client/web app with data spread across distinct views
  • Status rigor: Load lifecycle transitions and financial postings have strict business rules; incorrect updates can break downstream settlement
  • EDI-centric ecosystems: Tenders, status, and invoices may be batched via EDI jobs; polling and event capture require careful orchestration to achieve real-time behavior
  • Permissions: Role-based controls and division/company codes impact visibility and write access, complicating headless automation

How Supergood Creates McLeod APIs

Supergood reverse-engineers authenticated browser flows and network interactions to deliver a resilient API endpoint layer for your McLeod tenant.

  • Handles username/password, SSO/OAuth, and MFA (SMS, email, TOTP) securely
  • 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, division codes, and role-based permissions to ensure compliant access

Use Cases

Load & Company Data Sync

  • Mirror loads, customers, carriers, and divisions into your internal systems
  • Keep stop metadata and appointment windows current for visibility and planning
  • Normalize references (PRO/BOL/customer order) for analytics and customer portals

Dispatch Automation

  • Assign drivers, tractors, and trailers from your planning engine
  • Push plan times and messages to drivers; update appointments dynamically
  • Keep unit assignments and driver status aligned across safety/compliance systems

Tracking & POD

  • Ingest arrived/departed/delivered events from ELD/telematics and mobile apps
  • Attach POD images and documents; trigger customer notifications
  • Drive ETA alerts and exception workflows when thresholds are breached

Financials: Rating, Invoices, and Settlements

  • Create invoices from completed loads with line items and surcharges
  • Pull invoice status to reconcile AR/AP with ERP (e.g., NetSuite, QuickBooks)
  • Capture accessorials programmatically and ensure auditability

Available Endpoints

Authentication

POST /sessions: Establish a session using credentials. 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>",
    "mfa": { "type": "totp", "code": "123456" }
  }'

Example response

{
  "authToken": "eyJhbGciOi...",
  "expiresIn": 3600,
  "user": {
    "id": "u_8d21f0",
    "name": "Dispatch Coordinator",
    "entitlements": ["loads", "dispatch", "tracking", "financials"]
  }
}

POST /sessions/refresh: Refresh an existing token to keep sessions uninterrupted.

Loads

GET /loads: List loads with filters and summary details.

Query parameters

  • customerId: string
  • status: planned | dispatched | enroute | delivered | billed | canceled
  • pickupFrom, pickupTo: ISO 8601 timestamps
  • deliveryFrom, deliveryTo: ISO 8601 timestamps
  • divisionCode: string
  • updatedFrom, updatedTo: ISO 8601 timestamps
  • page, pageSize: integers for pagination

Example response

{
  "items": [
    {
      "loadId": "ld_274a91",
      "loadNumber": "LM-2026-000123",
      "status": "dispatched",
      "divisionCode": "EAST",
      "orderDate": "2026-01-18",
      "customer": {
        "id": "cust_9b1202",
        "name": "Acme Retail",
        "code": "ACME01"
      },
      "references": {
        "proNumber": "PRO874562",
        "bolNumber": "BOL-66721",
        "customerOrder": "AC-PO-220445"
      },
      "equipment": {
        "type": "dry_van",
        "temperatureControl": false
      },
      "miles": 812,
      "stops": [
        {
          "sequence": 1,
          "type": "pickup",
          "name": "Acme DC",
          "address": {
            "line1": "500 Distribution Way",
            "city": "Columbus",
            "region": "OH",
            "postalCode": "43085",
            "country": "US"
          },
          "appointment": {
            "windowStart": "2026-01-20T08:00:00-05:00",
            "windowEnd": "2026-01-20T10:00:00-05:00"
          }
        },
        {
          "sequence": 2,
          "type": "delivery",
          "name": "Acme Store 112",
          "address": {
            "line1": "112 Main St",
            "city": "Richmond",
            "region": "VA",
            "postalCode": "23219",
            "country": "US"
          },
          "appointment": {
            "windowStart": "2026-01-21T13:00:00-05:00",
            "windowEnd": "2026-01-21T15:00:00-05:00"
          }
        }
      ],
      "rateSummary": {
        "currency": "USD",
        "linehaul": 1650.00,
        "fuelSurcharge": 185.50,
        "accessorials": 75.00,
        "total": 1910.50
      },
      "updatedAt": "2026-01-20T13:45:00Z"
    }
  ],
  "page": 1,
  "pageSize": 50,
  "total": 1
}

POST /loads: Create a new load with stops, equipment, and rate details.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/loads \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "divisionCode": "EAST",
    "customerId": "cust_9b1202",
    "references": {
      "customerOrder": "AC-PO-220446"
    },
    "equipment": { "type": "reefer", "temperatureControl": true, "setPointF": 35 },
    "stops": [
      {
        "sequence": 1,
        "type": "pickup",
        "name": "Fresh Produce DC",
        "address": {
          "line1": "2100 Market Rd",
          "city": "Harrisburg",
          "region": "PA",
          "postalCode": "17101",
          "country": "US"
        },
        "appointment": {
          "windowStart": "2026-02-01T06:00:00-05:00",
          "windowEnd": "2026-02-01T08:00:00-05:00"
        }
      },
      {
        "sequence": 2,
        "type": "delivery",
        "name": "Acme Store 84",
        "address": {
          "line1": "84 Elm St",
          "city": "Baltimore",
          "region": "MD",
          "postalCode": "21201",
          "country": "US"
        },
        "appointment": {
          "windowStart": "2026-02-02T09:00:00-05:00",
          "windowEnd": "2026-02-02T11:00:00-05:00"
        }
      }
    ],
    "rateLines": [
      { "chargeType": "linehaul", "description": "HBG -> BAL", "amount": 1200.00, "currency": "USD" },
      { "chargeType": "fuel_surcharge", "description": "FSC Jan", "amount": 140.00, "currency": "USD" },
      { "chargeType": "accessorial", "code": "LUMPER", "description": "Lumper fee", "amount": 55.00, "currency": "USD" }
    ],
    "notes": "Driver must check reefer temp at pickup."
  }'

Example response

{
  "loadId": "ld_2b71c4",
  "loadNumber": "LM-2026-000124",
  "status": "planned",
  "createdAt": "2026-01-21T09:12:33Z"
}

Dispatch

POST /loads/{loadId}/dispatches: Assign a driver, tractor, and trailer, and set planned times.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/loads/ld_2b71c4/dispatches \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "driverId": "drv_589f10",
    "tractorId": "trc_1127",
    "trailerId": "trl_9081",
    "plannedDepart": "2026-02-01T05:30:00-05:00",
    "plannedArrivals": [
      { "stopSequence": 1, "eta": "2026-02-01T06:30:00-05:00" },
      { "stopSequence": 2, "eta": "2026-02-02T09:30:00-05:00" }
    ],
    "message": "Dispatch confirmed. Check reefer temp set to 35°F."
  }'

Example response

{
  "dispatchId": "dsp_771e5b",
  "status": "assigned",
  "driver": { "id": "drv_589f10", "name": "J. Reynolds" },
  "tractor": { "id": "trc_1127", "unitNumber": "TRK-1127" },
  "trailer": { "id": "trl_9081", "unitNumber": "TRL-9081" },
  "lastMessageId": "msg_3b12c0",
  "createdAt": "2026-01-21T10:03:11Z"
}

Tracking & Status Events

POST /loads/{loadId}/status-events: Append a status update (arrived, departed, delivered, POD) with optional geolocation and attachments.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/loads/ld_2b71c4/status-events \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "eventType": "arrived_pickup",
    "eventTime": "2026-02-01T06:28:00-05:00",
    "stopSequence": 1,
    "location": { "lat": 40.2732, "lon": -76.8867 },
    "odometerMiles": 125432,
    "source": "eld",
    "notes": "Gate check complete",
    "attachments": []
  }'

Example response

{
  "eventId": "evt_5a43e9",
  "updatedLoadStatus": "enroute",
  "createdAt": "2026-02-01T11:28:00Z"
}

POST /loads/{loadId}/status-events (POD example): Submit delivery with proof-of-delivery attachment.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/loads/ld_2b71c4/status-events \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "eventType": "delivered",
    "eventTime": "2026-02-02T09:40:00-05:00",
    "stopSequence": 2,
    "location": { "lat": 39.2904, "lon": -76.6122 },
    "source": "mobile_app",
    "notes": "POD signed by store manager",
    "attachments": [
      { "fileName": "pod.jpg", "uploadToken": "upl_98dc3a" }
    ]
  }'

Example response

{
  "eventId": "evt_6fc921",
  "updatedLoadStatus": "delivered",
  "createdAt": "2026-02-02T14:40:00Z"
}

Invoices (Accounts Receivable)

POST /loads/{loadId}/invoices: Create an invoice against a delivered load with line items and attachments.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/loads/ld_2b71c4/invoices \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "invoiceNumber": "INV-2026-000124",
    "invoiceDate": "2026-02-03",
    "billToCompanyId": "cust_9b1202",
    "terms": "NET30",
    "currency": "USD",
    "lineItems": [
      { "code": "LINEHAUL", "description": "HBG -> BAL", "amount": 1200.00 },
      { "code": "FSC", "description": "Fuel surcharge", "amount": 140.00 },
      { "code": "LUMPER", "description": "Lumper fee", "amount": 55.00 }
    ],
    "attachments": [
      { "fileName": "invoice.pdf", "uploadToken": "upl_7fa223" },
      { "fileName": "pod.jpg", "uploadToken": "upl_98dc3a" }
    ],
    "notes": "Includes POD and BOL reference BOL-66721."
  }'

Example response

{
  "invoiceId": "inv_51af80",
  "status": "submitted",
  "loadId": "ld_2b71c4",
  "total": 1395.00,
  "createdAt": "2026-02-03T11:20:44Z"
}

Get full API Specs →


Technical Specifications

  • Authentication: Username/password with MFA (SMS, email, TOTP) and SSO/OAuth where enabled; supports service accounts or customer-managed credentials
  • Response format: JSON with consistent resource schemas and pagination across modules
  • Rate limits: Tuned for enterprise throughput while honoring customer entitlements, division codes, and usage controls
  • Session management: Automatic reauth and cookie/session rotation with health checks
  • Data freshness: Near real-time retrieval of loads, dispatch, tracking, and financial objects—even in EDI-heavy environments
  • Security: Encrypted transport, scoped tokens, and audit logging; respects McLeod role-based permissions and business rules
  • Webhooks: Optional asynchronous delivery for long-running workflows (e.g., invoice approvals, settlement posting)

Performance Characteristics

  • Latency: Sub-second responses for list/detail queries under normal load
  • Throughput: Designed for high-volume load sync, dispatch assignment, and status event ingestion
  • Reliability: Retry logic, backoff, and idempotency keys minimize duplicate actions and protect financial postings
  • Adaptation: Continuous monitoring for UI/API changes with rapid adapter updates

Getting Started

  1. Schedule Integration Assessment

Book a 30-minute session to confirm your modules (LoadMaster/PowerBroker), licensing, and authentication model.

  1. Supergood Builds and Validates Your API

We deliver a hardened McLeod adapter tailored to your workflows, divisions, and entitlements.

  1. Deploy with Monitoring

Go live with continuous monitoring and automatic adjustments as McLeod evolves.

Schedule Integration Call →


Frequently Asked Questions

Q: Which McLeod modules can this integration cover?

Supergood supports workflows across commonly used areas such as Order/Load Management, Dispatch (drivers, tractors/trailers), Tracking (status events, geolocation), Financials (rating, invoices/AR, settlements), and document handling (BOL/POD), subject to your licensing and entitlements. We scope coverage during integration assessment.

Q: How are MFA, SSO, and on-prem deployments handled?

We support username/password + MFA (SMS, email, TOTP) and can operate behind SSO/OAuth when enabled. For on-prem/private cloud, we establish secure connectivity and session maintenance based on your environment. Sessions are refreshed automatically with secure challenge handling.

Q: Can you sync loads and invoices to our ERP or visibility platform?

Yes. We can normalize loads, stop details, and invoices to match your ERP/analytics schema (e.g., cost centers, charge codes) and deliver updates via webhooks or polling while complying with rate and permission constraints.

Q: How do you manage strict status transitions and settlements?

We enforce McLeod business rules for status transitions and protect financial operations with idempotency and validations (e.g., delivered before invoicing). We align with your approval chains and division codes to ensure compliant updates.


Samsara API - Programmatically access telematics and ELD data with Supergood


Ready to automate your McLeod workflows?

Supergood can have your McLeod integration live in days with no ongoing engineering maintenance.

Get Started →

Read more