Consenti

Jurisdiction Coverage Map

Consenti ships an embedded map of 211 countries and territories, each pre-assigned to one of the 8 built-in compliance groups — the model that decides opt-in vs. opt-out behaviour, GPC handling, and legitimate-interest rules. It's the reference for the type field in UI / Backend configuration, and for the compliance array shown on every compliance guide.

ℹ️The 8 groups and the map below are convenience defaults, tuned for the most common regulatory shapes so most sites never need to touch them. They're not a ceiling: any site can author its own profile — banner copy, categories, GPC handling, everything — against a custom compliance group (see item 9 below) and route to it explicitly with compliance.type, no built-in group required. See the Geo-Routing & Auto-Detection guide for how country resolution feeds into this map.

Compliance Tiers

Every named regulation guide carries a status badge — Maintained, Supported, In-development, Partial, or Routing-only. The tier reflects how confidently Consenti tracks that regulation's ongoing legal changes, not just whether the code exists. The Maintained and Supported regulations are re-checked every quarter (see how Consenti aims to stay compliant); the most recent review ran on 8 October 2026 (2026 Q4).

TierMeaning
MaintainedActively tracked as the law changes — the highest-confidence tier.
SupportedCode is complete and stable, but not tracked as closely as the maintained tier (no currency claim on recent legal changes).
In developmentSupported today; encoding or rollout is still being finished (e.g. a phased legal rollout still landing).
PartialA specific, named gap exists — spec-correct binary encoding needing an optional peer dependency, parental verification needing your own backend, etc. Each regulation’s own guide states the exact gap.
Routing-onlyUX-template routing only — the country resolves to a compliance group so the banner behaves sensibly, but the regulation itself isn’t individually legal-maintained. Covers PIPL and 190+ other countries/territories not named below.

Regulation → tier

RegulationTier
GDPRMaintained
UK GDPRMaintained
CCPAMaintained
CPRAMaintained
LGPDMaintained
DPDPA (India)In development
PIPEDA / Law 25 (Canada)Supported
POPIA (South Africa)Supported
PDPA (Thailand)Supported
APPI (Japan)Supported
KVKK (Turkey)Supported
COPPA (USA children)Partial
TCF v2.3 / GPP (IAB, programmatic ads)Partial
PIPL (China)Routing-only

Every country not individually named above still resolves to a sensible compliance group via the map below — that's the Routing-only tier in practice: UX-template routing (opt-in / opt-out / notice-only behaviour) without per-country legal maintenance.


Compliance Groups

  1. Standard Opt-in (GDPR) — opt-in

    GDPR / ePrivacy style: prior consent required before non-essential cookies. Granular consent, easy reject, easy withdrawal.

  2. Opt-out (US State Laws) — opt-out

    US state privacy laws. Collect first, allow opt-out of sale/share. Covers CCPA and all state-level equivalents.

  3. Opt-out Strict (CPRA / California) — opt-out-strict

    California CPRA: opt-out with sale/sharing/sensitive categories required. GPC must be honored. Stricter than general US state laws.

  4. Opt-in (India DPDPA) — opt-in-dpdpa

    India's Digital Personal Data Protection Act. Opt-in consent with data fiduciary disclosure. No legitimate interest basis.

  5. Opt-in (China PIPL / DSL) — opt-in-china

    China PIPL + DSL + CSL: strict opt-in with purpose specification, data minimisation, and cross-border transfer controls.

  6. Opt-in (Brazil LGPD) — opt-in-brazil

    Brazil LGPD: opt-in consent required. Legitimate interest is a valid basis. Analytics and advertising may differ in treatment.

  7. General Privacy Consent — general-privacy-consent

    Privacy notice or consent rules exist but the jurisdiction does not have a GDPR/PECR-style strict cookie banner law. Documenting legal basis is best practice.

  8. Notice Only — notice-only

    A privacy notice is generally sufficient. No dedicated cookie banner law is encoded for this jurisdiction.

  9. Custom compliance groups

    The 8 groups above cover every country in the map, but a profile is not limited to them. Every profile has an optional customComplianceGroup field — a free-form, lower-kebab-case string that stands in for complianceGroup when a site needs a Compliance Group that doesn't map to any built-in group (a bespoke internal policy, a jurisdiction not yet in the map, an A/B test variant, etc.).

    AspectBehaviour
    Where it's setAdmin dashboard profile wizard, Step 1 — choose None / Custom instead of one of the 8 built-in radio options, then type the identifier. See the Admin Dashboard guide.
    How it's targetedSet the widget's compliance.type to the same string. Consenti resolves it exactly like a built-in group, fetching whichever profile is active for that name.
    RequirementAPI mode only (api.enabled: true). There is no pre-built/offline fallback for a custom group name — resolution throws if nothing is active for it server-side.
    ValidationNone of the COMPLIANCE_VALIDATION_RULES (legal-basis requirements, GPC recommendations, CPRA categories) apply to a custom group — you own correctness.
    💡A related but distinct mechanism: instead of a new custom group, you can also override one of the 8 built-in groups everywhere it's resolved — geo-detected or fixed — by registering a ConsentiProfile with a matching complianceGroup (optionally deepMerge: true to patch instead of replace). See Overriding a built-in compliance group.

