Skip to main content

Overview

AnyCheck supports multiple verification types through integration with government databases and trusted third-party providers.

Identity Verification

KTP Verification

Verify Indonesian national ID cards (Kartu Tanda Penduduk). Required Fields:
  • NIK (16-digit ID number)
  • Full name
  • Date of birth
  • (Optional) Address for enhanced verification
Example:
{
  "service_id": "ktp-service-uuid",
  "configuration": {
    "nik": "1234567890123456",
    "name": "John Doe",
    "birth_date": "1990-01-01",
    "address": "Jakarta"
  }
}
Returns:
  • Verification status (verified/not verified)
  • Match score
  • Data from official registry
  • Discrepancies (if any)

NIK Validation

Validate NIK numbers against government database. Required Fields:
  • NIK (16-digit ID number)
Returns:
  • Valid/Invalid status
  • Associated data (if valid)
  • Registration location
  • Birth date validation

Document Verification

BPKB Verification

Verify vehicle registration documents (Buku Pemilik Kendaraan Bermotor). Required Fields:
  • Vehicle registration number
  • Owner name
  • Vehicle details (make, model, year)
Example:
{
  "service_id": "bpkb-service-uuid",
  "configuration": {
    "registration_number": "B1234XYZ",
    "owner_name": "John Doe",
    "vehicle_make": "Toyota",
    "vehicle_model": "Avanza",
    "year": "2020"
  }
}
Returns:
  • Ownership verification
  • Vehicle details
  • Registration status
  • Historical records

Land Certificate Verification

Verify land ownership certificates. Required Fields:
  • Certificate number
  • Owner name
  • Location details (province, city, district, subdistrict)
Example:
{
  "service_id": "land-cert-service-uuid",
  "configuration": {
    "certificate_number": "12345/2024",
    "owner_name": "John Doe",
    "province": "DKI Jakarta",
    "city": "Jakarta Selatan",
    "district": "Kebayoran Baru",
    "subdistrict": "Senayan"
  }
}
Returns:
  • Ownership verification
  • Land details (size, type, location)
  • Certificate status
  • Historical transactions

Compliance Checks

PEP Screening

Screen for Politically Exposed Persons. Required Fields:
  • Full name
  • Date of birth
  • Nationality
Example:
{
  "service_id": "pep-service-uuid",
  "configuration": {
    "full_name": "John Doe",
    "date_of_birth": "1990-01-01",
    "nationality": "Indonesian"
  }
}
Returns:
  • PEP status
  • Positions held
  • Risk level
  • Source information

Sanction List Screening

Check against international sanction lists. Required Fields:
  • Full name
  • Date of birth
  • (Optional) Additional identifiers
Returns:
  • Match status
  • Sanction details
  • Issuing authority
  • Effective dates

OCR-Based Verification

Document OCR

Extract and verify data from document images using Fintelite AI integration. Required Fields:
  • Document images (front, back if applicable)
  • Document type
Example:
{
  "service_id": "ocr-service-uuid",
  "configuration": {
    "document_type": "KTP",
    "images": {
      "front": "base64-encoded-image-or-url",
      "back": "base64-encoded-image-or-url"
    }
  }
}
Returns:
  • Extracted text and data
  • OCR confidence scores
  • Structured data fields
  • Fraud detection results (if enabled)

Service Availability

Check available services for your group:
curl https://api.anycheck.id/services \
  -H "Authorization: Bearer YOUR_TOKEN"
Response:
{
  "success": true,
  "data": [
    {
      "id": "service-uuid-1",
      "name": "KTP Verification",
      "category": "Identity",
      "description": "Verify Indonesian national ID cards",
      "price_per_verification": 1,
      "requires_files": false
    },
    {
      "id": "service-uuid-2",
      "name": "BPKB Verification",
      "category": "Assets",
      "description": "Verify vehicle registration",
      "price_per_verification": 2,
      "requires_files": true
    }
  ]
}

Service Categories

Identity

KTP, NIK, Passport validation

Assets

BPKB, land certificates, property

Compliance

PEP screening, sanctions, AML

Configuration Requirements

Each service has specific configuration requirements. Get service details:
curl https://api.anycheck.id/services/service-uuid \
  -H "Authorization: Bearer YOUR_TOKEN"
Response includes:
{
  "id": "service-uuid",
  "name": "KTP Verification",
  "required_fields": [
    {
      "field": "nik",
      "type": "string",
      "pattern": "^[0-9]{16}$",
      "description": "16-digit NIK number"
    },
    {
      "field": "name",
      "type": "string",
      "description": "Full name as on ID card"
    }
  ],
  "optional_fields": [...]
}

Forms and Templates

Some services provide pre-built forms with validation:
curl https://api.anycheck.id/services/service-uuid/forms \
  -H "Authorization: Bearer YOUR_TOKEN"
Use forms to:
  • Get field definitions
  • Validate input before submission
  • Display user-friendly interfaces

Service-Specific Features

Bank Statement Analysis

For services integrated with Fintelite AI:
{
  "service_id": "bank-statement-uuid",
  "configuration": {
    "statement_files": ["file-url-1", "file-url-2"],
    "analysis_type": "full",
    "date_range": {
      "from": "2024-01-01",
      "to": "2024-12-31"
    }
  }
}
Returns:
  • Transaction summary
  • Balance trends
  • Merchant analysis
  • Confidence scores

Custom Templates

Create custom verification templates for repeated use:
curl -X POST https://api.anycheck.id/templates \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Standard KYC Package",
    "services": [
      {
        "service_id": "ktp-uuid",
        "config_template": {...}
      },
      {
        "service_id": "npwp-uuid",
        "config_template": {...}
      }
    ]
  }'

Pricing

Verification costs vary by service:
Service TypeCreditsProcessing Time
KTP Verification15-15 seconds
BPKB Verification210-30 seconds
Land Certificate315-60 seconds
PEP Screening15-10 seconds
OCR Processing1-510-30 seconds

Best Practices

Validate configuration locally to avoid wasting credits:
function validateKTP(config) {
  if (!/^\d{16}$/.test(config.nik)) {
    throw new Error('Invalid NIK format');
  }
  if (!config.name || config.name.length < 3) {
    throw new Error('Name required');
  }
  // More validations...
}
Use the most specific service for your needs:
  • KTP Verification: For identity checks
  • NIK Validation: For quick NIK format validation
  • OCR + Verification: For document image processing
Some services may be temporarily unavailable:
const availability = await checkServiceAvailability(serviceId);

if (!availability.available) {
  // Queue for later or use alternative service
}

Next Steps