Compliance Monitoring API (CMaaS)
Base URL: https://api.techcompass.com.au. Register entity watchlists once; receive webhook alerts whenever a monitored entity changes across ASIC, ABR, OFAC, FSANZ and more.
How It Works
Compliance Monitoring as a Service (CMaaS) is an automated compliance monitoring tool that runs on top of all Tech Compass data pipelines. As a continuous watchlist monitoring service, it removes the need to poll individual APIs for changes: register entities once and receive webhook alerts whenever a monitored entity changes across sanctions, company registry, and food recall data.
The CMaaS detection job polls each data source on its own schedule (ASIC daily, ABR hourly, OFAC daily, FSANZ every 2 hours) and compares each entity's current state against the last snapshot. On any change, it writes an alert and fires a signed webhook to your configured endpoint.
Data flow
1. POST /v1/monitoring/watchlists — create a named watchlist
2. POST .../watchlists/{id}/items — add entities to monitor
3. PUT .../watchlists/{id}/webhook — configure your alert endpoint
4. [Tech Compass runs change detection]
5. GET /v1/monitoring/alerts — poll for alerts, or receive webhook POSTs
Authentication
All endpoints require a Professional tier API key in the Authorization header:
Authorization: ApiKey tc_live_<your_key>
Entity limits
| Tier | Entities included | Additional entities |
|---|---|---|
| Professional base | 100 | 500 per additional block — see pricing |
| Enterprise | Unlimited | Contact sales |
{"error": "Watchlist entity limit reached", "limit": 100, "current_count": 100, "upgrade_url": "/billing/upgrade-to-professional-plus"}. To purchase additional entity blocks, call POST /billing/add-on/p8_cmaas/entities?blocks=N.
Key Concepts
Watchlists
A watchlist is a named group of entities. You can create multiple watchlists to organise monitoring by customer segment, product, or team. Each watchlist has its own webhook configuration.
Items
Each item in a watchlist is a single entity identified by an identifier_type and identifier_value (e.g. abn + 51 824 753 556). Items specify which products_monitored apply — you can monitor the same ABN for ASIC status changes, ABR status changes, and FSANZ recalls independently.
Snapshots
When the detection job first encounters an item, it captures a snapshot of the current state. On each subsequent run it compares the new state against the snapshot. Only actual changes trigger alerts — polling noise from unchanged data generates no alerts.
Alerts
An alert is created when a monitored entity's state changes. Each alert has a severity (high, medium, low), a product_event_type (e.g. asic_status), and a changed_fields list describing what changed. Alerts remain until acknowledged.
Event Types
| Event type | Data source | Detection frequency |
|---|---|---|
asic_status | ASIC Company Register | Daily |
abr_status | ABR (Australian Business Register) | Hourly |
ofac_sdn | US Treasury OFAC SDN List | Daily |
fsanz_recall | FSANZ Food Recalls | Every 2 hours |
tga_artg_status | TGA ARTG Register | Coming soon |
tga_safety_alert | TGA Safety Alerts | Coming soon |
Identifier Types
| Identifier type | Example | Data region |
|---|---|---|
abn | 51 824 753 556 | australia-southeast1 |
acn | 123 456 789 | australia-southeast1 |
fsanz_recall_id | FSANZ-2024-0012 | australia-southeast1 |
tga_artg_number | 123456 | australia-southeast1 |
ein | 12-3456789 | us-central1 |
lei | HWUPKR0MPOU8FGXBT394 | us-central1 |
The data_region is set automatically based on the identifier type and determines which regional database stores snapshots and alerts for that item.
Watchlist Endpoints
POST /v1/monitoring/watchlists
Create a named watchlist.
| Field | Type | Required | Description |
|---|---|---|---|
name | string | No | Human-readable name for this watchlist |
curl -X POST "https://api.techcompass.com.au/v1/monitoring/watchlists" \
-H "Authorization: ApiKey tc_live_<your_key>" \
-H "Content-Type: application/json" \
-d '{"name": "Onboarded customers"}'
{
"watchlist_id": "a1b2c3d4-...",
"name": "Onboarded customers",
"created_at": "2026-07-07T10:00:00Z",
"is_active": true,
"data_lineage": { ... }
}
GET /v1/monitoring/watchlists
List all watchlists for your API key.
curl "https://api.techcompass.com.au/v1/monitoring/watchlists" \
-H "Authorization: ApiKey tc_live_<your_key>"
POST /v1/monitoring/watchlists/{watchlist_id}/items
Add an entity to a watchlist. Returns 403 if your entity limit would be exceeded.
| Field | Type | Required | Description |
|---|---|---|---|
identifier_type | string | Yes | One of: abn, acn, ein, lei, fsanz_recall_id, tga_artg_number |
entity_identifier | string | Yes | The entity identifier value |
products_monitored | array | Yes | List of event types to monitor. See Event Types table. |
curl -X POST "https://api.techcompass.com.au/v1/monitoring/watchlists/a1b2c3d4-.../items" \
-H "Authorization: ApiKey tc_live_<your_key>" \
-H "Content-Type: application/json" \
-d '{
"identifier_type": "abn",
"entity_identifier": "51824753556",
"products_monitored": ["asic_status", "abr_status"]
}'
products_monitored must only include event types compatible with the identifier type — e.g. ofac_sdn requires ein or lei, not abn. Incompatible combinations return HTTP 422.
GET /v1/monitoring/watchlists/{watchlist_id}/items
List all items in a watchlist (active items only — soft-deleted items are excluded).
curl "https://api.techcompass.com.au/v1/monitoring/watchlists/a1b2c3d4-.../items" \
-H "Authorization: ApiKey tc_live_<your_key>"
DELETE /v1/monitoring/watchlists/{watchlist_id}/items/{item_id}
Soft-delete a watchlist item. The item is deactivated and excluded from future detection runs. Historical alerts are preserved.
curl -X DELETE "https://api.techcompass.com.au/v1/monitoring/watchlists/a1b2c3.../items/d4e5f6..." \
-H "Authorization: ApiKey tc_live_<your_key>"
PUT /v1/monitoring/watchlists/{watchlist_id}/webhook
Configure or update the webhook endpoint for a watchlist. Upserts on each call.
| Field | Type | Required | Description |
|---|---|---|---|
webhook_url | string | Yes | HTTPS URL to receive alert POSTs |
webhook_secret | string | No | If set, payload is signed with HMAC-SHA256 sent in X-TC-Signature: sha256=<hex> |
email_fallback | string | No | Email address for alert delivery if webhook fails 3 times |
muted_fields | array | No | Field names to exclude from change detection (e.g. ["last_updated"]) |
min_severity | string | No | Minimum severity to trigger webhook: low (default), medium, or high |
curl -X PUT "https://api.techcompass.com.au/v1/monitoring/watchlists/a1b2c3.../webhook" \
-H "Authorization: ApiKey tc_live_<your_key>" \
-H "Content-Type: application/json" \
-d '{
"webhook_url": "https://your-app.com/webhooks/tc-alerts",
"webhook_secret": "your_signing_secret",
"min_severity": "medium"
}'
alert_id, watchlist_id, item_id, product_event_type, severity, changed_fields, and detected_at. Verify the X-TC-Signature header against your secret to authenticate delivery.
Alert Endpoints
GET /v1/monitoring/alerts
List alerts for your account, newest first. Supports filtering and pagination.
| Parameter | Type | Description |
|---|---|---|
item_id | UUID | Filter to alerts for a specific watchlist item |
product_event_type | string | Filter by event type (e.g. asic_status) |
severity | string | Filter: high, medium, or low |
from_date | ISO 8601 | Alerts detected on or after this date |
to_date | ISO 8601 | Alerts detected on or before this date |
limit | int | Max results to return (1–200, default 50) |
offset | int | Pagination offset (default 0) |
curl "https://api.techcompass.com.au/v1/monitoring/alerts?severity=high&limit=20" \
-H "Authorization: ApiKey tc_live_<your_key>"
{
"alerts": [
{
"alert_id": "f1e2d3c4-...",
"item_id": "b2c3d4e5-...",
"product_event_type": "asic_status",
"alert_severity": "high",
"changed_fields": {
"asic_status": { "from": "REGD", "to": "EXAD" }
},
"generated_at": "2026-07-07T06:00:00Z",
"acknowledged_at": null,
"webhook_delivered_at": null
}
],
"total": 1,
"limit": 20,
"offset": 0,
"data_lineage": { ... }
}
GET /v1/monitoring/alerts/{alert_id}
Retrieve full detail for a single alert including the complete previous and current state snapshots.
curl "https://api.techcompass.com.au/v1/monitoring/alerts/f1e2d3c4-..." \
-H "Authorization: ApiKey tc_live_<your_key>"
Errors: 404 if alert_id not found or belongs to another account.
POST /v1/monitoring/alerts/{alert_id}/acknowledge
Mark an alert as acknowledged. Sets acknowledged_at to UTC now. Idempotent — acknowledging an already-acknowledged alert is a no-op.
curl -X POST "https://api.techcompass.com.au/v1/monitoring/alerts/f1e2d3c4-.../acknowledge" \
-H "Authorization: ApiKey tc_live_<your_key>"
Error Reference
| Status | Code | Meaning |
|---|---|---|
| 401 | — | Missing or invalid API key |
| 403 | — | CMaaS requires a Professional tier key (plain string detail) |
| 403 | Watchlist entity limit reached | Adding item would exceed your entity limit; includes limit, current_count, upgrade_url |
| 404 | — | Watchlist, item, or alert not found |
| 422 | — | Invalid parameters (e.g. unknown event type, incompatible identifier/event combination) |
| 429 | — | Monthly API call quota exhausted |
Common Use Cases
1. Monitor onboarded customers for ASIC/ABR status changes
Who uses this: Lenders, insurers, and professional services firms with ongoing KYC obligations.
# Add customer to watchlist
curl -X POST ".../v1/monitoring/watchlists/{id}/items" \
-H "Authorization: ApiKey YOUR_KEY" \
-d '{
"identifier_type": "abn",
"identifier_value": "51 824 753 556",
"products_monitored": ["asic_status", "abr_status"],
"label": "Acme Pty Ltd — Customer ID 4421"
}'
high severity alert. ABR cancellation triggers medium.2. OFAC watchlist monitoring for US counterparties
Who uses this: US financial institutions and multinationals with ongoing sanctions compliance obligations.
curl -X POST ".../v1/monitoring/watchlists/{id}/items" \
-H "Authorization: ApiKey YOUR_KEY" \
-d '{
"identifier_type": "ein",
"identifier_value": "12-3456789",
"products_monitored": ["ofac_sdn"],
"label": "Counterparty Corp"
}'
high severity.3. Food supplier recall alerts
Who uses this: Supermarket chains, food distributors, and insurers with AU food supply chain exposure.
curl -X POST ".../v1/monitoring/watchlists/{id}/items" \
-H "Authorization: ApiKey YOUR_KEY" \
-d '{
"identifier_type": "abn",
"identifier_value": "88 123 456 789",
"products_monitored": ["fsanz_recall"],
"label": "Supplier: Fresh Foods Pty Ltd"
}'
recall_id, hazard_type, and distribution_states.About this API
What this API does
The Tech Compass Compliance Monitoring API (CMaaS) provides automated entity watchlists with webhook-based change alerts across ASIC, ABR, OFAC, FSANZ and more. Register entities once; receive signed webhook POSTs whenever their regulatory status changes — ASIC deregistrations, ABR cancellations, OFAC SDN additions, or FSANZ recalls. Purpose-built for regulated enterprises with ongoing KYC, AML, and supply chain compliance obligations.
Who uses this API
- Banks and lenders monitoring customer entities for ongoing KYC/AML obligations
- Insurers tracking policyholder entity status changes that affect risk
- Professional services firms (accounting, legal) monitoring client entity health
- US financial institutions maintaining ongoing OFAC SDN watchlists
- Food distributors and supermarket chains tracking supplier recall exposure
- RegTech platforms embedding CMaaS into compliance workflow products
Applicable compliance frameworks
- APRA CPS 234 — third-party and counterparty monitoring requirements
- AML/CTF Act (Australia) — ongoing customer due diligence obligations
- OFAC requirements — ongoing sanctions screening for US-nexus entities
- AUSTRAC — know-your-customer and transaction monitoring
- Basel III — counterparty credit risk monitoring
Related APIs
- AU Entity Intelligence API — direct ASIC and ABR lookups
- OFAC Sanctions Screening API — individual screen calls with audit trail
- Multi-Jurisdiction Sanctions API — screen across OFAC, UN, EU, DFAT, FCDO
- AU Food Recalls API — direct FSANZ recall lookup