Jurisdiction Coverage Map

Click a column header to sort. The United Kingdom is listed as UK; geo providers and browser locales report it as ISO GB, and Consenti treats the two as the same country (in this map and in any complianceMap you supply).

AfghanistanAF—fa-AFnotice-only
AlbaniaALGDPRsq-ALopt-in
AlgeriaDZDPA-DZar-DZ, fr-DZnotice-only
AndorraADGDPRca-ADopt-in
AngolaAO—pt-AOnotice-only
Antigua and BarbudaAG—ennotice-only
ArgentinaARLPDP-ARes-ARgeneral-privacy-consent
ArmeniaAM—hy-AMnotice-only
AustraliaAUPRIVACY-AUengeneral-privacy-consent
AustriaATGDPR, EPRIVACYde-ATopt-in
AzerbaijanAZ—az-AZnotice-only
BahamasBS—ennotice-only
BahrainBHPDPL-BHar-BHgeneral-privacy-consent
BangladeshBD—bn-BDgeneral-privacy-consent
BarbadosBB—ennotice-only
BelarusBY—be-BY, ru-BYnotice-only
BelgiumBEGDPR, EPRIVACYnl-BE, fr-BEopt-in
BeninBJ—fr-BJnotice-only
BermudaBM—ennotice-only
BhutanBT—dz-BTnotice-only
BoliviaBO—es-BOgeneral-privacy-consent
Bosnia and HerzegovinaBAGDPRbs-BA, sr-Latn-BAopt-in
BotswanaBWDPA-BWengeneral-privacy-consent
BrazilBRLGPDpt-BRopt-in-brazil
British Indian Ocean TerritoryIO—ennotice-only
BruneiBNPRIVACY-BNms-BN, engeneral-privacy-consent
BulgariaBGGDPR, EPRIVACYbg-BGopt-in
Burkina FasoBF—fr-BFnotice-only
BurundiBI—fr-BInotice-only
Cabo VerdeCV—pt-CVnotice-only
CambodiaKH—km-KHnotice-only
CameroonCM—fr-CM, ennotice-only
CanadaCAPIPEDA, LAW25en, fr-CAgeneral-privacy-consent
Central African RepublicCF—fr-CFnotice-only
ChadTD—fr-TD, ar-TDnotice-only
ChileCLLAW19628-CLes-CLgeneral-privacy-consent
ChinaCNPIPL, DSL-CN, CSL-CNzh-CNopt-in-china
ColombiaCOLAW1581-COes-COgeneral-privacy-consent
ComorosKM—ar-KM, fr-KMnotice-only
Costa RicaCRLPDP-CRes-CRgeneral-privacy-consent
Côte d'IvoireCI—fr-CInotice-only
CroatiaHRGDPR, EPRIVACYhr-HRopt-in
CubaCU—es-CUnotice-only
CyprusCYGDPR, EPRIVACYel-CYopt-in
CzechiaCZGDPR, EPRIVACYcs-CZopt-in
DenmarkDKGDPR, EPRIVACYda-DKopt-in
DjiboutiDJ—fr-DJ, ar-DJnotice-only
DominicaDM—ennotice-only
Dominican RepublicDODATA-PROTECTION-DOes-DOgeneral-privacy-consent
DR CongoCD—fr-CDnotice-only
EcuadorECLOPDP-ECes-ECgeneral-privacy-consent
EgyptEGDPA-EGar-EGgeneral-privacy-consent
El SalvadorSV—es-SVnotice-only
Equatorial GuineaGQ—es-GQ, fr-GQnotice-only
EritreaER—ti-ERnotice-only
EstoniaEEGDPR, EPRIVACYet-EEopt-in
EswatiniSZ—ennotice-only
EthiopiaET—am-ETnotice-only
FijiFJPRIVACY-FJennotice-only
FinlandFIGDPR, EPRIVACYfi-FIopt-in
FranceFRGDPR, EPRIVACYfr-FRopt-in
French GuianaGF—fr-GFnotice-only
French PolynesiaPF—fr-PFnotice-only
GabonGA—fr-GAnotice-only
GambiaGM—ennotice-only
GeorgiaGE—ka-GEnotice-only
GermanyDEGDPR, EPRIVACYde-DEopt-in
GhanaGHDPA-GHengeneral-privacy-consent
GibraltarGIUK-GDPRenopt-in
GreeceGRGDPR, EPRIVACYel-GRopt-in
GreenlandGLGDPRda-GLopt-in
GrenadaGD—ennotice-only
GuatemalaGT—es-GTnotice-only
GuernseyGGGDPRenopt-in
GuineaGN—fr-GNnotice-only
Guinea-BissauGW—pt-GWnotice-only
GuyanaGY—ennotice-only
HaitiHT—fr-HTnotice-only
Holy SeeVA—it-VAnotice-only
HondurasHN—es-HNnotice-only
Hong KongHKPDPL-HKzh-HKgeneral-privacy-consent
HungaryHUGDPR, EPRIVACYhu-HUopt-in
IcelandISGDPR, EPRIVACYis-ISopt-in
IndiaINDPDPAhi-IN, en, bn-IN, ta-INopt-in-dpdpa
IndonesiaIDPDP-IDid-IDgeneral-privacy-consent
IranIR—fa-IRnotice-only
IraqIQ—ar-IQnotice-only
IrelandIEGDPR, EPRIVACYenopt-in
IsraelILPRIVACY-ILhe-IL, ar-ILgeneral-privacy-consent
ItalyITGDPR, EPRIVACYit-ITopt-in
JamaicaJM—ennotice-only
JapanJPAPPIja-JPgeneral-privacy-consent
JordanJO—ar-JOgeneral-privacy-consent
KazakhstanKZ—kk-KZ, ru-KZnotice-only
KenyaKEDPA-KEsw-KE, engeneral-privacy-consent
KiribatiKI—ennotice-only
KuwaitKWPRIVACY-KWar-KWgeneral-privacy-consent
KyrgyzstanKG—ky-KG, ru-KGnotice-only
LaosLA—lo-LAnotice-only
LatviaLVGDPR, EPRIVACYlv-LVopt-in
LebanonLB—ar-LBnotice-only
LesothoLS—ennotice-only
LiberiaLR—ennotice-only
LibyaLY—ar-LYnotice-only
LiechtensteinLIGDPR, EPRIVACYde-LIopt-in
LithuaniaLTGDPR, EPRIVACYlt-LTopt-in
LuxembourgLUGDPR, EPRIVACYfr-LU, de-LUopt-in
MacauMOPDPA-MOzh-MO, pt-MOgeneral-privacy-consent
MadagascarMG—fr-MGnotice-only
MalawiMW—engeneral-privacy-consent
MalaysiaMYPDPA-MYms-MY, zh-MY, engeneral-privacy-consent
MaldivesMV—dv-MVnotice-only
MaliML—fr-MLnotice-only
MaltaMTGDPR, EPRIVACYmt-MT, enopt-in
Marshall IslandsMH—ennotice-only
MauritaniaMR—ar-MRnotice-only
MauritiusMUDPA-MUen, fr-MUgeneral-privacy-consent
MexicoMXLFPDPPPes-MXgeneral-privacy-consent
MicronesiaFM—ennotice-only
MoldovaMD—ro-MDgeneral-privacy-consent
MonacoMCGDPRfr-MCopt-in
MongoliaMN—mn-MNnotice-only
MontenegroMEGDPRsr-Latn-MEopt-in
MoroccoMADPA-MAar-MA, fr-MAgeneral-privacy-consent
MozambiqueMZ—pt-MZnotice-only
MyanmarMM—my-MMnotice-only
NamibiaNA—ennotice-only
NauruNR—ennotice-only
NepalNPPRIVACY-NPne-NPnotice-only
NetherlandsNLGDPR, EPRIVACYnl-NLopt-in
New CaledoniaNC—fr-NCnotice-only
New ZealandNZPRIVACY-NZengeneral-privacy-consent
NicaraguaNI—es-NInotice-only
NigerNE—fr-NEnotice-only
NigeriaNGNDPA-NGengeneral-privacy-consent
NiueNU—ennotice-only
Norfolk IslandNF—ennotice-only
North KoreaKP—ko-KPnotice-only
North MacedoniaMKGDPRmk-MKopt-in
Northern Mariana IslandsMP—ennotice-only
NorwayNOGDPR, EPRIVACYnb-NOopt-in
OmanOMPDPL-OMar-OMgeneral-privacy-consent
PakistanPK—ur-PK, ennotice-only
PalauPW—ennotice-only
PalestinePS—ar-PSnotice-only
PanamaPADATA-PROTECTION-PAes-PAgeneral-privacy-consent
Papua New GuineaPGPRIVACY-PGennotice-only
ParaguayPY—es-PYgeneral-privacy-consent
PeruPELPDP-PEes-PEgeneral-privacy-consent
PhilippinesPHDPA-PHfil-PH, engeneral-privacy-consent
PolandPLGDPR, EPRIVACYpl-PLopt-in
PortugalPTGDPR, EPRIVACYpt-PTopt-in
Puerto RicoPR—es-PR, ennotice-only
QatarQAQPDL-QAar-QAgeneral-privacy-consent
Republic of CongoCG—fr-CGnotice-only
RomaniaROGDPR, EPRIVACYro-ROopt-in
RussiaRU—ru-RUnotice-only
RwandaRWDPA-RWrw-RW, engeneral-privacy-consent
Saint BarthélemyBL—fr-BLnotice-only
Saint Kitts and NevisKN—ennotice-only
Saint LuciaLC—ennotice-only
Saint Pierre and MiquelonPM—fr-PMnotice-only
Saint Vincent and the GrenadinesVC—ennotice-only
SamoaWS—ennotice-only
San MarinoSMGDPRit-SMopt-in
São Tomé and PríncipeST—pt-STnotice-only
Saudi ArabiaSAPDPL-SAar-SAgeneral-privacy-consent
SenegalSN—fr-SNgeneral-privacy-consent
SerbiaRSGDPRsr-RSopt-in
SeychellesSC—fr-SC, engeneral-privacy-consent
Sierra LeoneSL—engeneral-privacy-consent
SingaporeSGPDPA-SGzh-SG, ms-SG, ta-SG, engeneral-privacy-consent
SlovakiaSKGDPR, EPRIVACYsk-SKopt-in
SloveniaSIGDPR, EPRIVACYsl-SIopt-in
Solomon IslandsSB—ennotice-only
SomaliaSO—so-SOnotice-only
South AfricaZAPOPIAen, af-ZAgeneral-privacy-consent
South KoreaKRPIPA-KRko-KRgeneral-privacy-consent
South SudanSS—ennotice-only
SpainESGDPR, EPRIVACYes-ESopt-in
Sri LankaLKPRIVACY-LKsi-LK, ta-LKgeneral-privacy-consent
SudanSD—ar-SDnotice-only
SurinameSR—nl-SRnotice-only
SwedenSEGDPR, EPRIVACYsv-SEopt-in
SwitzerlandCHREVFADPde-CH, fr-CH, it-CHopt-in
SyriaSY—ar-SYnotice-only
TaiwanTWPDPL-TWzh-TWgeneral-privacy-consent
TajikistanTJ—tg-TJnotice-only
TanzaniaTZ—sw-TZ, engeneral-privacy-consent
ThailandTHPDPA-THth-THopt-in
Timor-LesteTL—pt-TLnotice-only
TogoTG—fr-TGnotice-only
TongaTO—ennotice-only
Trinidad and TobagoTT—ennotice-only
TunisiaTNDPA-TNar-TN, fr-TNgeneral-privacy-consent
TürkiyeTRKVKKtr-TRopt-in
TurkmenistanTM—tk-TMnotice-only
TuvaluTV—ennotice-only
UgandaUGDPA-UGengeneral-privacy-consent
UkraineUA—uk-UAnotice-only
United Arab EmiratesAEUAE-PDPL, DIFC-DPL, ADGM-DPRar-AEgeneral-privacy-consent
United KingdomUKUK-GDPR, PECRenopt-in
United StatesUSCCPA, CPRA, VCDPA, CPA-CO, CTDPA, UCPA, ICDPA-IA, ICDPA-IN, TIPA, MCDPA-MT, MCDPA-MN, OCPA, TDPSA, DPDPA-DE, NJDPA, NHPA, NDPA-NE, MODPA, KCDPA, RIDTPAen, es-USopt-out
UruguayUYLAW18331-UYes-UYgeneral-privacy-consent
UzbekistanUZ—uz-UZnotice-only
VanuatuVU—fr-VU, ennotice-only
VenezuelaVE—es-VEnotice-only
VietnamVNPDPD-VNvi-VNgeneral-privacy-consent
YemenYE—ar-YEnotice-only
ZambiaZMDPA-ZMengeneral-privacy-consent
ZimbabweZWDPA-ZWengeneral-privacy-consent

