OCR overview

ใบแจ้งหนี้

Reading a Thai invoice

One call returns the whole page, as Markdown or as typed blocks, with the line-item table still a table.

ใบแจ้งหนี้ is a demand for payment. A seller issues it before any money moves, listing what is owed and when it falls due, and the buyer's accounts payable queue works from it.

Thai practice keeps three documents apart that English often collapses into one word. ใบแจ้งหนี้ asks for money, ใบกำกับภาษี is the VAT document the Revenue Code fixes, and ใบเสร็จรับเงิน records money already received. One printed sheet frequently serves as more than one of them, which is why the field list below runs longer than a bare invoice needs.

The specimen#

This sheet is typeset from the document's real field list. Every name and figure on it is invented, and none of it comes from anyone's paperwork.

บริษัท ศตวรรษการค้า จำกัด (สำนักงานใหญ่)

๙๙ ถนนพระราม ๙ แขวงห้วยขวาง เขตห้วยขวาง กรุงเทพมหานคร ๑๐๓๑๐

เลขประจำตัวผู้เสียภาษีอากร 0 1055 64078 12 3

โทร. ๐ ๒๐๐๐ ๐๐๐๐

ใบแจ้งหนี้

INVOICE

ต้นฉบับ

เลขที่ INV-2569-0107

วันที่ ๑๕ กรกฎาคม ๒๕๖๙

ครบกำหนดชำระ ๑๔ สิงหาคม ๒๕๖๙

ชื่อผู้ซื้อ
บริษัท กรุณาไทย จำกัด
ที่อยู่
๑๒๓ ซอยสุขุมวิท ๖๓ แขวงคลองตันเหนือ เขตวัฒนา กรุงเทพมหานคร ๑๐๑๑๐
เลขประจำตัวผู้เสียภาษี
0 1055 61045 67 8
เลขที่ใบสั่งซื้อ
PO-2569-0442
ใบแจ้งหนี้
ลำดับรายละเอียดจำนวนจำนวนเงิน
ค่าบริการดูแลระบบรายเดือน กรกฎาคม ๒๕๖๙18,000.00
ค่าพื้นที่จัดเก็บข้อมูลส่วนเกิน3,000.00
ค่าอบรมผู้ใช้งาน ณ สถานที่ลูกค้า13,000.00
รวมเป็นเงิน34,000.00
ภาษีมูลค่าเพิ่ม 7%2,380.00
จำนวนเงินรวมทั้งสิ้น36,380.00

( สามหมื่นหกพันสามร้อยแปดสิบบาทถ้วน )

การชำระเงิน

ธนาคาร
ธนาคารตัวอย่าง สาขาพระราม ๙
ชื่อบัญชี
บริษัท ศตวรรษการค้า จำกัด
เลขที่บัญชี
000-0-00000-0

กรุณาชำระภายในวันครบกำหนด และส่งหลักฐานการโอนกลับมาที่ฝ่ายบัญชี

What the model read#

paxa-ocr-lite-v1 · captured Aug 30, 2026 · unedited

The Markdown it returned

# บริษัท ศตวรรษการค้า จำกัด (สำนักงานใหญ่)

๙๙ ถนนพระราม ๙ แขวงห้วยขวาง เขตห้วยขวาง กรุงเทพมหานคร ๑๐๓๑๐

เลขประจำตัวผู้เสียภาษีอากร 0 1055 64078 12 3

โทร. ๐ ๒๐๐๐ ๐๐๐๐

# ใบแจ้งหนี้
INVOICE

ต้นฉบับ

เลขที่ INV-2569-0107
วันที่ ๑๕ กรกฎาคม ๒๕๖๙
ครบกำหนดชำระ ๑๔ สิงหาคม ๒๕๖๙

ชื่อผู้ซื้อ บริษัท กรุณาไทย จำกัด

ที่อยู่ ๑๒๓ ซอยสุขุมวิท ๖๓ แขวงคลองตันเหนือ เขตวัฒนา กรุงเทพมหานคร ๑๐๑๑๐

เลขประจำตัวผู้เสียภาษี 0 1055 61045 67 8

เลขที่ใบสั่งซื้อ PO-2569-0442

| ลำดับ | รายละเอียด | จำนวน | หน่วยละ | จำนวนเงิน |
| :--- | :--- | :--- | :--- | :--- |
|| ค่าบริการดูแลระบบรายเดือน กรกฎาคม ๒๕๖๙ || 18,000.00 | 18,000.00 |
|| ค่าพื้นที่จัดเก็บข้อมูลส่วนเกิน || 750.00 | 3,000.00 |
|| ค่าอบรมผู้ใช้งาน ณ สถานที่ลูกค้า || 6,500.00 | 13,000.00 |

| | | |
| :--- | :--- | :--- |
| | รวมเป็นเงิน | 34,000.00 |
| | ภาษีมูลค่าเพิ่ม 7% | 2,380.00 |
| | จำนวนเงินรวมทั้งสิ้น | 36,380.00 |

( สามหมื่นหกพันสามร้อยแปดสิบบาทถ้วน )

การชำระเงิน

ธนาคาร ธนาคารตัวอย่าง สาขาพระราม ๙

ชื่อบัญชี บริษัท ศตวรรษการค้า จำกัด

เลขที่บัญชี 000-0-00000-0

กรุณาชำระภายในวันครบกำหนด และส่งหลักฐานการโอนกลับมาที่ฝ่ายบัญชี

