Skip to main content

📗✍️ ระบบอ่านสมุดบัญชีธนาคารพร้อมตรวจจับลายเซ็น

📗✍️ Thai Bank Book OCR with Signature Detection

Version Status

ยินดีต้อนรับสู่ Bank Book OCR with Signature Detection API ผลิตภัณฑ์ AI ที่พัฒนาโดย บริษัท ไอแอพพ์เทคโนโลยี จำกัด API ของเราออกแบบมาเพื่อดึงข้อมูลจากสมุดบัญชีธนาคารและตรวจจับลายเซ็นด้วยความแม่นยำและความเร็วสูง

ทดลองใช้เลย!

Example Images (Click to try)

Example 1

Demo key is limited to 10 requests per day per IP
Click here to get your API key

เริ่มต้นใช้งาน

  1. ข้อกำหนดเบื้องต้น

    • API key จาก ไอแอพพ์เทคโนโลยี
    • รูปภาพสมุดบัญชีธนาคาร
    • รูปแบบที่รองรับ: JPEG, JPG, PNG
    • ขนาดไฟล์สูงสุด: 2MB
  2. เริ่มต้นอย่างรวดเร็ว

    • เวลาในการประมวลผลที่รวดเร็ว
    • การจดจำข้อความที่แม่นยำสูง
    • รองรับรูปแบบไฟล์หลายรูปแบบ
    • ความสามารถในการตรวจจับลายเซ็น
  3. คุณสมบัติหลัก

    • การดึงข้อมูลสมุดบัญชีธนาคาร
    • การตรวจจับและตรวจสอบลายเซ็น
    • รองรับธนาคารหลายแห่ง
    • การจดจำที่แม่นยำสูง
  4. ความปลอดภัยและการปฏิบัติตามกฎระเบียบ

    • ปฏิบัติตาม GDPR และ PDPA
    • ไม่มีการเก็บรักษาข้อมูลหลังจากการประมวลผล
วิธีการรับ API Key?

กรุณาเยี่ยมชม iApp AI Portal เพื่อดู API key ที่มีอยู่ของคุณหรือขอ API key ใหม่

คุณสมบัติและความสามารถ

คุณสมบัติหลัก

Bank Book OCR API ให้ความสามารถที่แข็งแกร่งในการดึงและจดจำข้อมูลสำคัญจากรูปภาพสมุดบัญชีธนาคาร ด้านล่างนี้คือภาพรวมของคุณสมบัติต่างๆ

ความสามารถหลัก

  • การจดจำชื่อธนาคาร: ดึงชื่อเต็มของธนาคาร รวมถึงตัวย่อและรหัส
  • การจดจำเลขที่บัญชี: ตรวจจับและดึงเลขที่บัญชีธนาคารได้อย่างแม่นยำ
  • การจดจำชื่อบัญชี: ดึงชื่อของผู้ถือบัญชี
  • การจดจำสาขาธนาคาร: ระบุชื่อสาขาที่เกี่ยวข้องกับบัญชีธนาคาร
  • การตรวจจับลายเซ็น: จดจำการมีอยู่ของลายเซ็นบนเอกสาร
  • การให้คะแนนความมั่นใจ: ให้เปอร์เซ็นต์ระดับความมั่นใจสำหรับแต่ละฟิลด์ที่จดจำได้

ธนาคารที่รองรับ

API รองรับธนาคารยอดนิยมหลายแห่งในประเทศไทย:

  • SCB (ธนาคารไทยพาณิชย์)
  • ธนาคารกรุงเทพ
  • ธนาคารกรุงไทย
  • ธนาคารกสิกรไทย
  • ธนาคารกรุงศรีอยุธยา
  • ธนาคารทหารไทยธนชาต

ตัวอย่าง

คำขอ:

ตัวอย่างภาพ Bank Book with Signature OCR Example

curl --location 'https://api.iapp.co.th/book-bank-ocr/file' \
--header 'apikey: {{YOUR API KEY}}' \
--form 'file=@"{YOUR UPLOADED FILE}"'

