Skip to main content

GET - ดึงข้อมูลใบแจ้งหนี้

ดึงสถานะปัจจุบันและรายละเอียดของใบแจ้งหนี้ตาม trans_id ส่งคืนสถานะการชำระเงิน จำนวนเงิน ข้อมูลโทเค็น/เครือข่าย (หากเลือกแล้ว) และรายละเอียดธุรกรรม (หากเสร็จสมบูรณ์) ส่งคืนเฉพาะใบแจ้งหนี้ที่เป็นของร้านค้าที่เชื่อมกับ API Key เท่านั้น

Endpoint

GET https://api.payerscan.com/invoice/:trans_id

ตัวอย่าง: GET https://api.payerscan.com/invoice/TID-ABC123DEF4567890

Headers

Headerจำเป็นคำอธิบาย
x-api-keyใช่API Key ของร้านค้า

Response

สำเร็จ (HTTP 200)

Response พื้นฐาน (รวมเสมอ):

{
"status": "success",
"data": {
"trans_id": "TID-ABC123DEF4567890",
"request_id": "ORDER_123456",
"status": "waiting",
"amount": "100",
"name": "Top-up balance",
"description": "Top-up the balance for username: JohnDoe",
"created_at": 1738742400,
"expires_at": 1738746000
}
}

เมื่อลูกค้าเลือกโทเค็น/เครือข่ายบนหน้าชำระเงิน data จะมีฟิลด์เพิ่มเติม:

{
"token_symbol": "USDT",
"network_symbol": "BSC",
"token_amount": "100.0026",
"token_price": "1",
"to_address": "0xc221460115e2CfCa5bF089A7e647b11cb9631efE"
}

เมื่อ status = "completed" data จะมีฟิลด์เพิ่มเติม:

{
"transaction_hash": "0xd346b32b83b35376d42a2464598fbf565fffb39e...",
"from_address": "0x8894e0a0c962cb723c1976a4421c95949be2d4e3",
"fee_amount": "0.2",
"callback_status": "success"
}

คำอธิบายฟิลด์

ฟิลด์คำอธิบาย
trans_idรหัสใบแจ้งหนี้ที่ไม่ซ้ำ
request_idID คำสั่งซื้อของคุณ (ถ้ามีตอนสร้าง)
statuswaiting | processing | completed | expired
amountจำนวนเงิน USD (string)
nameชื่อ/หัวข้อใบแจ้งหนี้ (ถ้ามีตอนสร้าง)
descriptionคำอธิบายใบแจ้งหนี้ (ถ้ามีตอนสร้าง)
created_atเวลาสร้าง (Unix timestamp, วินาที)
expires_atเวลาหมดอายุ (Unix timestamp, วินาที)
token_symbolโทเค็นที่เลือก (เช่น USDT, BNB) เฉพาะหลังจากลูกค้าเลือก
network_symbolเครือข่าย (เช่น BSC, TRC20, ETH, BINANCE_PAY) เฉพาะหลังจากลูกค้าเลือก
token_amountจำนวนคริปโตที่ต้องโอน เฉพาะหลังจากลูกค้าเลือก
token_priceอัตราแลกเปลี่ยนตอนเลือก เฉพาะหลังจากลูกค้าเลือก
to_addressที่อยู่กระเป๋าเงินรับ เฉพาะหลังจากลูกค้าเลือก
transaction_hashแฮชธุรกรรมบล็อกเชน เฉพาะเมื่อ status = "completed"
from_addressที่อยู่กระเป๋าเงินผู้ส่ง เฉพาะเมื่อ status = "completed"
fee_amountค่าธรรมเนียมที่หัก (USD) เฉพาะเมื่อ status = "completed"
callback_statusสถานะการส่ง webhook: success | failed | null เฉพาะเมื่อ status = "completed"

ข้อผิดพลาด (4xx / 5xx)

HTTPerror_codeคำอธิบาย
400MISSING_TRANS_IDไม่มี trans_id ใน URL
400INVALID_TRANS_ID_FORMATรูปแบบ trans_id ไม่ถูกต้อง ต้องเป็น: TID-XXXXXXXXXXXXXXXX (16 ตัวอักษรตัวพิมพ์ใหญ่) details มี trans_id และ expected_format
401MISSING_API_KEYไม่มี header x-api-key
401INVALID_API_KEYAPI key ไม่ถูกต้องหรือไม่มีอยู่
403ACCOUNT_INACTIVEบัญชีที่เชื่อมกับ API key นี้ถูกปิดใช้งาน
403STORE_INACTIVEร้านค้าที่เชื่อมกับ API key นี้ถูกปิดใช้งาน
404INVOICE_NOT_FOUNDไม่พบใบแจ้งหนี้หรือไม่ได้เป็นของ API Key ของร้านค้านี้ details.trans_id มีค่าที่ส่ง
429RATE_LIMIT_EXCEEDEDเกินขีดจำกัดคำขอ
500INTERNAL_ERRORข้อผิดพลาดเซิร์ฟเวอร์

รูปแบบ body ข้อผิดพลาด:

{
"status": "error",
"message": "Invoice not found.",
"error_code": "INVOICE_NOT_FOUND",
"details": { "trans_id": "TID-ABC123DEF4567890" }
}

Rate Limit

  • Burst: 20 คำขอ/วินาที (ต่อ API Key หรือ IP)
  • Sustained: 200 คำขอ/นาที (ต่อ API Key หรือ IP)

กรณีใช้งาน

  • Polling: เรียก GET https://api.payerscan.com/invoice/:trans_id เป็นระยะเพื่ออัปเดตสถานะ UI (เมื่อไม่ใช้ webhook เป็นแหล่งหลัก)
  • การตรวจสอบยอด: ค้นหาใบแจ้งหนี้ตาม trans_id จากอีเมล ตั๋ว ฯลฯ
  • หน้าแสดงสถานะ: หลังจากลูกค้าชำระเงิน แสดงข้อมูลจาก API นี้