ข้ามไปที่เนื้อหา

ข้อกำหนดร่วม

ทิศทางAddressBody
ระบบซื้อขาย → CDD CorePOST {core_base_url}/functions/v1/trading-link/{route}envelope โดยตรง
CDD Core → ระบบซื้อขายPOST {trading_base_url}/rest/v1/rpc/{function}{"p": { …envelope… }}
Headerค่า
x-link-keyกุญแจลับของทิศทางนั้น สุ่มอย่างน้อย 40 ตัวอักษร
apikeyเฉพาะ CDD Core → ระบบซื้อขาย: publishable key ของ gateway ซึ่งไม่ให้สิทธิ์ใดด้วยตัวเอง
content-typeapplication/json

กุญแจไม่มีหรือผิดได้ HTTP 401 {"error":"LINK_KEY"} ระบบบันทึกไว้และไม่ประมวลผล

ทุกข้อความ ทั้งสองทิศทาง

{
"message_id": "b1f0c9e2-6f0a-4c43-9d1e-2b7f6f1d8a10",
"message_type": "RESTRICTION_COMMAND",
"sent_at": "2026-09-20T08:15:30.123Z",
"institution": "INST",
"body": { }
}
Fieldกฎ
message_idUUID ที่ผู้ส่งสร้าง ไม่ซ้ำกันต่อข้อความ
message_typeประเภทในหน้าถัดไป
sent_atUTC, ISO 8601, ระดับมิลลิวินาที
institutionรหัสสถาบันที่ตกลงไว้สำหรับ link
bodyตัวข้อความ
  • เวลาเป็น UTC ในทุกข้อความ หน้าจอแปลงเป็นเวลาไทย วันทำการ คือวันที่ตามเวลาไทย
  • จำนวนเงินเป็นข้อความ เช่น "125400.50", "0.04500000" ไม่ใช่ตัวเลข JSON
  • ลูกค้า ระบุด้วย core_customer_id (UUID ไม่เปลี่ยน) และ link_ref (เลขอ้างอิงที่แพลตฟอร์มออกให้ตอนผูกลูกค้ากับ link) เลขประจำตัวข้าม link ครั้งเดียวตอนผูก และไม่ข้ามอีก
HTTP 200
{ "message_id": "b1f0c9e2-…", "received_at": "2026-09-20T08:15:30.456Z", "status": "RECEIVED" }

เมื่อเลขอ้างอิงทางธุรกิจเดิมมาซ้ำด้วย message_id ใหม่ ใบรับเพิ่ม field repeat เช่น "repeat": "COMMAND_REF_SEEN" หรือ "repeat": "EVENT_REF_SEEN"

HTTP 422
{ "message_id": "…", "status": "REFUSED", "error": "BAD_SHAPE", "detail": "occurred_at is required" }
รหัสHTTPความหมาย
LINK_KEY401ไม่มีกุญแจ หรือไม่ใช่กุญแจที่ใช้งานอยู่
BAD_SHAPE422field ที่ต้องมีขาดไปหรือชนิดผิด detail บอกชื่อ field
UNKNOWN_CUSTOMER422core_customer_id ไม่ใช่ลูกค้าของสถาบันนี้
UNKNOWN_CODE422ขา การกระทำ ประเภทเหตุการณ์ หรือรหัสวงเงินที่ไม่อยู่ในรายการที่ตกลง
ROUTE404ไม่ใช่ route ของ endpoint นี้
METHOD405ไม่ใช่ POST
CORE_UNAVAILABLE · CORE_ERROR503 · 500CDD Core ขัดข้อง ให้ลองใหม่

การลองใหม่และลำดับ

หัวข้อ “การลองใหม่และลำดับ”
  • ไม่ได้ใบรับภายใน 10 วินาที ถือว่าไม่ได้รับ ลองใหม่หลัง 5 วินาที 30 วินาที 2 นาที และ 10 นาที จากนั้นทุก 30 นาที ครบ 24 ชั่วโมงให้เปิด incident
  • 4xx คือข้อบกพร่อง ที่ต้องแก้ ไม่ลองใหม่ ส่วน 5xx ลองใหม่ได้ และการส่งซ้ำไม่ทำให้เกิดผลซ้ำ
  • เมื่อลำดับมีผล ผู้รับเรียงตามเวลาทางธุรกิจใน body (issued_at, state_version) ไม่ใช่ลำดับที่มาถึง