On-Premise
Server OCR SDK

SDK for ID scanning, face matching, and NFC chip reading that works within your company’s secure infrastructure.
Enterprise-Scale Performance
Handle large document volumes and thousands simultaneous requests with OCR technology optimized for demanding enterprise workloads.
Controlled Data Residency
Keep document images and extracted data on your on-premises server, without sending sensitive information to external OCR services.
Regulation-Ready Execution
Enhance compliance with international and local data protection standards.
Cross-Platform Deployment
Run the SDK across desktops, tablets, and smartphones in mobile applications and browsers.

Server OCR SDK for On-Premise Integration

Server OCR SDK for On-Premise Integration
  • OCR SDK runs on your organization’s standard server infrastructure without dedicated GPUs or additional hardware
  • ID scanning is fully automated, with no human operators (HITL), crowdsourcing, or Mechanical Turk involvement
  • After ID scanning, OCR SDK returns a set of structured data that can be automatically entered into corporate, accounting, and other internal systems
  • Your customers’ data never leaves your controlled environment and is never shared with OCR Studio or third parties

Server OCR SDK Capabilities

ID document scanning
ID document scanning
Extracts data from passports, national IDs, driver’s licenses, residence permits, and other documents of 4,000 templates
NFC chip reading
NFC chip reading
Reads the chip in any ICAO/ISO-compliant biometric passport or other eID
Bank card scanning
Bank card scanning
Captures card number, expiry date, cardholder name, and security elements from a webcam or mobile camera
Selfie ID verification
One-shot KYC
Matches the user’s face with the photo on their ID — runs entirely on the end-user’s device

Benefits of Server OCR by OCR Studio

  • Works seamlessly in iOS and Android applications as well as popular desktop and mobile browsers
  • Integrates with corporate, accounting, CRM, ERP, and other internal business systems
  • Supports extraction from images, video streams, scans, and screenshots
  • Extensive customer support: our experts help integrate On-Premise OCR SDK into your infrastructure
# Python
engine_instance = ocrstudiosdk.OCRStudioSDKInstance.CreateFromPath(<PATH_TO_CONFIGURATION_FILE>)
session = engine_instance.CreateSession(<SIGNATURE>,
  "{\"session_type\": \"document_recognition\", \"target_group_type\": \"default\", \"target_masks\": \"chn.passport.*\"}")
image = ocrstudiosdk.OCRStudioSDKImage.CreateFromFile(<PATH_TO_IMAGE>)
session.ProcessImage(image)

result = session.CurrentResult()
target = result.TargetByIndex(0)
item_it = target.ItemsBegin('string')
while not item_it.IsEqualTo(target.ItemsEnd('string')):
  name = item_it.Item().Name()
  value = item_it.Item().Value()
  item_it.Step()
// Java
OCRStudioSDKInstance engine_instance = OCRStudioSDKInstance.CreateFromPath(<PATH_TO_CONFIGURATION_FILE>);
OCRStudioSDKSession session = engine_instance.CreateSession(<SIGNATURE>,
  "{\"session_type\": \"document_recognition\", \"target_group_type\": \"default\", \"target_masks\": \"chn.passport.*\"}");
OCRStudioSDKImage image = OCRStudioSDKImage.CreateFromFile(<PATH_TO_IMAGE>);
session.ProcessImage(image);
OCRStudioSDKResult result = session.CurrentResult();
OCRStudioSDKTarget target = result.TargetByIndex(0);
for (OCRStudioSDKItemIterator item_it = target.ItemsBegin("string"); !item_it.IsEqualTo(target.ItemsEnd("string")); item_it.Step()) {
  String name = item_it.Item().Name();
  String value = item_it.Item().Value();
  }
// C#
ocrstudio.OCRStudioSDKInstance engine_instance = ocrstudio.OCRStudioSDKInstance.CreateFromPath(<PATH_TO_CONFIGURATION_FILE>);
ocrstudio.OCRStudioSDKSession session = engine_instance.CreateSession(<SIGNATURE>,
  "{\"session_type\": \"document_recognition\", \"target_group_type\": \"default\", \"target_masks\": \"chn.passport.*\"}");
ocrstudio.OCRStudioSDKImage image = ocrstudio.OCRStudioSDKImage.CreateFromFile(<PATH_TO_IMAGE>);
session.ProcessImage(image);

ocrstudio.OCRStudioSDKResult result = session.CurrentResult();
ocrstudio.OCRStudioSDKTarget target = result.TargetByIndex(0);
for (OCRStudioSDKItemIterator item_it = target.ItemsBegin("string"); !item_it.IsEqualTo(target.ItemsEnd("string")); item_it.Step()) {
  String name = item_it.Item().Name();
  String value = item_it.Item().Value();
  }
// C++
std::unique_ptr<ocrstudio::OCRStudioSDKInstance> engine_instance(ocrstudio::OCRStudioSDKInstance::CreateFromPath(<PATH_TO_CONFIGURATION_FILE>));
std::unique_ptr<ocrstudio::OCRStudioSDKSession> session(engine_instance->CreateSession(<SIGNATURE>,
  "{\"session_type\": \"document_recognition\", \"target_group_type\": \"default\", \"target_masks\": \"chn.passport.*\"}"));
std::unique_ptr<ocrstudio::OCRStudioSDKImage> image(ocrstudio::OCRStudioSDKImage::CreateFromFile(<PATH_TO_IMAGE>));
session->ProcessImage(*image);
const ocrstudio::OCRStudioSDKResult& result = session->CurrentResult();
const ocrstudio::OCRStudioSDKTarget& target = result.TargetByIndex(0);
for (auto item_it = target.ItemsBegin("string"); item_it != target.ItemsEnd("string"); item_it.Step()) {
  std::string name = item_it.Item().Name();
  std::string value = item_it.Item().Value();
  }
