---
title: Integriti Inner Range
slug: acs-integriti
createdAt: 2026-05-12T04:19:34.000Z
---

# Integration Guide

::Image[]{src="https://api.archbee.com/api/optimize/cIIINwBBlIs0Au1Y_bwqP/SzVzJL3K6s6upf1ALZsdJ_inner-range-splash-card.png" size="60" width="780" height="310" position="flex-start" alt="Integriti" sha="cfffb56ed122841912dde8c1d7cac8c22de60ff1" initialPath="/assets/integration-guide/inner-range/inner-range-splash-card.png" githubPath="docs/assets/integration-guide/inner-range/inner-range-splash-card.png" showCaption="false"}

:::hint{type="info"}
This integration connects Sine with Inner Range's Integriti access control system, allowing visitor and access data to flow between the two platforms. It enables organizations to manage physical access permissions for visitors directly through their existing Integriti infrastructure. This guide is intended for system integrators and IT administrators responsible for configuring and maintaining the connection between Sine and Integriti.
:::

# Overview

Sine integrates with Integriti Inner Range to automatically provision and revoke visitor access credentials, with simplified connectivity for on-premise deployments through Sine Secure Bridge. This integration supports Sine QR Code credentials, which can be assigned via QR codes printed on visitor badges or sent to visitors via SMS.

# How It Works

Sine connects to Integriti Inner Range to synchronize visitor credentials with the access control system, allowing visitors to move through controlled doors using a QR code issued through Sine.

## QR Code

Visitors are issued a Sine QR Code credential that can be scanned at compatible readers to unlock doors provisioned in Integriti Inner Range.

::Image[]{src="https://api.archbee.com/api/optimize/cIIINwBBlIs0Au1Y_bwqP/fw7GknqUcECmkt46SVbDk_cloud-to-onprem-qrcode-flow-with-adaptor.png" size="120" position="flex-start" alt="cloud-to-onprem-qrcode-flow-with-adaptor" sha="1b8261c5fce26c74fb2fbf5f39d1e028cc6ef04b" initialPath="/assets/integration-guide/inner-range/cloud-to-onprem-qrcode-flow-with-adaptor.png" githubPath="docs/assets/integration-guide/inner-range/cloud-to-onprem-qrcode-flow-with-adaptor.png" showCaption="false"}

**Check-in Flow:**

::::WorkflowBlock
:::WorkflowBlockItem
The visitor initiates check-in through Sine, using a kiosk, the mobile app, a web check-in form, or a printed QR poster at the site entrance.
:::

:::WorkflowBlockItem
Sine provisions a unique QR code credential for the visitor, scoped to the access groups assigned for the duration of their visit.
:::

:::WorkflowBlockItem
Once the visit is approved following any required security and compliance checks, Sine activates the QR code credential in Integriti Inner Range.
:::

:::WorkflowBlockItem
Sine delivers the QR code to the visitor via SMS or displays it on their printed or digital badge.
:::

:::WorkflowBlockItem
The visitor presents the QR code at a reader equipped with QR or barcode scanning support, and Integriti Inner Range unlocks the associated door.
:::
::::

**Check-out Flow:**

::::WorkflowBlock
:::WorkflowBlockItem
The visitor checks out using the Sine app, a kiosk, by notifying their host, or automatically upon exiting the configured geofence area.
:::

:::WorkflowBlockItem
Sine revokes the QR code credential in Integriti Inner Range, preventing the visitor from gaining further entry through the system.
:::
::::

# Requirements

## Sine Requirements

- **Integration enablement**: Confirm that your Sine subscription supports the Integriti Inner Range integration and that it is enabled on your account. Additional fees may apply.

## Integriti Inner Range Requirements

