ข้ามไปยังเนื้อหา

Google Wallet API

Google Wallet API ช่วยให้คุณสามารถสร้าง อัปเดต แสดงรายการ และจัดการ Google Wallet pass ผ่านโปรแกรมได้ รองรับการทำงานเช่นเดียวกับที่ pass builder ใน Control Panel ทำ

ใช้เพื่อออกบัตรสะสมคะแนน ข้อเสนอ บัตรของขวัญ ตั๋วงานอีเวนต์ บอร์ดดิ้งพาสเที่ยวบิน ตั๋วเดินทาง และพาสทั่วไป และเพื่อพุชการอัปเดตสดไปยังพาสที่บันทึกไว้ในอุปกรณ์ของผู้ใช้ของคุณแล้ว

URL พื้นฐาน

Anchor link to
https://apple-passkit.svc-nue.pushwoosh.com

endpoint ทั้งหมดให้บริการผ่าน HTTPS คำขอและการตอบกลับใช้ application/json เว้นแต่จะระบุไว้เป็นอย่างอื่น

การยืนยันตัวตน

Anchor link to

ทุกคำขอต้องมีเฮดเดอร์ Authorization พร้อมกับ โทเค็นการเข้าถึง Pushwoosh API ของคุณ:

Authorization: Token <api-token>

บัญชีที่เป็นเจ้าของโทเค็นจะต้องเป็นเจ้าของแอปพลิเคชันที่อ้างอิงโดย applicationCode คำขอสำหรับแอปพลิเคชันที่เป็นของบัญชีอื่นจะส่งคืน 403 Forbidden

ข้อตกลงทั่วไป

Anchor link to
  • การตั้งชื่อฟิลด์: ฟิลด์ JSON ใช้ lowerCamelCase (ตัวอย่างเช่น serialNumber, hexBackgroundColor, logoUrl)
  • ฟิลด์ที่ไม่มีข้อมูล: การตอบกลับจะรวมทุกฟิลด์ แม้ว่าจะว่างเปล่าหรือมีค่าเป็นศูนย์ก็ตาม
  • ข้อมูลระบุตัวตน: serialNumber จะถูกกำหนดโดยเซิร์ฟเวอร์เสมอเมื่อมีการสร้างพาส ค่าใดๆ ที่คุณส่งเมื่อสร้างจะถูกละเว้น object id แบบเต็มของ Google Wallet คือ {issuerId}.{serialNumber}
  • รูปภาพ: logoUrl และ heroImageUrl คือ URL HTTPS สาธารณะไปยังรูปภาพที่ Google ดึงข้อมูลมา—ไม่ใช่ไฟล์ที่อัปโหลด
  • สไตล์ของพาส: ต้องตั้งค่าอ็อบเจกต์สไตล์เพียงหนึ่งอย่าง (generic, offer, loyalty, eventTicket, giftCard, flight หรือ transit) บนพาส สไตล์ไม่สามารถเปลี่ยนแปลงได้หลังจากการสร้าง

การตอบกลับข้อผิดพลาด

Anchor link to
สถานะ HTTPความหมาย
400 Bad Requestอาร์กิวเมนต์ไม่ถูกต้อง—ฟิลด์ที่จำเป็นขาดหายไปหรือมีรูปแบบไม่ถูกต้อง
401 Unauthorizedเฮดเดอร์ Authorization ขาดหายไปหรือไม่ถูกต้อง
403 Forbiddenแอปพลิเคชันไม่ได้เป็นของบัญชีของผู้เรียก
404 Not Foundไม่พบพาส เทมเพลต หรือแอปพลิเคชัน
503 Service Unavailableบริการเต็มความจุหรือใช้งานไม่ได้ชั่วคราว
เมธอดเส้นทางคำอธิบาย
POST/api/google/pass/validateตรวจสอบการกำหนดค่าพาส
POST/api/google/pass/createสร้างอ็อบเจกต์พาสใหม่และรับลิงก์บันทึก
POST/api/google/pass/update/{serialNumber}อัปเดตพาสที่มีอยู่ Google จะส่งการเปลี่ยนแปลง
GET/api/google/pass/{applicationCode}/{serialNumber}/save-linkรับลิงก์บันทึก “Add to Google Wallet”
GET/api/google/pass/{applicationCode}/{serialNumber}รับพาสเดียว
GET/api/google/passesแสดงรายการพาสทั้งหมดสำหรับแอปพลิเคชัน
POST/api/google/pass/{applicationCode}/{serialNumber}/stateเปิดใช้งานหรือทำให้พาสไม่ถูกต้อง
DELETE/api/google/pass/{applicationCode}/{serialNumber}ลบพาส
GET/api/google/configรับการกำหนดค่า Google Wallet ของแอปพลิเคชัน
GET/api/google/templatesแสดงรายการเทมเพลตพาสที่มีอยู่
GET/api/google/templates/{filename}รับเทมเพลตเดียว

