Skip to main content

Pan-African Pack

Overview

PanAfricanFintechCompliance is the broadest available pack, enforcing all 18 comply54 policy packs simultaneously. It is designed for AI platforms deployed across multiple African jurisdictions — a single evaluation returns a decision for every applicable regulation.

from comply54 import PanAfricanFintechCompliance

compliance = PanAfricanFintechCompliance()
result = compliance.check(
action="transfer_funds",
params={"amount": 15_000_000, "currency": "NGN"},
)
print(result.blocked) # True
print(len(result.decisions)) # 18

Included packs

Nigerian frameworks

PackRegulation
nigeria/ndpaNDPA 2023
nigeria/cbnCBN Transaction Controls
nigeria/bvn-ninBVN/NIN Framework
nigeria/nfiu-amlNFIU/MLPPA 2022

East African frameworks

PackRegulation
kenya/kdpaKenya Data Protection Act 2019
ethiopia/pdpEthiopia PDP Proclamation 1321/2024
mauritius/dpaMauritius Data Protection Act 2017
rwanda/dpaRwanda Law No. 058/2021
tanzania/pdpaTanzania PDPA 2022
uganda/dppaUganda DPPA 2019

Southern & West African frameworks

PackRegulation
south-africa/popiaPOPIA
ghana/dpaGhana Data Protection Act 2012
egypt/pdplEgypt PDPL No. 151/2020

Universal agent safety

PackStandard
universal/pii-leakageOWASP LLM01
universal/prompt-injectionOWASP LLM01
universal/tool-permissionsOWASP LLM08
universal/human-approvalOWASP LLM08
universal/model-routingOWASP LLM09

When to use this pack

Use PanAfricanFintechCompliance when:

  • Your AI agent serves users across multiple African countries
  • You don't know the user's jurisdiction at evaluation time
  • You want to guarantee compliance before building jurisdiction-specific routing

For single-jurisdiction deployments, prefer the more focused packs (NigeriaFintechCompliance, KenyaFintechCompliance) — evaluation is faster and messages are more targeted.

Usage

from comply54 import PanAfricanFintechCompliance

compliance = PanAfricanFintechCompliance()

result = compliance.check(
action="export_data",
params={
"destination_country": "EU",
"data_type": "customer_pii",
"record_count": 5000,
},
context={"consent_documented": True},
)

# Summarise by jurisdiction
for decision in result.decisions:
if decision.action != "allow":
print(f"[{decision.jurisdiction}] {decision.regulation}: {decision.action}")
for msg in decision.messages:
print(f" {msg}")

Checking covered jurisdictions

compliance = PanAfricanFintechCompliance()
print(compliance.jurisdictions)
# ['NG', 'KE', 'ZA', 'GH', 'RW', 'EG', 'ET', 'MU', 'TZ', 'UG']

Performance note

The pan-African pack evaluates 18 packs per call. comply54 uses interpreter caching — the first call initialises modules once, subsequent calls reuse the cached interpreter. Typical latency: 2–5ms for the first call in a process, 0.5–1ms for subsequent calls.