Regional overrides

Some countries route sub-nationally instead of by country alone — most notably the United States (state-level laws) and Canada (Quebec's Law 25). When a resolver returns a region, Consenti checks this table before falling back to the country's base group above.

CanadaQuebecQCopt-inQuebec — Law 25 (GDPR-style opt-in)
United StatesCaliforniaCAopt-out-strictCalifornia — CPRA/CCPA
United StatesVirginiaVAopt-outVirginia — VCDPA
United StatesColoradoCOopt-outColorado — CPA — sensitive data requires opt-in
United StatesConnecticutCTopt-outConnecticut — CTDPA
United StatesUtahUTopt-outUtah — UCPA
United StatesTexasTXopt-outTexas — TDPSA
United StatesDelawareDEopt-outDelaware — DPDPA
United StatesNew JerseyNJopt-outNew Jersey — NJDPA
United StatesOregonORopt-outOregon — OCPA
United StatesMinnesotaMNopt-outMinnesota — MCDPA
United StatesMarylandMDopt-outMaryland — MODPA
United StatesKentuckyKYopt-outKentucky — KCDPA
United StatesTennesseeTNopt-outTennessee — TIPA
United StatesNebraskaNEopt-outNebraska — NDPA
United StatesIowaIAopt-outIowa — ICDPA
United StatesIndianaINopt-outIndiana — ICDPA
United StatesMontanaMTopt-outMontana — MCDPA
United StatesNew HampshireNHopt-outNew Hampshire — NHPA
United StatesRhode IslandRIopt-outRhode Island — RIDTPA
ℹ️"Sensitive data requires opt-in" (Colorado) is a per-region carve-out, not a different compliance group — cookies tagged cpraCategory: 'sensitive' default to denied for that region while the rest of the group's cookies still default to granted. Only takes effect with a geoDataProvider that resolves a US state ('geoip', 'maxmind', or 'hosted-geoip-lite') — see the CCPA/CPRA guide for details.

Supported locales

188 locale codes appear across the map above (BCP 47, e.g. fr-CA, zh-CN). A profile's translations map can use any of these — or any locale at all; the map only reflects what each country typically needs. Resolution order at runtime: exact locale match → language prefix → defaultLocale.

af-ZAam-ETar-AEar-BHar-DJar-DZar-EGar-ILar-IQar-JOar-KMar-KWar-LBar-LYar-MAar-MRar-OMar-PSar-QAar-SAar-SDar-SYar-TDar-TNar-YEaz-AZbe-BYbg-BGbn-BDbn-INbs-BAca-ADcs-CZda-DKda-GLde-ATde-CHde-DEde-LIde-LUdv-MVdz-BTel-CYel-GRenes-ARes-BOes-CLes-COes-CRes-CUes-DOes-ECes-ESes-GQes-GTes-HNes-MXes-NIes-PAes-PEes-PRes-PYes-SVes-USes-UYes-VEet-EEfa-AFfa-IRfi-FIfil-PHfr-BEfr-BFfr-BIfr-BJfr-BLfr-CAfr-CDfr-CFfr-CGfr-CHfr-CIfr-CMfr-DJfr-DZfr-FRfr-GAfr-GFfr-GNfr-GQfr-HTfr-KMfr-LUfr-MAfr-MCfr-MGfr-MLfr-MUfr-NCfr-NEfr-PFfr-PMfr-SCfr-SNfr-TDfr-TGfr-TNfr-VUhe-ILhi-INhr-HRhu-HUhy-AMid-IDis-ISit-CHit-ITit-SMit-VAja-JPka-GEkk-KZkm-KHko-KPko-KRky-KGlo-LAlt-LTlv-LVmk-MKmn-MNms-BNms-MYms-SGmt-MTmy-MMnb-NOne-NPnl-BEnl-NLnl-SRpl-PLpt-AOpt-BRpt-CVpt-GWpt-MOpt-MZpt-PTpt-STpt-TLro-MDro-ROru-BYru-KGru-KZru-RUrw-RWsi-LKsk-SKsl-SIso-SOsq-ALsr-Latn-BAsr-Latn-MEsr-RSsv-SEsw-KEsw-TZta-INta-LKta-SGtg-TJth-THti-ERtk-TMtr-TRuk-UAur-PKuz-UZvi-VNzh-CNzh-HKzh-MOzh-MYzh-SGzh-TW