สร้างพาส

Anchor link to

สร้างคลาสและอ็อบเจกต์ของพาสใน Google Wallet จากนั้นส่งคืนหมายเลขซีเรียลที่เซิร์ฟเวอร์กำหนด, object id แบบเต็ม และลิงก์บันทึก “Add to Google Wallet”

POST /api/google/pass/create

เนื้อหาคำขอ

Anchor link to
พารามิเตอร์ประเภทจำเป็นคำอธิบาย
passobjectใช่อ็อบเจกต์พาส ที่อธิบายพาส ต้องตั้งค่าสไตล์เพียงหนึ่งอย่าง
userIdstringใช่Pushwoosh User ID ที่พาสถูกออกให้
applicationCodestringใช่รหัสแอปพลิเคชัน Pushwoosh
ตัวอย่างคำขอ
Anchor link to
{
"applicationCode": "XXXXX-XXXXX",
"userId": "user-123",
"pass": {
"hexBackgroundColor": "#3c414c",
"logoUrl": "https://cdn.acme.com/logo.png",
"loyalty": {
"programName": "Acme Rewards",
"accountName": "Jane Doe",
"accountId": "1234567890",
"pointsLabel": "Points",
"pointsBalance": "1200",
"rewardsTier": "Gold"
},
"barcode": {
"format": "QR_CODE",
"value": "1234567890"
}
}
}

การตอบกลับ

Anchor link to
ฟิลด์ประเภทคำอธิบาย
serialNumberstringข้อมูลระบุตัวตนเฉพาะของพาสที่สร้างขึ้นซึ่งกำหนดโดยเซิร์ฟเวอร์
objectIdstringobject id แบบเต็มของ Google Wallet: {issuerId}.{serialNumber}
saveLinkstringลิงก์ “Add to Google Wallet”: https://pay.google.com/gp/v/save/{jwt}
messagestringข้อความผลลัพธ์
ตัวอย่างการตอบกลับ
Anchor link to
{
"serialNumber": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"objectId": "XXXXXXXXXXXXXXX.XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"saveLink": "https://pay.google.com/gp/v/save/{jwt}",
"message": "Pass created successfully"
}

ตรวจสอบพาส

Anchor link to

ตรวจสอบการกำหนดค่าพาสเทียบกับข้อกำหนดของ Google โดยไม่ต้องสร้างพาส มีประโยชน์ก่อนที่จะเรียกใช้ create

POST /api/google/pass/validate

เนื้อหาคำขอ

Anchor link to
พารามิเตอร์ประเภทจำเป็นคำอธิบาย
passobjectใช่อ็อบเจกต์พาส ที่จะตรวจสอบ

การตอบกลับ

Anchor link to
ฟิลด์ประเภทคำอธิบาย
validbooleanพาสผ่านการตรวจสอบหรือไม่
errorsarray of stringsปัญหาที่บล็อกซึ่งต้องได้รับการแก้ไข
warningsarray of stringsคำแนะนำที่ไม่ใช่การบล็อก

อัปเดตพาส

Anchor link to

แก้ไขอ็อบเจกต์พาสด้วยเนื้อหาใหม่ จากนั้น Google จะส่งเวอร์ชันที่อัปเดตไปยังทุกอุปกรณ์ที่บันทึกพาสไว้ สามารถเลือกส่งการแจ้งเตือน Android พร้อมกับการอัปเดตได้

