Skip to main content

What are Entities?

Entities are the core objects in gu1 that represent the subjects of your risk analysis. An entity can be a company, an individual, a transaction, or any custom type relevant to your business. Each entity contains:
  • Identity information (name, external ID, type)
  • Risk assessment (risk score, status)
  • Custom data (flexible JSON for your specific fields)
  • Relationships (connections to other entities)
  • Analysis results (AI-powered insights)
  • Timeline (history of changes and events)

Entity Types

Company

Corporate entities for KYB analysis

Person

Individual entities for KYC analysis

Transaction

Financial transactions for monitoring

Custom

Any custom entity type for your business

Entity Lifecycle

1

Creation

Entity is created via API with basic information and optional custom data
2

Enrichment

Additional data is added through updates or integrations
3

Analysis

AI-powered risk analysis is automatically generated
4

Rule Evaluation

Risk rules are applied to calculate risk score and generate alerts
5

Investigation

Alerts trigger investigations for manual review
6

Resolution

Entity status is updated based on investigation outcomes

Entity Status

Entities can have different statuses throughout their lifecycle:
StatusDescriptionUse Case
activeEntity is active and being monitoredNormal operation
inactiveEntity is no longer activeClosed accounts
under_reviewEntity is being investigatedAlert triggered
approvedEntity passed all checksLow risk
rejectedEntity failed compliance checksHigh risk
suspendedEntity temporarily suspendedPending information

Risk Scoring

Every entity has a risk score (0-100) calculated based on:
Machine learning models analyze entity behavior, patterns, and anomalies
Custom rules evaluate specific conditions and assign risk points
Sanctions lists, PEPs, adverse media screening results
Transaction patterns, account activity, and changes over time
Connected entities and their risk profiles
Risk Score Ranges:
  • 0-25: Low risk (green)
  • 26-50: Medium risk (yellow)
  • 51-75: High risk (orange)
  • 76-100: Critical risk (red)

Entity Data Structure

{
  "id": "a7c4c07f-a1f5-49d6-8c17-1577d0787a2e",
  "type": "company",
  "name": "Acme Corporation",
  "externalId": "TAX123456789",
  "country": "US",
  "riskScore": 35,
  "status": "active",
  "entityData": {
    "industry": "Technology",
    "annual_revenue": 5000000,
    "employees": 50,
    "incorporation_date": "2010-01-15",
    "beneficial_owners": [
      {
        "name": "John Doe",
        "ownership": 60,
        "isPEP": false
      }
    ],
    "compliance": {
      "kyb_completed": true,
      "sanctions_checked": true,
      "adverse_media_found": false
    }
  },
  "organizationId": "org_abc123",
  "createdAt": "2025-10-03T12:00:00Z",
  "updatedAt": "2025-10-03T14:30:00Z"
}

Core Fields

FieldTypeRequiredDescription
typestringYesEntity type (company, person, transaction, custom)
namestringYesEntity name
externalIdstringNoYour unique identifier for this entity
countrystringNoISO country code (e.g., “US”, “UK”)
entityDataobjectNoFlexible JSON for custom fields
riskScorenumberNoRisk score 0-100 (auto-calculated)
statusenumNoEntity status (default: “active”)

Custom Entity Data

The entityData field is a flexible JSON object where you can store any custom fields relevant to your use case: KYB Example:
{
  "entityData": {
    "tax_id": "12-3456789",
    "industry": "Financial Services",
    "annual_revenue": 10000000,
    "employees": 150,
    "incorporation_date": "2015-03-20",
    "website": "https://example.com",
    "beneficial_owners": [...],
    "licenses": [...]
  }
}
KYC Example:
{
  "entityData": {
    "date_of_birth": "1985-06-15",
    "nationality": "US",
    "occupation": "Software Engineer",
    "annual_income": 120000,
    "identity_verified": true,
    "pep_status": false,
    "documents": [...]
  }
}
Transaction Example:
{
  "entityData": {
    "amount": 50000,
    "currency": "USD",
    "sender_account": "ACC123",
    "receiver_account": "ACC456",
    "transaction_type": "wire_transfer",
    "purpose": "Business payment",
    "timestamp": "2025-10-03T10:30:00Z"
  }
}

Common Operations

Best Practices

Always set externalId to your internal identifier for easy reconciliation and updates
Use consistent entity type values across your organization (e.g., “company” vs “corporate”)
Always include ISO country codes for proper risk assessment and compliance checks
Organize entityData with consistent field names and nested objects for complex data
Use the updatedAt timestamp to detect changes and sync with your systems
Use bulk import for creating multiple entities (>10) to improve performance

Advanced Features

AI-Powered Analysis

Every entity can have AI-generated risk analysis:
POST /ai-analysis/entity/:entityId
Returns comprehensive analysis including:
  • Executive summary
  • Behavioral patterns
  • Risk factors identified
  • Recommendations
  • Confidence score
Learn more →

Entity Relationships

Connect entities to show ownership, transactions, or other relationships:
{
  "sourceEntityId": "entity_1",
  "targetEntityId": "entity_2",
  "relationshipType": "owns",
  "strength": 0.85
}

Document Attachments

Attach documents (ID cards, licenses, contracts) to entities:
POST /documents/entity/:entityId/upload
Learn more →

Example Workflows

Next Steps

1

Create Your First Entity

Follow the Create Entity guide to add an entity
2

Setup Data Mapping

Use Custom Schemas for structured imports
3

Configure Rules

Apply risk rules through the dashboard to calculate risk scores
4

Monitor & Act

Setup webhooks to receive alerts when risk scores change