[{"data":1,"prerenderedAt":577},["ShallowReactive",2],{"docs-nav":3,"docs-\u002Fdocs\u002Fchangelog":35,"docs-surround-\u002Fdocs\u002Fchangelog":570},[4,9,13,18,22,26,30],{"path":5,"title":6,"category":7,"order":8},"\u002Fdocs","Introduction","intro",1,{"path":10,"title":11,"category":7,"order":12},"\u002Fdocs\u002Fgetting-started","เริ่มต้นใช้งาน",10,{"path":14,"title":15,"category":16,"order":17},"\u002Fdocs\u002Fauthentication","Authentication","core",20,{"path":19,"title":20,"category":16,"order":21},"\u002Fdocs\u002Fapi","API Reference",25,{"path":23,"title":24,"category":16,"order":25},"\u002Fdocs\u002Fwebhooks","Webhooks",30,{"path":27,"title":28,"category":16,"order":29},"\u002Fdocs\u002Fsecurity","Security & PDPA",50,{"path":31,"title":32,"category":33,"order":34},"\u002Fdocs\u002Fchangelog","Changelog","meta",90,{"id":36,"title":32,"badge":37,"body":38,"category":33,"description":562,"extension":563,"meta":564,"navigation":565,"order":34,"path":31,"seo":566,"stem":567,"updatedAt":568,"__hash__":569},"docs\u002Fdocs\u002Fchangelog.md","อัปเดต",{"type":39,"value":40,"toc":551},"minimark",[41,45,52,57,63,92,97,140,145,180,184,189,206,211,230,235,260,265,289,294,305,310,327,331,348,352,357,410,415,439,444,457,462,467,471,532,535],[42,43,44],"p",{},"บันทึกฟีเจอร์ใหม่และการเปลี่ยนแปลงที่มีผลต่อ integrator · เรียงจากใหม่ → เก่า",[46,47,49],"callout",{"type":48},"info",[42,50,51],{},"เราพยายามหลีกเลี่ยง breaking change · หากมีจะแจ้งล่วงหน้าและทำ versioning",[53,54,56],"h2",{"id":55},"กันยายน-2026","กันยายน 2026",[42,58,59],{},[60,61,62],"strong",{},"ช่วงทดลอง 7 วัน = สิทธิ์แพ็ก Trial เท่านั้น",[64,65,66,75,78],"ul",{},[67,68,69,70,74],"li",{},"ร้านแรกที่ยังไม่จ่ายสมัครแพ็ก ",[71,72,73],"code",{},"TRIAL"," เสมอ (50 สลิป · 1 ที่นั่ง · 1 กลุ่ม · 1 OA · ไม่มี REST API)",[67,76,77],{},"เลือกการ์ด Pro\u002FBusiness ตอนสมัครไม่ทำให้ได้ลิมิตแพ็กจ่ายฟรี 7 วัน",[67,79,80,83,84,87,88,91],{},[71,81,82],{},"GET \u002Fapi\u002Fv1\u002Fme"," และ ",[71,85,86],{},"GET \u002Fapi\u002Fv1\u002Fquota"," (scope ",[71,89,90],{},"read",") อ่านแพ็ก + โควตาคงเหลือโดยไม่หักสลิป — ใช้เช็คตอนบูต integration",[42,93,94],{},[60,95,96],{},"สถานะระบบ — endpoint ที่ monitor เรียกได้จริง",[64,98,99,124,131],{},[67,100,101,104,105,104,108,111,112,115,116,119,120,123],{},[71,102,103],{},"GET \u002Fhealth"," · ",[71,106,107],{},"\u002Fhealth\u002Fliveness",[71,109,110],{},"\u002Fhealth\u002Fuptime"," ตอบที่ path นี้ตรง ๆ แล้ว (เดิมมีแต่ ",[71,113,114],{},"\u002Fv1\u002Fhealth"," — uptime monitor ที่ชี้มาที่ ",[71,117,118],{},"\u002Fhealth"," ตามที่เอกสารบอกจะได้ ",[71,121,122],{},"404",")",[67,125,126,127,130],{},"path เดิม ",[71,128,129],{},"\u002Fv1\u002Fhealth*"," ยังใช้ได้ตามปกติ ไม่ต้องแก้อะไรที่ปลายทาง",[67,132,133,134,139],{},"หน้า ",[135,136,138],"a",{"href":137},"\u002Fstatus","status"," อ่านค่าจริงจาก endpoint นี้แล้ว",[42,141,142],{},[60,143,144],{},"Anti-fraud — สลิปเก่านำกลับมาใช้ซ้ำ: เปิดเป็นค่าเริ่มต้น",[64,146,147,171],{},[67,148,149,152,153,156,157,162,163,166,167,170],{},[71,150,151],{},"SLIP_STALE_MODE"," ค่าเริ่มต้นเปลี่ยนจาก ",[71,154,155],{},"off"," → ",[60,158,159],{},[71,160,161],{},"alert"," · สลิปยัง ",[71,164,165],{},"SUCCESS"," ตามปกติ แต่เจ้าของร้านจะได้รับแจ้งเตือนเมื่อเวลาธนาคารบนสลิปเก่ากว่า ",[71,168,169],{},"SLIP_STALE_MAX_AGE_HOURS"," (ค่าเริ่มต้น 24 ชม.)",[67,172,173,174,176,177],{},"โหมด ",[71,175,161],{}," ไม่ปฏิเสธการชำระเงินใด ๆ · ถ้าต้องการให้ปฏิเสธจริงตั้ง ",[71,178,179],{},"SLIP_STALE_MODE=reject",[53,181,183],{"id":182},"สิงหาคม-2026","สิงหาคม 2026",[42,185,186],{},[60,187,188],{},"Public API",[64,190,191,200,203],{},[67,192,193,199],{},[60,194,195,198],{},[71,196,197],{},"apiAccess"," ของแพ็กถูกบังคับจริง"," — API key ของร้านที่อยู่ในแพ็กที่ไม่มีสิทธิ์ใช้ API จะถูกปฏิเสธ (เดิมคอลัมน์นี้ถูกเขียนแต่ไม่มีใครอ่าน) · ถ้า integration ของคุณเคยยิงผ่านด้วยแพ็กเล็ก ให้ตรวจแพ็กก่อน",[67,201,202],{},"response ไม่มีชื่อผู้ให้บริการตรวจสลิปภายนอกหลุดออกไปอีกแล้ว (ทั้ง body · error · header)",[67,204,205],{},"จัดการ API key ละเอียดขึ้น — scope · usage · rotate\u002Frevoke",[42,207,208],{},[60,209,210],{},"Webhooks & Realtime",[64,212,213,220,223],{},[67,214,215,216,219],{},"หน้า Webhooks แสดง ",[60,217,218],{},"ประวัติการส่ง (deliveries)"," ทุกครั้ง พร้อมสถานะและรอบ retry",[67,221,222],{},"\"ส่งทดสอบ\" ตอบข้อความชัดเจนเมื่อคิวงานไม่พร้อม (เดิมได้ HTTP 500 เปล่า ๆ)",[67,224,225,226,229],{},"แดชบอร์ดขึ้นสลิปใหม่ทันทีที่ตรวจเสร็จผ่าน ",[60,227,228],{},"SSE"," ไม่ต้องกด refresh",[42,231,232],{},[60,233,234],{},"Billing & โควตา",[64,236,237,244,247,254,257],{},[67,238,239,240,243],{},"คิดค่า ",[60,241,242],{},"ส่วนเกินโควตา (overage)"," ตามจริง พร้อมบัฟเฟอร์ฟรี · เพดานต่อเดือน · เพดานแข็งที่บล็อกเมื่อใช้เกินหลายเท่า",[67,245,246],{},"ใบแจ้งหนี้ที่มีส่วนเกินระบุที่มาของยอดนั้นแยกบรรทัด",[67,248,249,250,253],{},"เปลี่ยนแพ็กมี ",[60,251,252],{},"ใบเสนอราคาก่อนตัดเงิน"," (proration แสดงให้เห็นก่อนกดยืนยัน)",[67,255,256],{},"แจ้งบน LINE เมื่อบัตรถูกปฏิเสธ · ต่ออายุไม่สำเร็จ · และเมื่อชำระเงินสำเร็จ",[67,258,259],{},"เลือกช่องทางจ่ายบิลค้างได้เอง (บัตร \u002F PromptPay)",[42,261,262],{},[60,263,264],{},"ทีมงาน · ความปลอดภัย",[64,266,267,273,279,286],{},[67,268,269,272],{},[60,270,271],{},"ที่นั่งทีมงาน (seats)"," ตามแพ็ก + คำเชิญทางอีเมล",[67,274,275,278],{},[60,276,277],{},"2FA (TOTP)"," พร้อม backup code · เปิดที่ ตั้งค่า → ความปลอดภัย",[67,280,281,282,285],{},"นโยบายรหัสผ่านบังคับจริง · เพิ่ม ",[60,283,284],{},"CSP"," และ security header ครบชุด",[67,287,288],{},"Audit log ดูย้อนหลังได้จากหน้าตั้งค่า",[42,290,291],{},[60,292,293],{},"LINE & LIFF",[64,295,296,299,302],{},[67,297,298],{},"LIFF โพสต์ผลการตรวจกลับเข้ากลุ่มที่ลูกค้าส่งมาได้",[67,300,301],{},"Quick reply บนคำสั่งของเจ้าของร้าน",[67,303,304],{},"สลิปไม่ถูกกลืนเมื่อ Redis เต็ม — ระบบตอบให้ลูกค้าส่งใหม่แทนที่จะเงียบ",[42,306,307],{},[60,308,309],{},"แอป",[64,311,312,315,318,321,324],{},[67,313,314],{},"สลับร้านได้ไม่ต้องรีโหลด + command palette (⌘K)",[67,316,317],{},"ทุกลิสต์มีการแบ่งหน้า · ส่งออกได้ทั้งชุดไม่ใช่แค่หน้าที่เห็น",[67,319,320],{},"ภาษาไทย\u002Fอังกฤษครบทั้งแอปและเอกสาร",[67,322,323],{},"Product tour สอนใช้งานแดชบอร์ดและการผูก LINE channel",[67,325,326],{},"Cookie consent + analytics ที่รอความยินยอมก่อนทำงาน",[53,328,330],{"id":329},"กรกฎาคม-2026","กรกฎาคม 2026",[64,332,333,339,345],{},[67,334,335,338],{},[60,336,337],{},"LIFF"," — จัดการกลุ่ม · ประวัติการตรวจ · ใบเสร็จ · ตั้งค่าการแจ้งเตือน · ผูก\u002Fถอนบัญชี ครบในมินิแอป",[67,340,341,344],{},[60,342,343],{},"สถานะร้าน"," แสดงชัดบนแถบข้าง (ทดลองใช้ · ใช้งาน · ค้างชำระ · ระงับ)",[67,346,347],{},"ปิด modal ด้วย Esc ได้ทุกจุด · ปุ่มคัดลอกบอกผลจริงเมื่อคัดลอกสำเร็จ",[53,349,351],{"id":350},"มิถุนายน-2026","มิถุนายน 2026",[42,353,354],{},[60,355,356],{},"Public API — Quota UX",[64,358,359,374,393,403],{},[67,360,361,362,365,366,369,370,373],{},"ทุก response ของ ",[71,363,364],{},"POST \u002Fapi\u002Fv1\u002Fverify"," แนบ header ",[71,367,368],{},"X-Slipbolt-Quota-{Limit,Remaining,Used,Reset-Days}"," + ฟิลด์ ",[71,371,372],{},"quota"," ใน body",[67,375,376,377,380,381,384,385,388,389,392],{},"โควตาหมด (key ",[71,378,379],{},"live",") → ตอบ ",[60,382,383],{},"HTTP 402"," ",[71,386,387],{},"QUOTA_EXCEEDED"," แทน ",[71,390,391],{},"200"," เงียบ ๆ — เช็คจาก HTTP status ได้เลย",[67,394,395,396,87,400,402],{},"เพิ่ม ",[60,397,398],{},[71,399,86],{},[71,401,90],{},") อ่านยอดคงเหลือโดยไม่เปลือง verify",[67,404,405,406,409],{},"ยืนยัน: การเรียก API ใช้ ",[60,407,408],{},"โควตา pool เดียวกับสลิป LINE"," ของร้าน",[42,411,412],{},[60,413,414],{},"Anti-fraud — recycled slip detection",[64,416,417],{},[67,418,419,420,423,424,426,427,430,431,434,435,438],{},"ตรวจจับสลิปจริง \"เก่า\u002Fนำกลับมาใช้ซ้ำ\" จากเวลาธนาคาร (",[71,421,422],{},"transDate",") · โหมด ",[71,425,161],{},"\u002F",[71,428,429],{},"reject"," ตั้งค่าได้ · ",[71,432,433],{},"INVALID"," จะมี ",[71,436,437],{},"errorCode: STALE_SLIP"," — ตอนนั้นค่าเริ่มต้นคือปิด (ดู กันยายน 2026)",[42,440,441],{},[60,442,443],{},"LINE",[64,445,446,454],{},[67,447,448,449,453],{},"Rich Menu ตั้งให้อัตโนมัติเมื่อผูก channel (",[450,451,452],"span",{},"ดูยอดวันนี้"," → LIFF)",[67,455,456],{},"Marketing broadcast ถึงเจ้าของร้านที่ opt-in (ฝั่งแพลตฟอร์ม)",[42,458,459],{},[60,460,461],{},"Billing",[64,463,464],{},[67,465,466],{},"เสริมความทนทานของ Stripe webhook (retry เฉพาะ event ที่เกี่ยวกับเงิน · idempotent)",[53,468,470],{"id":469},"พฤษภาคม-2026","พฤษภาคม 2026",[64,472,473,488,505,520,526],{},[67,474,475,478,479,481,482,426,485,123],{},[60,476,477],{},"Public Verify API"," — ",[71,480,364],{}," รับรูปสลิปเป็น raw bytes, auth ด้วย API key (",[71,483,484],{},"sk_live_",[71,486,487],{},"sk_test_",[67,489,490,493,494,497,498,497,501,504],{},[60,491,492],{},"Outgoing Webhooks"," — event ",[71,495,496],{},"slip.verified"," \u002F ",[71,499,500],{},"duplicate",[71,502,503],{},"failed"," · HMAC-signed · retry 5 ครั้ง",[67,506,507,510,511,426,514,426,516,519],{},[60,508,509],{},"API Keys"," — สร้าง\u002Frotate\u002Frevoke · scope (",[71,512,513],{},"verify",[71,515,90],{},[71,517,518],{},"webhook",") · usage metrics",[67,521,522,525],{},[60,523,524],{},"Prepaid terms"," — จ่ายล่วงหน้า 1\u002F3\u002F6\u002F9\u002F12 เดือน (card + PromptPay) พร้อมส่วนลดขั้นบันได",[67,527,528,531],{},[60,529,530],{},"Dashboard"," — สรุปยอด · รายงาน · ธุรกรรม · จัดการ LINE channel\u002Fgroup",[53,533,534],{"id":534},"เอกสารที่เกี่ยวข้อง",[64,536,537,542,547],{},[67,538,539,541],{},[135,540,20],{"href":19}," — endpoints ทั้งหมด",[67,543,544,546],{},[135,545,24],{"href":23}," — event + signature",[67,548,549],{},[135,550,28],{"href":27},{"title":552,"searchDepth":553,"depth":553,"links":554},"",3,[555,557,558,559,560,561],{"id":55,"depth":556,"text":56},2,{"id":182,"depth":556,"text":183},{"id":329,"depth":556,"text":330},{"id":350,"depth":556,"text":351},{"id":469,"depth":556,"text":470},{"id":534,"depth":556,"text":534},"ฟีเจอร์ใหม่ + การเปลี่ยนแปลงสำคัญของ SlipBolt API","md",{},true,{"title":32,"description":562},"docs\u002Fchangelog",null,"9Bi7on2VU0cM2RI4tlbKOIK6VDdzFTKxurJDJyUQ_Qk",[571,574],{"title":15,"path":14,"stem":572,"description":573,"children":-1},"docs\u002Fauthentication","Bearer JWT (dashboard) vs API key (server-to-server) — เลือกใช้แบบไหนเมื่อไร",{"title":11,"path":10,"stem":575,"description":576,"children":-1},"docs\u002Fgetting-started","ตรวจสลิปแรกของคุณภายใน 5 นาที — ตั้งร้าน, ผูก LINE, เช็คโควตา, ยิง API (Starter ขึ้นไป)",1789321305994]