Skip to main content

Country Risk

Geographic location is a key factor in compliance risk assessment. TrustGate provides comprehensive country risk management based on sanctions, corruption indices, and AML effectiveness.

Risk Categories

Sanctioned Countries

Countries with comprehensive sanctions programs:

CategoryCountriesRisk Impact
OFAC ComprehensiveCuba, Iran, North Korea, Syria, Crimea+50
OFAC SectoralRussia, Venezuela+30
EU SanctionsBelarus, Myanmar+35
UN SanctionsVarious+40

High-Risk Countries

Countries with elevated AML/CFT risk:

CategoryCriteriaRisk Impact
FATF High-RiskCountries on FATF blacklist+25
FATF Increased MonitoringCountries on FATF grey list+15
High CorruptionCPI score < 30+20
Tax HavenNon-cooperative jurisdictions+10

Current FATF Lists (October 2025)

Black List (Call for Action):

  • Iran (IR)
  • North Korea (KP)
  • Myanmar (MM)

Grey List (Increased Monitoring) - 21 Countries:

CountryCodeRisk Score
SyriaSY85
YemenYE80
South SudanSS75
LebanonLB70
VenezuelaVE70
DR CongoCD65
HaitiHT65
AlgeriaDZ60
AngolaAO60
BoliviaBO60
CameroonCM60
Cote d'IvoireCI60
Lao PDRLA60
VietnamVN60
British Virgin IslandsVG55
BulgariaBG55
KenyaKE55
NamibiaNA55
NepalNP55
MonacoMC50

Removed from Grey List (2025):

  • Philippines (Feb 2025)
  • Croatia, Mali, Tanzania (June 2025)
  • Burkina Faso, Mozambique, Nigeria, South Africa (Oct 2025)

API Endpoints

All jurisdiction risk endpoints are under /api/v1/jurisdiction-risk.

Get Country Risk Rating

curl -X GET "https://api.bytrustgate.com/api/v1/jurisdiction-risk/{country_code}" \
-H "Authorization: Bearer YOUR_API_KEY"

The country_code must be an ISO 3166-1 alpha-2 code (2 characters, e.g. US, RU, IR).

Response

{
"country_code": "RU",
"country_code_alpha3": "RUS",
"country_name": "Russia",
"risk_tier": "high",
"is_blocked": false,
"edd_required": true,
"block_reason": null,
"edd_reason": "OFAC sectoral sanctions and FATF increased monitoring",
"contributing_lists": [
{
"source": "ofac_sectoral",
"tier": "high",
"category": "sectoral_sanctions",
"version_id": "OFAC-SDN-2026-01"
},
{
"source": "fatf_grey",
"tier": "high",
"category": "greylist",
"version_id": "FATF-GREY-2026-01"
}
],
"list_versions_consulted": [...],
"effective_at": "2026-01-15T00:00:00Z",
"tenant_override": null
}

If a tenant-specific override has been approved, the tenant_override field will contain the override details.

List Countries by Risk Tier

curl -X GET "https://api.bytrustgate.com/api/v1/jurisdiction-risk/" \
-H "Authorization: Bearer YOUR_API_KEY"

By default this returns only blocked and high tier countries. Use query parameters to filter:

ParameterTypeDescription
tierstringFilter by risk tier: blocked, high, medium
include_mediumbooleanInclude medium-risk countries (default false)

Example -- list only high-risk countries:

curl -X GET "https://api.bytrustgate.com/api/v1/jurisdiction-risk/?tier=high" \
-H "Authorization: Bearer YOUR_API_KEY"

Response

{
"blocked": [],
"high": [
{
"country_code": "RU",
"country_name": "Russia",
"risk_tier": "high",
"is_blocked": false,
"edd_required": true,
"edd_reason": "OFAC sectoral sanctions",
"contributing_lists": [
{
"source": "ofac_sectoral",
"tier": "high",
"category": "sectoral_sanctions"
}
]
}
],
"medium": [],
"total_count": 12
}

List Blocked Countries

curl -X GET "https://api.bytrustgate.com/api/v1/jurisdiction-risk/blocked" \
-H "Authorization: Bearer YOUR_API_KEY"

Returns an array of countries where onboarding is prohibited (comprehensive sanctions, FATF blacklist).

Response

[
{
"country_code": "KP",
"country_name": "North Korea",
"risk_tier": "blocked",
"is_blocked": true,
"edd_required": false,
"block_reason": "OFAC comprehensive sanctions program",
"contributing_lists": [
{
"source": "ofac_comprehensive",
"tier": "blocked",
"category": "comprehensive_sanctions"
}
]
}
]

Get Active List Versions (Audit)

curl -X GET "https://api.bytrustgate.com/api/v1/jurisdiction-risk/lists/versions" \
-H "Authorization: Bearer YOUR_API_KEY"

Returns which versions of each source list are currently active, for audit trail purposes. Optionally filter by source:

curl -X GET "https://api.bytrustgate.com/api/v1/jurisdiction-risk/lists/versions?source=fatf_grey" \
-H "Authorization: Bearer YOUR_API_KEY"

Response

