API-Docs

SGS Device Portal - Integration Guide

The SGS Device Portal delivers status, line current, and real-time fault data from field devices to your operational systems. This document describes the integration recipes available for connecting your SCADA, OMS, GIS, data platforms, and other systems to the portal.

It will help your technical and security teams understand the available options, what each recipe requires from your side, and how to choose the right approach for your environment.


Recipes at a Glance

Recipe Protocol Connectivity Typical Use Case
A - DNP3 over Public Endpoint DNP3/TCP + mTLS Internet SCADA integration via public network
B - DNP3 over VPN DNP3/TCP + mTLS Site-to-site VPN SCADA integration with no public exposure
C - MultiSpeak (Direct) MultiSpeak SOAP/HTTPS Internet OMS notification via internet-facing endpoint
D - MultiSpeak via DMZ MultiSpeak SOAP/HTTPS Internet to DMZ OMS notification with DMZ separation
E - REST API REST/HTTPS/JSON Internet OMS, data lake, or custom system integration

Each recipe is described in detail below, including architecture, data flow, what you need to provide, and key security considerations.


Recipe A - SCADA via DNP3 (Public Endpoint)

Architecture

                            SGS Cloud
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│   Devices ──► SGS Device Portal ──► DNP3 Outstation         │
│                                           │                 │
│                                    Public NLB (TCP 20000)   │
└─────────────────────────────────────────────────────────────┘
                                           │
                                    mTLS (Internet)
                                           │
                              ┌──────────────────────────────┐
                              │  Customer Network            │
                              │  DNP3 Master (RTAC / RTU /   │
                              │  Gateway)                    │
                              └──────────────────────────────┘

How It Works

  1. Field devices report status and events to the SGS Device Portal.
  2. The SGS platform translates device data into DNP3 point mappings and exposes a DNP3 outstation endpoint.
  3. A public network load balancer forwards your DNP3 master’s connections to the outstation on TCP port 20000.
  4. Your DNP3 master polls or receives unsolicited responses as configured.

What You Need to Provide

Key Security Considerations


Recipe B - SCADA via DNP3 over VPN

Architecture

                     Customer Network
        ┌────────────────────────────────────┐
        │  DNP3 Master (RTAC / RTU /         │
        │  Gateway)                          │
        └──────────────────┬─────────────────┘
                           │ DNP3 (TCP 20000)
                    Site-to-Site VPN
                           │
                           ▼
                     SGS Cloud (Private)
        ┌────────────────────────────────────┐
        │  Internal NLB (TCP 20000)          │
        │         │                          │
        │         ▼                          │
        │  DNP3 Outstation                   │
        │         │                          │
        │         ▼                          │
        │  SGS Device Portal                 │
        └────────────────────────────────────┘

How It Works

  1. The same device-to-portal data flow as Recipe A.
  2. The DNP3 outstation is not publicly exposed - it is only reachable from within the SGS private network or via the VPN tunnel.
  3. SGS establishes a site-to-site VPN between your network and the SGS cloud environment.
  4. Your DNP3 master connects over the VPN to an internal load balancer on TCP 20000. mTLS is still required within the tunnel.

What You Need to Provide

Key Security Considerations


Recipe C - OMS via MultiSpeak (Direct Internet-Facing)

Architecture

     SGS Cloud                                Customer Network
┌──────────────────────┐     HTTPS/SOAP    ┌──────────────────────────────────┐
│ SGS Device Portal    │ ─────────────────►│ Customer OMS MultiSpeak Endpoint │
│ (MultiSpeak client)  │                   │ (Internet-facing, WAF/proxy)     │
└──────────────────────┘                   └──────────────────────────────────┘

How It Works

  1. Field devices report status and events to the SGS Device Portal.
  2. On relevant state changes (faults, restorations, and optionally check-ins), the SGS platform builds a MultiSpeak-compliant SOAP payload and sends it via HTTPS to your OMS endpoint.
  3. Your OMS endpoint (typically behind a reverse proxy or WAF) validates the request and updates its outage model.

What You Need to Provide

Device Point Mapping

To help your OMS pre-map incoming notifications to the correct assets, SGS exposes a SOAP endpoint that returns all devices in your organization as SCADA points:

Each entry in the response includes:

Field Description
objectID Device identifier (IMEI number) used in all fault and check-in notifications
objectName Human-readable device name
description Device serial number, where available

