Guide
Country packs
A country pack is data, not code: it sets the currency, the offline limits, the KYC ladder, the local rails and the data-protection context for one market.
Packs
This table is generated from the countryPacks export of @payvault/countries, so it always matches the code. Amounts are shown in major units.
| Code | Country | Currency | Per payment | Allowance cap | TTL | Domestic rails | Data law | Status |
|---|---|---|---|---|---|---|---|---|
| BJ | Benin | XOF | F CFA 7,500 | F CFA 25,000 | 72 h | PI-SPI, STAR-UEMOA, SICA-UEMOA, GIM-UEMOA, MTN MoMo, Moov Money | Loi n° 2017-20 du 20 avril 2018 portant code du numérique en République du Bénin (residency: none) | concept |
| CM | Cameroon | XAF | FCFA 7,500 | FCFA 25,000 | 72 h | SYGMA, SYSTAC, GIMAC, MTN MoMo, Orange Money | Law No. 2010/012 on Cybersecurity and Cybercriminality (personal data provisions) (residency: preferred) | concept |
| CI | Côte d'Ivoire | XOF | F CFA 7,500 | F CFA 25,000 | 72 h | PI-SPI, STAR-UEMOA, SICA-UEMOA, GIM-UEMOA, Orange Money, MTN MoMo, Moov Money, Wave | Loi n° 2013-450 du 19 juin 2013 relative à la protection des données à caractère personnel (residency: none) | concept |
| EG | Egypt | EGP | EGP 600.00 | EGP 2,000.00 | 72 h | InstaPay (IPN), CBE RTGS, Egyptian ACH, Meeza, Vodafone Cash | Personal Data Protection Law No. 151 of 2020 (residency: preferred) | concept |
| ET | Ethiopia | ETB | ETB 1,500.00 | ETB 5,000.00 | 72 h | EATS, EthSwitch, telebirr, M-Pesa | Personal Data Protection Proclamation No. 1321/2024 (residency: preferred) | concept |
| GH | Ghana | GHS | GHS 150.00 | GHS 500.00 | 72 h | GhIPSS Instant Pay (GIP), GhIPSS RTGS, GhIPSS ACH, gh-link, MTN MoMo, Telecel Cash | Data Protection Act, 2012 (Act 843) (residency: none) | concept |
| KE | Kenya | KES | KES 1,500.00 | KES 5,000.00 | 72 h | PesaLink, KEPSS, Kenya EFT, M-Pesa, Airtel Money | Data Protection Act, 2019 (residency: preferred) | concept |
| MA | Morocco | MAD | MAD 120.00 | MAD 400.00 | 72 h | SRBM, SIMT, CMI, inwi money, Orange Money | Law No. 09-08 on the protection of individuals with regard to the processing of personal data (residency: preferred) | concept |
| NG | Nigeria | NGN | NGN 15,000.00 | NGN 50,000.00 | 72 h | NIBSS Instant Payment (NIP), CBN RTGS, Verve | Nigeria Data Protection Act 2023 (residency: preferred) | concept |
| RW | Rwanda | RWF | RWF 15,000 | RWF 50,000 | 72 h | RSwitch, RIPPS, MTN MoMo, Airtel Money | Law No. 058/2021 of 13/10/2021 relating to the protection of personal data and privacy (residency: required) | concept |
| SN | Senegal | XOF | F CFA 7,500 | F CFA 25,000 | 72 h | PI-SPI, STAR-UEMOA, SICA-UEMOA, GIM-UEMOA, Orange Money, Wave | Loi n° 2008-12 du 25 janvier 2008 sur la protection des données à caractère personnel (residency: none) | concept |
| ZA | South Africa | ZAR | ZAR 200.00 | ZAR 700.00 | 72 h | PayShap, SAMOS, BankservAfrica EFT | Protection of Personal Information Act, 2013 (POPIA) (residency: none) | concept |
| TZ | Tanzania | TZS | TZS 30,000.00 | TZS 100,000.00 | 72 h | TIPS, TISS, TACH, M-Pesa, Mixx by Yas, Airtel Money | Personal Data Protection Act, 2022 (residency: preferred) | concept |
| TG | Togo | XOF | F CFA 7,500 | F CFA 25,000 | 72 h | PI-SPI, STAR-UEMOA, SICA-UEMOA, GIM-UEMOA, T-Money, Flooz | Loi n° 2019-014 du 29 octobre 2019 relative à la protection des données à caractère personnel (residency: none) | concept |
| UG | Uganda | UGX | UGX 40,000 | UGX 150,000 | 72 h | UNISS, Uganda EFT, MTN MoMo, Airtel Money | Data Protection and Privacy Act, 2019 (residency: none) | concept |
What a pack sets
offlineLimits:perTransaction,allowanceCap(the most that can be locked, plus credit, in one allowance),allowanceTtlHours,maxPaymentsPerAllowanceandreleaseGraceHours. All amounts are integers in minor units.kyc: the tier ladder, each tier with anallowanceCapMultiplierbetween 0 and 1, and the national ID systems accepted.rails: domestic rails by type (instant, RTGS, mobile money, card, ACH) and cross-border options.dataProtection: the data-protection law, the authority, and whether residency is none, preferred or required.currency,languages,phone,centralBankand a bilingualnotesfield.
How packs are used
Issuing an allowance copies its currency, per-payment limit, maximum payment count and expiry from the pack into the signed certificate, so merchants enforce the limits offline without asking anyone. External-ledger issuance also rejects funded + credit above the pack's cap. Adding a market is a data change validated by a schema at load time, not new code.
A pack's releaseGraceHours is part of the schema. The current sweep that returns unspent vault value waits a fixed 30 days after expiry for a phone that never checks in; a returning phone is refunded at once from its signed close statement.