POST /api/google/pass/update/{serialNumber}

พารามิเตอร์เส้นทาง

Anchor link to
พารามิเตอร์ประเภทคำอธิบาย
serialNumberstringหมายเลขซีเรียลที่ส่งคืนเมื่อพาสถูกสร้างขึ้น

เนื้อหาคำขอ

Anchor link to
พารามิเตอร์ประเภทจำเป็นคำอธิบาย
updatesobjectใช่อ็อบเจกต์พาส ที่มีเนื้อหาใหม่ สไตล์ไม่สามารถเปลี่ยนแปลงได้
applicationCodestringใช่รหัสแอปพลิเคชัน Pushwoosh
notifyMessagestringไม่เมื่อไม่ว่างเปล่า ให้พุชการแจ้งเตือน Android พร้อมข้อความนี้ไปยังทุกคนที่บันทึกพาสไว้ ค่าว่างหมายถึงการอัปเดตแบบเงียบ
notifyOnUpdatebooleanไม่ขอการแจ้งเตือนการอัปเดตฟิลด์ เฉพาะพาสประเภท loyalty, eventTicket และ flight เท่านั้นที่จะแจ้งเตือนจริง สไตล์อื่นๆ จะยอมรับแฟล็กแต่จะไม่ส่งการแจ้งเตือน การแจ้งเตือนจะทำงานเฉพาะภายใน 3 ชั่วโมงของเวลาเริ่มต้นที่เกี่ยวข้อง และ Google จำกัดไว้ที่ 3 การแจ้งเตือนต่อพาสต่อ 24 ชั่วโมง

การตอบกลับ

Anchor link to
ฟิลด์ประเภทคำอธิบาย
successbooleanการอัปเดตสำเร็จหรือไม่
messagestringข้อความผลลัพธ์

รับลิงก์บันทึก

Anchor link to

ส่งคืนลิงก์บันทึก “Add to Google Wallet” สำหรับพาสที่สร้างไว้แล้ว อ็อบเจกต์พาสต้องมีอยู่แล้ว (สร้างผ่าน สร้างพาส)

GET /api/google/pass/{applicationCode}/{serialNumber}/save-link

การตอบกลับ

Anchor link to
ฟิลด์ประเภทคำอธิบาย
saveLinkstringhttps://pay.google.com/gp/v/save/{jwt}

รับพาส

Anchor link to

ส่งคืนพาสที่จัดเก็บไว้เดียว รวมถึงอ็อบเจกต์พาสแบบเต็ม

GET /api/google/pass/{applicationCode}/{serialNumber}

การตอบกลับ

Anchor link to

ส่งคืน { "pass": { ... } } ซึ่งเป็น ระเบียนพาส เดียว

แสดงรายการพาส

Anchor link to

ส่งคืนรายการพาสที่จัดเก็บไว้สำหรับแอปพลิเคชันแบบแบ่งหน้าและจัดเรียง

GET /api/google/passes?applicationCode=XXXXX-XXXXX&page=0&perPage=20

พารามิเตอร์คิวรี

Anchor link to
พารามิเตอร์ประเภทจำเป็นคำอธิบาย
applicationCodestringใช่รหัสแอปพลิเคชัน Pushwoosh
orderBystringไม่ฟิลด์การจัดเรียง: UPDATED (ค่าเริ่มต้น) หรือ CREATED
orderDirectionstringไม่ทิศทางการจัดเรียง: DESC (ค่าเริ่มต้น, ใหม่สุดก่อน) หรือ ASC
pageintegerไม่ดัชนีหน้าแบบศูนย์ เริ่มต้นที่ 0
perPageintegerไม่ขนาดหน้า 0 หรือละเว้นจะใช้ค่าเริ่มต้นของเซิร์ฟเวอร์

การตอบกลับ

