Skip to main content

Overview

AnyCheck supports 12 different verification services through integration with government databases and trusted third-party providers. Each service type has specialized processing capabilities designed for specific document and data validation needs.

Available Verification Services

Service Configuration Reference

KTP & PEP

Identity verification and PEP screening using Indonesian national ID cards.
{
  "configuration": {
    "verification_type": "KTP_PEP",
    "fraud_detection": false,
    "files": {
      "ktp_file": ["/path/ktp_front.jpg"]
    }
  }
}
Extracts data from KTP document, validates NIK/name, and checks PEP status.
Field Validations:
FieldTypeRequiredValidationDescription
verification_typestringYesMust be valid KTP typeKTP_PEP, NIK_PEP, PEP, NIK, or KTP_SELFIE
fraud_detectionbooleanNoOnly with file-based types (KTP_PEP, KTP_SELFIE)Enable fraud detection (requires KTP_PEP or KTP_SELFIE type)
full_namestringConditionalNon-empty when requiredRequired for NIK_PEP, PEP verification
nikstringConditionalExactly 16 digits, numericRequired for NIK_PEP, NIK verification
files.ktp_filearrayConditionalNon-empty arrayRequired for KTP_PEP, KTP_SELFIE verification
files.selfie_filearrayConditionalNon-empty arrayRequired for KTP_SELFIE verification

BPKB

Vehicle registration and ownership document verification.
{
  "configuration": {
    "region": "DKI_JAKARTA",
    "license_plate_region_code": "B",
    "license_plate_number": "1234",
    "license_plate_suffix": "ABC",
    "nik": "1234567890123456",
    "chassis_number_suffix": "12345"
  }
}
Field Validations:
FieldTypeRequiredValidationDescription
regionstringYesValid BPKB regionDKI_JAKARTA, BANTEN, JABAR, DIY, BALI
license_plate_region_codestringYes1-2 alphabetic charsLicense plate region code (B for DKI_JAKARTA, DK for BALI, AB for DIY)
license_plate_numberstringYes1-4 digitsLicense plate number
license_plate_suffixstringYes1-3 alphabetic charsLicense plate suffix letters
nikstringConditional16 digitsRequired for BALI region only
chassis_number_suffixstringConditional5 digitsRequired for BALI region only

Land Certificate

Property ownership and land title verification.
{
  "configuration": {
    "verification_type": "REGULAR",
    "verification_method": "FORM",
    "fraud_detection": false,
    "city_regency_id": "1234",
    "subdistrict_id": "5678",
    "nib": "12345"
  }
}
Verifies land certificate using NIB (land parcel number) lookup.
Field Validations:
FieldTypeRequiredValidationDescription
verification_typestringYesREGULAR or PROType of land verification
verification_methodstringConditionalFORM or UPLOADRequired for REGULAR type
fraud_detectionbooleanNoOnly with UPLOAD methodEnable fraud detection (requires UPLOAD method)
city_regency_idstringConditionalNon-emptyRequired for REGULAR + FORM
subdistrict_idstringConditionalNon-emptyRequired for REGULAR + FORM
nibstringConditionalExactly 5 digitsEnable for NIB-based lookup
entitlement_numberstringConditionalExactly 14 digitsEnable for entitlement number-based lookup
nikstringConditionalExactly 16 digitsRequired for PRO type
files.land_certificate_filearrayConditionalNon-empty arrayRequired for REGULAR + UPLOAD

City and Subdistrict

For REGULAR + FORM verifications, you need to obtain the correct city_regency_id and subdistrict_id:
curl -X GET "https://staging-api.anycheck.ai/forms/land-certificate/city-regencies" \
  -H "X-API-Key: YOUR_API_KEY"
Response:
[
  {
    "label": "Kabupaten Aceh Barat",
    "value": "c058176347484659b1384504f6461aff"
  },
  {
    "label": "Kabupaten Aceh Barat Daya",
    "value": "975F406101AFFC22E0400B0A921455E2"
  },
  {
    "label": "Kabupaten Aceh Besar",
    "value": "f546e0fd38514f60946e447115398e0c"
  },
  ...
]

