Skip to main content

Compliance Reports

This guide shows how to generate a compliance report once all checks and alerts for a case have been resolved. The report provides a structured summary suitable for regulatory filing and internal audit.

Prerequisites

1

Get case details

Retrieve the case to confirm its current status and check progress.
curl -X GET "https://api.zenoo.com/v1/cases/cas_xyz789" \
  -H "Authorization: Bearer your-api-key"
Response:
{
  "token": "cas_xyz789",
  "type": "Onboarding",
  "status": "Closed",
  "priority": "Medium",
  "risk_tier": "Medium",
  "risk_score": 45,
  "open_alerts_count": 0,
  "entity": {
    "token": "ent_abc123",
    "name": "Acme Holdings Ltd",
    "type": "company"
  },
  "checks_summary": {
    "total": 6,
    "passed": 5,
    "referred": 1,
    "failed": 0,
    "waived": 0,
    "reused": 0
  },
  "due_date": "2026-03-02T10:00:00Z",
  "completed_at": "2026-02-16T11:35:00Z",
  "created_at": "2026-02-16T10:01:00Z"
}
2

Verify all alerts are resolved

Confirm there are no open alerts remaining on the case.
curl -X GET "https://api.zenoo.com/v1/cases/cas_xyz789/alerts?status=Open" \
  -H "Authorization: Bearer your-api-key"
The compliance report endpoint returns an error if any alerts remain open. Resolve all alerts before generating the report.
3

Generate the compliance report

Request the full compliance report. The report aggregates all case data, check results, alert resolutions, risk assessments, and audit trail entries into a single structured document.
curl -X GET "https://api.zenoo.com/v1/cases/cas_xyz789/compliance-report" \
  -H "Authorization: Bearer your-api-key"
Response:
{
  "case_reference": "AML-2026-0042",
  "external_reference": "YOUR-REF-2026-0042",
  "overall_verdict": "Pass",
  "generated_at": "2026-02-16T12:00:00Z",

  "entity": {
    "name": "Acme Holdings Ltd",
    "type": "company",
    "registration_number": "12345678",
    "jurisdiction": "GB",
    "verification_status": "Verified"
  },

  "screening": {
    "pep_status": "Cleared",
    "sanctions_status": "No Hit",
    "adverse_media_status": "No Hit",
    "provider": "WorldCheck",
    "completed_at": "2026-02-16T10:15:00Z"
  },

  "related_entities": [
    {
      "name": "Jane Smith",
      "role": "Director",
      "pep_status": "No Hit",
      "sanctions_status": "No Hit",
      "verification_status": "Verified"
    },
    {
      "name": "John Doe",
      "role": "UBO",
      "ownership_percentage": 75,
      "pep_status": "Cleared",
      "sanctions_status": "No Hit",
      "verification_status": "Verified"
    }
  ],

  "risk_assessment": {
    "overall_score": 45,
    "tier": "Medium",
    "customer_risk": { "score": 40, "tier": "Medium" },
    "geographic_risk": { "score": 30, "tier": "Low" },
    "product_risk": { "score": 55, "tier": "Medium" },
    "channel_risk": { "score": 25, "tier": "Low" },
    "factors": [
      {
        "dimension": "Customer",
        "factor": "UBO identified as former PEP",
        "severity": "Medium"
      },
      {
        "dimension": "Product",
        "factor": "Financial Services industry",
        "severity": "Medium"
      }
    ]
  },

  "checks_summary": [
    { "type": "Company Registry", "result": "Pass", "provider": "Kyckr" },
    { "type": "Company Screening", "result": "Pass", "provider": "WorldCheck" },
    { "type": "Director Screening (Jane Smith)", "result": "Pass", "provider": "WorldCheck" },
    { "type": "UBO Screening (John Doe)", "result": "Refer", "provider": "WorldCheck", "resolution": "Approved" },
    { "type": "Identity (John Doe)", "result": "Pass", "provider": "ZenooVerify" },
    { "type": "Directors Verification", "result": "Pass", "provider": "Kyckr" }
  ],

  "alerts_summary": [
    {
      "category": "PEP Match",
      "entity": "John Doe",
      "resolution": "Approved",
      "notes": "Former local councillor (2010-2014). Low risk position.",
      "resolved_by": "analyst@example.com",
      "resolved_at": "2026-02-16T11:30:00Z"
    }
  ],

  "compliance_metadata": {
    "cdd_completed": true,
    "cdd_completed_at": "2026-02-16T11:35:00Z",
    "edd_required": false,
    "reviewed_by": "analyst@example.com",
    "case_type": "Onboarding",
    "sla_met": true,
    "audit_log_count": 18
  }
}
4

Interpret the report sections

The compliance report contains six sections. Use them to drive your onboarding decision.

Section reference

SectionContains
entityPrimary entity details and verification status
screeningPEP, sanctions, and adverse media screening outcomes
related_entitiesDirectors, UBOs, shareholders with individual screening results
risk_assessment4-dimension risk score breakdown with contributing factors
checks_summaryEvery check executed with result and provider
alerts_summaryEvery alert generated with resolution, notes, and resolver
compliance_metadataCDD/EDD status, SLA compliance, reviewer, audit log count

Decision matrix

VerdictRisk TierRecommended Action
PassLowAuto-approve. Proceed with onboarding.
PassMediumApprove with enhanced monitoring schedule.
ReferMediumRoute to compliance analyst for manual review.
ReferHighRoute to senior compliance officer. Consider EDD.
FailAnyReject. Escalate to compliance team.
Store the full report JSON in your system for regulatory audit purposes. The case_reference and audit_log_count fields support traceability back to the immutable audit trail.

Export format

The compliance report can also be requested as a PDF for filing:
curl -X GET "https://api.zenoo.com/v1/cases/cas_xyz789/compliance-report?format=pdf" \
  -H "Authorization: Bearer your-api-key" \
  -o "compliance-report-AML-2026-0042.pdf"

Monitoring schedule

After onboarding is complete, set up ongoing review based on the risk tier:
Risk TierReview FrequencyMonitoring LevelRationale
HighEvery 6 monthsEnhanced screening + approvalHighest regulatory scrutiny. Frequent changes in sanctions lists and PEP databases.
MediumEvery 12 monthsEnhanced screening + reviewStandard CDD cycle. Aligns with most regulatory frameworks.
LowEvery 24 monthsStandard ongoing screeningReduced frequency appropriate for low-risk customers with stable profiles.
These intervals are recommendations. Your compliance program may require different schedules based on jurisdiction, customer type, or regulatory guidance.
Implement a review calendar that automatically schedules re-screening based on the risk tier returned in the compliance report. Use the next_review_date field from the compliance metadata to track when each customer is due.
Use case type Perpetual for ongoing monitoring cases and Review for periodic re-review cases. See Case Lifecycle Guide for details.

Next steps