การตอบสนอง:

{
"bank_book_results": {
"accountType": "null",
"account_name": "XXXXX XXXXXXXคุณ",
"account_number": "90XXXXXX61",
"bank_branch": "มหาวิทยาลัยธรรมศาสตร์ ท่าพระจันทร์",
"bank_name": "กรุงเทพ (BBL)",
"file_name_bookbank": "1376070230-image3-o"
},
"confidence": "64.43",
"inference_time(s)": "0.478",
"message": "Success",
"reason_codes": {
"accountType": { "code": 1, "message": "Success" },
"account_name": { "code": 1, "message": "Success" },
"account_number": { "code": 1, "message": "Success" },
"bank_branch": { "code": 1, "message": "Success" },
"bank_name": { "code": 1, "message": "Success" },
"file_name_bookbank": { "code": 1, "message": "Success" },
"signature": { "code": 1, "message": "Success" }
},
"signature": "Detected",
"status": 200
}

ข้อมูลอ้างอิง API

จุดสิ้นสุด

POST https://api.iapp.co.th/book-bank-ocr/file

พารามิเตอร์คำขอ

ส่วนหัว

คีย์จำเป็นคำอธิบาย
apikeyใช่API key ของคุณสำหรับการตรวจสอบสิทธิ์

เนื้อหา (Form-Data)

คีย์ชนิดจำเป็นคำอธิบาย
fileไฟล์ใช่ไฟล์ที่จะอัปโหลดสำหรับ OCR ตรวจสอบให้แน่ใจว่าระบุเส้นทางไฟล์อย่างถูกต้อง

พารามิเตอร์การตอบสนอง

วัตถุการตอบสนองหลัก

คีย์ชนิดคำอธิบาย
bank_book_resultsวัตถุประกอบด้วยข้อมูลที่ดึงมาจากสมุดบัญชีธนาคาร
confidenceสตริงระดับความมั่นใจของผลลัพธ์ OCR แสดงเป็นเปอร์เซ็นต์
inference_time(s)สตริงเวลาที่ใช้ในการประมวลผลคำขอ OCR เป็นวินาที
messageสตริงข้อความสถานะของคำขอ (เช่น "Success")
reason_codesวัตถุรหัสเหตุผลโดยละเอียดสำหรับแต่ละฟิลด์ที่ดึงมา
signatureสตริงสถานะของการตรวจจับลายเซ็น (เช่น "Detected")
statusจำนวนเต็มรหัสสถานะ HTTP ของการตอบสนอง (เช่น 200 สำหรับความสำเร็จ)

วัตถุผลลัพธ์สมุดบัญชีธนาคาร

คีย์ชนิดคำอธิบาย
accountTypeสตริงชนิดของบัญชีธนาคาร (เช่น "Savings" หรือ "null" ถ้าไม่ทราบ)
account_nameสตริงชื่อของผู้ถือบัญชี
account_numberสตริงเลขที่บัญชีธนาคาร
bank_branchสตริงชื่อสาขาธนาคาร
bank_nameสตริงชื่อเต็มของธนาคาร รวมถึงตัวย่อและรหัส
file_name_bookbankสตริงชื่อไฟล์ของสมุดบัญชีธนาคารที่อัปโหลด

วัตถุรหัสเหตุผล

แต่ละฟิลด์ในวัตถุ bank_book_results มีรหัสเหตุผลที่เกี่ยวข้องซึ่งระบุความสำเร็จหรือความล้มเหลว

ฟิลด์คีย์ชนิดคำอธิบาย
ชนิดบัญชีaccountTypeวัตถุรหัสและข้อความสำหรับชนิดบัญชี
ชื่อบัญชีaccount_nameวัตถุรหัสและข้อความสำหรับชื่อบัญชี
เลขที่บัญชีaccount_numberวัตถุรหัสและข้อความสำหรับเลขที่บัญชี
สาขาธนาคารbank_branchวัตถุรหัสและข้อความสำหรับสาขาธนาคาร
ชื่อธนาคารbank_nameวัตถุรหัสและข้อความสำหรับชื่อธนาคาร
ชื่อไฟล์file_name_bookbankวัตถุรหัสและข้อความสำหรับชื่อไฟล์
ลายเซ็นsignatureวัตถุรหัสและข้อความสำหรับการตรวจจับลายเซ็น

