สร้างไฟล์ RDX & PDF ยื่นกรมสรรพากร — ผ่าน HTTP

โคลนกระบวนการของ RDPrep 1.3.2 มาเป็น API: POST ข้อมูลภาษี → ได้ไฟล์ .rdx (เข้ารหัสพร้อมยื่น) หรือ .pdf (หน้าตาเหมือนแบบราชการ) กลับไป โดยไม่ต้องเปิดโปรแกรม RDPrep

รองรับ:

💡 ข้อมูลบน PDF กับข้อมูลใน RDX มาจากชุดเดียวกัน (build()) — validate ครั้งเดียว ใช้ได้ทั้งสองแบบ
📦 ข้อมูลใหญ่: RDX เป็นไฟล์เดียวเสมอ (ไม่จำกัดจำนวนราย) · PDF แบ่งเป็นหลาย lot อัตโนมัติเมื่อเกิน 99 หน้า (ภ.ง.ด.3/53 = 600 ราย/lot, ภ.ง.ด.1/1ก ≤99 หน้า/lot) — ขอแยกไฟล์ด้วย ?mode=separate

Authentication & Base URL

Base URL: · เวอร์ชัน API: /api/v1

ถ้าตั้ง ENV API_KEY ไว้ ทุกคำขอใต้ /api/v1/* (ยกเว้น /health) ต้องแนบเฮดเดอร์:

X-API-Key: <your key>
# หรือ  Authorization: Bearer <your key>

Quick start

ขอไฟล์ RDX (binary)

curl -X POST \
  "$BASE/api/v1/forms/pnd3/rdx" \
  -H "Content-Type: application/json" \
  --data @pnd3.json \
  -o output.rdx

ขอไฟล์ PDF

curl -X POST \
  "$BASE/api/v1/forms/pnd1a/pdf" \
  -H "Content-Type: application/json" \
  --data @pnd1a.json \
  -o output.pdf

รับเป็น JSON (base64) — เหมาะกับให้ CRM เก็บต่อ

POST /api/v1/forms/pnd53/rdx?format=json
→ 200 { "rdxFileName": "...-010000.rdx", "bytes": 1234, "rdxBase64": "UEsD...", "jsonForm": {...}, "jsonAttach": {...} }

Endpoints

MethodPathอธิบาย
GET/healthสถานะ service + พร้อมสร้าง PDF ไหม
GET/api/v1/formsรายการแบบที่รองรับ
GET/api/v1/forms/:formสัญญา input ของแบบนั้น
POST/api/v1/forms/:form/validateตรวจข้อมูล → 200 หรือ 422 พร้อมรายการ error
POST/api/v1/forms/:form/rdxสร้าง RDX (?format=json เพื่อรับ base64)
POST/api/v1/forms/:form/pdfสร้าง PDF (?part=form|attach|all, ?mode=separate = แยกไฟล์ตาม lot)
POST/api/v1/annual/:form/(rdx|pdf|validate)Alias เฉพาะแบบรายปี (pnd1a)

:form = pnd1 · pnd1a · pnd3 · pnd53 (ไม่สนตัวพิมพ์)

Annual rule API (แบบรายปี — ภ.ง.ด.1ก)

POST /api/v1/annual/pnd1a/rdx → ได้ .rdx กลับไป
POST /api/v1/annual/pnd1a/pdf → ได้ .pdf กลับไป

Body เหมือน /forms/pnd1a/* ทุกประการ (ไม่มี filing.month; แต่ละ record ต้องมี address)

โมเดล input (body)

{
  "filer":  { "id13", "branchType": "N|0", "branchNo", "name", "address": { ... } },
  "filing": { "year": 2568, "month": 8, "filingNo": 1, "filingType": 0 },
  "payees":  [ ... ]   // ภ.ง.ด.3 / 53  (ผู้รับเงิน + incomes[] 1-3 รายการ)
  "records": [ ... ]   // ภ.ง.ด.1 / 1ก  (1 แถว = พนักงาน 1 คน ต่อ 1 ประเภทเงินได้)
}

การตอบกลับ error (422): { "error":"validation", "errors":[ { "row", "field", "message" } ] } — row=0 คือระดับผู้ยื่น/รอบยื่น

รายละเอียดแต่ละแบบ

Playground — ลองยิงจริง

ผลลัพธ์

— ยังไม่มีคำขอ —

CRM-RDX Service · โคลนจาก RDPrep 1.3.2 · สร้างเพื่อการเชื่อมต่อระบบภายในองค์กร