Alarm Integration (SIA/ContactID)
https://my.timeline.is/help/alarms/alarm-integration
Last updated: January 31, 2026
Table of Contents

Alarm Integration (SIA/ContactID)

TetherX acts as an alarm receiving centre (ARC), accepting SIA DC-09 and Contact ID messages from IP communicators. When alarms trigger, TetherX automatically creates Events and sends Notifications.

Compatible Alarm Panels

Any alarm panel with an IP communicator module supporting SIA DC-09 or Contact ID:

  • Honeywell: Galaxy, LYNX, VISTA
  • Texecom: via IP communicator, or serial integration
  • DSC: PowerSeries, Impassa
  • Bosch: Solution 2000/3000/6000
  • Vanderbilt: Vigo/Vigor
  • Inim Electronics
  • Risco: LightSys
  • Johnson Controls: C-addx Evolution/Networx/Patriot
  • ADT: Pulse/Command
  • Siemens: Sintony, Solution 844/862
  • Napco: Gemini, Rapicon, StarLink
  • Altronix: Hubway, ACM7000, ACM24V
  • And many others with SIA DC-09 or Contact ID support

Connection Methods

Method Use When Connection Details
TCP Server IP communicators (standard) sia.timeline.is port 2200
REST API Your own platform forwarding SIA to TetherX See API

TCP Server

1. Create an Alarm in TetherX:

Go to Alarms and add a Virtual alarm. Set a Transmitter ID (e.g., 900001) to link incoming messages to this site.

New Virtual Alarm form

2. Configure your IP communicator:

  • Host: sia.timeline.is
  • Port: 2200
  • Protocol: SIA DC-09 (SIA-DCS)
  • Account/Site ID: Must match the Transmitter ID you set in TetherX

Tip: No API token required for TCP - authentication uses the transmitter ID to route alarms to the correct site.

REST API

Use the REST API if you are building your own platform or middleware that receives SIA messages and forwards them to TetherX. Create the Virtual alarm as in the TCP Server section above, with its Transmitter ID set to the account number your platform sends.

1. Find your Timeline API Token:

Open your user profile and copy the Timeline API Token.

2. POST the SIA string:

curl --request POST 'https://app.timeline.is/api/v3/alarms/sia_event?token=YOUR_TIMELINE_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{"alarm": {"sia_event": "[#900001|Nti22:02/ri01/PA1001|APanic Alarm]"}}'

The token can also be sent as a top-level token field in the body. Form-encoded bodies are accepted as well, using alarm[sia_event] as the field name.

A 200 response means the event was recorded. A 404 means no Virtual alarm matches the transmitter ID. A 422 means the SIA string did not match the format described below, and names the segment that was rejected:

{"data":{"errors":["The area segment riXX is not valid. Expected ri followed by a two-digit area, such as ri01."]}}

Note: This endpoint is served under /api/v3, not the /api/v3p prefix used by the OAuth2 endpoints. It uses the Timeline API Token, not an OAuth2 access token, and it does not accept an Authorization: Bearer header. See API for the full reference.

SIA Message Format

SIA DC-09 is a standardised protocol from the Security Industry Association for transmitting alarm events over IP networks. Messages use human-readable ASCII with short codes.

The two connection methods accept different messages, so use the format that matches the method you are using.

TCP Server

The TCP server accepts the complete DC-09 frame as the IP communicator sends it, including the CRC, the "SIA-DCS" identifier, the sequence number and the trailing timestamp:

FEC9003B"SIA-DCS"0001L0#777[#777|Nri0001/DL510]_12:29:37,01-17-2022
  • #777 - Site/transmitter ID (matches transmitter_id in TetherX)
  • ri0001 - Area/partition
  • DL - Event code (DL = Door Open, PA = Panic, BA = Burglary) - see SIA Event Codes for full list
  • 510 - Zone number

Configure the account number in your IP communicator and TetherX handles the rest of the frame.

REST API

The REST endpoint accepts only the inner block, and validates each segment:

[#900001|Nti22:02/ri01/PA1001|APanic Alarm]
  • #900001 - Site/transmitter ID (matches transmitter_id in TetherX). Letters and digits only, so a customer reference such as SC01-900002 is rejected. Send the account number the panel transmits, which is a run of digits, commonly four to six.
  • Nti22:02 - Timestamp. The literal Nti, then a two-digit hour, a colon and a two-digit minute.
  • ri01 - Area/partition (e.g., Area 1). The literal ri, then exactly two digits.
  • PA - Event code (PA = Panic, BA = Burglary, MA = Medical) - see SIA Event Codes for full list. Two characters, neither of which is a digit. A code ending in R, such as PR, restores the zone to healthy.
  • 1001 - Zone number
  • APanic Alarm - Event description. The literal A, then the description, which must not contain digits.

A message that does not match this format is rejected with a 422 response. Validation starts at the opening bracket, so anything sent after the closing bracket is ignored rather than rejected.

How It Works

  • Parse: SIA string is parsed to extract site ID, event type, and zone.
    • SIA parsing
  • Create event: Categorised by type (burglary, fire, medical, panic, etc.)
    • Alarm zones and status in dashboard
  • Send Notifications: Email alerts to integrator and admin users.
    • Email notification example
  • Video verification: Combine with Cameras for simultaneous video capture.
  • SIA Event Codes - Complete reference of all supported event codes
  • API - REST API reference and authentication
Last updated: January 31, 2026