Full-Field Indonesia Vehicle Registration (STNK) OCR
Test for free with image upload! Accurately extract all structured data—including VIN, Plate, and Engine Details—from complex, two-part Indonesian STNK documents.

The Challenge: Two-Part Documents and Heavy Watermarks
The Indonesian vehicle registration (STNK - Surat Tanda Nomor Kendaraan) is uniquely challenging. It is typically printed on a highly watermarked paper and presented alongside a tax document (SKPD) in a two-part plastic sleeve. Users often upload photos where the document is folded, partially obscured, or suffering from severe background pattern interference. Standard OCR engines extract these background patterns as random noise, destroying data accuracy. Learn more about our robust capabilities on our Vehicle Registration OCR product page.
Noise Rejection & Semantic Mapping
StructOCR is specifically engineered to handle complex Southeast Asian documents. Our AI models dynamically reject STNK background security patterns and cleanly extract the foreground text. Our semantic Key-Value mapping intelligently separates the vehicle registration data from the adjacent tax data, capturing localized fields directly into our `localized.generic.unmapped_fields` object. Discover how this fits into broader Indonesian compliance workflows in our Vehicle Registration Solutions guide.
Live Demo: Vehicle Registration OCR
No registration required. Upload a file to test the extraction.
Drop files here or click to browse
JPG · PNG · WebP · up to 500 files · max 4.5 MB each
Core Industry Applications
Ride-Hailing Onboarding
Automate driver registration for massive platforms by instantly validating motorcycle and car STNK documents.
Two-Wheeler Financing
Accelerate loan approvals by extracting exact chassis and engine numbers from STNK uploads to verify collateral.
Digital Auto Insurance
Pre-fill insurance policies instantly by parsing the vehicle class and registration year directly from user smartphone photos.
Fleet & Logistics Compliance
Automate compliance checks and vehicle onboarding for corporate logistics companies, ensuring all fleet registration documents are valid and up-to-date.
Technical Specs
- Template-Free Architecture: Processes highly variable formats dynamically without needing manual bounding boxes.
- Dynamic Fallback Schema: Automatically extracts Indonesia-specific parameters into the `unmapped_fields` node.
- Format Support: Processes JPG, PNG, and WebP images up to 4.5MB.
- Free Testing: Start immediately with our interactive free image upload test in the dashboard.
Key Features
- Universal Fields: Extracts VIN, Plate, Make, Model, Year, and Color into standardized English nodes.
- Regional Field Mapping: Contextually identifies and groups unique regulatory codes and formats.
- Robust Visual Processing: Ignores holograms, Moiré patterns, and physical creases.
Integration & API Documentation
Easily integrate our full-field OCR API. For full technical details, visit our Developer API Documentation.
import requests
import base64
# 📸 Test for free with your own image upload: https://structocr.com/developers/vehicle-registration-ocr
with open("indonesia-stnk-full-ocr.jpg", "rb") as image_file:
base64_image = base64.b64encode(image_file.read()).decode('utf-8')
url = "https://api.structocr.com/v1/vehicle-registration"
headers = {
"x-api-key": "YOUR_API_KEY",
"Content-Type": "application/json"
}
payload = {
"img": base64_image
}
response = requests.post(url, headers=headers, json=payload)
result = response.json()
if result.get('success'):
data = result.get('data', {})
std = data.get('standardized', {})
print("✅ Standardized VIN:", std.get('vin'))
# Indonesia specific fields are captured in the generic fallback
loc = data.get('localized', {})
if 'generic' in loc and loc['generic'].get('unmapped_fields'):
unmapped = loc['generic']['unmapped_fields']
print("✅ Nomor Mesin:", unmapped.get('nomor_mesin'))
print("✅ Nomor Rangka:", unmapped.get('nomor_rangka'))Standardized + Generic JSON Output
Our API delivers a structured JSON response, separating universal vehicle specs and placing region-specific data into the generic fallback object.
{
"success": true,
"data": {
"document": {
"country_code": "ID",
"document_type": "VEHICLE_REGISTRATION",
"confidence_score": 0.98
},
"standardized": {
"vin": "SAMPLEVIN12345678",
"plate": {
"number": "ABC-123",
"formatted": "ABC 123"
},
"make_normalized": "Toyota",
"year": 2020
},
"localized": {
"generic": {
"unmapped_fields": {
"nomor_mesin": "JBK1E1234567",
"nomor_rangka": "MH1JBK111K1234567",
"warna": "Hitam"
}
}
}
}
}Frequently Asked Questions
How can I test the API before committing?
You can perform a free image upload test directly from our API documentation page or dashboard. Simply upload a sample document to see the JSON output instantly.
Does the API understand specific local formats?
Yes. While standard fields like VIN and Make are mapped globally, unique Indonesia specific labels are systematically captured into the `generic.unmapped_fields` node.
Can it read degraded or poor quality photos?
Yes, our neural network actively compensates for physical creases, low lighting, and smartphone camera glare.
Explore More Vehicle-registration Solutions
Global Vehicle Registration OCR API
Our flagship API for parsing complex global vehicle documents. Unified extraction for over 150+ countries with dynamic localization.
Full-Field Italy Vehicle Registration (Carta di Circolazione) OCR
Test our Italian Carta di Circolazione OCR API with a free image upload. Extract full fields including cryptic EU standard codes and VIN from folded registrations.
Full-Field Japan Vehicle Registration (Shaken-sho (車検証)) OCR
Test our Japan Shaken-sho (Vehicle Inspection Certificate) OCR API with a free image upload. Extract full fields including high-density Kanji, VIN, and chassis numbers.
Full-Field Mexico Vehicle Registration (Tarjeta de Circulación) OCR
Test our Mexican Tarjeta de Circulación OCR API with a free image upload. Extract full fields including VIN and REPUVE details across all 32 fragmented state formats.
Full-Field Netherlands Vehicle Registration (Kentekenbewijs) OCR
Test our Dutch Kentekenbewijs OCR API with a free image upload. Overcome severe plastic card holograms and glare to extract VIN and MRZ-style data.
Ride-Hailing Driver Onboarding Workflow Automation
Scale your ride-hailing or delivery platform globally. Automate driver background checks by instantly scanning vehicle registration documents.
Full-Field Saudi Arabia Vehicle Registration (Istimara) OCR
Test our Saudi Istimara OCR API with a free image upload. Extract full fields including the 9-digit sequence number, plate details, and VIN from bilingual registrations.
Full-Field South Africa Vehicle Registration (NaTIS Document / RC1) OCR
Test our South African NaTIS Document OCR API with a free image upload. Extract full fields including VIN, Tare, and GVM from A4 printed certificates.
Full-Field Spain Vehicle Registration (Permiso de Circulación) OCR
Test our Spanish Permiso de Circulación OCR API with a free image upload. Extract full fields including complex EU codes and VIN from green folded documents.
Full-Field Thailand Vehicle Registration (Blue Book) OCR
Test our Thailand Lem Tabian (Blue Book) OCR API with a free image upload. Extract full fields including Thai script, VIN, and engine numbers from complex vehicle registrations.
Full-Field UAE Vehicle Registration (Mulkiya) OCR
Test our UAE Mulkiya OCR API with a free image upload. Extract full fields including engine number, origin, vehicle class, and VIN from bilingual Arabic/English registrations.
Technical Comparisons & Integrations
Explore platform integrations and competitive analysis
Add Container OCR to Your Replit App in 5 Minutes
Step-by-step guide to integrating the StructOCR shipping container API into a Replit application. Build logistics and yard management tools using Replit Agent and Secrets.
Add Driver's License OCR to Your Replit App in 5 Minutes
Step-by-step guide to integrating the StructOCR Driver's License scanner API into a Replit application. Build car rental and mobility onboarding flows using Replit Agent and Secrets.
Add HIN OCR to Your Replit App in 5 Minutes
Step-by-step guide to integrating the StructOCR HIN (Hull Identification Number) scanner API into a Replit application. Build marine and boat management tools using Replit Agent and Secrets.
Add Invoice OCR to Your Replit App in 5 Minutes
Step-by-step guide to integrating the StructOCR invoice API into a Replit application. Build accounts payable and expense tracking tools using Replit Agent and Secrets.
Add National ID OCR to Your Replit App in 5 Minutes
Step-by-step guide to integrating the StructOCR National ID scanner API into a Replit application. Build KYC and identity verification flows using Replit Agent and Secrets.
Add Passport OCR to Your Replit App in 5 Minutes
Step-by-step guide to integrating the StructOCR Passport scanner API into a Replit application. Build travel, hospitality, and global KYC flows using Replit Agent and Secrets.
From tutorial to production in 5 minutes.
You've seen the code. Now get your API key, grab your 200 free credits, and see it work with your own images. No credit card required.