บันทึกการเปลี่ยนแปลง
กันยายน 2026
10 กันยายน
ฟอร์ม HTML ส่งเป็นคอนเทนเนอร์ที่เซ็นแล้ว แทนที่ฟิลด์ใบแจ้งหนี้แยกรายฟิลด์ — data (base64url ของ JSON) และ signature (HMAC-SHA256 ของสตริง data) endpoint เปลี่ยนจาก invoices/createFromForm เป็น invoices/form ฟอร์มแบบเก่าใช้ไม่ได้อีกต่อไปและต้องสร้างใหม่: ดูลายเซ็นฟอร์ม HTML
8 กันยายน
ฟิลด์ตัวเลขในเนื้อหา webhook เป็นตัวเลขแล้ว หกฟิลด์ที่เคยส่งเป็นสตริงถูกส่งเป็นตัวเลขแล้ว: project.commissionRate, invoice.commissionFiatUSD, invoice.amountFiatUSD, invoice.amountFiat, invoice.calcAmountFiat, payment.amount ชุดฟิลด์ ชื่อ และลำดับไม่เปลี่ยนแปลง
พึงระลึกไว้: ศูนย์ท้ายถูกตัดออก ดังนั้นจำนวน 10.00 มาถึงเป็น 10 จำนวนที่ต่ำกว่า 0.0001 มาถึงในสัญกรณ์เลขชี้กำลัง เช่น 1.0e-6 — การแยกวิเคราะห์ JSON มาตรฐานคืนตัวเลขที่ถูกต้อง มีเพียงการแยกสตริงด้วยตนเองเท่านั้นที่พัง
การแจ้งเตือนที่สร้างก่อนการอัปเดตและยังไม่ถูกส่งจะมาถึงในรูปแบบเก่า ผู้รับต้องยอมรับทั้งสองรูปแบบจนกว่าคิวจะหมด — ใช้เวลาไม่เกินสองวัน
6 กันยายน
ฟิลด์ตัวเลขในการตอบกลับของ API เป็นตัวเลขแล้ว มีผลกับ invoices/list, payments/list และ invoices/create
| ฟิลด์ | ก่อน | หลัง |
|---|---|---|
commissionFiatUSD | "0.10" | 0.1 |
amountFiatUSD | "10.00" | 10 |
amountFiat | "1000.00" | 1000 |
views | "0" | 0 |
payment.amount | "10.500000000" | 10.5 |
คีย์ที่จำกัดไว้กับโปรเจกต์บังคับใช้ข้อจำกัดในทุกเมธอดแล้ว ก่อนหน้านี้บางเมธอดไม่สนใจโปรเจกต์ ตอนนี้มันเป็นตัวกรองในเมธอดแสดงรายการ และคำขอใบแจ้งหนี้หรือกระเป๋าเงินของโปรเจกต์อื่นถูกปฏิเสธด้วย Restricted project เมธอดที่ไม่สามารถปฏิบัติตามข้อจำกัดโปรเจกต์ได้จะถูกปิดสำหรับคีย์แบบนั้น รายละเอียดอยู่ในส่วน “ขอบเขตของคีย์”
รายการการชำระเงินคืนการชำระเงินที่ยังไม่ได้จับคู่ด้วยแล้ว ก่อนหน้านี้ payments/list คืนเฉพาะการชำระเงินที่ผูกกับใบแจ้งหนี้ ตอนนี้ผลลัพธ์รวมการชำระเงินทั้งหมดจากกระเป๋าเงินของคุณ โดยรายการที่ยังไม่ได้จับคู่จะไม่มีบล็อก invoice เหล่านี้คือการชำระเงินที่ต้องใช้สำหรับการจับคู่ด้วยตนเองผ่าน invoices/bindPayment พอดี
การยกเลิกใบแจ้งหนี้แยกแยะสาเหตุการปฏิเสธแล้ว ก่อนหน้านี้ทั้งกรณีไม่มีใบแจ้งหนี้และกรณีไม่เข้าเงื่อนไขคืน Invoice not found แบบเดียวกัน ตอนนี้ Invoice not found หมายถึงใบแจ้งหนี้ไม่มีอยู่เท่านั้น ส่วนกรณีไม่เข้าเงื่อนไขคืน Invoice cannot be canceled
ตัวระบุที่ผิดรูปแบบถูกปฏิเสธแล้ว invoices/list ตรวจสอบ invoiceId, invoiceUid และ projectId ส่วน payments/list — walletId และ invoiceId ค่าที่ไม่ถูกต้องคืน Parameter is filled in incorrectly พร้อมชื่อฟิลด์ ก่อนหน้านี้พารามิเตอร์แบบนั้นถูกละทิ้งเงียบ ๆ และผลลัพธ์กลับมาโดยไม่ถูกกรอง
ขอบเขตช่วงเวลารวมทั้งวันที่ระบุแล้ว startDate และ endDate ถูกตีความตั้งแต่ 00:00:00 ถึง 23:59:59 ก่อนหน้านี้วันสุดท้ายถูกตัดออกทั้งวัน และการค้นหาช่วงหนึ่งวันคืนเฉพาะระเบียนที่สร้างตอนเที่ยงคืนพอดี มีผลกับ invoices/list, payments/list, statistics/invoices และ statistics/payments
เพิ่มฟิลด์โปรเจกต์ในประวัติยอดคงเหลือ ทุกการดำเนินการในเมธอด billing/history มีฟิลด์ projectId แล้ว สำหรับการดำเนินการระดับบัญชี — การเติมเงินและโบนัส — ค่าจะเป็น null
4 กันยายน
คำอธิบายและข้อมูลฝั่งบริการถูกส่งกลับในรูปแบบดั้งเดิม ฟิลด์ description และ serviceData เคยถูกเก็บแบบเข้ารหัส และในการตอบกลับของ API เครื่องหมายคำพูดมาถึงเป็น " ส่วนเครื่องหมายน้อยกว่าเป็น < ตอนนี้ค่าที่ส่งกลับคือสิ่งที่ร้านค้าส่งไว้ทุกประการ เมื่อเรนเดอร์ใน HTML ให้ escape ค่าที่ฝั่งคุณเอง
ฟอร์ม HTML ยอมรับเฉพาะ POST การสร้างใบแจ้งหนี้โดยเปิดลิงก์ที่มีพารามิเตอร์ในแถบที่อยู่ใช้ไม่ได้อีกต่อไป — พารามิเตอร์ถูกอ่านจากเนื้อหาคำขอเท่านั้น หากคุณเคยใช้ลิงก์ ให้แทนที่ด้วยฟอร์มที่มี method="post"
3 กันยายน
การแจ้งเตือน webhook ถูกเซ็นแล้ว เพิ่ม header X-Timestamp และ X-Signature โดยลายเซ็นคำนวณด้วย HMAC-SHA256 จากคีย์ลับของ Webhook การตรวจสอบลายเซ็นช่วยแยกการแจ้งเตือนของจริงออกจากของปลอม กลไกและตัวอย่างอยู่ในส่วน “การตรวจสอบลายเซ็น Webhook”
การเปลี่ยนแปลงนี้เข้ากันได้ย้อนหลัง: หากคุณไม่เพิ่มการตรวจสอบ ตัวจัดการของคุณยังทำงานเหมือนเดิม