Anchor link to
ฟิลด์ประเภทคำอธิบาย
passesarray of objectsหน้าปัจจุบันของ ระเบียนพาส
pageintegerดัชนีหน้าที่ส่งคืน
perPageintegerขนาดหน้าที่ใช้สำหรับการตอบกลับนี้
totalintegerจำนวนพาสทั้งหมดสำหรับแอปพลิเคชันในทุกหน้า

ตั้งค่าสถานะพาส

Anchor link to

เปิดใช้งานหรือทำให้พาสไม่ถูกต้อง พาสที่ไม่ถูกต้อง (inactive) จะถูกย้ายไปยังส่วน Expired passes ของผู้ใช้ใน Google Wallet ระเบียนจะถูกเก็บไว้เพื่อให้สามารถเปิดใช้งานใหม่ได้

POST /api/google/pass/{applicationCode}/{serialNumber}/state

เนื้อหาคำขอ

Anchor link to
พารามิเตอร์ประเภทจำเป็นคำอธิบาย
activebooleanใช่true ตั้งค่าพาสเป็น ACTIVE; false ทำให้ไม่ถูกต้อง (INACTIVE)

การตอบกลับ

Anchor link to

ส่งคืนอ็อบเจกต์ว่าง {} เมื่อสำเร็จ

ลบพาส

Anchor link to

ทำให้พาสใน Google ไม่ถูกต้องและลบระเบียนที่จัดเก็บไว้ใน Pushwoosh

DELETE /api/google/pass/{applicationCode}/{serialNumber}

การตอบกลับ

Anchor link to

ส่งคืนอ็อบเจกต์ว่าง {} เมื่อสำเร็จ

รับการกำหนดค่า

Anchor link to

ส่งคืนสถานะการกำหนดค่า Google Wallet สำหรับแอปพลิเคชัน

GET /api/google/config?applicationCode=XXXXX-XXXXX

การตอบกลับ

Anchor link to
ฟิลด์ประเภทคำอธิบาย
hasServiceAccountbooleanมีการกำหนดค่า service account key หรือไม่
issuerIdstringIssuer ID ของ Google Pay & Wallet Console ที่กำหนดค่าไว้
serviceAccountEmailstringclient_email ของ service account ที่กำหนดค่าไว้

เทมเพลต

Anchor link to

แสดงรายการเทมเพลตพาสตัวอย่างที่มีอยู่ หรือดึงข้อมูลหนึ่งรายการเป็น อ็อบเจกต์พาส ที่คุณสามารถใช้เป็นจุดเริ่มต้นได้

GET /api/google/templates — ส่งคืน { "templates": [ { "filename", "name", "description", "style" } ] }

GET /api/google/templates/{filename} — ส่งคืน { "template": { ...pass object... } }

การอ้างอิงอ็อบเจกต์

Anchor link to

อ็อบเจกต์พาส

Anchor link to
ฟิลด์ประเภทคำอธิบาย
serialNumberstringกำหนดโดยเซิร์ฟเวอร์เมื่อสร้าง ใช้ระบุพาส
generic / offer / loyalty / eventTicket / giftCard / flight / transitobjectสไตล์ของพาส ต้องตั้งค่า เพียงหนึ่งอย่าง ดูอ็อบเจกต์สไตล์ด้านล่าง
hexBackgroundColorstringสีพื้นหลังของการ์ด #rrggbb
logoUrlstringURL HTTPS สาธารณะของรูปภาพโลโก้ จำเป็นสำหรับ loyalty และ transit
heroImageUrlstringURL HTTPS สาธารณะของรูปภาพแบนเนอร์กว้าง
barcodeobjectบาร์โค้ด ที่แสดงบนพาส
textModulesarrayโมดูลข้อความ ที่แสดงในมุมมองรายละเอียด
linksarrayโมดูลลิงก์ ที่แสดงในมุมมองรายละเอียด
expirationTimestringเวลา ISO 8601 ที่ Google จะทำให้พาสหมดอายุโดยอัตโนมัติ ค่าว่างหมายถึงไม่มีวันหมดอายุ
appLinkobjectลิงก์แอป: ปุ่ม CTA ที่ด้านหน้าของพาส
locationsarrayตำแหน่ง ที่ทริกเกอร์การแจ้งเตือนตามตำแหน่งทางภูมิศาสตร์ (สูงสุด 10)
holdersPolicystringใครสามารถบันทึกพาสได้: ONE_USER_ALL_DEVICES (ค่าเริ่มต้น), ONE_USER_ONE_DEVICE หรือ MULTIPLE_HOLDERS

