核銷訂單

當職員確認可以使用後,再呼叫 redeem 進行正式核銷。系統仍會再次檢查商戶權限及訂單狀態。

POST/api/integrations/merchant/bookings/redeem

為已驗證商戶核銷指定訂單。

Request 欄位

欄位
類型
必填
說明
bookingId
string
取得的憑證 Id。

Response 欄位

欄位
類型
說明
code
number
返回代碼。
success
boolean
核銷成功時會出現。
message
string
可讀訊息。
booking
object
核銷完成後的訂單摘要。
reason
string
code 4 時的受控錯誤原因。

回傳代碼

為了讓商戶文件及收銀員介面更簡單,Yuter 將此整合回應統一成四個頂層代碼。

代碼
意思
備註
1
成功
訂單驗證成功或已成功核銷。
2
已核銷
此訂單在本次請求前已完成核銷。
3
無效訂單
booking id 無效,或找不到相關訂單。
4
其他錯誤
認證失敗、不可核銷、商戶無權限,或其他受控錯誤。

核銷訂單範例

核銷訂單 endpoint 的 request 與 response 範例。

cURL 範例

API_KEY='<raw merchant api key>'
BOOKING_ID='<booking id>'
TIMESTAMP=$(($(date +%s) * 1000))
NONCE=$(uuidgen)
BODY='{"bookingId":"'"$BOOKING_ID"'"}'
PATH='/api/integrations/merchant/bookings/redeem'
PAYLOAD="POST
$PATH
$TIMESTAMP
$NONCE
$BODY"
SIGNATURE=$(printf "%s" "$PAYLOAD" | openssl dgst -sha256 -hmac "$API_KEY" -hex | sed 's/^.* //')

curl -X POST "https://www.yuterwellness.com$PATH" \
  -H "Content-Type: application/json" \
  -H "x-api-key: $API_KEY" \
  -H "x-timestamp: $TIMESTAMP" \
  -H "x-nonce: $NONCE" \
  -H "x-signature: $SIGNATURE" \
  -d "$BODY"

回應範例

{
  "code": 1,
  "success": true,
  "message": "Booking redeemed successfully",
  "booking": {
    "_id": "69ce982e96a5b33a356abab0",
    "programTitle": "Private Merchant Test Event",
    "userName": "Test User",
    "userEmail": "test@example.com",
    "quantity": 1,
    "date": "2026-04-10",
    "status": "redeemed",
    "redeemedAt": "2026-04-10T10:22:16.120Z",
    "redeemedBy": "Merchant API: Merchant Test Key"
  }
}