ต่อระบบของคุณเข้ากับเหตุการณ์ทิป อ่านได้เลยว่าตอนนี้มีอะไรพร้อมใช้จริง
Tipjai เป็นระบบไม่ถือเงิน (non-custodial) เงินวิ่งจากผู้ให้ทิปถึงครีเอเตอร์โดยตรง เหตุการณ์ในระบบจึงเกี่ยวกับวงจรของทิป (รอชำระ ยืนยัน แจ้งเตือนบนสตรีม) ไม่ใช่การเคลื่อนเงิน
เมื่อเชื่อม Paynoi (ของเสริม) ธนาคารของคุณยืนยันการรับเงินแล้วยิงเข้ามาที่ Webhook URL เฉพาะของคุณ Tipjai จะจับคู่กับทิปที่รอชำระ ยืนยัน และยิงการ์ดแจ้งเตือนให้อัตโนมัติ
POST https://tipjai.com/api/paynoi/<your-secret>
ตั้งค่าได้ที่ แดชบอร์ด แล้วเลือกการยืนยันอัตโนมัติ Webhook URL ของคุณเป็นความลับเฉพาะตัว อย่าเปิดเผย ระบบยืนยันด้วยการจับคู่ทิปจริงและกันส่งซ้ำ
ฝั่งคุณไม่ต้องเขียนโค้ด เพียงวาง Webhook URL ในแดชบอร์ด Paynoi
หน้าจอ overlay ทุกตัวคือ Browser Source สำหรับ OBS เปิดพื้นหลังโปร่งใสให้เอง วางลิงก์แล้วใช้ได้ทันที
/overlay/<token> การ์ดแจ้งเตือนทิป /overlay/<token>/<widget> leaderboard, goal, ticker, chat /countdown?...&overlay=1 นับถอยหลัง / เดบิวต์
REST แบบอ่านอย่างเดียว เปิด CORS ทุก origin คืนเฉพาะข้อมูลสาธารณะ (เหมือนที่เห็นบนหน้าโปรไฟล์) ไม่มีข้อมูลการเงินหรือส่วนตัว และไม่ต้องใช้คีย์
GET /api/v1/creator/<username> GET /api/v1/creator/<username>/leaderboard?period=month&limit=10 GET /api/v1/stats
ตัวอย่าง:
curl https://tipjai.com/api/v1/creator/<username>
{
"username": "...", "display_name": "...", "verified": true,
"category": "vtuber", "total_received": 1850, "supporters": 9,
"socials": { ... }, "tip_url": "https://tipjai.com/..."
}total_received เป็น null ถ้าครีเอเตอร์เลือกซ่อนยอด และ response นี้ไม่แคชเพื่อให้การตั้งค่าความเป็นส่วนตัวมีผลทันที เหมาะกับ overlay บอท หรือแดชบอร์ดของคุณเอง ถ้าต้องการต่อผู้ช่วย AI มี Remote MCP พร้อมใช้อยู่แล้วที่หน้านักพัฒนา docs.tipjai.com/developers ไม่ต้องห่อเอง
ลองยิงได้จากกล่องทดลองด้านบนของหน้านี้
ต่อ Catch Hook ของ Zapier, Make หรือ IFTTT จากแดชบอร์ด เมื่อทิปจริงยืนยันแล้ว Tipjai จะส่ง event ที่มีลายเซ็นและลองซ้ำอัตโนมัติหากปลายทางล่ม โดยไม่แตะสถานะเงิน
POST <your catch-hook> Idempotency-Key: <delivery UUID> X-Tipjai-Event: tip.confirmed X-Tipjai-Timestamp: 1787936000 X-Tipjai-Signature: v1=<HMAC-SHA256>
{
"id": "<delivery UUID>",
"event": "tip.confirmed",
"schema_version": 1,
"created_at": "2026-09-22T13:00:00Z",
"data": {
"tip_id": "<uuid>", "supporter": "มะลิ", "amount": 60, "currency": "THB",
"message": "ช้างสามตัว", "verification": "verified",
"gift": { "id": "elephant", "name": "ช้าง", "qty": 3 }
}
}gift เป็น null เมื่อทิปไม่มีของขวัญ ฟิลด์ใหม่จะถูกเพิ่มโดยไม่เปลี่ยน schema_version ปลายทางจึงควรอ่านเฉพาะฟิลด์ที่ใช้
คำนวณ HMAC-SHA256 จากข้อความ timestamp บวกจุด บวก raw JSON body ด้วย signing secret ที่แสดงในแดชบอร์ด แล้วเทียบแบบ constant-time ปฏิเสธ timestamp เก่าเกิน 5 นาที และ dedupe ด้วย Idempotency-Key
expected = HMAC_SHA256(secret, timestamp + "." + rawBody)
valid = timingSafeEqual("v1=" + expected, xTipjaiSignature)ระบบลองส่งซ้ำแบบ exponential backoff สูงสุด 10 ครั้งในเวลาประมาณ 2 ชั่วโมง (รอ 15 วินาทีแล้วเพิ่มเป็นสองเท่าทุกครั้ง ห่างกันไม่เกิน 1 ชั่วโมง) จากนั้นเป็น dead-letter ส่งรายการค้างอีกครั้งได้จากการ์ด Automation ในแดชบอร์ดภายใน 7 วัน รายการที่เก่ากว่า 1 วันจะลองส่งได้อีกครั้งเดียว สถานะ queued, retrying, delivered และ dead-letter ดูได้จากการ์ดเดียวกัน