🏢 公司注册证书 OCR
1 ICper page
欢迎来到公司注册证书 OCR API,它是艾艾普科技(iApp Technology Co., Ltd.)提供的艾艾普通用文档 OCR 服务的一部分。该 API 可从泰国商务部(DBD)的公司文件中提取注册数据:包括หนังสือรับรองการจดทะเบียนห้างหุ้นส่วนบริษัท 和 ใบสำคัญแสดงการจดทะเบียนห้างหุ้นส่วนบริษัท,支持纸质和电子证书格式。
试用演示!
开始使用
-
先决条件
- 艾艾普科技(iApp Technology)的 API 密钥
- 文档文件:公司注册证书(หนังสือรับรอง / ใบสำคัญแสดงการจดทะเบียนบริษัท)
- 支持的文件格式:PDF、JPG、JPEG、PNG、WEBP
- 最大文件大小:50MB
-
快速入门
- 单个
POST请求,使用multipart/form-data格式 - 结构化 JSON 输出,包含每个字段的置信度分数
- 每个输入页面会在
docs中返回自己的条目,因此可以在一个请求中发送多个文档。
- 单个
-
主要功能
- 字段级提取,带置信度评分
- 通过
target_lang支持泰语和英语输出 - 可选的原始 OCR 文本输出,通过
return_ocr - 可处理照片和扫描的 PDF
-
安全与合规
- 符合 GDPR 和 PDPA
- 安全的 API 端点
- 处理后不保留数据
如何获取 API 密钥?
请访问 API 密钥管理 页面查看您现有的 API 密钥或申请新密钥。
API 端点
| 端点 | 方法 | 描述 | 费用 |
|---|---|---|---|
/ocr/v3/company-certificate/file/v3/store/ocr/company-certificate | POST | 从泰国商务部颁发的公司证书中提取注册数据 | 每页 1 IC |
两种形式是等效的。此端点没有 base64 变体——仅支持文件上传。
请求
请求头
| 头部 | 值 | 是否必填 |
|---|---|---|
apikey | 您的艾艾普 API 密钥 | 是 |
请求体 (multipart/form-data)
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
file | 文件(可重复) | — | 必填。 文档文件。PDF 页面会自动处理。 |
return_ocr | 布尔值 | false | 在响应中包含原始 OCR 文本。 |
target_lang | 字符串 | th | 提取值的语言:th 或 en。 |
include_confidence | 布尔值 | true | 包含每个字段的置信度分数(0.00–1.00)。 |
cURL
curl -X POST "https://api.iapp.co.th/ocr/v3/company-certificate/file" \
-H "apikey: YOUR_API_KEY" \
-F "file=@/path/to/document.pdf" \
-F "target_lang=th" \
-F "include_confidence=true"
响应
{
"docs": [
{
"message": "success",
"raw": {},
"processed": {
"document_type": "หนังสือรับรองการจดทะเบียนห้างหุ้นส่วนบริษัท",
"form_code": "สจ.5 000001",
"department": "สำนักงานทะเบียนหุ้นส่วนบริษัทกรุงเทพมหานคร กรมพัฒนาธุรกิจการค้า กระทรวงพาณิชย์",
"company_name": "บริษัท เอ บี ซี จำกัด",
"registration_number": "0105550000123",
"registration_date": "13 สิงหาคม 2556",
"issue_date": "21 เดือน พฤษภาคม พ.ศ. 2562",
"legal_status": "ได้จดทะเบียนเป็นนิติบุคคลตามประมวลกฎหมายแพ่งและพาณิชย์",
"registration_office": "สำนักงานทะเบียนหุ้นส่วนบริษัทกรุงเทพมหานคร",
"registrar_name": "นางสาวชลิดา ตัวอย่าง"
},
"confidence": {
"document_type": 0.95,
"form_code": 0.95,
"department": 0.95,
"company_name": 0.95,
"registration_number": 0.95,
"registration_date": 0.95
},
"process_ms": 4120
}
],
"docs_count": 1,
"process_ms": 4300
}
iapp-input-pages 响应头报告了计费页面的数量。
支持的字段
| 字段 | 类型 | 描述 |
|---|---|---|
| document_type | 字符串 | 文档类型(注册证书 / 登记证书) |
| form_code | 字符串 | 表格代码或文档编号,例如 พค. 0401 |
| department | 字符串 | 签发机构 |
| company_name | 字符串 | 法人名称 |
| registration_number | 字符串 | 13 位法人注册号 |
| registration_date | 字符串 | 注册日期 |
| issue_date | 字符串 | 文件签发日期 |
| legal_status | 字符串 | 法律地位声明 |
| registration_office | 字符串 | 登记注册处 |
| registrar_name | 字符串 | 签署注册官姓名 |
错误处理
| 状态 | 含义 |
|---|---|
| 400 | 不支持的文件扩展名,或文件大小超过 50MB |
| 401 | 缺少或无效的 apikey |
| 402 | 信用余额不足 |
| 404 | URL 中的文档类型未知 |
| 422 | 请求未附加文件 |
| 500 | 处理错误 — 响应中包含错误代码,请在联系支持时引用 |
代码示例
Python
import requests
url = "https://api.iapp.co.th/ocr/v3/company-certificate/file"
headers = {"apikey": "YOUR_API_KEY"}
files = {"file": open("document.pdf", "rb")}
data = {"target_lang": "th", "include_confidence": "true"}
response = requests.post(url, headers=headers, files=files, data=data)
result = response.json()
print(result["docs"][0]["processed"])
print(result["docs"][0]["confidence"])
JavaScript
const form = new FormData();
form.append("file", fileInput.files[0]);
form.append("target_lang", "th");
form.append("include_confidence", "true");
const res = await fetch("https://api.iapp.co.th/ocr/v3/company-certificate/file", {
method: "POST",
headers: { apikey: "YOUR_API_KEY" },
body: form,
});
const result = await res.json();
console.log(result.docs[0].processed);
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.iapp.co.th/ocr/v3/company-certificate/file");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["apikey: YOUR_API_KEY"]);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
"file" => new CURLFile("/path/to/document.pdf"),
"target_lang" => "th",
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Java
OkHttpClient client = new OkHttpClient();
RequestBody body = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("file", "document.pdf",
RequestBody.create(new File("/path/to/document.pdf"),
MediaType.parse("application/pdf")))
.addFormDataPart("target_lang", "th")
.build();
Request request = new Request.Builder()
.url("https://api.iapp.co.th/ocr/v3/company-certificate/file")
.addHeader("apikey", "YOUR_API_KEY")
.post(body)
.build();
try (Response response = client.newCall(request).execute()) {
System.out.println(response.body().string());
}
Swift
let url = URL(string: "https://api.iapp.co.th/ocr/v3/company-certificate/file")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("YOUR_API_KEY", forHTTPHeaderField: "apikey")
let boundary = UUID().uuidString
request.setValue("multipart/form-data; boundary=\(boundary)",
forHTTPHeaderField: "Content-Type")
var data = Data()
let fileData = try Data(contentsOf: URL(fileURLWithPath: "/path/to/document.pdf"))
data.append("--\(boundary)\r\n".data(using: .utf8)!)
data.append("Content-Disposition: form-data; name=\"file\"; filename=\"document.pdf\"\r\n\r\n".data(using: .utf8)!)
data.append(fileData)
data.append("\r\n--\(boundary)--\r\n".data(using: .utf8)!)
URLSession.shared.uploadTask(with: request, from: data) { responseData, _, _ in
if let responseData, let json = String(data: responseData, encoding: .utf8) {
print(json)
}
}.resume()
Kotlin
val client = OkHttpClient()
val body = MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart(
"file", "document.pdf",
File("/path/to/document.pdf").asRequestBody("application/pdf".toMediaType())
)
.addFormDataPart("target_lang", "th")
.build()
val request = Request.Builder()
.url("https://api.iapp.co.th/ocr/v3/company-certificate/file")
.addHeader("apikey", "YOUR_API_KEY")
.post(body)
.build()
client.newCall(request).execute().use { response ->
println(response.body?.string())
}
Dart
import 'package:http/http.dart' as http;
final request = http.MultipartRequest(
'POST',
Uri.parse('https://api.iapp.co.th/ocr/v3/company-certificate/file'),
);
request.headers['apikey'] = 'YOUR_API_KEY';
request.fields['target_lang'] = 'th';
request.files.add(
await http.MultipartFile.fromPath('file', '/path/to/document.pdf'),
);
final response = await request.send();
print(await response.stream.bytesToString());
限制与最佳实践
限制
- 单次请求最大文件大小 50MB
- 支持的格式:PDF、JPG、JPEG、PNG、WEBP
- 准确性取决于图像质量 — 严重损坏的扫描件、眩光和手写体覆盖印刷值会降低字段级准确性
- 提取仅限于上面列出的字段
最佳实践
- 如果有原始 PDF,请优先使用原始 PDF 而非照片
- 拍摄整个文档,保持正面且光线均匀
- 扫描件使用至少 300 DPI
- 检查每个字段的
confidence分数,并将低置信度值路由到人工审核 - 在支持的情况下,一次请求发送多个文档以减少往返次数
准确性与性能
字段级提取准确性在内部 ChindaOCR-M3 黄金评估数据集上进行测量 — 对真实泰国文档(包括低分辨率照片和部分被手写体遮挡的账单)进行视觉重新验证的标签。
| 文档类型 | 文档数 | 字段数 | 准确性 |
|---|---|---|---|
| 公司注册证书 | 6 | 35 | 100% |
| 总体,所有六种文档类型 | 25 | 147 | 98.6% |