อ็อบเจกต์ Generic

Anchor link to
ฟิลด์ประเภทคำอธิบาย
cardTitlestringจำเป็น ชื่อผู้ออก/โปรแกรมที่ด้านบนของการ์ด
headerstringจำเป็น ชื่อหลักของการ์ด
subheaderstringชื่อรอง
cardFieldsarrayสูงสุด 6 โมดูลข้อความ ที่ปักหมุดไว้ที่ด้านหน้า (สูงสุด 3 แถว แถวละ 2)

อ็อบเจกต์ Offer

Anchor link to
ฟิลด์ประเภทคำอธิบาย
titlestringจำเป็น ตัวอย่างเช่น ลด 20% ทุกอย่าง
providerstringจำเป็น ชื่อร้านค้า
detailsstringรายละเอียดข้อเสนอ
finePrintstringข้อกำหนดและเงื่อนไข
redemptionChannelstringONLINE, INSTORE, BOTH (ค่าเริ่มต้น) หรือ TEMPORARY_PRICE_REDUCTION
issuerNamestringแสดงบนพื้นผิว “issued by” ของ Google ค่าเริ่มต้นคือ provider

อ็อบเจกต์ Loyalty

Anchor link to
ฟิลด์ประเภทคำอธิบาย
programNamestringจำเป็น ต้องมี logoUrl บนพาส
accountNamestringชื่อสมาชิกที่แสดงบนการ์ด
accountIdstringID สมาชิกที่แสดงบนการ์ด
pointsLabelstringตัวอย่างเช่น Points แสดงเฉพาะเมื่อมียอดคงเหลือ
pointsBalancestringยอดคะแนนสะสม
rewardsTierstringตัวอย่างเช่น Gold
rewardsTierLabelstringป้ายกำกับถัดจากระดับ ค่าเริ่มต้นคือ Tier
issuerNamestringค่าเริ่มต้นคือ programName

อ็อบเจกต์ Event ticket

Anchor link to
ฟิลด์ประเภทคำอธิบาย
eventNamestringจำเป็น
venueName / venueAddressstringรายละเอียดสถานที่จัดงาน
startDateTime / endDateTimestringISO 8601 พร้อม offset (ตัวอย่างเช่น 2026-07-01T19:30:00+02:00)
ticketHolderName / ticketNumber / ticketTypestringรายละเอียดผู้ถือตั๋วและตั๋ว
section / row / seat / gatestringรายละเอียดที่นั่ง
issuerNamestringค่าเริ่มต้นคือ eventName

อ็อบเจกต์ Gift card

Anchor link to
ฟิลด์ประเภทคำอธิบาย
merchantNamestringจำเป็น
cardNumberstringจำเป็น
pinstringPIN ของการ์ด
balancestringจำนวนทศนิยม ตัวอย่างเช่น 25.00 ต้องมี balanceCurrency
balanceCurrencystringรหัสสกุลเงิน ISO 4217 ตัวอย่างเช่น USD
issuerNamestringค่าเริ่มต้นคือ merchantName

อ็อบเจกต์ Flight

Anchor link to
ฟิลด์ประเภทคำอธิบาย
carrierIataCodestringจำเป็น รหัส IATA 2 ตัวอักษร ตัวอย่างเช่น LX
airlineNamestringชื่อที่แสดงของสายการบิน
flightNumberstringจำเป็น เฉพาะตัวเลข ตัวอย่างเช่น 113
originAirportCode / destinationAirportCodestringจำเป็น รหัส IATA 3 ตัวอักษร
originTerminal / originGate / destinationTerminalstringรายละเอียดเทอร์มินัลและประตู
departureDateTimestringจำเป็น เวลา ท้องถิ่น ของสนามบินต้นทาง, ISO 8601 ไม่มี offset (ตัวอย่างเช่น 2026-09-01T06:30:00)
boardingTime / arrivalDateTimestringรูปแบบท้องถิ่นเดียวกัน arrivalDateTime คือเวลาท้องถิ่นของปลายทาง
passengerNamestringจำเป็น
confirmationCode / seatNumber / seatClass / boardingGroupstringรายละเอียดผู้โดยสาร
issuerNamestringค่าเริ่มต้นคือ airlineName จากนั้นคือรหัสสายการบิน

