Skip to main content

🏦 OCR ใบแจ้งยอดธนาคาร

1 ICต่อหน้า
v1.0 เปิดใช้งาน ก.ค. 2026 POST /ocr/v3/bank-statement/file

ยินดีต้อนรับสู่ API OCR ใบแจ้งยอดธนาคาร ซึ่งเป็นส่วนหนึ่งของ iApp Any Documents OCR โดย บริษัท ไอแอพพ์เทคโนโลยี จำกัด แยกข้อมูลบัญชีและตารางรายการเดินบัญชีที่สมบูรณ์จากใบแจ้งยอดธนาคารของไทย (ธนาคารหลักทั้งหมดในไทย) ใบแจ้งยอด PDF หลายหน้าจะถูกรวมเป็นผลลัพธ์เดียว

ทดลองใช้งาน!

ทดลองใช้ AI Demo

เข้าสู่ระบบหรือสร้างบัญชีฟรีเพื่อใช้งาน AI Demo และสำรวจ API ที่ทรงพลังของเรา

รับ 50 เครดิตฟรี (IC) เมื่อสมัครสมาชิก!

โปรโมชันหมดเขต 31 ธันวาคม 2568

Example Images (Click to try)

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

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

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

    • POST ครั้งเดียวด้วย multipart/form-data
    • ผลลัพธ์ JSON ที่มีโครงสร้าง พร้อมคะแนนความมั่นใจต่อฟิลด์
    • PDF หลายหน้าจะถูกรวมเป็นรายการ docs เดียว
  3. คุณสมบัติหลัก

    • การแยกฟิลด์พร้อมคะแนนความมั่นใจ
    • เอาต์พุตภาษาไทยและอังกฤษผ่าน target_lang
    • ข้อความ OCR ดิบที่มีให้เลือกผ่าน return_ocr
    • จัดการกับรูปภาพและ PDF ที่สแกน
  4. ความปลอดภัยและการปฏิบัติตามข้อกำหนด

    • เป็นไปตาม GDPR และ PDPA
    • จุดเชื่อมต่อ API ที่ปลอดภัย
    • ไม่มีการเก็บข้อมูลหลังจากประมวลผล
วิธีรับคีย์ API?

โปรดไปที่หน้า การจัดการคีย์ API เพื่อดูคีย์ API ที่มีอยู่ของคุณ หรือขอคีย์ใหม่

จุดเชื่อมต่อ API

จุดเชื่อมต่อเมธอดคำอธิบายราคา
/ocr/v3/bank-statement/file
/v3/store/ocr/bank-statement
POSTแยกรายละเอียดบัญชีและตารางรายการเดินบัญชีทั้งหมดจากใบแจ้งยอดธนาคารของไทย1 IC ต่อหน้า

ทั้งสองรูปแบบมีความเท่าเทียมกัน ไม่มีรูปแบบ base64 สำหรับจุดเชื่อมต่อนี้นะคะ - อัปโหลดไฟล์เท่านั้น

คำขอ

ส่วนหัวคำขอ

ส่วนหัวค่าจำเป็น
apikeyคีย์ iApp 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/bank-statement/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": {
"bank_name": "ธนาคารกสิกรไทย",
"account_holder_name": "น.ส. สมหญิง ตัวอย่าง",
"account_number": "XXX-2-48512-X",
"account_type": "เงินฝากออมทรัพย์",
"branch": "สาขาซีคอนสแควร์ 2",
"period_from": "01-04-2018",
"period_to": "20-09-2018",
"total_withdrawal_amount": 101797.39,
"total_deposit_amount": 101780.19,
"transactions": [
{
"date": "10-09-2018",
"description": "ฝากเงินสด ไม่มีสมุดคู่ฝาก",
"withdrawal": null,
"deposit": 100.0,
"balance": 206.14,
"channel": "0929"
}
]
},
"confidence": {
"bank_name": 0.95,
"account_holder_name": 0.95,
"account_number": 0.95,
"account_type": 0.95,
"branch": 0.95,
"period_from": 0.95
},
"process_ms": 4120
}
],
"docs_count": 1,
"process_ms": 4300
}

ส่วนหัวการตอบกลับ iapp-input-pages จะรายงานจำนวนหน้าที่ถูกเรียกเก็บเงิน

ฟิลด์ที่รองรับ

ฟิลด์ประเภทคำอธิบาย
bank_nameStringชื่อธนาคาร
account_holder_nameStringชื่อผู้ถือบัญชี
account_numberStringหมายเลขบัญชีตามที่พิมพ์ (รวมถึงการซ่อน X's)
account_typeStringประเภทบัญชี เช่น เงินฝากออมทรัพย์
branchStringสาขา
period_fromStringวันที่เริ่มต้นช่วงใบแจ้งยอด
period_toStringวันที่สิ้นสุดช่วงใบแจ้งยอด
total_withdrawal_amountNumberยอดถอนทั้งหมด (บาท)
total_deposit_amountNumberยอดฝากทั้งหมด (บาท)
transactionsArrayแถวรายการเดินบัญชี — แต่ละแถวมีวันที่, คำอธิบาย, ยอดถอน, ยอดฝาก, ยอดคงเหลือ, ช่องทาง

การจัดการข้อผิดพลาด

สถานะความหมาย
400นามสกุลไฟล์ไม่รองรับ หรือไฟล์ใหญ่กว่า 50MB
401apikey ขาดหายไปหรือไม่ถูกต้อง
402ยอดเงินคงเหลือไม่เพียงพอ
404ประเภทเอกสารไม่รู้จักใน URL
422ไม่มีการแนบไฟล์มากับคำขอ
500ข้อผิดพลาดในการประมวลผล — ผลลัพธ์ประกอบด้วยรหัสข้อผิดพลาดเพื่ออ้างอิงถึงฝ่ายสนับสนุน

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

Python

import requests

url = "https://api.iapp.co.th/ocr/v3/bank-statement/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/bank-statement/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/bank-statement/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/bank-statement/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/bank-statement/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/bank-statement/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/bank-statement/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 ต้นฉบับแทนการถ่ายภาพ
  • ถ่ายภาพเอกสารทั้งหมดให้ตรงมุมและมีแสงสม่ำเสมอ
  • ใช้ DPI อย่างน้อย 300 สำหรับการสแกน
  • ตรวจสอบคะแนน confidence ของแต่ละฟิลด์ และส่งต่อค่าที่มีคะแนนต่ำเพื่อทำการตรวจสอบด้วยตนเอง
  • ส่งเอกสารหลายฉบับในคำขอเดียว (หากรองรับ) เพื่อลดจำนวนการส่งข้อมูลไปกลับ

ความแม่นยำและประสิทธิภาพ

ความแม่นยำในการแยกข้อมูลระดับฟิลด์วัดผลจากชุดการประเมิน ChindaOCR-M3 ภายใน — ป้ายกำกับที่ตรวจสอบซ้ำด้วยสายตาบนเอกสารจริงของไทย รวมถึงภาพถ่ายความละเอียดต่ำและใบแจ้งหนี้บางส่วนที่ถูกบดบังด้วยลายมือ

ประเภทเอกสารเอกสารฟิลด์ความแม่นยำ
ใบแจ้งยอดธนาคาร210100%
โดยรวม, เอกสารทั้งหกประเภท2514798.6%

การสนับสนุน

ต้องการความช่วยเหลือ? ติดต่อเรา: