ข้อมูล REST API ทั่วไป

  • URL ฐาน: https://api-adapter.backend.currency.com
  • URL ฐาน บัญชีทดลอง: https://demo-api-adapter.backend.currency.com
  • จุดสิ้นสุดทั้งหมดส่งคืนวัตถุ JSON หรืออาร์เรย์
  • ข้อมูลจะถูกส่งกลับในลำดับจากน้อยไปมาก เก่าสุดก่อน ใหม่ล่าสุดหลังสุด
  • ฟิลด์ที่เกี่ยวข้องกับเวลาและการประทับเวลาทั้งหมดมีหน่วยเป็นมิลลิวินาที
  • สินทรัพย์โทเคนทั้งหมด ยกเว้นโทเคนของบริษัท พันธบัตรโทเคน โทเคน KARMA.cx และสินทรัพย์โทเคนจากตลาดฮ่องกงมีอยู่ในเวอร์ชั่นแรก (v1) ของ API ของเรา ในเวอร์ชั่น API ที่สอง (v2) ตลาดฮ่องกงก็มีให้ใช้งานเช่นกัน
  • รายการสินทรัพย์ที่สามารถซื้อขายด้วยเลเวอเรจภายใน API สามารถพบได้ที่นี่
  • เมื่อตั้งค่าตลาด ให้จำกัดหรือหยุดคำสั่ง และกล่าวถึงตัวเลขที่มีความแม่นยำมากกว่าที่จำเป็นสำหรับโทเคนเฉพาะ ตรรกะ round_down นั้นเป็นจริง ความแม่นยำที่อนุญาตสามารถพบได้ในการตอบสนองคำขอ exchangeInfo พารามิเตอร์ quotePrecision
  • เมื่อกล่าวถึงตัวเลขที่มีความแม่นยำจำนวนมากขึ้นสำหรับพารามิเตอร์ราคา ตรรกะ round_up จะถูกใช้ ความแม่นยำที่อนุญาตสามารถพบได้ในการตอบสนองคำขอ exchangeInfo พารามิเตอร์ quotePrecision

โปรดดูส่วน REST API ภายใน Swagger เพื่อรับข้อมูลที่จำเป็น 

Troubleshooting

รหัสส่งคืน HTTP

  • รหัสส่งคืน HTTP 4XX ใช้สำหรับคำขอที่มีรูปแบบไม่ถูกต้อง ปัญหาอยู่ที่ฝั่งผู้ส่ง
  • รหัสส่งคืน HTTP 403 ถูกใช้เมื่อ WAF Limit (Web Application Firewall) ถูกละเมิด
  • รหัสส่งคืน HTTP 429 ถูกใช้เมื่อทำลายขีดจำกัดอัตราคำขอ
  • รหัสส่งคืน HTTP 418 จะใช้เมื่อ IP ถูกแบนโดยอัตโนมัติสำหรับการส่งคำขอต่อไปหลังจากได้รับรหัส 429
  • รหัสส่งคืน HTTP 5XX ใช้สำหรับข้อผิดพลาดภายใน ปัญหาอยู่ที่ด้าน Currency.com เป็นสิ่งสำคัญที่จะไม่ถือว่าการดำเนินการนี้เป็นการดำเนินการที่ล้มเหลว สถานะการดำเนินการคือไม่ทราบ (UNKNOWN) และอาจประสบความสำเร็จ

 

รหัสข้อผิดพลาด

  • จุดสิ้นสุดใดๆ สามารถส่งคืนข้อผิดพลาด (ERROR) ได้

ตัวอย่างสินค้าบรรทุกด้านล่าง:

การตอบสนอง:
{ "code": -1121, "msg": "Invalid symbol." }
  • รหัสข้อผิดพลาดและข้อความเฉพาะถูกกำหนดไว้ในรหัสข้อผิดพลาด