- **Integriti system**: You need an Inner Range Integriti system running version 21 or higher.
- **API License**: An Inner Range API license must be enabled with appropriate user permissions configured.
- **Sine Integriti Plugin**: The Sine Integriti Plugin is data translation middleware developed by Integriti. Install it on the Integriti server.
- **QR Reader**: If you plan to use QR codes for access, you need compatible QR access readers. Confirm reader compatibility with Integriti or your Access Control Integration Partner. A reader such as [this one](https://www.amazon.com/LBS-Outdoor-Control-Wiegand26-Scanner/dp/B08BRTD547) is suggested as an example.
- **Credential pool**: If you plan to use physical access cards, ensure you have an available credential pool.
- **Testing environment**: Set up a sandbox environment or another safe testing space to validate the integration before deploying it to production.
- **Network connectivity**: Determine how you will connect Sine with your on-premise Inner Range system.
  - **Direct API access**: This method requires network firewall access to the Inner Range API from outside your network.
  - **Sine Secure Bridge**: This method requires installation of the Sine Secure Bridge agent to establish a secure, managed tunnel between your on-premise Inner Range system and Sine.

# Configuration

## Integriti Inner Range Configuration

### Sine Plugin Configuration

The following are simplified instructions for installing and configuring the Sine Plugin. For full instructions, please see [Sine\_Integration\_Manual-v1.2.pdf](./assets/Sine_Integration_Manual-v1.2.pdf).

Before you install the Sine Plugin, you must stop all running Integriti services.

::::WorkflowBlock
:::WorkflowBlockItem
**Open Services App** — Click on the Windows Start bar and click on the `Services` app when it appears.
:::

:::WorkflowBlockItem
**Stop IR Integriti services** — Stop all IR Integriti services. There are four services that you need to stop.

::Image[]{src="https://api.archbee.com/api/optimize/cIIINwBBlIs0Au1Y_bwqP/LRSVKQz37SCaSnErY1C50_sine-plugin-installation.png" size="75" position="flex-start" alt="sine-plugin-installation" sha="508aab856c4f82504cc6343621bb4f64d4136ffb" initialPath="/assets/integration-guide/inner-range/sine-plugin-installation.png" githubPath="docs/assets/integration-guide/inner-range/sine-plugin-installation.png" showCaption="false"}
:::

:::WorkflowBlockItem
**Install the plugin** — Once the services have stopped successfully, run `Integration_Sine_Plugin_1.2.0.2613.exe` to install the plugin.
:::

:::WorkflowBlockItem
**Restart Integriti services** — When the installation is complete, restart all the IR Integriti services.
:::
::::

### Integriti System Designer Configuration

:::hint{type="info"}
Your version of Integriti System Designer may show different controls. The examples in this document are from v23.
:::

### Adding the Sine Plugin

::::WorkflowBlock
:::WorkflowBlockItem
**Select Integrations and New Integrated Device** — Select **Integrations** and then **New Integrated Device** from the top-level tab.

::Image[]{src="https://api.archbee.com/api/optimize/cIIINwBBlIs0Au1Y_bwqP/-p0M22cfmZg9THr-ZSwDg_new-integrated-device.png" size="10" position="flex-start" alt="new-integrated-device" sha="f2041f06e3e312cfa51293fbede1bace56e9f059" initialPath="/assets/integration-guide/inner-range/new-integrated-device.png" githubPath="docs/assets/integration-guide/inner-range/new-integrated-device.png" showCaption="false"}
:::

:::WorkflowBlockItem
**Select the Sine plugin** — In the dialog that appears, select the Sine plugin and click **OK**.

::Image[]{src="https://api.archbee.com/api/optimize/cIIINwBBlIs0Au1Y_bwqP/Mq0egO_-vjJ9aqggndz7C_plugin-selection-dialog.png" size="75" position="flex-start" alt="plugin-selection-dialog" sha="9897a43520644293e502417148d7ab7bb951f761" initialPath="/assets/integration-guide/inner-range/plugin-selection-dialog.png" githubPath="docs/assets/integration-guide/inner-range/plugin-selection-dialog.png" showCaption="false"}
:::

:::WorkflowBlockItem
**Configure the integration name and connection settings** — Name the integration (any name is fine) and set the Persisted Connection Run Mode to "Automatically Maintain Connection on Any Single Server."
:::

:::WorkflowBlockItem
**Fill in the Connection Details** — Complete the connection configuration with your Sine integration details.

::Image[]{src="https://api.archbee.com/api/optimize/cIIINwBBlIs0Au1Y_bwqP/r1cnR7Vjy8byW4ke50RXj_connection-configuration.png" size="75" position="flex-start" alt="connection-configuration" sha="b677f1e3a2a7507156dd9d6dd3772e1a78b8491c" initialPath="/assets/integration-guide/inner-range/connection-configuration.png" githubPath="docs/assets/integration-guide/inner-range/connection-configuration.png" showCaption="false"}
:::
::::

### IIS Configuration

Sine Secure Bridge reaches your Integriti server through a single tunnel URL, but the Integriti Sine Plugin listens on four separate routes. IIS bridges the two: it accepts requests on a shared `/ssb` path and redirects each one to the matching plugin route.

Complete this section only if you are connecting through Sine Secure Bridge. A direct network connection does not require it.

::::WorkflowBlock
:::WorkflowBlockItem
**Install the URL Rewrite module** — Install the IIS URL Rewrite module from [https://www.iis.net/downloads/microsoft/url-rewrite](https://www.iis.net/downloads/microsoft/url-rewrite). IIS ignores the rewrite rules added in step 4 if the module is not installed.
:::

:::WorkflowBlockItem
**Check the SSL certificate** — Confirm an SSL certificate is bound to the site in IIS. It can be self-signed, because Secure Bridge terminates the tunnel inside your own network and the certificate is not validated against a public certificate authority.
:::

:::WorkflowBlockItem
**Update the site bindings** — In IIS Manager, navigate to `Sites` > `Default Web Site` and click `Bindings…` in the Actions pane on the right. Edit both the port 80 and the port 443 bindings and set `Host Name` to the machine name, for example `DESKTOP-WIN1234`. The machine name is shown in the Connections pane on the left of IIS Manager.
:::

:::WorkflowBlockItem
**Add the rewrite rules** — Add the following rules to the `web.config` file for the site, usually found in `C:\inetpub\wwwroot`. Each rule maps one `/ssb` route to its plugin equivalent, so a request to `/ssb/verify` is redirected to `/Sine/Verify`.

```xml
<rewrite>
<rules>
    <rule name="Sine Rewrite Verify" stopProcessing="true">
        <match url="^.*$" ignoreCase="false" />
        <conditions logicalGrouping="MatchAll">
            <add input="{URL}" pattern="^/ssb/verify$" />
        </conditions>
        <action type="Redirect" url="/Sine/Verify" redirectType="Temporary" />
    </rule>
    <rule name="Sine Rewrite Provision" stopProcessing="true">
        <match url="^.*$" ignoreCase="false" />
        <conditions logicalGrouping="MatchAll">
            <add input="{URL}" pattern="^/ssb/provision$" />
        </conditions>
        <action type="Redirect" url="/Sine/Provision" redirectType="Temporary" />
    </rule>
    <rule name="Sine Rewrite Activate" stopProcessing="true">
        <match url="^.*$" ignoreCase="false" />
        <conditions logicalGrouping="MatchAll">
            <add input="{URL}" pattern="^/ssb/activate$" />
        </conditions>
        <action type="Redirect" url="/Sine/Activate" redirectType="Temporary" />
    </rule>
    <rule name="Sine Rewrite Deprovision" stopProcessing="true">
        <match url="^.*$" ignoreCase="false" />
        <conditions logicalGrouping="MatchAll">
            <add input="{URL}" pattern="^/ssb/deprovision$" />
        </conditions>
        <action type="Redirect" url="/Sine/Deprovision" redirectType="Temporary" />
    </rule>
</rules>
</rewrite>
```

Alternatively, use `Import Rules` in the URL Rewrite module to import the equivalent rules in `.htaccess` format:

```apache
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/ssb/verify$ [NC]
RewriteRule ^.*$ /Sine/Verify [R=308,L]
RewriteCond %{REQUEST_URI} ^/ssb/provision$ [NC]
RewriteRule ^.*$ /Sine/Provision [R=308,L]
RewriteCond %{REQUEST_URI} ^/ssb/activate$ [NC]
RewriteRule ^.*$ /Sine/Activate [R=308,L]
RewriteCond %{REQUEST_URI} ^/ssb/deprovision$ [NC]
RewriteRule ^.*$ /Sine/Deprovision [R=308,L]
```
:::

:::WorkflowBlockItem
**Restart the site** — Restart the site from `Actions` > `Manage Website` > `Restart` so IIS picks up the new rules.
:::

:::WorkflowBlockItem
**Configure the plugin connection** — In Integriti, open `Third Party Systems` > `Sine Integration` and set `Hostname` to the machine name, `Port` to `443`, and `Base Path` to `Sine`. These three values are mandatory: the rewrite rules redirect to `/Sine` on port `443` of the machine name, so any other combination breaks the connection.
:::

:::WorkflowBlockItem
**Set the tunnel Service URL** — In Sine Admin, open the Secure Bridge tunnel that reaches your Integriti server and set its `Service URL` to `https://[MACHINE NAME]/ssb`, for example `https://DESKTOP-WIN1234/ssb`. Include both the `https` scheme and the `/ssb` path.
:::

:::WorkflowBlockItem
**Test the connection** — Open the Inner Range integration in Sine and click `Test connection` to confirm the tunnel reaches the plugin.
:::
::::

### Troubleshooting

Check the following if `Test connection` fails in Sine.

- **404 Not Found**: The tunnel Service URL is missing the `/ssb` path, the Service URL is missing the `https` scheme, or the rewrite rules were not created correctly. Also sign in to the Integriti server and confirm the Sine Plugin is still online.
- **504 Gateway Timeout**: The tunnel Service URL is incorrect. Confirm the machine name in the Service URL matches the machine name of the Integriti server.

### Host Configuration

Each host in Sine that will need to be accessible must be configured in Integriti as a user. This section explains the configuration requirements and how visitors are provisioned within the system.

::::WorkflowBlock
:::WorkflowBlockItem
**Configure host email address** — The host's email address (not mobile number) must exist in Integriti in the Sine Integration properties. This email address is used to match hosts during the visitor check-in process.
:::

:::WorkflowBlockItem
**Assign host to a Permission Group** — The host must be assigned to a Permission Group. This same group is assigned to visitors during check-in, controlling their access permissions.

::Image[]{src="https://api.archbee.com/api/optimize/cIIINwBBlIs0Au1Y_bwqP/5wTkHShCs0iXz8yFIo6D7_host-permissions-group.png" size="75" position="flex-start" alt="host-permissions-group" sha="045ed371efc66515b1e72c100a2698f1dc500153" initialPath="/assets/integration-guide/inner-range/host-permissions-group.png" githubPath="docs/assets/integration-guide/inner-range/host-permissions-group.png" showCaption="false"}
:::

:::WorkflowBlockItem
**Understand check-in requirements** — If a visitor does not have a First or Last name entered, or if the visitor is being checked in to a host whose email address does not match a user in Integriti, the check-in will fail. Ensure all visitor data is complete and host email addresses are correctly configured.
:::

:::WorkflowBlockItem
**Visitor appears in Integriti** — Upon successful check-in, the visitor appears as a user in Integriti with their name and associated information.

::Image[]{src="https://api.archbee.com/api/optimize/cIIINwBBlIs0Au1Y_bwqP/LTykQDQmoosObl8osBQpO_visitor-info-in-integriti.png" size="75" position="flex-start" alt="visitor-info-in-integriti" sha="1e64c8933efb36a1f8938efdb19e29c8fe85b437" initialPath="/assets/integration-guide/inner-range/visitor-info-in-integriti.png" githubPath="docs/assets/integration-guide/inner-range/visitor-info-in-integriti.png" showCaption="false"}
:::

:::WorkflowBlockItem
**Credential provisioning** — The visitor is provisioned a Sine QR Card credential set to "Expiring" status, meaning it is valid only for the duration of the visit.

::Image[]{src="https://api.archbee.com/api/optimize/cIIINwBBlIs0Au1Y_bwqP/SflQy4ajCU0RZMg4ygVii_expiring-qr-card.png" size="75" position="flex-start" alt="expiring-qr-card" sha="a3b0735783e2fba6e053cc7c9743e1f239ee5d8c" initialPath="/assets/integration-guide/inner-range/expiring-qr-card.png" githubPath="docs/assets/integration-guide/inner-range/expiring-qr-card.png" showCaption="false"}
:::

:::WorkflowBlockItem
**Checkout behavior** — When the visitor is checked out, their user account in the Integriti system is suspended, and any provisioned credentials are marked as inactive.

::Image[]{src="https://api.archbee.com/api/optimize/cIIINwBBlIs0Au1Y_bwqP/9LairYvAXmWmZceYAAMnV_suspended-user-account.png" size="75" position="flex-start" alt="suspended-user-account" sha="e163a207cc7eb78b13d2a492fb1427b1cb71b4e2" initialPath="/assets/integration-guide/inner-range/suspended-user-account.png" githubPath="docs/assets/integration-guide/inner-range/suspended-user-account.png" showCaption="false"}
:::
::::

## Sine Configuration

### General Setup

::::WorkflowBlock
:::WorkflowBlockItem
**Admin permissions** — Ensure you have `Team` or `Site Admin` permissions. These permissions are required to configure integrations.
:::

:::WorkflowBlockItem
**Log in** — Log in to the Sine admin dashboard at [https://dashboard.sine.co](https://dashboard.sine.co).
:::

:::WorkflowBlockItem
**Select site** — Navigate to the `Locations` tab and click on the site you want to configure the integration for.
:::

:::WorkflowBlockItem
**Add integration** — In the Site menu, click `Integrations`. Click `Add integration` and select `Integriti Inner Range` from the list of available integrations. If the integration does not appear in the list, contact support.
:::

:::WorkflowBlockItem
**Name integration** — Enter a name for the integration. You can use any name, but choose something that helps you identify the integration's purpose.
:::
::::

### Connect to Integriti Inner Range

### Connection Method

There are two ways to establish network connectivity to your on-premise Integriti Inner Range instance.

Select your preferred method below.

::::::Tabs
:::::Tab{title="Sine Secure Bridge"}
Sine Secure Bridge enables a secure, managed tunnel between Sine Cloud and your on-premise system's API.

::::WorkflowBlock
:::WorkflowBlockItem
**Enable Secure Bridge** — Switch `Use Sine Secure Bridge` on to display a dropdown list of your Secure Bridge tunnels. If you do not see the `Sine Secure Bridge` toggle, contact your Sine representative.
:::

:::WorkflowBlockItem
**Documentation** — For more information on installing and configuring a Sine Secure Bridge tunnel, visit the Secure Bridge Documentation.
:::
::::
:::::

:::::Tab{title="Direct network connection"}
Direct connection from Sine Cloud to your on-premise system's API.

- **Endpoint URLs**: Sine calls the Integriti Inner Range data adaptor at four separate endpoints, one per operation. Enter all four endpoints. The adaptor's host, port, and routes are set when it is installed, so confirm them with whoever installed it if you are unsure.

::::WorkflowBlock
:::WorkflowBlockItem
**Verification endpoint** — Enter the verification endpoint, for example `https://your-integriti-inner-range-server.com/verify`. Sine calls this endpoint to confirm the data adaptor is reachable and the credentials are valid when you test the connection.
:::

:::WorkflowBlockItem
**Provision endpoint** — Enter the provision endpoint, for example `https://your-integriti-inner-range-server.com/provision`. Sine calls this endpoint to create the visitor's credential in Integriti Inner Range.
:::

:::WorkflowBlockItem
**Activation endpoint** — Enter the activation endpoint, for example `https://your-integriti-inner-range-server.com/activate`. Sine calls this endpoint to activate a provisioned credential so it can be used at readers.
:::

:::WorkflowBlockItem
**Deprovision endpoint** — Enter the deprovision endpoint, for example `https://your-integriti-inner-range-server.com/deprovision`. Sine calls this endpoint to revoke the visitor's credential when they check out, or when their pass expires or is rejected.
:::

:::WorkflowBlockItem
**Ignore SSL Certificate Check** — Turn this setting `ON` if you are using a self-signed certificate, since the Integriti Inner Range integration will not be able to validate the certificate.
:::
::::
:::::
::::::

### Authentication

::::WorkflowBlock
:::WorkflowBlockItem
**API Key** — Enter your Integriti Inner Range `API Key` and your `External ID`. The `External ID` can be any value.
:::

:::WorkflowBlockItem
**Test Connection** — Click `Test connection` to confirm that your configuration is correct. Once you have successfully verified that Sine can connect to your Integriti Inner Range account, the Integration Settings section becomes available.
:::
::::

### Integration Settings

### Credential Configuration

Controls the type of access control credential generated when the integration runs.

Select your preferred credential type below.

::::::Tabs
:::::Tab{title="Sine QR Code"}
Generates and attaches a QR code to a visitor's pass. The integration runs when a pass is created or expired, or when the visitor checks out.

::::WorkflowBlock
:::WorkflowBlockItem
**Badge Style** — Select the style of printed badge to be used when this integration is triggered. Some access control readers require a specially formatted `Access` badge style rather than the default name badge style.
:::

:::WorkflowBlockItem
**Send QR Code by SMS** — If the visitor's mobile number is available, send them a QR code credential by SMS. This can serve as a useful backup to a badge printer.
:::

:::WorkflowBlockItem
**Provision credential on check-in** — Select one or more visitor types for which you want the integration to provision credentials in your access control system when they check in using Sine. Make sure the `Host Selection Required` checkbox is ticked for any visitor types used in access control integrations. Without this setting, visitors would be provided with access credentials without requiring host approval. You can review which of your visitor types have `Host Approval Required` enabled in the `General` tab of your site settings.
:::

:::WorkflowBlockItem
**Grace Period** — A visitor may check out in Sine before physically leaving the location, and may still need to use their credentials to exit. Set a grace period to ensure their access control credentials are not deprovisioned immediately after being checked out in Sine.
:::
::::
:::::
::::::

### Messages

- **Visitor failure message** — Enter the message to be displayed to the visitor if the access control integration fails for any reason.

### Notifications

- **Send integration failure notifications** — Enter one or more email addresses to be notified if the integration fails, along with the corresponding failure details.

# Testing

::::WorkflowBlock
:::WorkflowBlockItem
**Create a test check-in** — Create a test visitor check-in using a visitor type configured for the integration.
:::

:::WorkflowBlockItem
**Verify credential provisioning** — Verify that the visitor profile is created in the vendor system and that credentials are provisioned correctly.
:::

:::WorkflowBlockItem
**Test credential access** — Test the credential at a compatible reader to ensure access is granted.
:::

:::WorkflowBlockItem
**Verify credential revocation** — Check out the test visitor and verify that access credentials are revoked after the configured grace period.
:::

:::WorkflowBlockItem
**Check failure notifications** — Monitor the integration failure notifications to ensure they are working correctly.
:::
::::

***

*Need help? Contact Sine Support at* **[support@sine.co](mailto\:support@sine.co)**
