Indonesian Vehicle Registration (STNK) OCR
Automate driver onboarding and auto financing in Southeast Asia's largest market. Accurately extract the Chassis Number (Nomor Rangka) from faded, dot-matrix printed STNK certificates.

The Disaster of Dot-Matrix Typography
Digitizing the Indonesian Surat Tanda Nomor Kendaraan (STNK) presents a unique optical nightmare: legacy hardware. Today, a massive volume of STNK certificates in Indonesia are still printed using old-school dot-matrix printers. This means the critical Chassis Number (Nomor Rangka) is not a solid, continuous line of ink, but rather a collection of disconnected dots. When these dots fade, misalign, or overlap with the complex anti-counterfeiting security patterns on the paper, standard AI vision models and LLMs fail dramatically. They are trained on continuous typography and simply cannot 'connect the dots.' To see how our engine conquers severe typographical distortion, explore our core OCR product capabilities.
Dot-Reconstruction & Background Bypassing
StructOCR is purpose-built to handle the raw reality of Southeast Asian documentation as a specialized module within our Automotive VIN OCR suite. Our engine utilizes a proprietary dot-interpolation algorithm that mathematically reconstructs fragmented, dot-matrix characters back into solid alphanumeric strings. Simultaneously, adaptive thresholding filters out the heavy security watermarks behind the text. By enforcing strict ISO 3779 validation, we guarantee that the extracted Nomor Rangka is structurally flawless, even if the original print is severely faded.
Live Demo: VIN Barcode Scanner
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 in Indonesia
Ride-Hailing Driver Onboarding
Scale operations for platforms like Gojek and Grab. Instantly verify driver vehicle assets by scanning user-uploaded photos of their STNK cards, eliminating manual review queues. Get 200 free credits to test your own local documents.
Auto Finance & Consumer Loans
Accelerate multi-finance loan approvals. Automatically digitize the STNK to secure exact vehicle collateral data (Nomor Rangka) instantly. Scaling your fintech operations? View our flexible API pricing plans.
Digital Insurance Underwriting
Provide frictionless quoting for two-wheelers and four-wheelers. Allow customers to snap a photo of their faded STNK to automatically pre-fill policy details without typing a single dot-matrix character.
Used Vehicle Marketplaces
Speed up dealer and C2B inventory intake. Scan paper STNKs to automatically conduct background checks and pull BPKB matching data based on the extracted chassis number.
Technical Specs
- Dot-Matrix Interpolation: Advanced neural networks trained specifically to recognize fragmented, non-continuous printed characters.
- Watermark Suppression: Adaptive thresholding cleanly separates dot-matrix ink from complex official STNK background patterns.
- Validation: Built-in ISO 3779 rules ensure accurate reconstruction of ambiguous dots (e.g., distinguishing an '8' from a 'B').
- Data Privacy: Zero data retention (SOC2 Compliant).
Key Features
- Nomor Rangka: Perfect extraction of the standard 17-character VIN.
- Two-Wheeler & Four-Wheeler Support: Handles STNK layouts for both motorcycles (motor) and cars (mobil).
- Format Support: Accepts raw Base64 or direct file uploads (JPG, PNG, WebP up to 4.5MB).
Integration & AI Prompts
Don't let dot-matrix printers break your onboarding funnel. Integrate our API directly or copy the prompt below into Cursor or v0 to generate your React frontend.
import requests
import base64
# 💰 Save 30%+ vs competitors. Get 200 free credits instantly:
# 👉 https://structocr.com/register
# 1. Prepare Base64 Image of the Indonesian STNK
with open("indonesian_stnk_document.jpg", "rb") as image_file:
base64_image = base64.b64encode(image_file.read()).decode('utf-8')
url = "https://api.structocr.com/v1/vin"
headers = {
"x-api-key": "YOUR_API_KEY",
"Content-Type": "application/json"
}
payload = {
"img": base64_image
}
try:
print("Scanning Indonesian STNK Document...")
response = requests.post(url, headers=headers, json=payload)
result = response.json()
if result.get('success'):
data = result['data']
print("✅ Extraction Successful!")
print(f"VIN (Nomor Rangka): {data.get('vin')}")
print(f"Confidence: {data.get('confidence')}")
else:
print(f"❌ Extraction Failed: {result.get('error')} - {result.get('message')}")
except Exception as e:
print(f"An error occurred: {e}")Standardized JSON Output
Our API acts as a digital bridge, turning faded, disconnected dots on a piece of paper into a highly confident, database-ready alphanumeric JSON payload.
{
"success": true,
"data": {
"vin": "MHFKGN41X00123456",
"confidence": "High",
"carrier_type": "document"
}
}Frequently Asked Questions
Can the API read STNK documents where the printer ink was running out and characters are very faint?
Yes. Our dot-matrix reconstruction engine uses structural inference. Even if some dots are missing due to faded printer ribbons, the system relies on the remaining character topology and strict VIN validation rules to deduce the correct alphanumeric output.
Does this work for both motorcycles (sepeda motor) and cars in Indonesia?
Absolutely. Indonesia has a massive two-wheeler market. The API is entirely layout-agnostic and relies on contextual keywords (like 'Nomor Rangka') and structural pattern matching, making it perfectly effective for both motorcycle and automobile STNKs.
How does the system handle the complex security background on the STNK paper?
STNK paper includes heavy security patterns that confuse standard OCR. We apply adaptive color-channel separation and thresholding as a pre-processing step, which effectively 'deletes' the background watermark, leaving only the printed dot-matrix text for the engine to read.
Explore More Automotive VIN OCR Solutions
Universal VIN OCR API Solution
Our flagship API for automated vehicle identification. Works across windshields, documents, and physical plates with 99% accuracy.
Transport & Port Yard Window Label VIN OCR
Extract 17-character VINs from tiny transport labels on tinted vehicle windows. High-accuracy OCR that conquers distance, dark glass reflections, and heavy barcodes.
Metal Data Plate VIN OCR
Extract 17-character VINs directly from engraved or stamped metal vehicle data plates. High-accuracy OCR that conquers metal glare, low contrast, and physical wear.
Mexican Vehicle Registration (Tarjeta de Circulación) OCR
Extract 17-character VINs from highly fragmented Mexican Tarjeta de Circulación documents. Template-free Spanish OCR designed for cross-border fleet management.
Monroney Sticker VIN Extraction
Extract 17-character VINs from massive Monroney window stickers. High-accuracy OCR that navigates dense feature lists, pricing tables, and EPA data.
Motorcycle Frame VIN OCR
Extract 17-character VINs from stamped motorcycle frames and steering headstocks. High-accuracy OCR that handles curved metal, cable occlusions, and rust.
Police Accident Report VIN Extraction
Extract 17-character VINs from scanned police crash reports. High-accuracy OCR that bypasses dense checkboxes, diagrams, and fax degradation.
Japanese Shaken & Export Certificate OCR
Extract JDM Chassis Numbers (車台番号) and standard VINs from Japanese Shaken and Export Certificates. Overcome dense Kanji and non-standard JDM formats with high-accuracy OCR.
Thai Vehicle Registration (Lem Tabian) VIN OCR
Extract 17-character VINs from Thai vehicle registration books (Lem Tabian). Advanced OCR designed to overcome Thai language boundary truncation and diacritic noise.
Trailer Chassis Plate VIN OCR
Extract 17-character VINs from extremely dirty, rusted, or painted trailer chassis data plates. High-accuracy OCR built for heavy-duty fleet operations.
UAE Vehicle Registration (Mulkiya) VIN OCR
Extract 17-character VINs (Chassis Numbers) from UAE Mulkiya registration cards. High-accuracy OCR that bypasses heavy watermarks and bilingual tabular layouts.
Technical Comparisons & Integrations
Explore platform integrations and competitive analysis
OpenALPR vs. StructOCR API for VIN Decoding
Why traditional License Plate Recognition (ALPR) engines are not suitable for scanning Vehicle Identification Numbers (VINs).
Add VIN OCR to Your Replit App in 5 Minutes
Step-by-step guide to integrating the StructOCR VIN scanner API into a Replit application. Build automotive and fleet tools using Replit Agent and Secrets.
Add VIN OCR to Your v0 App in 5 Minutes
Step-by-step guide to integrating the StructOCR VIN scanner API into a v0 by Vercel app. Build automotive and fleet tools with zero backend.
VIN Barcode Scanner vs. VIN OCR API: Which is Better for Mobile Apps?
Deciding between local VIN barcode scanners and cloud-based VIN OCR API for your mobile app? Learn why OCR is the required fallback for damaged or chassis-stamped VINs.
Apple Vision Framework / ML Kit vs. StructOCR VIN API
Why generic on-device text recognition frameworks fail at decoding VINs, and when to switch to a specialized automotive API.
Add VIN OCR to Your Bolt.new App in 5 Minutes
Step-by-step guide to integrating the StructOCR VIN scanner API into a Bolt.new app. Build automotive and fleet tools right in your browser.
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.