พื้นฐานของรีเควสต์และเรสปอนส์ (JSON)
API
รีเควสต์
เรสปอนส์
JSON
การแบ่งหน้า
บทความนี้เหมาะสำหรับใคร
สำหรับนักพัฒนาที่ต้องการสร้างไคลเอนต์ที่เรียก API ของ ReceiptRoller
สำหรับนักพัฒนาที่ต้องการสร้างไคลเอนต์ที่เรียก API ของ ReceiptRoller
พื้นฐานของรีเควสต์
- โปรโตคอล:บังคับใช้ HTTPS (ปฏิเสธ HTTP)
- รูปแบบ:ทั้งบอดี้รีเควสต์และเรสปอนส์เป็น JSON
- ชุดอักขระ:UTF-8
- การยืนยันตัวตน:
Authorization: Bearer {access_token}
เฮดเดอร์ที่จำเป็น・แนะนำ
Authorization: Bearer eyJhbGciOi... ← จำเป็น Content-Type: application/json ← จำเป็นสำหรับ POST/PUT Accept: application/json ← แนะนำ User-Agent: MyApp/1.2.3 ← แนะนำ (ใช้ระบุตัวตนเมื่อติดต่อสอบถาม) Idempotency-Key: 01HV6N3M2K... ← แนะนำสำหรับ POST/PUT (ป้องกันการซ้ำ)
โครงสร้างพื้นฐานของเรสปอนส์
รีซอร์สเดี่ยว
{
"id": "rcp_xyz789",
"object": "receipt",
"created_at": "2026-04-27T10:15:23Z",
"store_id": "str_abc123",
"total_amount": 3850,
"currency": "JPY"
}
รายการ (แบบมีการแบ่งหน้า)
{
"object": "list",
"data": [
{ "id": "rcp_001", ... },
{ "id": "rcp_002", ... }
],
"has_more": true,
"next_cursor": "cur_xxx"
}
การแบ่งหน้า (แบบเคอร์เซอร์)
API แบบรายการใช้แบบเคอร์เซอร์ ดึงหน้าถัดไปด้วย ?limit=50&cursor={next_cursor ของครั้งก่อน}
limitเริ่มต้น: 20, สูงสุด: 100- ถ้า
has_more: falseแสดงว่าเป็นหน้าสุดท้าย - เคอร์เซอร์มีอายุ 6 ชั่วโมง
- โดยหลักแล้วเรียงลำดับจากใหม่ไปเก่า (
created_at DESC)
การกรอง
กรองด้วยควิรีพารามิเตอร์
GET /v1/receipts?store_id=str_abc&issued_after=2026-04-01&issued_before=2026-04-30 ตัวดำเนินการเปรียบเทียบที่รองรับ: ?total_amount[gte]=1000 ← 1000 ขึ้นไป ?total_amount[lt]=5000 ← น้อยกว่า 5000 ?status[in]=issued,refunded ← อย่างใดอย่างหนึ่ง
รูปแบบวันที่-เวลา
- ทั้งหมดเป็นรูปแบบ ISO 8601 (
YYYY-MM-DDTHH:mm:ssZ) - เรสปอนส์เป็นUTCเสมอ (ลงท้ายด้วย Z)
- เวลารีเควสต์สามารถส่งพร้อมไทม์โซนได้ (แปลงเป็น UTC โดยอัตโนมัติ)
การแสดงจำนวนเงิน
- จำนวนเงินเป็นจำนวนเต็มในหน่วยสกุลเงินที่เล็กที่สุด (เช่น JPY คือ 1=1 เยน, USD คือ 1=1 เซนต์)
- ไม่รวมจุดทศนิยม・เครื่องหมายคั่นหลักพัน
- สกุลเงินระบุด้วยฟิลด์
currency(ISO 4217)
รูปแบบของ ID
รีซอร์ส ID ทุกตัวมีคำนำหน้า (prefix) สามารถแยกแยะชนิดได้ในทันที
| คำนำหน้า | รีซอร์ส |
|---|---|
rcp_ | ใบเสร็จ |
str_ | ร้านค้า |
prd_ | สินค้า |
cus_ | ลูกค้า |
evt_ | อีเวนต์ |
คีย์ความเป็นอิเดมโพเทนต์ (Idempotency-Key)
เมื่อระบุ Idempotency-Key เดียวกันใน POST/PUT ฝั่ง ReceiptRoller จะตรวจจับการซ้ำและคืนผลลัพธ์แรก ช่วยป้องกันการสร้างซ้ำเมื่อลองใหม่จากปัญหาเครือข่าย
- ใช้ค่าที่ไม่ซ้ำ เช่น UUID หรือ ULID
- คีย์จะถูกเก็บไว้ 24 ชั่วโมง
- ไม่แชร์ข้ามเอนด์พอยต์ที่ต่างกัน
คู่มือที่เกี่ยวข้อง
วันที่เผยแพร่: 2569-04-27
วันที่อัปเดต: 2569-07-05
หมวดหมู่
แท็ก
API (22)
OAuth (15)
Android (10)
iOS (9)
Webhook (8)
api (7)
oauth (5)
getting-started (4)
การลงทะเบียนแอป (4)
การแก้ปัญหา (4)
บทความที่เกี่ยวข้อง
-
วิธีใช้ Reservations APIคู่มือ Reservations API ของ ReceiptRoller (/api/v1/reservations) อธิบายการทำ CRUD และอัปเดตสถานะการจอง การดึง・สร้าง・สร้างชุดของช่องจอง (สล็อต) การดึงข้อมูลโต๊ะ (โต๊ะ・ห้องส่วนตัว・เคาน์เตอร์) ที่ลงทะเบียนไว้ในเลย์เอาต์ร้าน และสถิติการจอง
-
วิธีใช้ In-Store Media Display API (Display API)ภาพรวมของ In-Store Android Display API ของ ReceiptRoller (/api/v1/displays/*) และขั้นตอนการจับคู่・heartbeat・การดึงเพลย์ลิสต์・การรายงานผลการเล่น คู่มือเริ่มต้นสำหรับสร้างแอปเล่นมีเดียลูปบนเครื่อง Android แบบ POS ควบคู่หรือเครื่องไซเนจของร้าน
-
การเชื่อมต่อข้อมูลการซื้อและใบเสร็จอธิบายโครงสร้างข้อมูลการซื้อและใบเสร็จที่ ReceiptRoller จัดการ วิธีการดึงข้อมูล สโคปที่เกี่ยวข้อง Webhook และกรณีการใช้งานที่พบบ่อย
-
สารบัญความช่วยเหลือสำหรับนักพัฒนาสารบัญความช่วยเหลือสำหรับนักพัฒนา ReceiptRoller รวบรวมตั้งแต่การสมัครเป็นนักพัฒนา การลงทะเบียนแอปพลิเคชัน การยืนยันตัวตน OAuth และสโคป คู่มือการพัฒนา (แอปวอลเล็ต, Webhook สำหรับร้านค้า, Survey API) คู่มือแยกตามโดเมนข้อมูล การใช้งานและความปลอดภัย คอมมูนิตี ไปจนถึงการแก้ปัญหา
-
ดึงรายการบัญชีธุรกิจ・ร้านค้า・เครื่อง POSคู่มือสรุปขั้นตอนการดึงรายการบัญชีธุรกิจที่ผู้ใช้สังกัด ร้านค้าภายใต้บัญชีนั้น และเครื่อง POS ของแต่ละร้านผ่าน REST API จากแอปมือถือ/แอปเซิร์ฟเวอร์ของ ReceiptRoller