The structured blocks, typeset back into a page

  1. headingL1

    บริษัท ศตวรรษการค้า จำกัด (สำนักงานใหญ่)

  2. headingL1

    ใบแจ้งหนี้

  3. paragraph

    INVOICE

  4. paragraph

    ๙๙ ถนนพระราม ๙ แขวงห้วยขวาง เขตห้วยขวาง กรุงเทพมหานคร ๑๐๓๑๐

  5. paragraph

    ต้นฉบับ

  6. paragraph

    เลขประจำตัวผู้เสียภาษีอากร 0 1055 64078 12 3

  7. paragraph

    เลขที่ INV-2569-0107

  8. paragraph

    โทร. ๐ ๒๐๐๐ ๐๐๐๐

  9. paragraph

    วันที่ ๑๕ กรกฎาคม ๒๕๖๙

  10. paragraph

    ครบกำหนดชำระ ๑๔ สิงหาคม ๒๕๖๙

  11. paragraph

    ชื่อผู้ซื้อ บริษัท กรุณาไทย จำกัด

  12. paragraph

    ที่อยู่ ๑๒๓ ซอยสุขุมวิท ๖๓ แขวงคลองตันเหนือ เขตวัฒนา กรุงเทพมหานคร ๑๐๑๑๐

  13. paragraph

    เลขประจำตัวผู้เสียภาษี 0 1055 61045 67 8

  14. paragraph

    เลขที่ใบสั่งซื้อ PO-2569-0442

  15. table
    The table the model reconstructed
    ลำดับรายละเอียดจำนวนหน่วยละจำนวนเงิน
    ค่าบริการดูแลระบบรายเดือน กรกฎาคม ๒๕๖๙18,000.0018,000.00
    ค่าพื้นที่จัดเก็บข้อมูลส่วนเกิน750.003,000.00
    ค่าอบรมผู้ใช้งาน ณ สถานที่ลูกค้า6,500.0013,000.00
  16. paragraph

    รวมเป็นเงิน 34,000.00

  17. paragraph

    ภาษีมูลค่าเพิ่ม 7% 2,380.00

  18. paragraph

    จำนวนเงินรวมทั้งสิ้น 36,380.00

  19. paragraph

    ( สามหมื่นหกพันสามร้อยแปดสิบบาทถ้วน )

  20. paragraph

    การชำระเงิน

  21. paragraph

    ธนาคาร ธนาคารตัวอย่าง สาขาพระราม ๙

  22. paragraph

    ชื่อบัญชี บริษัท ศตวรรษการค้า จำกัด

  23. paragraph

    เลขที่บัญชี 000-0-00000-0

  24. paragraph

    กรุณาชำระภายในวันครบกำหนด และส่งหลักฐานการโอนกลับมาที่ฝ่ายบัญชี

The exact image the model read

What is on this document#

Common commercial shape

ชื่อและที่อยู่ผู้ขาย
The issuing company, with its tax id under the address.
เลขที่ใบแจ้งหนี้
The running number the seller's own system assigns.
วันที่
Issue date, usually in Buddhist years.
ครบกำหนดชำระ
The due date, and the field a payables queue sorts on.
ชื่อและที่อยู่ผู้ซื้อ
The billed party, with its tax id where VAT applies.
เลขที่ใบสั่งซื้อ
The purchase order this invoice answers, where there is one.
รายการ
The line items, as a grid of quantity, unit price, and amount.
ภาษีมูลค่าเพิ่ม
VAT, printed separately from the value of the goods.
จำนวนเงินรวมทั้งสิ้น
The total payable.
จำนวนเงินเป็นตัวอักษร
The total spelled out in Thai words, written without spaces.
บัญชีรับชำระ
Bank, account name, and account number for the transfer.

No statute fixes this list. It is the shape Thai commercial practice settled on, and the fields move between vendors, which is the argument for reading the page as structure and pulling the values yourself.

Why this one is hard to read#

The table is the document
Everything that matters sits in the line-item grid. A reader working down pixel bands fuses those cells into strips, and the values survive while the structure disappears.
Two numeral systems on one row
Quantities often print in Thai digits while money prints in Arabic, side by side. Both have to come back as the numbers they are.
The amount in words has no spaces
Thai writes the spelled-out total as one unbroken string. Segmenting it and recognising it have to happen in the same pass.

From blocks to fields#

The response is the page in reading order. Ask for markdown when a person or a model reads next, and for structured blocks when your code does. From the blocks an invoice number is the text following its label, and the line items are one table block, which is a few lines of matching and no template to maintain.

Rate
6.5 credits per page
Per request
50 pages, 10 MB, PDF, PNG, JPEG, WEBP
Free credits
100 credits, about 15 pages

See full pricing

Questions#

How is ใบแจ้งหนี้ different from ใบกำกับภาษี?
One asks for payment. The other is the VAT document whose particulars the Revenue Code fixes, and its own page covers what the statute requires. A single sheet often serves as both.
Does it return the fields as JSON keys?
It returns the page as typed blocks: headings, paragraphs, lists, and tables, in reading order. Field extraction stays yours, which is what keeps one endpoint working on an invoice layout it has never seen.
What about a multi-page invoice?
Each page comes back as its own entry, up to the model's ceiling of 50 pages per request. Billing counts pages. A two-page invoice costs twice a one-page invoice.

Send it your own documents.

New accounts start with 100 free credits, enough for about 15 pages. Try it on a real file in the playground.