Dike logoDocs

Regional FinTech unicorns and digital banking platforms operating across Saudi Arabia, the UAE, and Egypt face continuous regulatory evolution from central banks and financial authorities.


The Business Challenge

Authorities such as the Saudi Central Bank (SAMA), the Central Bank of the UAE (CBUAE), and Egypt's Financial Regulatory Authority (FRA) regularly issue circulars covering:

  • Buy-Now-Pay-Later (BNPL) credit assessment ceilings.
  • Cross-border data residency and cloud processing mandates under the Saudi Personal Data Protection Law (PDPL) and Egyptian Law 151/2020.
  • AML / KYC verification thresholds for digital wallets.

Historically, compliance teams manually reviewed official gazette releases and regulator portals, creating a 2-to-3 week lag before internal operating policies were updated.


Agent Architecture

The FinTech deployed an autonomous, event-driven watchdog service. Running on a scheduled cron, the agent queries Dike's graph endpoints to detect incoming amends or repeals edges on tracked financial statutes, summarizes the legal delta, and dispatches automated policy updates.

Rendering diagram...

Production Implementation (Python Service)

import os
import httpx
from datetime import datetime

DIKE_API_KEY = os.environ["DIKE_API_KEY"]
SLACK_WEBHOOK_URL = os.environ["SLACK_WEBHOOK_URL"]

# Tracked core banking frameworks across MENA
TRACKED_CANONICAL_IDS = [
    "sa-leg-sama-bnpl-2023",
    "sa-leg-pdpl-2021-m19",
    "eg-leg-fra-2022-58",
    "ae-leg-cbuae-retail-2021",
]

def check_regulatory_amendments(canonical_id: str) -> list:
    """Detect new amending or repealing decrees connected to a tracked law."""
    with httpx.Client(base_url="https://api.dike.it.com") as client:
        res = client.post(
            "/v1/graph/traverse",
            headers={"Authorization": f"Bearer {DIKE_API_KEY}"},
            json={
                "canonical_id": canonical_id,
                "direction": "in",
                "edge_types": ["amends", "repeals"],
                "depth": 1,
            },
            timeout=15.0,
        )
        data = res.json()
        return data.get("edges", [])

def generate_compliance_brief(new_decree_id: str, original_law: str) -> dict:
    """Synthesize precise compliance delta between the original statute and new circular."""
    prompt = f"قارن بين أحكام السند القانوني {new_decree_id} والقانون الأساسي {original_law}، واستخرج التزامات الامتثال الجديدة لشركات التقنية المالية."
    
    with httpx.Client(base_url="https://api.dike.it.com") as client:
        res = client.post(
            "/v1/reason",
            headers={"Authorization": f"Bearer {DIKE_API_KEY}"},
            json={"question": prompt},
            timeout=30.0,
        )
        return res.json()

def run_watchdog_cycle():
    for law_id in TRACKED_CANONICAL_IDS:
        edges = check_regulatory_amendments(law_id)
        if edges:
            for edge in edges:
                brief = generate_compliance_brief(edge["source"], law_id)
                # Dispatch notification to Slack and Jira
                httpx.post(SLACK_WEBHOOK_URL, json={
                    "text": f"[REGULATORY ALERT] New amendment detected for `{law_id}`\n"
                            f"Source: `{edge['source']}`\n"
                            f"Obligations: {brief['answer']}"
                })

Business Results & ROI

MetricManual Gazette ReviewDike Watchdog AgentImpact
Regulatory Update Latency15 - 21 daysUnder 4 hours98% latency drop
Weekly Compliance Hours18 hours / week1.5 hours / week90% time savings
Audit Compliance TrailDispersed email threadsStructured graph logs100% auditable history

Next Steps

On this page