Pack contents: Guinea
In short
Section titled “In short”Two packs are written for Guinea, in Guinean francs (GNF). A workspace whose
jurisdiction is Guinea (gn) sees them first in the rule
library, marked Recommended for its kind of institution:
gn-emi1.0.0 (8 rules): e-money issuers, mobile money and agent networks.gn-bank1.0.0 (8 rules): banks and microfinance institutions.
Two rules, gn.ctr_cash (GN1) and gn.border_region (GN2), are in both, so there are 14 different rules. All are post-event
except gn.sim_swap_payout, which runs in a real-time decision. Every rule
arrives switched off, and every rule has a French name and description, shown in a workspace
using French (see Languages).
Most rules reuse a core, Ghana, Nigerian or UEMOA rule by reference: they run exactly the
same logic with amounts in Guinean francs. The pages for those base rules explain how they work.
gn.ctr_cash follows your workspace’s cash reporting setting: its comparison parameter defaults to
workspace, so whether a transaction of exactly the threshold counts is decided by Report when
the day’s cash is under Settings → Reporting, and the rule and the drafted cash transaction
reports agree. See At or above, or above only.
gn.border_region needs to know where a transaction took place: send the place in the
transaction’s attributes as region, district, town or branch_region. It matches the
places named in its regions parameter and any you add to a list with the key high_risk_regions
(see Lists).
All rules at a glance
Section titled “All rules at a glance”| Key | Library | Name | Pack | Mode · action | Alert about | Severity · score |
|---|---|---|---|---|---|---|
gn.ctr_cash |
GN1 | Cash transaction at the CENTIF reporting threshold | gn-emi |
post-event · alert | customer | low · 20 |
gn.structuring_below_ctr |
GN3 | Repeated cash-ins just below the reporting threshold | gn-emi |
post-event · alert | customer | high · 70 |
gn.split_cash_in_agents |
GN4 | Cash-in split across many agents | gn-emi |
post-event · alert | customer | high · 70 |
gn.cash_out_after_cash_in |
GN5 | Cash-out soon after cash-in | gn-emi |
post-event · alert | customer | high · 60 |
gn.sim_swap_payout |
GN6 | Payout soon after a SIM swap | gn-emi |
real-time · block | customer | critical · 85 |
gn.cross_border_wallet |
GN7 | Cross-border mobile money transfer | gn-emi |
post-event · alert | customer | medium · 40 |
gn.collection_wallet_sweep |
GN8 | Collection wallet swept to a bank | gn-emi |
post-event · alert | customer | high · 60 |
gn.border_region |
GN2 | Cash or wallet activity in a border or mining area | gn-emi |
post-event · alert | customer | medium · 40 |
gn.ctr_cash |
GN1 | Cash transaction at the CENTIF reporting threshold | gn-bank |
post-event · alert | customer | low · 20 |
gnb.deposit_structuring |
GNB1 | Cash deposits just below the reporting threshold | gn-bank |
post-event · alert | customer | high · 70 |
gnb.pep_large |
GNB2 | PEP transaction above GNF 50,000,000 | gn-bank |
post-event · alert | customer | high · 70 |
gnb.dormant_reactivation |
GNB3 | Dormant account suddenly active | gn-bank |
post-event · alert | customer | medium · 45 |
gnb.new_payee_large |
GNB4 | Large instant transfer to a new payee | gn-bank |
post-event · alert | customer | medium · 50 |
gnb.fx_cash |
GNB5 | Foreign-currency cash of USD 10,000 or more | gn-bank |
post-event · alert | customer | medium · 40 |
gnb.commodity_trade_hubs |
GNB6 | Gold or minerals dealer paying or paid from a trading hub | gn-bank |
post-event · alert | customer | medium · 50 |
gn.border_region |
GN2 | Cash or wallet activity in a border or mining area | gn-bank |
post-event · alert | customer | medium · 40 |
The gn-emi pack (8 rules)
Section titled “The gn-emi pack (8 rules)”Guinea e-money, mobile money and agents (in French: Guinée : monnaie électronique, mobile money et agents), version 1.0.0.
Typologies for Guinea’s e-money issuers (établissements de monnaie électronique), payment service providers and agent networks (Orange Money, MoMo and PayCard), in Guinean francs: the CENTIF cash reporting threshold and structuring below it, smurfing through agents, cash moved through a wallet, SIM-swap payouts, cross-border wallet transfers, collection wallets swept to a bank, activity in border and mining areas. Most rules reuse core, Ghana and Nigeria rules by reference with local amounts. Values come from SpeculaPro’s research, not from an official confirmation: to verify with counsel, and confirm each with the Banque Centrale de la République de Guinée and the CENTIF before go-live.
Sources the pack cites:
- Loi L/2021/0024/AN portant lutte contre le blanchiment de capitaux et le financement du terrorisme (reference to verify with counsel)
- Banque Centrale de la République de Guinée: instructions LBC/FT et monnaie électronique
- GIABA: mutual evaluation report of Guinea (second round)
gn.ctr_cash
Section titled “gn.ctr_cash”Cash transaction at the CENTIF reporting threshold · library GN1 · Cash reporting threshold (CTR) · alert about the customer · severity low, score 20
In French: Opération en espèces au seuil de déclaration de la CENTIF.
Cash deposits, withdrawals, cash-ins and cash-outs of GNF 100,000,000 or more: a cash transaction report to the CENTIF is due (a working value under the 2021 AML/CFT law, not a confirmed figure). Whether a transaction of exactly the threshold counts follows the workspace’s CTR setting (Settings → Reporting), which starts as “at or above” in Guinea, so this rule and the CTR drafts always agree. To verify with counsel, and confirm the thresholds and their application with the CENTIF. Reuses the Nigerian CTR rule with Guinea’s amounts.
Reuses the logic of ng.ctr_cash (from ng-psp) with the parameters below; only the values differ.
| Parameter | Meaning | Default |
|---|---|---|
threshold_individual |
Individuals: above (base currency) | 100,000,000 |
threshold_business |
Businesses: above (base currency) | 100,000,000 |
comparison |
Report when the amount is: what Settings → Reporting says for CTRs (workspace), above the threshold (gt), or at or above it (gte) | "workspace" |
Explanation shown to analysts: Cash {{txn.type}} of {{txn.base_currency}} {{txn.amount}} by {{= customer.type == ‘business’ ? ‘a business’ : ‘an individual’ }} is {{= (params.comparison == ‘workspace’ ? workspace.ctr_comparison : params.comparison) == ‘gte’ ? ‘at or above’ : ‘above’ }} the CENTIF cash reporting threshold. Confirm with current CENTIF guidance.
gn.structuring_below_ctr
Section titled “gn.structuring_below_ctr”Repeated cash-ins just below the reporting threshold · library GN3 · Structuring / smurfing · alert about the customer · severity high, score 70
In French: Dépôts d’espèces répétés juste sous le seuil de déclaration.
Cash-ins just below GNF 100,000,000 repeated within 48 hours and together above it: structuring to avoid a cash transaction report to the CENTIF. Reuses the core structuring rule with Guinea’s threshold.
Reuses the logic of core.structuring (from core) with the parameters below; only the values differ.
| Parameter | Meaning | Default |
|---|---|---|
threshold |
Threshold being avoided | 100,000,000 |
margin |
Margin below threshold (0.10 = 10%) | 0.1 |
min_count |
Minimum cash-ins in 48h | 3 |
Explanation shown to analysts: {{features.cash_in_count_48h}} cash-ins totalling {{txn.base_currency}} {{features.cash_in_sum_48h}} in 48h; this one ({{txn.base_currency}} {{txn.amount}}) is just below the {{txn.base_currency}} {{params.threshold}} CENTIF reporting threshold.
gn.split_cash_in_agents
Section titled “gn.split_cash_in_agents”Cash-in split across many agents · library GN4 · Smurfing through agents · alert about the customer · severity high, score 70
In French: Dépôts d’espèces répartis entre de nombreux agents.
Cash-ins through several agents in a day adding up to a large sum: smurfing through the agent network of Orange Money, MoMo and PayCard. Reuses the Ghana rule with an amount in Guinean francs.
Reuses the logic of gh.split_cash_in_agents (from gh-psp) with the parameters below; only the values differ.
| Parameter | Meaning | Default |
|---|---|---|
min_agents |
Distinct agents in 24h | 4 |
min_total |
Total cash-in in 24h (base currency) | 10,000,000 |
Explanation shown to analysts: Cash-ins via {{features.agents_24h}} different agents totalling {{txn.base_currency}} {{features.cash_in_24h}} in 24h.
gn.cash_out_after_cash_in
Section titled “gn.cash_out_after_cash_in”Cash-out soon after cash-in · library GN5 · Wallet used as pass-through · alert about the customer · severity high, score 60
In French: Retrait d’espèces peu après un dépôt.
Most of what was cashed in at an agent is cashed out within two hours, often in another town: the wallet is used to move cash, not to hold or spend it. Reuses the Ghana rule with an amount in Guinean francs.
Reuses the logic of gh.cash_out_after_cash_in (from gh-psp) with the parameters below; only the values differ.
| Parameter | Meaning | Default |
|---|---|---|
min_amount |
Minimum cash-in (base currency) | 5,000,000 |
ratio |
Cash-out as share of cash-in | 0.8 |
Explanation shown to analysts: {{txn.base_currency}} {{features.cash_in_2h}} cashed in and {{txn.base_currency}} {{features.cash_out_2h}} cashed out within 2 hours.
gn.sim_swap_payout
Section titled “gn.sim_swap_payout”Payout soon after a SIM swap · library GN6 · SIM swap · real-time, answers block · about the customer · severity critical, score 85
In French: Paiement peu après un changement de carte SIM.
SIM-swap fraud: the fraudster has the customer’s number moved to another SIM, receives the PIN reset and one-time codes and empties the wallet. Reuses the Ghana rule with an amount in Guinean francs.
Reuses the logic of gh.sim_swap_payout (from gh-psp) with the parameters below; only the values differ.
| Parameter | Meaning | Default |
|---|---|---|
sim_change_hours |
Hours since the SIM swap | 48 |
threshold |
Payout at or above (base currency) | 500,000 |
Explanation shown to analysts: SIM swapped {{customer.hours_since.sim_swap}} hours before this payout of {{txn.base_currency}} {{txn.amount}} (rule window: {{params.sim_change_hours}} hours).
gn.cross_border_wallet
Section titled “gn.cross_border_wallet”Cross-border mobile money transfer · library GN7 · Cross-border mobile money · alert about the customer · severity medium, score 40
In French: Transfert mobile money transfrontalier.
A wallet transfer to or from another country at or above the amount. The main corridors are Mali, Senegal, Côte d’Ivoire and Sierra Leone: Guinea is outside the UEMOA, so every one of them is a currency border; cross-border wallets carry informal trade and remittances, and with them cash-courier and exchange-control risk. Leave the corridor list empty to watch every country, or name the ones to watch.
| Parameter | Meaning | Default |
|---|---|---|
home_country |
Home country (ISO code) | "GN" |
corridors |
Only these countries (ISO codes; empty = every other country) | [] |
min_amount |
Amount at or above (base currency) | 5,000,000 |
Explanation shown to analysts: {{txn.base_currency}} {{txn.amount}} by mobile money to/from {{txn.counterparty_country}}, outside Guinea.
Expression
txn.channel == 'momo' && txn.amount >= params.min_amount && txn.counterparty_country != '' && txn.counterparty_country != params.home_country && (size(params.corridors) == 0 || txn.counterparty_country in params.corridors)gn.collection_wallet_sweep
Section titled “gn.collection_wallet_sweep”Collection wallet swept to a bank · library GN8 · Collection wallet · alert about the customer · severity high, score 60
In French: Porte-monnaie de collecte vidé vers une banque.
Many senders pay into one wallet over a week and most of it then leaves to a bank account: a collection point for a scam, an unlicensed deposit-taker or a mule. Reuses the Ghana rule.
Reuses the logic of gh.wallet_sweep_to_bank (from gh-psp) with the parameters below; only the values differ.
| Parameter | Meaning | Default |
|---|---|---|
min_senders |
Distinct senders in 7 days | 10 |
sweep_ratio |
Transfer as share of 7-day inflow | 0.7 |
Explanation shown to analysts: {{features.senders_7d}} senders paid in {{txn.base_currency}} {{features.in_7d}} over 7 days; {{txn.base_currency}} {{txn.amount}} is now leaving to a bank.
gn.border_region
Section titled “gn.border_region”Cash or wallet activity in a border or mining area · library GN2 · Border / cash courier risk · alert about the customer · severity medium, score 40
In French: Opération en espèces ou par porte-monnaie dans une zone frontalière ou minière.
A cash or mobile money transaction at or above the amount in an area named in the rule or on the workspace’s high_risk_regions list: by default the artisanal gold fields of Upper Guinea (Siguiri, Mandiana, Kouroussa, Dinguiraye) and the border crossings with Mali, Sierra Leone and Senegal (Kourémalé, Pamelap, Koundara). Cash couriers, smuggling proceeds and informal cross-border trade concentrate there. Send the place in txn.attributes (region, district, town or branch_region). Reuses the Ghana border-area rule with Guinea’s places and an amount in Guinean francs.
Reuses the logic of gh.border_region (from gh-psp) with the parameters below; only the values differ.
| Parameter | Meaning | Default |
|---|---|---|
regions |
Areas (towns, districts or regions) | ["Siguiri", "Mandiana", "Kouroussa", "Dinguiraye", "Kankan", "Kourémalé", "Pamelap", "Koundara", "Nzérékoré", "Guéckédou", "Boké"] |
channels |
Only these channels (empty = all) | ["cash", "agent", "branch", "momo"] |
min_amount |
Amount at or above (base currency) | 3,500,000 |
Explanation shown to analysts: {{txn.base_currency}} {{txn.amount}} by {{txn.channel}} in {{= [‘region’, ‘district’, ‘town’, ‘branch_region’].filter(k, k in txn.attributes).map(k, string(txn.attributes[k])).join(’, ’) }}, a border or high-risk area.
The gn-bank pack (8 rules)
Section titled “The gn-bank pack (8 rules)”Guinea banks (in French: Guinée : banques), version 1.0.0.
Typologies for Guinea’s commercial banks, microfinance and other deposit-taking institutions, in Guinean francs: the CENTIF cash reporting threshold and deposits structured below it, PEP activity, dormant accounts, large transfers to new payees, foreign-currency cash, commodity traders dealing with trading hubs, activity in border and mining areas. Most rules reuse core, Ghana and Nigeria rules by reference with local amounts. Values come from SpeculaPro’s research, not from an official confirmation: to verify with counsel, and confirm each with the Banque Centrale de la République de Guinée and the CENTIF before go-live.
Sources the pack cites:
- Loi L/2021/0024/AN portant lutte contre le blanchiment de capitaux et le financement du terrorisme (reference to verify with counsel)
- Banque Centrale de la République de Guinée: instructions LBC/FT et monnaie électronique
- GIABA: mutual evaluation report of Guinea (second round)
gnb.deposit_structuring
Section titled “gnb.deposit_structuring”Cash deposits just below the reporting threshold · library GNB1 · Structuring / smurfing · alert about the customer · severity high, score 70
In French: Dépôts d’espèces juste sous le seuil de déclaration.
Cash deposits at the counter just below GNF 100,000,000, repeated within 48 hours and together above it: structuring to avoid a cash transaction report to the CENTIF. Reuses the Nigerian bank rule with Guinea’s threshold.
Reuses the logic of ngb.deposit_structuring (from ng-bank) with the parameters below; only the values differ.
| Parameter | Meaning | Default |
|---|---|---|
threshold |
Threshold being avoided (base currency) | 100,000,000 |
margin |
Just below = within (0.1 = 10%) | 0.1 |
min_count |
Deposits in 48 hours, at least | 3 |
Explanation shown to analysts: {{features.deposits_48h}} cash deposits totalling {{txn.base_currency}} {{features.deposit_sum_48h}} in 48 hours; this one ({{txn.base_currency}} {{txn.amount}}) is just below the {{txn.base_currency}} {{params.threshold}} threshold.
gnb.pep_large
Section titled “gnb.pep_large”PEP transaction above GNF 50,000,000 · library GNB2 · Politically exposed person · alert about the customer · severity high, score 70
In French: Opération d’une PPE au-dessus de 50 000 000 GNF.
A politically exposed person’s transaction at or above the amount: enhanced due diligence and senior management approval apply to PEPs under the Banque Centrale de la République de Guinée’s AML/CFT rules and FATF Recommendation 12. The amount is a starting value, not a legal threshold. Reuses the core PEP rule with an amount in Guinean francs.
Reuses the logic of core.pep_threshold (from core) with the parameters below; only the values differ.
| Parameter | Meaning | Default |
|---|---|---|
threshold |
Threshold (base currency) | 50,000,000 |
Explanation shown to analysts: Customer is a PEP; transaction of {{txn.base_currency}} {{txn.amount}} is at or above {{txn.base_currency}} {{params.threshold}}.
gnb.dormant_reactivation
Section titled “gnb.dormant_reactivation”Dormant account suddenly active · library GNB3 · Dormant account reactivation · alert about the customer · severity medium, score 45
In French: Compte dormant redevenu soudainement actif.
An account with no activity for 90 days suddenly moving money: takeover, or reuse as a mule account. Reuses the core rule with an amount in Guinean francs.
Reuses the logic of core.dormant_reactivation (from core) with the parameters below; only the values differ.
| Parameter | Meaning | Default |
|---|---|---|
dormant_days |
Minimum account age (days); the quiet period is fixed at 90 days | 90 |
min_amount |
Minimum amount (base currency) | 5,000,000 |
Explanation shown to analysts: No activity in the 90 days before today on an account {{account.age_days}} days old, then {{txn.base_currency}} {{txn.amount}}.
gnb.new_payee_large
Section titled “gnb.new_payee_large”Large instant transfer to a new payee · library GNB4 · Authorised push-payment fraud · alert about the customer · severity medium, score 50
In French: Virement instantané important vers un nouveau bénéficiaire.
A large instant transfer to a payee the customer has never paid: authorised push payment fraud and account takeover. Reuses the Ghana instant-payment rule with an amount in Guinean francs.
Reuses the logic of ghb.gip_new_payee_large (from gh-bank) with the parameters below; only the values differ.
| Parameter | Meaning | Default |
|---|---|---|
threshold |
Amount at or above (base currency) | 25,000,000 |
Explanation shown to analysts: First instant transfer to this beneficiary: {{txn.base_currency}} {{txn.amount}}.
gnb.fx_cash
Section titled “gnb.fx_cash”Foreign-currency cash of USD 10,000 or more · library GNB5 · Foreign-currency cash reporting · alert about the customer · severity medium, score 40
In French: Espèces en devises de 10 000 USD ou plus.
Cash in a foreign currency of USD 10,000 or more (or the same in euros or pounds), or worth GNF 86,000,000 or more: dollar and euro cash is how value crosses borders in a cash economy, and USD 10,000 is the cross-border declaration amount used across ECOWAS. A starting value, not a confirmed legal threshold in Guinea (to verify with counsel). Reuses the Ghana foreign-currency cash rule.
Reuses the logic of ghb.fx_cash (from gh-bank) with the parameters below; only the values differ.
| Parameter | Meaning | Default |
|---|---|---|
threshold |
Threshold in the transaction’s currency (major units, with that currency’s decimals) | 10,000 |
threshold_base |
Or at or above this in the base currency (0: off) | 86,000,000 |
currencies |
Currencies | ["USD", "EUR", "GBP"] |
Explanation shown to analysts: Cash {{txn.type}} in {{txn.currency}} worth {{txn.base_currency}} {{txn.amount}}: at or above the {{params.threshold}} foreign-currency cash threshold. Confirm the threshold with current CENTIF guidance.
gnb.commodity_trade_hubs
Section titled “gnb.commodity_trade_hubs”Gold or minerals dealer paying or paid from a trading hub · library GNB6 · Commodity trade / trade-based money laundering · alert about the customer · severity medium, score 50
In French: Comptoir d’or ou négociant en minerais en relation avec une place de négoce.
Artisanal gold from Upper Guinea is bought for cash and leaves through Bamako or directly for Dubai, much of it undeclared (GIABA; OECD reports on West African gold): a gold buying house (comptoir) or minerals dealer moving money with the Emirates, Mali, Switzerland, India, Belgium or Lebanon outside its declared exports deserves a look. Matches a business whose segment, or customer.attributes.sector, is one of the sectors, on a payment to or from one of the hubs at or above the amount.
| Parameter | Meaning | Default |
|---|---|---|
sectors |
Customer sectors (segment or attributes.sector, lower case; empty = every business) | ["mining", "gold", "diamonds", "orpaillage"] |
hubs |
Trading hub countries (ISO codes) | ["AE", "ML", "CH", "IN", "BE", "LB"] |
min_amount |
Amount at or above (base currency) | 100,000,000 |
Explanation shown to analysts: {{txn.base_currency}} {{txn.amount}} {{txn.direction}} with {{txn.counterparty_country}}, a trading hub for this customer’s sector.
Expression
customer.type == 'business' && txn.counterparty_country in params.hubs && txn.amount >= params.min_amount && (size(params.sectors) == 0 || customer.segment.lowerAscii() in params.sectors || ('sector' in customer.attributes && string(customer.attributes.sector).lowerAscii() in params.sectors))Also in this pack, described above:
| Key | Library | Name |
|---|---|---|
gn.ctr_cash |
GN1 | Cash transaction at the CENTIF reporting threshold |
gn.border_region |
GN2 | Cash or wallet activity in a border or mining area |