ข้อความแสดงข้อผิดพลาดของ API

รหัสเหตุผล

รหัสสถานะข้อความสถานะคำอธิบาย
1passมั่นใจในเนื้อหาที่อ่านได้
0manual checkไม่มั่นใจในเนื้อหาที่อ่านได้ รอการตรวจสอบด้วยตนเอง

รหัสเหตุผลลายเซ็น

รหัสสถานะข้อความสถานะ
1ไม่พบลายเซ็น
2เงา/พื้นหลัง
3พบภาพหลายภาพ
4อื่นๆ (ไม่ระบุ)

ข้อความแสดงข้อผิดพลาดทั่วไปของ API

รหัสสถานะข้อความสถานะคำอธิบาย
404REQUESTED_URL_NOT_FOUNDไม่พบเส้นทาง API ในคำขอ
413FILE_IS_TOO_LARGE: (มากกว่า 2 MB)ขนาดไฟล์ใหญ่เกินไป
416METHOD_NOT_ALLOWEDชื่อวิธีการ (GET, POST) ใน URL ไม่ถูกต้อง
427LONG_TIME_TO_PROCESSเซิร์ฟเวอร์กำลังประมวลผลเป็นเวลานาน
428LONG_TIME_TO_REQUESTไคลเอ็นต์กำลังรอคิวเป็นเวลานาน
461NO_FILE_ATTACHEDไม่มีไฟล์แนบ
462ATTACH_ONE_IMAGE_AT_A_TIMEภาพป้อนข้อมูลหลายภาพ
560

SERVER_IS_BUSY:

(โปรดลองใหม่อีกครั้งในอีกไม่กี่วินาที)

เซิร์ฟเวอร์กำลังทำงานกับคำขอจำนวนมาก

ตัวอย่างโค้ด

Python

import requests

url = "https://api.iapp.co.th/book-bank-ocr/file"

payload = {}
files=[
('file',('{YOUR UPLOADED FILE}',open('{YOUR UPLOADED FILE}','rb'),'image/jpeg'))
]
headers = {
'apikey': '{{YOUR API KEY}}'
}

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)

JavaScript

const axios = require("axios")
const FormData = require("form-data")
const fs = require("fs")
let data = new FormData()
data.append("file", fs.createReadStream("{YOUR UPLOADED FILE}"))

let config = {
method: "post",
maxBodyLength: Infinity,
url: "https://api.iapp.co.th/book-bank-ocr/file",
headers: {
apikey: "{{YOUR API KEY}}",
...data.getHeaders(),
},
data: data,
}

axios
.request(config)
.then((response) => {
console.log(JSON.stringify(response.data))
})
.catch((error) => {
console.log(error)
})

PHP

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.iapp.co.th/book-bank-ocr/file',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('file'=> new CURLFILE('{YOUR UPLOADED FILE}')),
CURLOPT_HTTPHEADER => array(
'apikey: {{YOUR API KEY}}'
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Swift

let parameters = [
[
"key": "file",
"src": "{YOUR UPLOADED FILE}",
"type": "file"
]] as [[String: Any]]

let boundary = "Boundary-\(UUID().uuidString)"
var body = Data()
var error: Error? = nil
for param in parameters {
if param["disabled"] != nil { continue }
let paramName = param["key"]!
body += Data("--\(boundary)\r\n".utf8)
body += Data("Content-Disposition:form-data; name=\"\(paramName)\"".utf8)
if param["contentType"] != nil {
body += Data("\r\nContent-Type: \(param["contentType"] as! String)".utf8)
}
let paramType = param["type"] as! String
if paramType == "text" {
let paramValue = param["value"] as! String
body += Data("\r\n\r\n\(paramValue)\r\n".utf8)
} else {
let paramSrc = param["src"] as! String
let fileURL = URL(fileURLWithPath: paramSrc)
if let fileContent = try? Data(contentsOf: fileURL) {
body += Data("; filename=\"\(paramSrc)\"\r\n".utf8)
body += Data("Content-Type: \"content-type header\"\r\n".utf8)
body += Data("\r\n".utf8)
body += fileContent
body += Data("\r\n".utf8)
}
}
}
body += Data("--\(boundary)--\r\n".utf8);
let postData = body


var request = URLRequest(url: URL(string: "https://api.iapp.co.th/book-bank-ocr/file")!,timeoutInterval: Double.infinity)
request.addValue("{{YOUR API KEY}}", forHTTPHeaderField: "apikey")
request.addValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")

request.httpMethod = "POST"
request.httpBody = postData

let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print(String(describing: error))
return
}
print(String(data: data, encoding: .utf8)!)
}

