Jurisdictions
In short
Section titled “In short”A jurisdiction is everything that differs between countries, kept as data rather than code:
- the financial intelligence unit (FIU), the format reports are filed in, and its codes;
- the cash transaction report (CTR) thresholds;
- the national identifiers (Ghana Card, BVN, NIN…) and what a valid one looks like;
- the FATF high-risk lists;
- the sanctions lists a workspace screens against until it chooses its own;
- the minimum record-keeping period;
- the regulators;
- the rule packs it recommends for each kind of institution;
- and, for every value that comes from research rather than an official source, a note to confirm it with the regulator.
Each workspace follows one jurisdiction. It sets the defaults for reporting and identifier checks, and decides which rule packs the rule library offers first. It never changes your transactions, alerts or cases, and it never overrides a reporting value you have already saved.
The jurisdictions available
Section titled “The jurisdictions available”| Code | Jurisdiction | Currency | FIU | Report format | Cash report (CTR) | Keep records |
|---|---|---|---|---|---|---|
gh |
Ghana | GHS | Financial Intelligence Centre (FIC) | goAML | GHS 50,000 or more, same-day cash adds up | 5 years |
ng |
Nigeria | NGN | Nigerian Financial Intelligence Unit (NFIU) | goAML | Above NGN 5,000,000 (individual) or NGN 10,000,000 (business), per transaction; an amount equal to the threshold isn’t reported | 5 years |
bj |
Benin | XOF | CENTIF Bénin | CENTIF declaration | XOF 15,000,000 or more, linked operations add up | 10 years |
bf |
Burkina Faso | XOF | CENTIF Burkina Faso | CENTIF declaration | XOF 15,000,000 or more, linked operations add up | 10 years |
ci |
Côte d’Ivoire | XOF | CENTIF-CI | CENTIF declaration | XOF 15,000,000 or more, linked operations add up | 10 years |
gw |
Guinea-Bissau | XOF | CENTIF Guinée-Bissau | CENTIF declaration | XOF 15,000,000 or more, linked operations add up | 10 years |
ml |
Mali | XOF | CENTIF Mali | CENTIF declaration | XOF 15,000,000 or more, linked operations add up | 10 years |
ne |
Niger | XOF | CENTIF Niger | CENTIF declaration | XOF 15,000,000 or more, linked operations add up | 10 years |
sn |
Senegal | XOF | CENTIF Sénégal | CENTIF declaration | XOF 15,000,000 or more, linked operations add up | 10 years |
tg |
Togo | XOF | CENTIF Togo | CENTIF declaration | XOF 15,000,000 or more, linked operations add up | 10 years |
sl |
Sierra Leone | SLE | Financial Intelligence Agency (FIA) | goAML (assumed) | SLE 30,000 or more, same-day cash adds up. To verify with counsel | 5 years |
lr |
Liberia | LRD | Financial Intelligence Agency (FIA) | goAML (assumed) | LRD 1,000,000 or more (individual) or LRD 2,000,000 (business), same-day cash adds up. To verify with counsel | 5 years |
gm |
The Gambia | GMD | Financial Intelligence Unit (FIU) | goAML (assumed) | GMD 450,000 or more (individual) or GMD 2,000,000 (business), same-day cash adds up. To verify with counsel | 5 years |
gn |
Guinea | GNF | CENTIF Guinée | CENTIF declaration | GNF 100,000,000 or more, linked operations add up: a working value, not a confirmed figure. To verify with counsel | 10 years |
ke |
Kenya | KES | Financial Reporting Centre (FRC) | goAML | KES 1,300,000 or more (USD 10,000), same-day cash adds up. To verify with counsel | 7 years |
global |
Other country (FATF baseline) | Your workspace’s | Your national FIU | goAML (generic codes) | None: no CTR is drafted until you set your own thresholds | 5 years |
The eight UEMOA states share the rules of the West African Economic and Monetary Union (uemoa):
the BCEAO’s thresholds, the francs CFA, French as the default language and the CENTIF reporting
codes (DOS for a suspicious transaction, DTE for cash; DSTE in Côte d’Ivoire). Each state adds its
own CENTIF, time zone and identifiers. uemoa itself is a region, which no workspace can pick:
choose your country.
Other country is the fallback for a country without its own definition: the FATF baseline, with goAML’s generic codes, which you replace with your FIU’s. It defines no cash reporting threshold, so cash transaction reports stay off, and can’t be switched on, until you enter your own thresholds. See When no threshold is set.
The five newest jurisdictions
Section titled “The five newest jurisdictions”Sierra Leone, Liberia, The Gambia, Guinea and Kenya each have a definition and two rule packs. Read this table as what SpeculaPro assumes until you tell it otherwise, not as a statement of the law. This is not legal advice; confirm every cell with counsel and the regulator.
Sierra Leone (sl) |
Liberia (lr) |
The Gambia (gm) |
Guinea (gn) |
Kenya (ke) |
|
|---|---|---|---|---|---|
| FIU, as named in the definition | Financial Intelligence Agency of Sierra Leone (FIA); the name and web address are to verify | Financial Intelligence Agency of Liberia (FIA) | Financial Intelligence Unit of The Gambia (FIU) | Cellule Nationale de Traitement des Informations Financières (CENTIF) | Financial Reporting Centre (FRC) |
| How reports are filed | goAML is assumed | goAML is assumed; the FIA has also taken reports on its own templates | goAML is assumed | No machine format was found: reports export as the French CENTIF declaration, whose layout is unconfirmed | goAML |
| Report codes | STR, CTR (goAML’s generic codes) |
STR, CTR |
STR, CTR |
DOS, DTE |
STR, CTR |
| Cash report threshold | SLE 30,000 for individuals and businesses (SLE 100,000 is sometimes cited for businesses; the lower is used) | LRD 1,000,000 (individual) and LRD 2,000,000 (business): USD 5,000 and USD 10,000 at about LRD 200 to the dollar | GMD 450,000 (individual) and GMD 2,000,000 (business) | GNF 100,000,000: a working value close to the FATF’s USD/EUR 15,000, not a figure from Guinean law | KES 1,300,000: USD 10,000 at about KES 130 to the dollar (USD 15,000 after a 2023 amendment is reported; the lower is used) |
| Cash equal to the threshold | Reported (at or above) | Reported | Reported | Reported | Reported |
| Same-day cash adds up | Yes (assumed) | Yes (assumed) | Yes (assumed) | Yes (assumed) | Yes (assumed) |
| STR deadline the definition notes | 2 days after the suspicion is formed | Promptly; 3 working days is a working assumption | Promptly; 3 working days is a working assumption | Without delay | 2 days after the suspicion arises |
| Keep records | 5 years | 5 years | 5 years | 10 years | 7 years |
| Identifier formats checked | None | None | None | RCCM number only | National ID number, passport, KRA PIN, Business Registration Service number |
| Default language | English | English | English | French | English |
| Rule packs | sl-psp, sl-bank |
lr-psp, lr-bank |
gm-psp, gm-bank |
gn-emi, gn-bank |
ke-psp, ke-bank |
What else to know:
- The STR deadline is a note, not a timer. It appears among the values to confirm in the Jurisdiction panel and in the definition’s notes; SpeculaPro doesn’t count down or enforce it.
- Thresholds written in US dollars. Liberia’s and Kenya’s cash thresholds are understood to be set in US dollars, and the definitions restate them in the local currency at a fixed rate. Keep the amounts under Settings → Reporting in line with the central bank’s rate. The panel shows the US-dollar figure too (USD 5,000 for Liberia, USD 10,000 for Kenya).
- Liberia has two currencies. The definition is for a workspace whose base currency is the Liberian dollar. A workspace that keeps its books in US dollars follows Other country instead, by itself: enter your own thresholds there.
- Sierra Leone’s amounts are in new leones (SLE), which replaced the old leone at 1,000 to 1 in 2022. Legal texts written before then quote old leones.
- Guinea is not a UEMOA state. It has its own currency (the Guinean franc, which has no minor unit), central bank and law. It only shares the CENTIF declaration as its export format, until its CENTIF confirms how it takes reports.
- Sanctions lists. All five screen against the baseline lists by default (
un-sc,us-ofac-sdn,us-ofac-cons,eu-fsf,gb-uksl). None adds a domestic list: Kenya’s FRC list (ke-frc) exists as a screening list but is not on by default; switch it on under Settings → Screening if you need it. - Shared packs install rough local amounts. From
core1.4.0,fraud1.4.0 andglobal-fatf1.2.0, these packs install default amounts in SLE, LRD, GMD, GNF and KES: the US dollar figures scaled at a rough exchange rate and rounded, with the cash reporting threshold above in the large-cash and structuring rules. Review every amount before you enable a rule. See Packs written in another currency. - Data protection. Each definition notes the country’s data-protection position as far as research found it, itself to verify with counsel. It is a note only: it doesn’t change the Privacy area’s retention periods or deadlines.
The packs are described rule by rule in Sierra Leone, Liberia, The Gambia, Guinea and Kenya.
What a jurisdiction changes
Section titled “What a jurisdiction changes”| Area | What the jurisdiction sets |
|---|---|
| Reporting settings | The defaults: the report format (goAML or the CENTIF file), the report codes, the lookup codes, the identifier type codes and the country of the reporting location. A value you have saved keeps its saved value |
| Cash transaction reports | The default thresholds for individuals and businesses, in your currency; whether cash equal to the threshold is reported or only cash above it; and whether a customer’s same-day cash adds up. A jurisdiction with no threshold means no CTRs until you set one |
| Identifier checks | When customers are sent in, each national identifier is checked against the jurisdiction’s format for its type (see below) |
| Rule library | Packs for your jurisdiction come first, under Your jurisdiction: …, marked Recommended for your kind of institution. Packs for other countries are folded away under Other jurisdictions |
| The Jurisdiction panel | Shows the FIU, cash and foreign transfer thresholds, record keeping, identifiers, regulators, the FATF lists with their date, and the values to confirm |
Changing the jurisdiction doesn’t install or remove rule packs, change rules that are running, or touch past reports.
Identifier checks
Section titled “Identifier checks”The jurisdiction knows the format of each national identifier, for example 11 digits for a
Nigerian BVN or NIN, or GHA-123456789-0 for a Ghana Card. When a customer arrives through the
ingest API, a file import or a file
drop, its national_id is checked against the format for its type. Identifier checks decides
what happens to a value that doesn’t fit:
| Setting | What happens |
|---|---|
| Warn: accept, and flag values that don’t fit (the default) | The customer is accepted, and the item’s result carries a warning such as national_id: bvn doesn’t look like a valid Bank Verification Number (BVN) (expected a value like 22123456789) |
| Reject records whose identifier doesn’t fit | The customer is rejected with that message as its error |
| Don’t check identifiers | No check |
Types the jurisdiction has no format for, and the type other, are never checked. Start with
Warn, look at the warnings for a few days, and only then consider Reject.
How to see or change your jurisdiction
Section titled “How to see or change your jurisdiction”You need settings.manage (by default, administrators).
-
Select Settings, then the Workspace tab.
-
Scroll to Country rules and reporting.
-
Open values to confirm with the regulator to see what still needs checking.
-
To change it, choose another Jurisdiction or Identifier checks value. The hint changes to Changing the jurisdiction goes for approval when your workspace requires it. Reporting values you already saved are kept.
-
Select Save changes.
The list offers only the jurisdictions in your workspace’s base currency, plus Other country. A cedi workspace can follow Ghana or Other country, not Nigeria: every amount and threshold is stored in the base currency, which can’t change after the workspace is created.
Workspaces created before jurisdictions
Section titled “Workspaces created before jurisdictions”A workspace that has never picked a jurisdiction follows the one for its country, when its base currency is that jurisdiction’s currency: Ghana for a cedi workspace in Ghana, Liberia for a Liberian-dollar workspace in Liberia. In every other case it follows Other country: a country without a definition, or a workspace that keeps its books in another currency, such as a US-dollar workspace in Liberia. A definition’s thresholds are amounts in its own currency, so SpeculaPro never reads them in another one. Nothing changes for the workspace until an administrator picks a jurisdiction. The panel shows the one it follows as selected.
The base currency decides the reporting and rules side only. The default sanctions lists still follow the workspace’s country, whatever its currency.
For operators: the command line
Section titled “For operators: the command line”Creating a workspace for a jurisdiction. speculapro tenant create takes --jurisdiction. The
jurisdiction’s currency, time zone and default language fill in whatever you don’t give:
speculapro tenant create --slug kweku-ng --name "Kweku Pay Nigeria" --kind psp \This makes a naira workspace on Lagos time. Without --jurisdiction, the country decides
(--country, Ghana by default). A region such as uemoa is refused: pick a member state. A
jurisdiction whose currency differs from --currency is refused too.
Listing the definitions.
speculapro jurisdictions listprints each code, version, name, currency, report format and kind.
Updating a definition without upgrading. SpeculaPro can publish a signed jurisdiction bundle, for example with new FATF lists or a corrected threshold. It works like a signed rule-pack update, for the whole installation:
- Check it:
speculapro jurisdictions verify <file>. It prints the code, version and signing key, and the values to confirm. - Import it:
speculapro jurisdictions import <file>. It answersimported, orunchangedwhen the installation already has that version or a newer one. - Restart the SpeculaPro processes: running servers load an imported definition at their next start.
Each import is written to the audit log as jurisdiction.import, with the jurisdiction, the
version before and after, the signing key and the file’s digest. Because a definition applies to
every workspace that follows the jurisdiction, the entry belongs to the installation, not to one
workspace: it doesn’t appear in a workspace’s Audit log tab. Read it
from the database. An
import that changes nothing (unchanged) writes no entry.
The signature is checked before the file is read, and again every time stored bundles are loaded, so an edited bundle is ignored. A bundle with the same version as an existing definition but different content is refused.