SMM Velox · API V1
เอกสาร API
เชื่อมต่อเว็บไซต์กับบริการ กระเป๋า VND และคำสั่งซื้อ SMM Velox ผ่าน API
เริ่มต้นใช้งาน
POST · VND · HTTPSส่ง key/action ใน body แบบ application/x-www-form-urlencoded หรือ JSON ไม่รับ query ใน URL Production ต้องใช้ HTTPS ไม่รองรับ GET ตัวอย่างเป็นข้อมูลสมมติ
API Endpoint
https://smmvelox.com/api/v2curl -X POST 'https://smmvelox.com/api/v2' \
--data-urlencode 'key=YOUR_API_KEY' \
--data-urlencode 'action=add' \
--data-urlencode 'service=123' \
--data-urlencode 'link=https://example.com/post' \
--data-urlencode 'quantity=1000' \
--data-urlencode 'client_order_id=YOUR_UNIQUE_ORDER_ID' \
--data-urlencode 'max_charge=11550'การยืนยันตัวตนด้วย API Key
เก็บ Key เป็นความลับ ส่งใน body เท่านั้น ห้ามใส่ URL หรือโค้ดหน้าบ้านหรือแชร์ผู้อื่น การเปลี่ยน/เพิกถอนมีผลทันที บัญชีต้องใช้งานได้และยืนยันอีเมลแล้ว
ส่ง API Key ผ่าน HTTPS ใน body ของ POST เท่านั้น ห้ามใส่ใน URL หรือโค้ดเบราว์เซอร์
ราคาและการชำระผ่าน API ใช้ VND เสมอ USD บนหน้าจอเป็นข้อมูลอ้างอิงเท่านั้น
รายการบริการ
V1 รองรับเฉพาะ Default ที่ตรวจสอบ mapping/หน่วยแล้ว rate คือ VND ต่อ 1,000 หน่วย charge = rate × quantity / 1,000 service เป็น DV-ID ภายใน order เป็นสตริง ID ภายใน ไม่แสดง ID ต้นทาง เงินเป็น decimal string สูงสุด 12 ตำแหน่ง
key=YOUR_API_KEY&action=services[
{
"service": 123,
"name": "Example",
"desc": "",
"type": "Default",
"category": "Facebook",
"platform": "facebook",
"rate": "11550.000000000000",
"rate_unit": "per_1000",
"min": "100",
"max": "100000",
"refill": false,
"cancel": false,
"dripfeed": false,
"currency": "VND"
}
]ตรวจสอบยอดเงิน
ราคาและการชำระผ่าน API ใช้ VND เสมอ USD บนหน้าจอเป็นข้อมูลอ้างอิงเท่านั้น
key=YOUR_API_KEY&action=balance{
"balance": "100000.000000000001",
"currency": "VND"
}สร้างคำสั่งซื้อ
add ต้องใช้ service จำนวนเต็มบวก link http/https ไม่เกิน 2,000 ตัวอักษร quantity จำนวนเต็มใน min/max ไม่รับ price/rate/discount/currency/user_id/status/provider หรือฟิลด์นอกสัญญา status แบบชุดสูงสุด 100 ID
| พารามิเตอร์ | ข้อกำหนด | คำอธิบาย |
|---|---|---|
| key | จำเป็น | API Key ของบัญชี |
| action | จำเป็น | คำสั่ง add |
| service | จำเป็น | ID บริการจากรายการ API |
| link | จำเป็น | ลิงก์เนื้อหาแบบ http/https |
| quantity | จำเป็น | จำนวนเต็มภายใน min/max |
| client_order_id | ไม่บังคับ | รหัสอ้างอิงเฉพาะบัญชีเพื่อป้องกันคำสั่งซื้อซ้ำ |
| idempotency_key | ไม่บังคับ | ชื่ออื่นของ client_order_id; เลือกส่งเพียงช่องเดียว ห้ามส่งทั้งสองช่อง |
| max_charge | ไม่บังคับ | ยอดชำระสูงสุดที่ยอมรับ (สตริง VND) ไม่ใช่ราคาที่ลูกค้าตั้งเอง |
key=YOUR_API_KEY&action=add&service=123&link=https://example.com/post&quantity=1000&client_order_id=YOUR_UNIQUE_ORDER_ID{
"order": "456"
}สถานะคำสั่งซื้อ
สถานะ Pending/Processing/In progress/Completed/Partial/Canceled ตามหลักฐาน รายการไม่ชัดเจนคืน Pending และ review_required=true start_count/remains เป็น null หากไม่มีหลักฐาน ไม่สมมติ 0 charge ใช้ยอดที่จ่ายแล้ว
key=YOUR_API_KEY&action=status&order=456{
"charge": "11550",
"status": "Pending",
"start_count": null,
"remains": null,
"currency": "VND",
"review_required": false
}สถานะหลายคำสั่งซื้อ
ตอบกลับเป็นออบเจ็กต์ตาม ID โดย ID ที่ไม่พบมีข้อผิดพลาดแยกกัน สูงสุด 100 ID
key=YOUR_API_KEY&action=status&orders=456,999{
"456": {
"charge": "11550",
"status": "Pending",
"start_count": null,
"remains": null,
"currency": "VND",
"review_required": false
},
"999": {
"error": "Incorrect order ID"
}
}คำสั่งที่ยังไม่รองรับ
ไม่รองรับและซ่อน Package/per_unit, custom comments, subscriptions, dripfeed cancel/refill/refill_status ตอบ HTTP 400 Action is not supported ไม่เปลี่ยนสถานะหรือคืนเงินอัตโนมัติ flags ทั้งสามเป็น false ใน V1
key=YOUR_API_KEY&action=cancel{
"error": "Action is not supported"
}กฎการสั่งซื้อและสถานะ
แนะนำ client_order_id (หรือ idempotency_key) 1–64 ตัว A–Z/a–z/0–9/_.:- ไม่ซ้ำในบัญชี รหัสและ service/link/quantity/max_charge เดิมคืนคำสั่งซื้อเดิม เนื้อหาต่างตอบ 409 max_charge เป็นเพดาน VND แบบสตริง ไม่ใช่ราคาที่ลูกค้ากำหนด
ไม่มีรหัสฝั่งลูกค้า add ที่ถูกต้องแต่ละครั้งสร้างคำสั่งซื้อใหม่แม้ข้อมูลเหมือนกัน อย่าส่งซ้ำทันทีเมื่อ timeout ไม่รับประกัน exactly-once หากไม่มีรหัส
ราคาคำนวณโดยเซิร์ฟเวอร์ ราคาอาจถูกจำกัดด้วยเกณฑ์ความปลอดภัยเมื่อมีส่วนลด โดยราคาเว็บไซต์ไม่เปลี่ยนแปลง
API OFF บล็อก add รวม replay แต่ Key ที่ถูกต้องยังอ่าน services/balance/status ได้ การส่งผู้ให้บริการขึ้นกับ gate/คิว ไม่รับประกันทันที คำสั่งซื้อ API ไม่มีค่าคอมมิชชัน Affiliate
การจัดการข้อผิดพลาดและการลองใหม่อย่างปลอดภัย
ป้องกันการดำเนินการซ้ำการเชื่อมต่ออาจขาดหลังจากระบบรับคำสั่งซื้อและหักเงินแล้ว การหมดเวลาหรือ HTTP 503 ไม่ได้ยืนยันว่าคำขอยังไม่ถูกประมวลผล ควรใช้รหัสอ้างอิงเฉพาะสำหรับแต่ละคำสั่งซื้อ
- ก่อนส่ง add ครั้งแรก ให้สร้าง client_order_id ที่ไม่ซ้ำ (หรือ idempotency_key) และบันทึกไว้พร้อม service, link, quantity และ max_charge ที่ส่ง
- หากได้รับ order ID ให้บันทึกไว้และตรวจสอบด้วย action=status และ order ไม่ควรส่ง add ใหม่เพียงเพื่อตรวจสอบสถานะ
- หากหมดเวลาหรือไม่ได้รับคำตอบและยังไม่มี order ID ให้ลองใหม่เฉพาะเมื่อการเชื่อมต่อและ API พร้อม โดยส่ง action=add รหัสเดิมและพารามิเตอร์เดิมทุกค่า ห้ามสร้างรหัสใหม่
- หากการลองใหม่ส่งกลับ order ID ให้ใช้ ID นั้นติดตามผล หากยังไม่ชัดเจนให้หยุดการลองใหม่อัตโนมัติและติดต่อฝ่ายช่วยเหลือพร้อมรหัสอ้างอิง (อย่าส่ง API Key)
ป้องกันการเรียกเก็บเงินซ้ำ
การเปลี่ยนหรือไม่ส่ง client_order_id อาจทำให้สร้างคำสั่งซื้อและหักเงินซ้ำ คงค่า max_charge เดิมเมื่อส่งซ้ำ รหัสเดียวกันแต่เปลี่ยน service/link/quantity/max_charge จะถูกปฏิเสธด้วย 409 เมื่อ API ปิดอยู่ การลองส่ง add ซ้ำก็ถูกบล็อก
curl -X POST 'https://smmvelox.com/api/v2' \
--data-urlencode 'key=YOUR_API_KEY' \
--data-urlencode 'action=add' \
--data-urlencode 'service=123' \
--data-urlencode 'link=https://example.com/post' \
--data-urlencode 'quantity=1000' \
--data-urlencode 'client_order_id=YOUR_UNIQUE_ORDER_ID' \
--data-urlencode 'max_charge=11550'action=status ต้องใช้ order ID ไม่สามารถค้นหาด้วย client_order_id หากยังไม่มี ID ให้ส่ง add ซ้ำด้วยข้อมูลเดิมเมื่อ API พร้อม หรือติดต่อฝ่ายช่วยเหลือ
ตัวอย่างข้อผิดพลาด JSON และแนวทางแก้ไข
รหัสอ้างอิงขัดแย้งกับข้อมูลเดิมหรือ charge เกิน max_charge ให้หยุดและตรวจสอบข้อมูลกับราคา อย่าสร้างรหัสใหม่เพื่อหลบข้อผิดพลาด
{
"error": "Client order ID conflicts with an existing request"
}พารามิเตอร์หรือเงื่อนไขการซื้อไม่ถูกต้อง ตรวจสอบ fields และแก้สาเหตุก่อนส่งคำขอใหม่ อย่าลองซ้ำโดยไม่ตรวจสอบ
{
"error": "Invalid request parameters",
"fields": [
"quantity"
]
}เกินขีดจำกัดคำขอ ให้รอตาม header Retry-After ลดความถี่ และคงรหัสเดิมสำหรับการส่ง add ซ้ำ
Retry-After: 60
{
"error": "Rate limit exceeded"
}API ปิด ผู้ให้บริการไม่พร้อม หรือเกิดข้อผิดพลาดชั่วคราว ให้หยุดส่งซ้ำจำนวนมากและรอ หากไม่แน่ใจผลของ add ให้ใช้รหัสและข้อมูลเดิมเท่านั้น
{
"error": "API order creation is disabled"
}JSON เป็นตัวอย่างรูปแบบข้อผิดพลาดจริง ข้อความ error อาจต่างกันตามสาเหตุ ให้พิจารณารหัส HTTP และสาเหตุเป็นหลัก
รหัสสถานะ HTTP
ข้อผิดพลาดใช้ JSON ที่มีฟิลด์ error และไม่เปิดเผยข้อมูลภายใน
| HTTP | คำอธิบาย |
|---|---|
| 200 | สำเร็จ (แต่ละรายการใน batch อาจมีข้อผิดพลาด) |
| 400 | คำสั่งหรือพารามิเตอร์ไม่ถูกต้อง |
| 401 | API Key หรือสิทธิ์ไม่ถูกต้อง |
| 403 | ต้องใช้ HTTPS |
| 404 | ไม่พบบริการ/คำสั่งซื้อ หรือเป็นของบัญชีอื่น |
| 405 | ไม่รองรับ HTTP method |
| 409 | รหัสคำขอขัดแย้งหรือเกิน max_charge |
| 413 | body คำขอใหญ่เกินกำหนด |
| 415 | ไม่รองรับ Content-Type |
| 422 | พารามิเตอร์ ราคา หรือเงื่อนไขการซื้อไม่ถูกต้อง |
| 429 | เกินขีดจำกัดคำขอ โปรดดู Retry-After |
| 503 | API ปิด ยังไม่ติดตั้ง หรือไม่พร้อมใช้งานชั่วคราว |
ความปลอดภัย ขีดจำกัด และข้อผิดพลาด
ไม่บังคับ: สูงสุด 20 IPv4/IPv6 แบบตรงตัว บรรทัดละ IP เว้นว่างคือไม่จำกัด IP ไม่รองรับ CIDR รายการผิดถูกปฏิเสธและคงค่าเดิม
ต่อนาที: 60 คำขอต่อ IP ก่อนยืนยันตัวตน และเพิ่มเพดาน 120 อ่านหรือ 15 add ต่อผู้ใช้/Key body สูงสุด 64 KiB 429 มี Retry-After ไม่เชื่อ Forwarded/X-Forwarded-For จากลูกค้า
FAQ: รับ Key หลังเข้าสู่ระบบ หากลืมต้องเปลี่ยน Key ไม่สามารถแสดง secret เดิมได้ Key ผู้ให้บริการใช้ไม่ได้ที่นี่ V1 (2026-10-30): services, balance, add Default และ status เดี่ยว/ชุด งานหลังการขายรอ V2 ที่ปลอดภัย