Bank Statement

Comprehensive bank statement analysis with OCR, transaction categorization, and fraud detection.
{
  "fraud_detection": false,
  "configuration": {
    "files": {
      "bsa_file": ["/path/bank_statement.pdf"]
    }
  }
}
{
  "timestamp": "2024-03-15T14:30:00.000",
  "confidence_level_range": {
    "start": 50,
    "end": 90
  },
  "exchange_rate_config": {
    "type": "GLOBAL_OVERRIDE",
    "currencies": [],
    "exchange_rates": {}
  },
  "keyword_config": {
    "customer_keywords": [],
    "supplier_keywords": [],
    "group_company_keywords": [],
    "director_company_keywords": [],
    "operational_debit_keywords": [],
    "operational_credit_keywords": [],
    "non_operational_debit_keywords": [],
    "non_operational_credit_keywords": []
  },
  "atm_withdrawal_config": {
    "multiple_base": 50000,
    "max_withdrawal": 10,
    "if_detected_label": "WARNING",
    "if_not_detected_label": "PASS"
  },
  "large_transaction_config": {
    "threshold": 1000000000,
    "max_frequency": 5
  },
  "circular_transaction_config": {
    "window": "PRESET",
    "window_type": "SAME_DAY",
    "window_size_days": 30
  },
  "credit_discontinuity_config": {
    "max_no_credit_days": 7,
    "if_detected_label": "WARNING",
    "if_not_detected_label": "PASS"
  },
  "month_to_month_balance_config": {
    "drop_anomaly_percentage": 50,
    "if_detected_label": "WARNING",
    "if_not_detected_label": "PASS"
  },
  "back_to_back_transaction_config": {
    "interval_days": 3,
    "if_detected_label": "WARNING",
    "if_not_detected_label": "PASS"
  },
  "unusual_transaction_spike_config": {
    "transaction_amount_threshold": 300,
    "closing_balance_threshold": 85,
    "if_detected_label": "WARNING",
    "if_not_detected_label": "PASS"
  }
}
Note: This configuration is applied automatically and optimized for comprehensive bank statement analysis. You only need to provide the bank statement files in your request.Custom Configuration: You can override these defaults by including a timestamp field and your custom configuration parameters in the request:
{
  "configuration": {
    "files": {
      "bsa_file": ["/path/bank_statement.pdf"]
    },
    "timestamp": "2024-03-15T14:30:00.000",
    "large_transaction_config": {
      "threshold": 500000000,
      "max_frequency": 3
    },
    ... // other configurations
  }
}
When timestamp is included, any provided configuration parameters will override the corresponding default values.Configuration Parameters:
ParameterTypeValidationDescription
timestampstringISO 8601 formatRequired for custom config (YYYY-MM-DDTHH:mm:ss.SSS)
confidence_level_range.startnumber0-100OCR confidence minimum threshold
confidence_level_range.endnumber0-100OCR confidence maximum threshold
exchange_rate_config.typestringEnum"GLOBAL_OVERRIDE" or "DATE_RANGE_OVERRIDE"
keyword_config.*_keywordsarrayString arrayTransaction categorization keywords
large_transaction_config.thresholdnumberPositiveLarge transaction amount threshold (IDR)
large_transaction_config.max_frequencynumberPositiveMaximum allowed frequency
atm_withdrawal_config.multiple_basenumberPositiveATM withdrawal detection base amount
atm_withdrawal_config.max_withdrawalnumberPositiveMaximum withdrawal transaction count
*_config.if_detected_labelstringEnum"PASS" or "WARNING"
*_config.if_not_detected_labelstringEnum"PASS" or "WARNING"
Field Validations:
FieldTypeRequiredValidationDescription
fraud_detectionbooleanNo-Enable fraud detection analysis
files.bsa_filearrayYesNon-empty arrayBank statement files for analysis

Financial Statement

Detailed financial statement processing and ratio analysis.
{
  "configuration": {
    "fraud_detection": false,
    "files": {
      "fsa_file": ["/path/financial_statement.pdf"]
    }
  }
}
Field Validations:
FieldTypeRequiredValidationDescription
fraud_detectionbooleanNo-Enable fraud detection analysis
files.fsa_filearrayYesNon-empty arrayFinancial statement files for analysis

