| ทิศทาง | Address | Body |
|---|
| ระบบซื้อขาย → CDD Core | POST {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-type | application/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",
| Field | กฎ |
|---|
message_id | UUID ที่ผู้ส่งสร้าง ไม่ซ้ำกันต่อข้อความ |
message_type | ประเภทในหน้าถัดไป |
sent_at | UTC, ISO 8601, ระดับมิลลิวินาที |
institution | รหัสสถาบันที่ตกลงไว้สำหรับ link |
body | ตัวข้อความ |
- เวลาเป็น UTC ในทุกข้อความ หน้าจอแปลงเป็นเวลาไทย วันทำการ คือวันที่ตามเวลาไทย
- จำนวนเงินเป็นข้อความ เช่น
"125400.50", "0.04500000" ไม่ใช่ตัวเลข JSON
- ลูกค้า ระบุด้วย
core_customer_id (UUID ไม่เปลี่ยน) และ link_ref (เลขอ้างอิงที่แพลตฟอร์มออกให้ตอนผูกลูกค้ากับ link) เลขประจำตัวข้าม link ครั้งเดียวตอนผูก และไม่ข้ามอีก
{ "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"
{ "message_id": "…", "status": "REFUSED", "error": "BAD_SHAPE", "detail": "occurred_at is required" }
| รหัส | HTTP | ความหมาย |
|---|
LINK_KEY | 401 | ไม่มีกุญแจ หรือไม่ใช่กุญแจที่ใช้งานอยู่ |
BAD_SHAPE | 422 | field ที่ต้องมีขาดไปหรือชนิดผิด detail บอกชื่อ field |
UNKNOWN_CUSTOMER | 422 | core_customer_id ไม่ใช่ลูกค้าของสถาบันนี้ |
UNKNOWN_CODE | 422 | ขา การกระทำ ประเภทเหตุการณ์ หรือรหัสวงเงินที่ไม่อยู่ในรายการที่ตกลง |
ROUTE | 404 | ไม่ใช่ route ของ endpoint นี้ |
METHOD | 405 | ไม่ใช่ POST |
CORE_UNAVAILABLE · CORE_ERROR | 503 · 500 | CDD Core ขัดข้อง ให้ลองใหม่ |
- ไม่ได้ใบรับภายใน 10 วินาที ถือว่าไม่ได้รับ ลองใหม่หลัง 5 วินาที 30 วินาที 2 นาที และ 10 นาที จากนั้นทุก 30 นาที ครบ 24 ชั่วโมงให้เปิด incident
- 4xx คือข้อบกพร่อง ที่ต้องแก้ ไม่ลองใหม่ ส่วน 5xx ลองใหม่ได้ และการส่งซ้ำไม่ทำให้เกิดผลซ้ำ
- เมื่อลำดับมีผล ผู้รับเรียงตามเวลาทางธุรกิจใน body (
issued_at, state_version) ไม่ใช่ลำดับที่มาถึง