|| "en_GB"
🏦

KYC Verification

Know Your Customer verification for financial services

Customer onboarding
Identity verification
Compliance checks

Overview

This guide shows you how to implement kyc verification using Scorika API. We'll cover the complete integration with code examples in multiple languages.

API Endpoints Used

  • /v1/check/company
  • /v1/check/sanctions
  • /v1/check/vat
  • /v1/check/iban

Supported Countries

Czech Republic, Slovakia, Poland, European Union, United Kingdom, United States

Step-by-Step Implementation

1Verify Company Identity

Start by verifying the company exists in the official registry:

curl -X POST https://api.scorika.com/v1/check/company \
  -H "X-Api-Key: sk_live_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"identifier": "27074358", "country": "CZ"}'

2Check Sanctions Lists

Screen the company against global sanctions lists:

Check Sanctions Lists
# Check sanctionssanctions_response = requests.post(  "https://api.scorika.com/v1/check/sanctions",  headers={"X-Api-Key": "sk_live_your_api_key"},  json={"name": company["company_name"], "country": "CZ"},  timeout=5)sanctions = sanctions_response.json()["data"]if sanctions["matches"]:  raise ValueError(f"Sanctions match: {sanctions['matches']}")

3Validate VAT Number

Verify the company's VAT number through EU VIES:

Validate VAT Number
# Validate VATvat_response = requests.post(  "https://api.scorika.com/v1/check/vat",  headers={"X-Api-Key": "sk_live_your_api_key"},  json={"vat_id": company.get("vat_id")},  timeout=5)vat = vat_response.json()["data"]if not vat["valid"]:  raise ValueError("Invalid VAT number")

4Complete KYC Workflow

Combine all checks into a complete KYC workflow:

Complete KYC Workflow
import requestsfrom typing import Dict, Anydef perform_kyc_verification(company_id: str, country: str) -> Dict[str, Any]:    """Complete KYC verification workflow."""    api_key = "sk_live_your_api_key"    base_url = "https://api.scorika.com"        results = {        "company_verified": False,        "sanctions_clear": False,        "vat_valid": False,        "errors": []    }        try:        # 1. Verify company        company_resp = requests.post(            f"{base_url}/v1/check/company",            headers={"X-Api-Key": api_key},            json={"identifier": company_id, "country": country},            timeout=5        )        company = company_resp.json()["data"]        results["company_verified"] = company["found"]                if not company["found"]:            results["errors"].append("Company not found")            return results                # 2. Check sanctions        sanctions_resp = requests.post(            f"{base_url}/v1/check/sanctions",            headers={"X-Api-Key": api_key},            json={"name": company["company_name"], "country": country},            timeout=5        )        sanctions = sanctions_resp.json()["data"]        results["sanctions_clear"] = len(sanctions.get("matches", [])) == 0                # 3. Validate VAT (if available)        if company.get("vat_id"):            vat_resp = requests.post(                f"{base_url}/v1/check/vat",                headers={"X-Api-Key": api_key},                json={"vat_id": company["vat_id"]},                timeout=5            )            vat = vat_resp.json()["data"]            results["vat_valid"] = vat["valid"]            except requests.Timeout:        results["errors"].append("API timeout - allow and log for review")    except Exception as e:        results["errors"].append(str(e))        return results# Usageresult = perform_kyc_verification("27074358", "CZ")print(result)

Best Practices

✓ Do

  • • Set timeout (3-5s) on all API calls
  • • Implement fallback for timeouts/errors
  • • Cache results when appropriate
  • • Log case_ids for debugging

✗ Don't

  • • Block critical flows on API errors
  • • Make sync calls without timeout
  • • Expose API keys in client-side code
  • • Store raw API responses with PII

Related Guides

Ready to Implement KYC Verification?

Get your API key in 30 seconds. No credit card required.

Get API Key →