SLIK

Credit history and facility analysis.
{
  "configuration": {
    "fraud_detection": false,
    "template_type": "SLIK_DEFAULT",
    "files": {
      "slik_file": ["/path/slik_report.pdf"]
    }
  }
}
Standard SLIK analysis with credit facilities and summary information.
Field Validations:
FieldTypeRequiredValidationDescription
fraud_detectionbooleanNo-Enable fraud detection analysis
template_typestringYesValid SLIK templateSLIK_DEFAULT, SLIK_CREDIT_SCORING, SLIK_UNDERWRITING
files.slik_filearrayYesNon-empty arraySLIK report files for analysis

Payslip

Employee payslip data extraction and verification.
{
  "configuration": {
    "fraud_detection": false,
    "files": {
      "payslip_file": ["/path/payslip.pdf"]
    }
  }
}
Field Validations:
FieldTypeRequiredValidationDescription
fraud_detectionbooleanNo-Enable fraud detection analysis
files.payslip_filearrayYesNon-empty arrayPayslip files for processing

Vehicle Price

Market valuation for vehicles based on type, brand, and year.
{
  "configuration": {
    "vehicle_name": "Honda Beat",
    "vehicle_type": "MOTORCYCLE",
    "vehicle_year": 2025
  }
}
Field Validations:
FieldTypeRequiredValidationDescription
vehicle_typestringYesCAR or MOTORCYCLEType of vehicle
vehicle_namestringYesNon-emptyVehicle brand and model
vehicle_yearintegerNoValid yearManufacturing year of the vehicle

Company Check

Company and industry verification with document analysis.
{
  "configuration": {
    "verification_method": "UPLOAD",
    "verification_type": "AKTA_ONLY",
    "fraud_detection": false,
    "files": {
      "akta_file": ["/path/akta.pdf"]
    }
  }
}
Extracts company data from Akta document using OCR only.
Field Validations:
FieldTypeRequiredValidationDescription
verification_methodstringYesFORM or UPLOADMethod of providing company data
verification_typestringYesValid company typeAKTA_ONLY, AKTA_COMPANY_CHECK, AKTA_COMPANY_INDUSTRY_CHECK, COMPANY_CHECK_ONLY, COMPANY_INDUSTRY_CHECK, INDUSTRY_CHECK_ONLY
fraud_detectionbooleanNoOnly with UPLOAD methodEnable fraud detection (requires UPLOAD method)
company_namestringConditionalNon-emptyRequired for FORM method
files.akta_filearrayConditionalNon-empty arrayRequired for UPLOAD method

NIB Check

Business registration verification for Indonesian companies.
{
  "configuration": {
    "nib": "1234567890123"
  }
}
Field Validations:
FieldTypeRequiredValidationDescription
nibstringYesExactly 13 digits, numericIndonesian business registration number

Document Forensic

Advanced document authenticity and fraud detection analysis.
{
  "configuration": {
    "files": {
      "document_forensic_file": ["/path/document.pdf", "/path/document2.jpg"]
    }
  }
}
Field Validations:
FieldTypeRequiredValidationDescription
files.document_forensic_filearrayYesNon-empty arrayDocument files for fraud detection

Document Extraction

Custom document extraction using Fintelite AI templates.
{
  "configuration": {
    "template_id": "template-uuid",
    "files": {
      "document_extraction_file": ["/path/document.pdf"]
    }
  }
}
Field Validations:
FieldTypeRequiredValidationDescription
template_idstringYesValid UUIDFintelite AI template identifier
files.document_extraction_filearrayYesNon-empty arrayDocument files for extraction

Custom Templates

Custom templates define extraction schemas that can be used for consistent processing on Document Extraction service. Templates can be referenced by template_id (UUID or custom_id) in the verification configuration. Template Types
  • Custom Templates: User-created templates for specific document types
  • Prebuilt Templates: System-provided templates for common document formats
