For the complete documentation index, see llms.txt. This page is also available as Markdown.

Proximity Access

Proximity-based access control for courts and facilities.

Authenticate with proximity access hardware (NFC, Bluetooth, etc.)

post

Provides credentials for proximity-based access to doors/locks using various hardware providers. Currently supports Kisi provider. Other providers return "not supported yet" error.

  Returns authentication secrets for offline-capable door access.
  
  Uses camelCase properties following API standards.
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
providerstring · enumRequired

The proximity access provider to use for authentication.

Example: KISIPossible values:
deviceBrandstringRequired

Device brand (e.g., Apple, Samsung)

Example: Apple
deviceModelstringRequired

Device model (e.g., iPhone 15, Galaxy S24)

Example: iPhone 15
osNamestringRequired

Operating system name (e.g., iOS, Android)

Example: iOS
Responses
200

Returns proximity access credentials for the specified provider

application/json
idnumberRequired

The login session ID from Kisi

Example: 118161420
secretstringRequired

The authentication token used for this login

Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
post/proximity-access/login
POST /apis/v2/proximity-access/login HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 82

{
  "provider": "KISI",
  "deviceBrand": "Apple",
  "deviceModel": "iPhone 15",
  "osName": "iOS"
}
{
  "id": 118161420,
  "secret": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "scramCredentials": {
    "phoneKey": "4d37cc2a36c4cf9d4b429334d07b575e",
    "onlineCertificate": "80058d94b8070b000c0585dd658a8cc47c43e8aad2a7790ca2eb30ef12888f82241a5c3045d5df247e"
  }
}

Execute proximity sync for user by email

post

Executes the proximity sync for a specific user by email which: 1. Finds the user by email 2. Gets areas from user's membership subscription 3. Calculates sync operations (add/remove access) 4. Creates operations and processes them (ORDER mode) OR returns preview of operations (PREVIEW mode)

  Can be run in PREVIEW mode to see what would be processed,
  or ORDER mode to actually perform the operations.
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
typestring · enumRequired

The job type

Example: PREVIEWPossible values:
emailstringRequired

User email to sync

Example: user@example.com
Responses
200

Job execution completed. Returns ProximitySyncUserJobResultDto with operation summary for both PREVIEW and ORDER modes.

application/json
typestringRequired

The job type

Example: PREVIEW
emailstringRequired

User email that was processed

Example: user@example.com
totalOperationsnumberRequired

Total number of operations that would be created

Example: 3
addOperationsnumberRequired

Number of ADD operations

Example: 2
removeOperationsnumberRequired

Number of REMOVE operations

Example: 1
executionTimeMsnumberRequired

Job execution time in milliseconds

Example: 1500
post/proximity-access/sync/email
POST /apis/v2/proximity-access/sync/email HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 45

{
  "type": "PREVIEW",
  "email": "user@example.com"
}
{
  "type": "PREVIEW",
  "email": "user@example.com",
  "totalOperations": 3,
  "addOperations": 2,
  "removeOperations": 1,
  "operations": [
    {
      "operation": "user@example.com add area-123",
      "action": "add",
      "area": {
        "id": "123e4567-e89b-12d3-a456-426614174001"
      }
    }
  ],
  "executionTimeMs": 1500
}
post
Responses
201Success

No content

post/proximity-access/jobs/process-expired
POST /apis/v2/proximity-access/jobs/process-expired HTTP/1.1
Accept: */*
201Success

No content

Last updated

Was this helpful?