อ็อบเจกต์ Transit

Anchor link to
ฟิลด์ประเภทคำอธิบาย
transitTypestringจำเป็น BUS, RAIL, TRAM, FERRY หรือ OTHER
transitOperatorNamestringจำเป็น ต้องมี logoUrl บนพาส
passengerNamestringจำเป็น
ticketNumberstringหมายเลขตั๋ว
tripTypestringONE_WAY (ค่าเริ่มต้น) หรือ ROUND_TRIP
legsarrayหนึ่งหรือมากกว่า ช่วงการเดินทาง ตามลำดับการเดินทาง
issuerNamestringค่าเริ่มต้นคือ transitOperatorName

อ็อบเจกต์ Transit leg

Anchor link to
ฟิลด์ประเภทคำอธิบาย
originName / destinationNamestringจำเป็น
departureDateTime / arrivalDateTimestringISO 8601; offset เป็นทางเลือก (เวลาท้องถิ่นเมื่อละเว้น)
platform / coach / seatstringรายละเอียดการขึ้นยานพาหนะ
fareNamestringตัวอย่างเช่น Anytime Single

อ็อบเจกต์ Barcode

Anchor link to
ฟิลด์ประเภทคำอธิบาย
formatstringQR_CODE, PDF_417, AZTEC, CODE_128, EAN_13 และประเภทบาร์โค้ดอื่นๆ ของ Google Wallet
valuestringข้อมูลที่เข้ารหัสในบาร์โค้ด
altTextstringข้อความที่แสดงใต้บาร์โค้ด

อ็อบเจกต์ Text module

Anchor link to
ฟิลด์ประเภทคำอธิบาย
idstringตัวระบุของโมดูล
headerstringหัวข้อโมดูล
bodystringข้อความโมดูล
Anchor link to
ฟิลด์ประเภทคำอธิบาย
uristringURL ลิงก์ภายนอก
descriptionstringป้ายกำกับลิงก์ที่แสดงในมุมมองรายละเอียด
Anchor link to
ฟิลด์ประเภทคำอธิบาย
uristringURL เว็บหรือ URI เป้าหมายของ deep-link
androidPackageNamestringทางเลือก เมื่อตั้งค่า จะเปิดแอป Android
descriptionstringคำอธิบายภายในของ URI เป้าหมาย (ไม่ใช่ป้ายกำกับปุ่มที่มองเห็นได้) ค่าเริ่มต้นคือ URI

อ็อบเจกต์ Location

Anchor link to
ฟิลด์ประเภทคำอธิบาย
latitudenumber-90.0 ถึง +90.0
longitudenumber-180.0 ถึง +180.0

อ็อบเจกต์ Pass record

Anchor link to

ส่งคืนโดย endpoints list/get

ฟิลด์ประเภทคำอธิบาย
serialNumberstringหมายเลขซีเรียลของพาส
objectIdstringobject id แบบเต็มของ Google Wallet {issuerId}.{serialNumber}
cardTitlestringชื่อ/หัวข้อที่แสดงสำหรับพาส
headerstringชื่อที่แสดงรอง
userIdstringPushwoosh User ID ที่พาสถูกออกให้
createdAt / updatedAtstringการประทับเวลาของการสร้างและการอัปเดตล่าสุด
statestringACTIVE หรือ INACTIVE
stylestringgeneric, offer, loyalty, eventTicket, giftCard, flight หรือ transit
passobjectอ็อบเจกต์พาส แบบเต็ม สำหรับการแก้ไข