Skip to main content

NFIU / MLPPA 2022

Overview

FieldValue
Pack IDnigeria/nfiu-aml
Full titleNFIU Anti-Money Laundering / Money Laundering (Prevention and Prohibition) Act 2022
RegulatorNigeria Financial Intelligence Unit (NFIU)
JurisdictionNigeria (NG)

What comply54 enforces

Currency Transaction Reports (CTR)

All cash and electronic transactions of ₦5,000,000 and above must be reported to the NFIU within 24 hours via a Currency Transaction Report.

comply54 returns escalate for these transactions — the transaction is not blocked, but the CTR filing is mandatory:

result = compliance.check(
action="transfer_funds",
params={"amount": 5_000_000, "currency": "NGN"},
)
# decision: escalate
# "NFIU/MLPPA 2022: Transaction ≥ ₦5,000,000 — CTR required within 24 hours"

Suspicious Transaction Reports (STR)

Patterns flagged as suspicious trigger an STR requirement:

PatternAction
Multiple transfers just below ₦5M threshold (structuring)escalate
Transfer to/from sanctioned countrydeny
Velocity: >3 transfers in 1 hourescalate
PEP-related transactionescalate
result = compliance.check(
action="transfer_funds",
params={"amount": 4_900_000, "currency": "NGN"},
context={"structuring_detected": True},
)
# decision: escalate — "STR pattern detected: possible structuring below CTR threshold"

Sanctions screening (MLPPA 2022 s.6)

MLPPA 2022 s.6 requires every payment to be screened against sanctions lists before execution. comply54 enforces this as a fail-closed rule: any transfer without context.sanctions_screened == true is blocked immediately, regardless of amount.

# ❌ Transfer without confirmed screening — denied even at ₦1K
result = compliance.check(
action="transfer_funds",
params={"amount": 8_000_000, "currency": "NGN"},
context={"sanctions_screened": False},
)
# decision: deny
# → NFIU / MLPPA 2022 s.6: Sanctions screening not confirmed — payment blocked.
# Counterparty must be screened against OFAC SDN, UN Security Council
# Consolidated List, and NFIU Designated Persons List before execution.

# ✅ Screening confirmed — sanctions rule passes; CTR escalate fires for ₦8M
result = compliance.check(
action="transfer_funds",
params={"amount": 8_000_000, "currency": "NGN"},
context={"sanctions_screened": True},
)
# decision: escalate (CTR threshold at ₦5M)

This is an explicit MLPPA s.6 requirement: the institution must document that screening was performed. Absence of the flag is treated as absent screening — not as "no result." This is the correct fail-closed interpretation; returning "not-applicable" when sanctions_screened is absent would silently bypass a mandatory control.

Affected actions: transfer_funds, send_money, wire_transfer, nip_transfer, instant_payment, disburse_funds, process_corporate_payment, initiate_wire_transfer, send_international_payment.

Input fields used

FieldPathDescription
Actioninput.actionAny of the transfer actions above
Amountinput.params.amountNumeric (NGN)
Currencyinput.params.currencyISO 4217
Sanctions screenedinput.context.sanctions_screenedBoolean — must be true or transfer is denied
Structuring flaginput.context.structuring_detectedBoolean
PEP flaginput.context.pep_flagBoolean

Messages returned

NFIU/MLPPA 2022: Transaction ≥ ₦5,000,000 — Currency Transaction Report (CTR) required within 24 hours
NFIU/MLPPA 2022: STR pattern detected — possible structuring to evade CTR threshold
NFIU/MLPPA 2022: Transfer to sanctioned jurisdiction (IR) — blocked per UN/OFAC sanctions

Handling escalations in your agent

result = compliance.check(
action="transfer_funds",
params={"amount": 8_000_000, "currency": "NGN"},
)

if result.overall == "escalate":
nfiu = next(
(d for d in result.decisions if d.pack == "nigeria/nfiu-aml"),
None,
)
if nfiu and nfiu.action == "escalate":
# File CTR before executing transfer
file_ctr(
amount=8_000_000,
currency="NGN",
audit_id=result.audit_id,
deadline_hours=24,
)

Regulatory references

  • Money Laundering (Prevention and Prohibition) Act 2022 (MLPPA 2022)
  • NFIU AML/CFT/CPF Regulations 2023
  • Financial Action Task Force (FATF) Recommendations