task.resume()

Kotlin

val client = OkHttpClient()
val mediaType = "text/plain".toMediaType()
val body = MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("file","{YOUR UPLOADED FILE}",
File("{YOUR UPLOADED FILE}").asRequestBody("application/octet-stream".toMediaType()))
.build()
val request = Request.Builder()
.url("https://api.iapp.co.th/book-bank-ocr/file")
.post(body)
.addHeader("apikey", "{{YOUR API KEY}}")
.build()
val response = client.newCall(request).execute()

Java

OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("file","{YOUR UPLOADED FILE}",
RequestBody.create(MediaType.parse("application/octet-stream"),
new File("{YOUR UPLOADED FILE}")))
.build();
Request request = new Request.Builder()
.url("https://api.iapp.co.th/book-bank-ocr/file")
.method("POST", body)
.addHeader("apikey", "{{YOUR API KEY}}")
.build();
Response response = client.newCall(request).execute();

Dart

var headers = {
'apikey': '{{YOUR API KEY}}'
};
var request = http.MultipartRequest('POST', Uri.parse('https://api.iapp.co.th/book-bank-ocr/file'));
request.files.add(await http.MultipartFile.fromPath('file', '{YOUR UPLOADED FILE}'));
request.headers.addAll(headers);

http.StreamedResponse response = await request.send();

if (response.statusCode == 200) {
print(await response.stream.bytesToString());
}
else {
print(response.reasonPhrase);
}

ประวัติ

เวอร์ชัน 1.2

คาดว่าจะวางจำหน่ายภายในสิ้นเดือนพฤษภาคม

  • เพิ่มความแม่นยำ
  • การจดจำสาขาธนาคาร
  • การจดจำชื่อบัญชี

เวอร์ชัน 1.1

วางจำหน่ายเมื่อวันที่ 20 เมษายน 2565

ความแม่นยำโดยรวม = 78%

  • ความแม่นยำที่เพิ่มขึ้น:
  • การจดจำ เลขที่บัญชี เพิ่มขึ้น 8% (เวอร์ชันเก่า: 88.84%, เวอร์ชันใหม่: 96.82%)
  • การจดจำ ชื่อธนาคาร เพิ่มขึ้น 4% (เวอร์ชันเก่า: 94.87%, เวอร์ชันใหม่: 99.5%)

เวอร์ชัน 1.0

วางจำหน่ายเมื่อวันที่ 24 มีนาคม 2565
ความแม่นยำโดยรวม = 74.85%

  • เวอร์ชันเริ่มต้นแรก
  • ธนาคารที่รองรับ: SCB, ธนาคารกรุงเทพ, ธนาคารกรุงไทย, ธนาคารกสิกรไทย, ธนาคารกรุงศรีอยุธยา, ธนาคารทหารไทยธนชาต
  • ฟิลด์ที่รองรับ: ชื่อธนาคาร, เลขที่บัญชี, ชื่อบัญชี, สาขาธนาคาร

ราคา

ชื่อบริการ AI APIIC ต่อคำขอOn-Premise
Book Bank OCR with Signature Detection1.25 IC/Requestติดต่อเรา