{
"active_lists": 5,
"lists": [
{
"source": "fatf_grey",
"source_authority": "FATF",
"version_id": "FATF-GREY-2026-01",
"country_count": 21,
"published_at": "2025-10-25T00:00:00Z",
"retrieved_at": "2026-01-15T12:00:00Z"
}
]
}

Tenant Overrides

Tenants can request country-specific risk overrides. Overrides require dual approval -- the approver must be a different user from the requester.

Request an Override

curl -X POST "https://api.bytrustgate.com/api/v1/jurisdiction-risk/overrides" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"country_code": "NG",
"override_tier": "high",
"override_blocked": false,
"override_edd_required": true,
"override_reason": "Elevated fraud risk in our customer base - internal analysis supports higher tier",
"expires_at": "2026-07-01T00:00:00Z"
}'
FieldTypeRequiredDescription
country_codestringYesISO 3166-1 alpha-2 code
override_tierstringNoOverride risk tier (blocked, high, medium, low)
override_blockedbooleanNoOverride blocked status
override_edd_requiredbooleanNoOverride EDD requirement
override_reasonstringYesJustification (minimum 10 characters)
expires_atdatetimeNoOptional expiry date for the override

The override is created with approval_status: "pending" and does not take effect until approved.

Response

{
"id": "a1b2c3d4-...",
"tenant_id": "...",
"country_code": "NG",
"country_name": "Nigeria",
"override_tier": "high",
"override_blocked": false,
"override_edd_required": true,
"override_reason": "Elevated fraud risk in our customer base - internal analysis supports higher tier",
"requested_by": "user-uuid-...",
"approved_by": null,
"approved_at": null,
"approval_status": "pending",
"rejection_reason": null,
"effective_at": "2026-01-20T14:30:00Z",
"expires_at": "2026-07-01T00:00:00Z",
"created_at": "2026-01-20T14:30:00Z",
"updated_at": "2026-01-20T14:30:00Z"
}

List Overrides

curl -X GET "https://api.bytrustgate.com/api/v1/jurisdiction-risk/overrides" \
-H "Authorization: Bearer YOUR_API_KEY"

Optionally filter by status:

curl -X GET "https://api.bytrustgate.com/api/v1/jurisdiction-risk/overrides?status=pending" \
-H "Authorization: Bearer YOUR_API_KEY"
ParameterTypeDescription
statusstringFilter by status: pending, approved, rejected

Approve or Reject an Override

curl -X POST "https://api.bytrustgate.com/api/v1/jurisdiction-risk/overrides/{override_id}/approve" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"approved": true
}'

To reject, provide a reason:

curl -X POST "https://api.bytrustgate.com/api/v1/jurisdiction-risk/overrides/{override_id}/approve" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"approved": false,
"rejection_reason": "Insufficient justification for lowering risk tier"
}'

Dual approval enforcement: The approving user must be different from the user who requested the override. Attempting to approve your own override returns a 403 error.

Residence vs Nationality

Different risk weights can apply:

FactorDescriptionTypical Weight
NationalityCountry of citizenshipHigher weight
ResidenceCurrent country of residenceStandard weight
Birth CountryCountry of birthLower weight
Address CountryProvided address locationStandard weight

Risk Data Sources

TrustGate aggregates data from:

SourceData Provided
OFACUS sanctions lists and programs
EU SanctionsEuropean Union consolidated list
UN SanctionsUnited Nations Security Council
FATFAML/CFT effectiveness ratings
Transparency InternationalCorruption Perception Index
Tax Justice NetworkFinancial secrecy rankings
World BankGovernance indicators

Updates and Monitoring

Automatic Updates

Country risk data updates automatically:

  • Sanctions lists: Real-time
  • FATF status: When published (typically quarterly)
  • CPI scores: Annually
  • Internal scoring: Monthly review

Country Risk Alerts

Get notified of changes by configuring a webhook:

curl -X POST https://api.bytrustgate.com/api/v1/webhooks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://your-system.com/webhooks",
"events": ["country_risk.updated", "country_risk.sanctions_change"],
"active": true
}'

Alert Payload

{
"event": "country_risk.updated",
"country_code": "VE",
"previous_risk_level": "high",
"new_risk_level": "critical",
"change_reason": "New OFAC sanctions program announced",
"effective_date": "2025-01-20",
"affected_applicants_count": 45
}

Using Workflow Rules with Country Risk

You can create workflow rules that automatically act on jurisdiction risk signals. See the Workflow Rules documentation for full details.

Example: auto-escalate applicants from high-risk countries by creating a rule via POST /api/v1/workflows/rules with conditions that check the applicant's country risk tier.

Best Practices

  1. Review regularly: Check country risk settings quarterly
  2. Document rationale: Record reasons for custom overrides (the override reason field is mandatory)
  3. Monitor changes: Subscribe to sanctions and FATF updates via webhooks
  4. Use dual approval: All overrides require a second reviewer by design
  5. Audit trail: Use the /jurisdiction-risk/lists/versions endpoint to verify which source list versions are active
  6. Train staff: Ensure team understands geographic restrictions

Next Steps