Use the objectID values to build your OMS point mapping before going live. All subsequent fault and check-in notifications will reference this same identifier.

Key Security Considerations


Recipe D - OMS via MultiSpeak Through DMZ / Proxy

Architecture

     SGS Cloud                    Customer DMZ                 Customer Internal
┌──────────────────┐  HTTPS/SOAP  ┌──────────────────┐  HTTP(S)  ┌────────────────┐
│ SGS Device Portal│ ────────────►│ Reverse Proxy    │ ─────────►│ OMS / DMS      │
│ (MultiSpeak      │              │ / WAF            │           │ (MultiSpeak    │
│  client)         │              │ (DMZ listener)   │           │  server)       │
└──────────────────┘              └──────────────────┘           └────────────────┘

How It Works

  1. Same device-to-portal data flow and MultiSpeak payload construction as Recipe C.
  2. Instead of calling your OMS directly, the SGS platform sends SOAP/HTTPS requests to a URL you expose in your DMZ or proxy tier.
  3. Your DMZ/proxy terminates TLS, applies WAF / rate limiting / authentication, and forwards requests to your internal OMS/DMS.
  4. This keeps your core OMS shielded from direct internet traffic.

What You Need to Provide

Device Point Mapping

The same GetAllSCADAPoints SOAP endpoint described in Recipe C is available for DMZ-based integrations. Use it to retrieve the objectID values for all devices in your organization before configuring your internal OMS point mapping. See the Device Point Mapping section under Recipe C for details.

Key Security Considerations


Recipe E - Direct REST API Integration

Architecture

     Customer Network                               SGS Cloud
┌───────────────────────────┐   HTTPS/JSON   ┌──────────────────────────┐
│ Customer System           │◄──────────────►│ SGS Device Portal        │
│ (OMS / Data Lake / Custom)│   REST API     │ REST API                 │
└───────────────────────────┘                └──────────────────────────┘

How It Works

  1. Field devices report data to the SGS Device Portal continuously.
  2. Your system authenticates to the SGS REST API and retrieves device status, events, current readings, and other data on demand or on a polling schedule.
  3. Optionally, event-driven notifications can be delivered to a webhook endpoint you provide. Contact SGS if your integration requires push notifications rather than polling.

Authentication

To authenticate, send a POST request to the SGS API with your Device Portal organizational admin credentials:

POST https://api.portal-sgs.com/api/auth/login
Content-Type: application/json

{
    "email": "<your_email>",
    "password": "<your_password>"
}

The response includes an accessToken (Bearer token, valid for 24 hours). Include it in subsequent requests:

Authorization: Bearer <accessToken>

Available API Data

Query device data for your organization:

GET https://api.portal-sgs.com/api/dnp3/dnp3OrganizationDevices
Authorization: Bearer <accessToken>

The response is a JSON array of device objects, each containing:

What You Need to Provide

SGS will provide organizational admin credentials once onboarding begins. Store these securely in your own secret management system.

Key Security Considerations


Supported MultiSpeak Methods

For MultiSpeak integrations (Recipes C and D), the SGS platform currently supports the following SOAP operation names. You configure one method per integration:

Fault / status notifications:

Check-in / heartbeat notifications:

Note: SCADAStatusChangedNotification is available in both MultiSpeak 3.0 and 4.1 variants. When configuring your integration with SGS, specify which version your OMS expects so the correct namespace and SOAPAction are used.

If your OMS requires a method not listed here, please contact SGS to discuss feasibility. Additional methods can be implemented by extending the platform’s MultiSpeak adapter.


Choosing the Right Recipe

Consideration Recommendation
You have a SCADA system using DNP3 Recipe A (public + mTLS) or Recipe B (VPN + mTLS)
You require no public internet exposure for SCADA Recipe B (VPN)
Your OMS uses MultiSpeak and can accept internet traffic Recipe C (direct)
Your security policy requires DMZ separation Recipe D (DMZ/proxy)
You need flexible data access for OMS, analytics, or custom tools Recipe E (REST API)
You need a combination of real-time SCADA + data access Recipes A or B combined with Recipe E

Next Steps

To get started, let your SGS account contact know:

Once you’ve identified which recipe fits your environment, contact your SGS sales rep to begin onboarding. We’ll work through the specific requirements for your chosen integration (certificates, endpoints, credentials, VPN details, etc.) together. For general questions: info@smartgridsolutions.com