// JavaScript
importScripts("ocrstudiosdk_wasm.js")
const OCRSTUDIOSDK = await OCRStudioSDK(module)
instance = new OCRSTUDIOSDK.OCRStudioSDKInstance(
  "{ \"enable_lazy_initialization\": false, \"enable_delayed_initialization\": true, \"initialization_num_threads\": 1}"
)
const spawnedSession = instance.CreateSession(
  <SIGNATURE>, "{\"session_type\": \"document_recognition\", \"target_group_type\": \"default\", \"target_masks\": \"chn.passport.*\"}")
// <input type="file" id="file-selector"> must exist in HTML
fileSelector = document.querySelector("#file-selector")

fileSelector.addEventListener('change', async (event) => {
  const file = event.target.files[0];
  const { buffer, width, height } = await getImageBuffer(file);
  const rawData = new Uint8Array(buffer);
  let fileBufPtr = 0;
  const cap = Math.max(rawData.byteLength * 1.5, 8 * 1024 * 1024);
  fileBufPtr = OCRSTUDIOSDK._malloc(cap);
  OCRSTUDIOSDK.HEAPU8.set(rawData, fileBufPtr);
  const channels = rawData.byteLength / (height * width);
  const image = OCRSTUDIOSDK.CreateFromRawBuffer(fileBufPtr, rawData.byteLength, width, height, channels >= 3 ? rawData.byteLength / height : width, channels);
  spawnedSession.ProcessImage(image);
  const result = spawnedSession.CurrentResult();
});
For more information, please visit Developer section

Server OCR SDK Across Industries

Server OCR SDK Across Industries
Regulated Businesses
Run ID scanning inside your own infrastructure during KYC and meet stringent data privacy standards.
Server OCR SDK Across Industries
Age-Restricted Services
Add document-based age checks to online platforms, marketplaces, gaming services, and other age-restricted environments.
Server OCR SDK Across Industries
KYC providers
Enhance your product with on-premise ID scanning, NFC chip reading, face matching, and reliable document recognition across blur, glare, low light, imperfect framing, and other real-world capture conditions.
Server OCR SDK Across Industries
Banks & Fintech Companies
Automate ID data extraction and payment card scanning in both your mobile application and web-platform.
Server OCR SDK Across Industries
Government Agencies
Scan identity documents within your IT environment and speed up citizen services, public administration, licensing, and other government workflows.
Server OCR SDK Across Industries
Telecom Providers
Automate customer ID data extraction during SIM registration, service activation, contract management, and other large-scale customer operations.

More from the Blog

Zero-Trust ID Scanner for KYC: How Client-Side ID Scanning Closes the Data Exposure Gap
Your Regulation-Compliant KYC Is Not Enough to Protect Customer Data
ID Scanning with Arabic Support: the World’s First Browser-Based Recognition of Emirates ID, Qatar ID, and Saudi National ID

Frequently Asked Questions

What is Server OCR SDK? arrow icon

Server OCR SDK is an on-premise ID scanning technology designed to run within an organization’s own IT infrastructure. It enables centralized structured ID data extraction, face matching, NFC chip reading, and other OCR capabilities without relying on external recognition services.

Does Server OCR SDK run entirely within the organization’s infrastructure? arrow icon

Yes. The SDK can be deployed on the organization’s own servers, where document images and extracted data remain within the controlled IT environment. It runs on standard server hardware without requiring dedicated GPUs or additional specialized infrastructure.

Does Server OCR SDK support compliance with data protection requirements? arrow icon

Yes. By keeping sensitive data within the organization’s own infrastructure, Server OCR SDK can support compliance with data protection frameworks such as the GDPR, Brazil’s LGPD, UAE PDPL, Saudi Arabia’s PDPL, Qatar’s PDPPL, and other international and local privacy regulations.

What documents can I scan with Server OCR SDK? arrow icon

The SDK supports passport scanning, national ID cards scanning, driver’s licenses scanning, and residence permits scanning. In total, the SDK supports over 4,000 document templates issued in 240+ countries and territories. It can also be used for bank card scanning, barcode and QR code recognition, face matching, and NFC chip reading.

Does Server OCR SDK support NFC chip reading? arrow icon

Yes. Server OCR SDK can be combined with OCR Studio NFC chip reading technology. Data retrieved from the RFID/NFC chip can be cross-validated with information extracted from the visual inspection zone (VIZ) and machine-readable zone (MRZ) to identify inconsistencies between document data sources.

Which input formats does Server OCR SDK support? arrow icon

Server OCR SDK accepts photos, scanned images, screenshots, and video streams as input. It is built to work with imperfect source material, including skewed documents, reflections, uneven lighting, motion blur, partial crops, and other issues common in real-world document capture.

Can Server OCR SDK handle large document volumes? arrow icon

Yes. The SDK is designed for high-volume workflows and can handle multiple recognition requests within enterprise environments. This makes it suitable for organizations processing large document flows across branches, departments, customer channels, and internal systems.

Can Server OCR SDK be customized for my workflow? arrow icon

Yes. Server OCR SDK can be adapted to different document recognition workflows, including custom document sets, required data fields, output formats, and integration with CRM, ERP, accounting, and other enterprise systems.

Get in Touch With Us Today!

For comprehensive details about our complete
range of solutions and services.

Or contact our sales team:

sales@ocrstudio.ai

    * Required information
    By clicking the “Send request” button, you consent to data processing