curl -X GET "https://staging-api.anycheck.ai/templates/custom?page_offset=0&page_size=10&search=" \
  -H "X-API-Key: YOUR_API_KEY"
Response:
{
  "total": 1,
  "items": [
    {
      "id": "template-uuid",
      "name": "Invoice Extractor",
      "description": "Extract invoice data with vendor details and line items",
      "custom_id": "INVOICE_V1",
      "type": "CUSTOM",
      "created_at": "2024-01-15T10:30:00Z",
      "updated_at": "2024-01-15T10:30:00Z"
    }
  ]
}
To see complete custom template management including creating, updating, and deleting templates, refer to the Custom Template API Reference.

Common Configuration Fields

File Upload

File-based services use the files configuration:
{
  "files": {
    "file_type_name": ["/path/file1.pdf", "/path/file2.jpg"]
  }
}
Files must be uploaded first using the /upload endpoint to get the path. See the verification submission step for complete upload process details. File Requirements:
  • Supported formats: PDF, PNG, JPG, JPEG, GIF, BMP, WEBP, HEIC, HEIF, TIFF, TIF, XLSX, XLS, CSV, TXT, JSON
  • Maximum file size: 50MB per file
  • Multiple files: Can upload multiple files in single request

Fraud Detection

File-based services support fraud detection for image and document formats:
{
  "fraud_detection": true // default: `false`
}
When fraud_detection is enabled, the response will include additional fraud_detection data for each processed file. The fraud detection output structure follows the same format as shown in the Document Forensic service output. Fraud Detection Requirements:
  • Supported formats: PDF, PNG, JPG, JPEG, GIF, BMP, WEBP, HEIC, HEIF, TIFF, TIF

Pricing

Verification costs vary by service:
Service TypeCredits
KTP & PEP5
BPKB5
Land Certificate5
Bank Statement1 per page
Financial Statement1 per page
SLIK1 per page
Payslip5
Vehicle Price5
Company Check5
NIB Check5
Document Forensic5
Document Extraction5

Best Practices

Always follow the exact field names and data types from the service documentation:Correct:
{
  "verification_type": "KTP_PEP",
  "fraud_detection": false,
  "files": {
    "ktp_file": ["/path/file.jpg"]
  }
}
Incorrect:
{
  "type": "ktp_pep",           // Wrong field name
  "fraud_detect": "false",     // Wrong field name and type
  "file": "/path/file.jpg"     // Wrong structure
}
Use the configuration examples in this documentation as your reference.
For file-based services, always upload files first using the /upload endpoint, then use the returned file URLs in your verification configuration:Step 1: Upload files
curl -X POST https://staging-api.anycheck.ai/upload \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "file_category=VERIFICATION" \
  -F "[email protected]" \
  -F "files=@bank_statement.pdf"
For password-protected PDFs:
curl -X POST https://staging-api.anycheck.ai/upload \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "file_category=VERIFICATION" \
  -F "files=@protected_statement.pdf" \
  -F "file_passwords=mypassword"
Response:
{
  "success": true,
  "data": {
    "object_id": "550e8400-e29b-41d4-a716-446655440000",
    "file_category": "VERIFICATION",
    "files": [
      {
        "path": "/uploads/2024/01/550e8400-e29b-41d4-a716-446655440000/ktp.jpg",
        "url": "https://storage.anycheck.ai/uploads/2024/01/550e8400-e29b-41d4-a716-446655440000/ktp.jpg",
        "page_count": 1
      }
    ]
  }
}
Step 2: Use file path in verification
{
  "service_id": "ktp-service-uuid",
  "folder_id": "folder-uuid",
  "configuration": {
    "verification_type": "KTP_PEP",
    "files": {
      "ktp_file": ["/uploads/2024/01/550e8400-e29b-41d4-a716-446655440000/ktp.jpg"]
    }
  }
}
Supported formats: PDF, PNG, JPG, JPEG, GIF, BMP, WEBP, HEIC, HEIF, TIFF, TIF, XLSX, XLS, CSV, TXT, JSON ✅ Max file size: 50MB per file ✅ Files expire: 24 hours after upload

Next Steps