Technology

Built like infrastructure.

A multi-tenant platform for regulated finance — .NET 9 and Angular 18, isolated per tenant, configurable per team, auditable to the event.

Multi-Tenant, Multi-Region

Each tenant runs in its own database, pinned to a data-residency region and resolved per request from the JWT — with a control plane to provision and migrate them.

Configurable Decision Pipeline

An ordered set of compliance checks runs per tenant. A failing check never aborts the run, and the engine only ever clears or holds — humans make the reject.

Identity-Graph Fraud Engine

A per-tenant identity graph links applications by hashed attributes and scores duplicate identities, shared devices and rings on a 0–1000 scale.

Enterprise Auth & RBAC

JWT bearer auth with mandatory TOTP MFA, refresh tokens, single active session and both static and dynamic role-based permissions.

API-First & Webhooks

REST onboarding and schema-driven ingestion APIs, HMAC-verified inbound webhooks, outbound decision webhooks, and a React Native / Expo mobile SDK.

Explainable by Design

Deterministic scorecards and a recorded per-check breakdown mean every decision shows exactly which checks fired — with an immutable audit trail.

Architecture

From ingest to reviewed decision.

LAYER 01

Ingest

LAYER 02

Validate

LAYER 03

Evaluate

LAYER 04

Decide

LAYER 05

Notify

REST · magic link · mobile SDK
Data-point rules · tenant schema
Ordered check pipeline
CLEAR / HOLD → review queue
Webhooks · CRM push · audit log

Backend

.NET 9 · ASP.NET Core · EF Core · CQRS

Frontend

Angular 18 · Material · NgRx

Data

SQL Server / Azure SQL · per-tenant

Delivery

Docker · Nginx · region zones

Encryption at rest TOTP MFA + RBAC Data-residency regions Rate limiting + audit log
API-First

Onboard by API, deliver by webhook.

Register a customer, get a magic link back, and receive a webhook the moment a decision lands — authenticated with a tenant-scoped JWT.

thynqora.app / integrations / api LIVE

# Register a customer & start onboarding

POST /api/v1/external/onboarding/register

Authorization: Bearer •••

{
  "email": "ada@meridian.io",
  "journey": "kyc-retail"
}

201 Created

{
  "customerId": "cus_8f21",
  "magicLink": "https://onboard.thynqora.app/j/•••",
  "status": "started"
}

# Webhook fired on decision

→ POST https://you.example/webhooks 200

{ "event": "customer.approved", "customerId": "cus_8f21" }