ข้อมูลทั่วไปเกี่ยวกับจุดสิ้นสุด

  • สำหรับจุดสิ้นสุด GET ต้องส่งพารามิเตอร์เป็นสตริงการสืบค้น
  • สำหรับจุดสิ้นสุด POST, PUT และ DELETE พารามิเตอร์อาจถูกส่งเป็นสตริงการสืบค้นหรือในเนื้อหาคำขอที่มีประเภทเนื้อหา application/x-www-form-urlencoded คุณสามารถผสมพารามิเตอร์ระหว่างทั้งสตริงการสืบค้นและเนื้อหาคำขอได้หากต้องการ พารามิเตอร์สามารถส่งในลำดับใดก็ได้
  • พารามิเตอร์สามารถส่งในลำดับใดก็ได้
  • หากพารามิเตอร์ส่งทั้งในสตริงการสืบค้นและเนื้อหาของคำขอ พารามิเตอร์สตริงการสืบค้นจะถูกใช้

ประเภทการรักษาความปลอดภัยจุดสิ้นสุด

  • จุดสิ้นสุดแต่ละจุดมีประเภทความปลอดภัยที่กำหนดว่าคุณจะโต้ตอบกับมันอย่างไร ซึ่งระบุไว้ข้างชื่อของจุดสิ้นสุด
  • หากไม่มีการระบุประเภทความปลอดภัย ถือว่าประเภทความปลอดภัยคือ NONE
  • คีย์ API จะถูกส่งผ่านไปยัง REST API ผ่านส่วนหัว X-MBX-APIKEY
  • คีย์ APและคีย์ลับ คำนึงถึงขนาดตัวพิมพ์
  • สามารถกำหนดคีย์ API เพื่อเข้าถึงจุดสิ้นสุดที่ปลอดภัยบางประเภทเท่านั้น ตัวอย่างเช่น สามารถใช้คีย์ API หนึ่งคีย์สำหรับการซื้อขาย เท่านั้น ในขณะที่คีย์ API อื่นสามารถเข้าถึงทุกอย่างได้ ยกเว้นเส้นทางการซื้อขาย 
  • โดยค่าเริ่มต้น คีย์ API สามารถเข้าถึงเส้นทางที่ปลอดภัยทั้งหมดได้
ประเภทความปลอดภัยคำอธิบาย
ไม่มีสามารถเข้าถึงจุดสิ้นสุดได้อย่างอิสระ
การซื้อขายจุดสิ้นสุดต้องการการส่งคีย์ API และลายเซ็นที่ถูกต้อง
USER_DATAจุดสิ้นสุดต้องการการส่งคีย์ API และลายเซ็นที่ถูกต้อง
USER_STREAMจุดสิ้นสุดต้องการส่งคีย์ API ที่ถูกต้อง
MARKET_DATAจุดสิ้นสุดต้องการส่งคีย์ API ที่ถูกต้อง
  • จุดสิ้นสุด TRADE และ USER_DATA เป็นจุดสิ้นสุดที่ลงนาม

ลงนาม (TRADE, USER_DATA, AND MARGIN) การรักษาความปลอดภัยจุดสิ้นสุด

  • จุดสิ้นสุดที่ลงนามต้องมีพารามิเตอร์เพิ่มเติม ลายเซ็น เพื่อส่งในสตริงการสืบค้นหรือเนื้อหาคำขอ
  • จุดสิ้นสุดใช้ลายเซ็น HMAC SHA256 ลายเซ็น HMAC SHA256 เป็นการดำเนินการ HMAC SHA256 แบบคีย์ ใช้ secretKey ของคุณเป็นคีย์ และ TotalParams เป็นค่าสำหรับการดำเนินการ HMAC
  • ลายเซ็นไม่คำนึงถึงขนาดตัวพิมพ์
  • TotalParams ถูกกำหนดให้เป็นสตริงการสืบค้นที่ต่อกับเนื้อหาคำขอ

 

ความปลอดภัยด้านเวลา

  • จุดสิ้นสุดที่ลงนามยังต้องการพารามิเตอร์ ประทับเวลาที่จะส่ง ซึ่งควรเป็นเวลามิลลิวินาทีของเวลาที่คำขอถูกสร้างขึ้นและส่ง
  • อาจมีการส่งพารามิเตอร์เพิ่มเติม recvWindow เพื่อระบุจำนวนมิลลิวินาทีหลังจากการประทับเวลาที่คำขอถูกต้อง หากไม่ได้ส่ง recvWindow § ค่าเริ่มต้นคือ 5000

ตรรกะมีดังนี้:

if (timestamp < (serverTime + 1000) && (serverTime - timestamp) <= recvWindow) { // process request } else { // reject request }

การซื้อขายที่จริงจังเป็นเรื่องของจังหวะเวลา เครือข่ายอาจไม่เสถียรและไม่น่าเชื่อถือซึ่งอาจทำให้คำขอใช้เวลาในการเข้าถึงเซิร์ฟเวอร์ต่างกัน ด้วย recvWindow คุณสามารถระบุได้ว่าคำขอต้องได้รับการประมวลผลภายในจำนวนมิลลิวินาทีที่กำหนดหรือถูกปฏิเสธโดยเซิร์ฟเวอร์

ขอแนะนำให้ใช้ recvWindow ขนาดเล็ก 5,000 หรือน้อยกว่า! สูงสุดไม่เกิน 60,000!

ตัวอย่างจุดสิ้นสุดที่ลงนามสำหรับ POST /api/v1/order

ต่อไปนี้คือตัวอย่างทีละขั้นตอนของวิธีส่งสินค้าบรรทุกที่ลงชื่อที่ถูกต้องจากบรรทัดคำสั่ง Linux โดยใช้ echo, openssl และ curl

คีย์ค่า
คีย์ APIvmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A
คีย์ลับNhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j
พารามิเตอร์ค่า
สัญลักษณ์LTC/BTC
ด้านซื้อ
ประเภทขีดจำกัด
ปริมาณGTC
ราคา1
ราคา0,1
recvWindow5000
ประทับเวลา1499827319559

โปรดทราบว่าสัญลักษณ์บางตัว เช่น '/' ควรเข้ารหัส URL และแปลงเป็นชุดค่าผสม '%2F' ต่อไปนี้

ตัวอย่างที่ 1: เป็นเนื้อหาที่ร้องขอ

requestBody:

symbol=LTC%2FBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000&timestamp=1499827319559

HMAC SHA256 signature

[linux]$ echo -n
"symbol=LTC%2FBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000&timestamp=1499827319559" | openssl dgst -sha256 -hmac
"NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j"
(stdin)= ebec6528b2beb508b2417fa33453a4ad28c1aae8097bb243caa60d0524036f50

curl command:

(HMAC SHA256)
[linux]$ curl -H "X-MBX-APIKEY:
vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A" -X POST 'https://api-adapter.backend.currency.com/api/v1/order' -d
'symbol=LTC%2FBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000&timestamp=1499827319559&signature=ebec6528b2beb508b2417fa33453a4ad28c1aae8097bb243caa60d0524036f50'

ตัวอย่างที่ 2: เป็นสตริงการสืบค้น

queryString:

symbol=LTC%2FBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000&timestamp=1499827319559

HMAC SHA256 signature:

[linux]$ echo -n
"symbol=LTC%2FBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000&timestamp=1499827319559" | openssl dgst -sha256 -hmac
"NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j"
(stdin)= ebec6528b2beb508b2417fa33453a4ad28c1aae8097bb243caa60d0524036f50

curl command:

(HMAC SHA256)
[linux]$ curl -H "X-MBX-APIKEY:
vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A" -X POST 'https://api-adapter.backend.currency.com/api/v1/order?symbol=LTC%2FBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000&timestamp=1499827319559&signature=ebec6528b2beb508b2417fa33453a4ad28c1aae8097bb243caa60d0524036f50'

ตัวอย่างจุดสิ้นสุดที่ลงนามสำหรับ POST /api/v1/order
(โหมดการซื้อขายเลเวอเรจ)

ต่อไปนี้คือตัวอย่างทีละขั้นตอนของวิธีส่งสินค้าบรรทุกที่ลงชื่อที่ถูกต้องจากบรรทัดคำสั่ง Linux โดยใช้ echo, openssl และ curl

คีย์ค่า
คีย์ APIvmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A
คีย์ลับNhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j
พารามิเตอร์ค่า
สัญลักษณ์BTC/USD_LEVERAGE
ด้านซื้อ
ประเภทตลาด
timeInforceGTC
ปริมาณ0.01
ปริมาณ2
ID บัญชี2376109060084932
ทำกำไร8000
หยุดการสูญเสีย6000
recvWindow60000
ประทับเวลา1586942164000

โปรดทราบว่าสัญลักษณ์บางตัว เช่น '/' ควรเข้ารหัส URL และแปลงเป็นชุดค่าผสม '%2F' ต่อไปนี้

ตัวอย่างที่ 1: เป็นเนื้อหาที่ร้องขอ

requestBody:

symbol=BTC%2FUSD_LEVERAGE&side=BUY&type=MARKET&timeInForce=GTC&quantity=0.01&leverage=2&accountId=2376109060084932&takeProfit=8000&stopLoss=6000&recvWindow=60000&timestamp=1586942164000

HMAC SHA256 signature

[linux]$ echo -n
"symbol=BTC%2FUSD_LEVERAGE&side=BUY&type=MARKET&timeInForce=GTC&quantity=0.01&leverage=2&accountId=2376109060084932&takeProfit=8000&stopLoss=6000&recvWindow=60000&timestamp=1586942164000" | openssl dgst -sha256 -hmac
"NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j"
(stdin)= 05fc9fd19c2b1a11215025c5dfa56da2204b04181add67670d4f92049b439f7b

curl command:

(HMAC SHA256)
[linux]$ curl -H "X-MBX-APIKEY:
vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A" -X POST 'https://api-adapter.backend.currency.com/api/v1/order' -d
'symbol=BTC%2FUSD_LEVERAGE&side=BUY&type=MARKET&timeInForce=GTC&quantity=0.01&leverage=2&accountId=2376109060084932&takeProfit=8000&stopLoss=6000&recvWindow=60000&timestamp=1586942164000&signature=05fc9fd19c2b1a11215025c5dfa56da2204b04181add67670d4f92049b439f7b'

ตัวอย่างที่ 2: เป็นสตริงการสืบค้น

queryString:

symbol=BTC%2FUSD_LEVERAGE&side=BUY&type=MARKET&timeInForce=GTC&quantity=0.01&leverage=2&accountId=2376109060084932&takeProfit=8000&stopLoss=6000&recvWindow=60000&timestamp=1586942164000

HMAC SHA256 signature:

[linux]$ echo -n
"symbol=BTC%2FUSD_LEVERAGE&side=BUY&type=MARKET&timeInForce=GTC&quantity=0.01&leverage=2&accountId=2376109060084932&takeProfit=8000&stopLoss=6000&recvWindow=60000&timestamp=1586942164000" | openssl dgst -sha256 -hmac
"NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j"
(stdin)= 05fc9fd19c2b1a11215025c5dfa56da2204b04181add67670d4f92049b439f7b

curl command:

(HMAC SHA256)
[linux]$ curl -H "X-MBX-APIKEY:
vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A" -X POST 'https://api-adapter.backend.currency.com/api/v1/order?symbol=BTC%2FUSD_LEVERAGE&side=BUY&type=MARKET&timeInForce=GTC&quantity=0.01&leverage=2&accountId=2376109060084932&takeProfit=8000&stopLoss=6000&recvWindow=60000&timestamp=1586942164000&signature=05fc9fd19c2b1a11215025c5dfa56da2204b04181add67670d4f92049b439f7b

คำศัพท์

  • สินทรัพย์ฐาน หมายถึง สินทรัพย์ที่เป็นปริมาณของสัญลักษณ์
  • สินทรัพย์อ้างอิง หมายถึง สินทรัพย์ที่เป็นราคาของสัญลักษณ์

คำจำกัดความของ ENUM

สถานะการสั่งซื้อ (สถานะ):

  • ใหม่
  • กรอก
  • ยกเลิก
  • ถูกปฏิเสธ

ประเภทคำสั่งซื้อ (orderTypes, ประเภท):

  • ขีดจำกัด
  • ตลาด
  • หยุด

ด้านการสั่งซื้อ (ด้าน):

  • ซื้อ
  • ขาย

เวลาที่ใช้บังคับ (timeInForce):

  • GTC
  • IOC
  • FOK

ช่วงเวลาของแผนภูมิ Kline/Candlestick: น. -> นาที; ช.ม -> ชั่วโมง; ว. -> วัน; ส. -> สัปดาห์

  • 1 น.
  • 5 น.
  • 15 น.
  • 30 น.
  • 1 ช.ม
  • 4 ช.ม
  • 1 ว.
  • 1 ส.

พารามิเตอร์ 'ประเภท' /klines

  • heiken-ashi