TELS Compliance Service - API Documentation

🏠 Home tels-compliance / docs

TELS Compliance Service - API Documentation

Overview

Authentication

JWT Bearer

Authorization: Bearer <access_token>

Authorization Levels


Articles Controller

Route Prefix: /compliance/v1/articles

Method Path Auth Description
PUT /articles Authorize + BU access Submit article (create workflow)
GET /articles/{articleId} Authorize + BU access Get article by ID
GET /articles Non-Resident Search articles (paginated)
POST /articles/{articleId}/commands/evaluateRules DSP only Evaluate rules for article
POST /articles/{articleId}/commands/evaluateTemplate DSP only Evaluate step template
POST /articles/{articleId}/commands/finishStep Authorize Finish approval step
POST /articles/{articleId}/commands/retire DSP only Retire article
POST /articles/{articleId}/commands/notify DSP only Send notification

PUT /articles

Submit an article to initiate an approval workflow.

Request Body:

{
  "objectTypeId": 1,
  "client": { "domain": "TELS", "type": "Customers:ChainID", "identifier": "100" },
  "location": { "domain": "TELS", "type": "Customers:FacilityId", "identifier": "200" },
  "requester": { "domain": "TELS", "type": "Customers:PersonId", "identifier": "300" },
  "attributeDictionary": { "PriorityId": 1, "CustomerSell": 5000.00 },
  "externalReferences": [
    { "domain": "TELS", "type": "workitems:authorizationnumber", "identifier": "12345" }
  ]
}

Response (200 OK): GenericActionResponse with article ID

Processing: 1. Validates business unit access 2. Creates article with JSONB attributes 3. Evaluates rules to find matching step template 4. Creates approval steps from template 5. Publishes IArticleCreatedV1 event

GET /articles

Search articles with filtering and pagination.

Query Parameters: - references (string, optional) — External reference filter - client (string, optional) — Client composite identifier - location (string, optional) — Location composite identifier - requester (string, optional) — Requester composite identifier - articleStatusId (int, optional) — Status filter - objectTypeId (int, optional) — Object type filter - stepPendingApprovalRole (int, optional) — Pending step role filter - pageKey (string, optional) — Pagination cursor

Response (200 OK): ArticleSearchResponse

POST /articles/{articleId}/commands/finishStep

Complete an approval step (authorize, deny, etc.).

Request Body:

{
  "stepId": 5,
  "stepStatusId": 2,
  "note": "Approved per policy",
  "verbalAdminId": null,
  "verbalAdminName": null
}

Roles Controller

Route Prefix: /compliance/v1/roles

Method Path Auth Description
GET /roles AdminOrMatch Search roles (paginated)
GET /roles/{roleId} DsPartnerOrCorpAdmin Get role by ID
POST /roles DsPartnerOrCorpAdmin Create role
PATCH /roles/{roleId} DsPartnerOrCorpAdmin Update role
DELETE /roles/{roleId} DsPartnerOrCorpAdmin Delete role
POST /roles/{roleId}/commands/addAssignment ValidateCanModify Add person to role
POST /roles/{roleId}/commands/removeAssignment ValidateCanModify Remove person from role
POST /roles/{roleId}/queries/persons BU access Get role persons at location
POST /roles/{roleId}/queries/locationCoverage BU access Get location coverage

Rules Controller

Route Prefix: /compliance/v1/rules

Method Path Auth Description
PUT /rules DSP only Create rule
DELETE /rules/{ruleId} DSP only Delete rule
GET /rules DSP only Search rules (paginated)
POST /rules/commands/estimateSteps BU access Estimate steps for attributes

POST /rules/commands/estimateSteps

Preview what approval steps would be created for given attributes without submitting an article.

Request Body:

{
  "objectTypeId": 1,
  "client": { "domain": "TELS", "type": "Customers:ChainID", "identifier": "100" },
  "attributeDictionary": { "PriorityId": 1, "CustomerSell": 5000.00 }
}

Response (200 OK): EstimatedStep[]


Clients Controller

Route Prefix: /compliance/v1/clients

Method Path Auth Description
GET /clients DSP only Get all clients
GET /clients/{location} DSP or Customer Get client object types for location

Notifications Controller

Route Prefix: /compliance/v1/notifications

Method Path Auth Description
POST /notifications/commands/setPersonConfiguration Self or Admin Set notification preferences
GET /notifications DSP or Self Get notification configurations

Approval Object Types Controller

Route Prefix: /compliance/v1

Method Path Auth Description
GET /attributeTypes DSP only Get attribute types (Int, String, Decimal)
GET /objectTypes DSP only Get object types
GET /evaluationTypes DSP only Get evaluation types (equals, gt, lt)
GET /objectTypes/{id}/actions Non-Resident Get actions for object type

Diagnostics Controller

Route Prefix: /compliance/v1/diagnostic

Method Path Auth Description
GET /ping None Health check
GET /pingJwt Authorize JWT health check
GET /flushCache DSP only Flush in-memory cache
GET /unhandledException DSP only Error test
GET /cleanClient DSP + Feature flag Clean client data
GET /trappedEmails DSP + Feature flag View trapped emails
GET /startTrappingEmails DSP + Feature flag Start email trapping
GET /stopTrappingEmails DSP + Feature flag Stop email trapping

Global Response Codes

Code Meaning
200 Success
400 Bad Request — validation error
401 Unauthorized — invalid or missing JWT
403 Forbidden — insufficient persona or access
404 Not Found

Notes