คำแนะนำการผสานรวมแบ็กเอนด์สำหรับการสร้างรายได้นอก Google Play Billing

Google Play Developer API มีฟังก์ชันเพิ่มเติมสำหรับการรายงานธุรกรรมจากการเรียกเก็บเงินและโปรแกรมลิงก์ คู่มือนี้อธิบายวิธีรายงานธุรกรรมจากโปรแกรมการเรียกเก็บเงินเหล่านี้

คุณอาจต้องใช้คอมโพเนนต์บางอย่างเพื่อจัดการธุรกรรมภายนอก จากแบ็กเอนด์ หากต้องการสร้าง คุณต้องตั้งค่าการผสานรวมแบ็กเอนด์ตามที่ระบุไว้ในกำหนดค่า Google Play Developer API หากต้องการสร้างฟังก์ชันแบ็กเอนด์ของนักพัฒนาแอปที่ไม่เกี่ยวข้องกับการเรียกเก็บเงินและโปรแกรมลิงก์โดยเฉพาะ โปรดดูระบบการเรียกเก็บเงินของ Google Play

อภิธานศัพท์

คู่มือนี้ใช้คำศัพท์ตามแบบแผนต่อไปนี้

  • โปรแกรมการเรียกเก็บเงินและลิงก์: โปรแกรมที่อำนวยความสะดวกในการซื้อเนื้อหาดิจิทัล หรือการดาวน์โหลดแอปนอก Google Play ซึ่งรวมถึงโปรแกรมการเรียกเก็บเงินระบบอื่นและข้อเสนอภายนอก
  • API ธุรกรรมภายนอก: API ที่ใช้ในการรายงานธุรกรรมสำหรับการเรียกเก็บเงินและโปรแกรมลิงก์ที่มีสิทธิ์
  • ธุรกรรมภายนอก: ธุรกรรมที่เข้าเกณฑ์ซึ่งเกิดขึ้นนอกแอปตามที่กำหนดไว้ในข้อกำหนดของโปรแกรม ซึ่งรวมถึงการซื้อเนื้อหาดิจิทัล และการดาวน์โหลดแอป
  • โทเค็นธุรกรรมภายนอก: โทเค็นที่ได้รับผ่าน Play Billing Library เพื่อให้คุณใช้เมื่อผู้ใช้ทำธุรกรรมภายนอกเสร็จสมบูรณ์ โทเค็นนี้ใช้เพื่อแจ้งให้ Google Play ทราบว่าธุรกรรมภายนอกสำเร็จแล้ว
  • รหัสธุรกรรมภายนอก: ตัวระบุที่ไม่ซ้ำกันซึ่งคุณสร้างขึ้นเพื่อระบุธุรกรรมภายนอก

รายงานธุรกรรมภายนอกใหม่ให้ Google Play ทราบ

ผสานรวมกับ externaltransactions API เพื่อรายงาน ธุรกรรมที่เกิดขึ้นนอกระบบการเรียกเก็บเงินของ Google Play ในประเทศที่รองรับ รวมถึงธุรกรรมที่มีมูลค่า $0 ซึ่งเป็นผลมาจากการซื้อช่วงทดลองใช้ฟรีและการ ติดตั้งแอป คุณควรเริ่มและรายงานธุรกรรมในการเรียกเก็บเงินและโปรแกรมลิงก์ สำหรับประเทศของผู้ใช้ที่มีสิทธิ์ตามที่ได้รับอนุญาตภายใต้หลักเกณฑ์การเรียกเก็บเงินระบบอื่นหรือข้อเสนอภายนอก เท่านั้น ไม่เช่นนั้นระบบจะปฏิเสธการเรียก API โดยจะมีผลกับการทำธุรกรรมทั้งหมด รวมถึงการซื้อใหม่ การต่ออายุ การเติมเงิน การอัปเกรด การดาวน์เกรด และการดาวน์โหลดแอป

การรายงานธุรกรรมภายนอก

คุณควรเรียกใช้ externaltransactions API เพื่อรายงานธุรกรรมภายนอก หลังจากที่การชำระเงินได้รับอนุมัติผ่านโปรแกรมการเรียกเก็บเงินและการลิงก์ ซึ่งมีผลกับธุรกรรมทั้งหมด รวมถึงการเรียกเก็บเงินครั้งแรก การต่ออายุ การคืนเงิน และอื่นๆ ดูหลักเกณฑ์สำหรับการเรียกเก็บเงินและโปรแกรมลิงก์ที่เกี่ยวข้องสำหรับ ข้อกำหนดในการรายงาน

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

รายงานธุรกรรมเริ่มต้น

ทุกครั้งที่การซื้อใหม่หรือการดาวน์โหลดแอปใหม่สำเร็จในโปรแกรมการเรียกเก็บเงินและลิงก์ คุณต้องเรียกใช้ externaltransactions API

แอปต้องได้รับ externalTransactionToken ผ่าน UserChoiceBillingListener, AlternativeBillingOnlyReportingDetailsListener หรือ การเรียกกลับ BillingProgramReportingDetailsListener ซึ่งเป็นส่วนหนึ่ง ของเนื้อหาคำขอสำหรับการดาวน์โหลดแอป การซื้อแบบครั้งเดียว และธุรกรรมครั้งแรก ในการซื้อที่เกิดซ้ำ (เช่น การสมัครใช้บริการ) ซึ่งเรียกว่าธุรกรรมเริ่มต้น หลังจากการทำธุรกรรมครั้งแรก ให้รายงานธุรกรรมครั้งต่อๆ ไป (เช่น การต่ออายุการสมัครใช้บริการ) โดยระบุexternalTransactionIdใหม่ที่ไม่ซ้ำกัน ดูรายละเอียดเพิ่มเติมเกี่ยวกับวิธีรายงานธุรกรรมที่ตามมาได้ที่รายงานธุรกรรมที่ตามมาสำหรับการซื้อ

ตัวอย่าง:

  1. นักพัฒนาแอปจะกำหนดค่าและเปิดใช้การเรียกเก็บเงินระบบอื่นในแอปของตน
  2. ผู้ใช้ 1 อยู่ในเกาหลีใต้ ซึ่งเป็นประเทศที่รองรับ และพยายามซื้อ product1 ในราคา 12634.10 วอนเกาหลีต่อเดือน พร้อมข้อเสนอทดลองใช้ฟรี 1 เดือน
  3. แอปจะเปิดตัวขั้นตอนการซื้อด้วย ProductDetails สำหรับ product1 และข้อเสนอที่ผู้ใช้เลือก
  4. ผู้ใช้ 1 เลือกใช้ระบบการเรียกเก็บเงินระบบอื่นของนักพัฒนาแอป
  5. UserChoiceBillingListener จะได้รับค่า my_token เป็น externalTransactionToken
  6. จากนั้นนักพัฒนาแอปจะส่งข้อมูลที่เกี่ยวข้องไปยังแบ็กเอนด์ (ค่า externalTransactionToken และผลิตภัณฑ์ที่ซื้อ) จากนั้นผู้ใช้จะ เปิดตัวขั้นตอนการซื้อสำหรับ product1 ในระบบการเรียกเก็บเงินระบบอื่น ธุรกรรมนี้จะได้รับรหัสธุรกรรมที่ไม่ซ้ำกันในฝั่งนักพัฒนาแอป ซึ่งใช้เพื่อรายงานไปยัง Google Play: 123-456-789 ต้องระบุรหัสธุรกรรม แม้ว่าผู้ใช้จะได้รับช่วงทดลองใช้ฟรีก็ตาม
  7. หลังจากเกิดธุรกรรมสำหรับการซื้อในระบบการเรียกเก็บเงินระบบอื่น แล้ว นักพัฒนาแอปจะรายงานธุรกรรมดังกล่าวไปยัง Google Play พร้อมคำขอต่อไปนี้ ระบบจะรายงานเป็นธุรกรรมที่มีมูลค่า 0 ดอลลาร์ในตอนแรก เนื่องจากผู้ใช้จะได้รับเดือนแรกฟรี
POST /androidpublisher/v3/applications/com.myapp.android/externalTransactions?externalTransactionId=123-456-789

Body
 {
"originalPreTaxAmount" : {
   "priceMicros": "0",
   "currency": "KRW"
 },
 "originalTaxAmount" : {
   "priceMicros": "0",
   "currency": "KRW"
 },
"transactionTime" : "2022-02-22T12:45:00Z",
 "recurringTransaction" : {
   "externalTransactionToken": "my_token",
   "externalSubscription" {
     "subscriptionType": "RECURRING"
   }
 },
 "userTaxAddress" : {
   "regionCode": "KR"
 }
}

เมื่อรายงานธุรกรรมเริ่มต้น โปรดทราบข้อมูลต่อไปนี้

  • subscriptionType อาจเป็น RECURRING (สำหรับการสมัครใช้บริการแบบต่ออายุใหม่อัตโนมัติ) หรือ PREPAID (สำหรับการสมัครใช้บริการแบบชำระเงินล่วงหน้า)
  • OtherRecurringProduct ต้องใช้เพื่อแสดงการซื้อแบบครั้งเดียวที่ ต้องมีการชำระเงินหลายครั้งหรือการชำระเงินที่ล่าช้า เช่น การสั่งจองล่วงหน้าอาจ มีการทำธุรกรรมครั้งแรกที่ $0 ตามด้วยธุรกรรมครั้งที่ 2 ในวันที่ต่อมา สำหรับราคาของ SKU เมื่อมีการดำเนินการตามคำสั่งจองล่วงหน้า ดูรายละเอียดเพิ่มเติมเกี่ยวกับการรายงานธุรกรรมที่ตามมาได้ที่รายงานธุรกรรมที่ตามมา สำหรับการซื้อ
  • คุณต้องระบุ ExternalOfferDetails เมื่อรายงาน ธุรกรรมข้อเสนอภายนอกครั้งแรก แต่ไม่จำเป็นต้องทำสำหรับธุรกรรมในภายหลัง

หากคุณทำธุรกรรมกับผู้ใช้ในอินเดียซึ่งภาษีขึ้นอยู่กับเขตการปกครอง (เช่น รัฐหรือจังหวัด) ให้ระบุเขตดังกล่าวในส่วนuserTaxAddress ดูรายการสตริงที่กำหนดไว้ล่วงหน้าในคู่มือเอกสารอ้างอิง API สำหรับเขตบริหารที่เกี่ยวข้อง

POST /androidpublisher/v3/applications/com.myapp.android/externalTransactions?externalTransactionId=123-456-789

Body
 {
"originalPreTaxAmount" : {
   "priceMicros": "0",
   "currency": "INR"
 },
 "originalTaxAmount" : {
   "priceMicros": "0",
   "currency": "INR"
 },
"transactionTime" : "2023-11-01T12:45:00Z",
 "recurringTransaction" : {
   "externalTransactionToken": "my_token",
   "externalSubscription" {
     "subscriptionType": "RECURRING"
   }
 },
 "userTaxAddress" : {
   # Tax varies in India based on state, so include that information in
   # administrativeArea
   "regionCode": "IN"
   "administrativeArea": "KERALA"
 }
}

ข้อเสนอภายนอก

หากธุรกรรมที่รายงานอยู่ภายใต้โปรแกรมข้อเสนอภายนอก คุณต้องตั้งค่าฟิลด์ externalOfferDetails หากธุรกรรมเป็นธุรกรรมแบบครั้งเดียวหรือธุรกรรมแรกของชุดธุรกรรมที่เกิดซ้ำ

  • เมื่อรายงานธุรกรรมการดาวน์โหลดแอป ให้ตั้งค่า linkType เป็น LINK_TO_APP_DOWNLOAD และระบุค่าที่เหมาะสมสำหรับ installedAppPackage และ installedAppCategory ดูรายละเอียดได้ที่รายงานการดาวน์โหลดแอป
  • เมื่อรายงานธุรกรรมข้อเสนอเนื้อหาดิจิทัล ให้ตั้งค่า linkType เป็น LINK_TO_DIGITAL_CONTENT
  • หลังจากติดตั้งแอปภายนอกผ่านโปรแกรมข้อเสนอภายนอกแล้ว คุณต้องรายงานธุรกรรมที่ทำในแอปภายนอก เมื่อรายงานธุรกรรมเหล่านี้ ให้ลิงก์ธุรกรรมเหล่านี้กับเหตุการณ์การดาวน์โหลดแอปเดิม ดังนี้
    • ระบุ externalTransactionToken จากเหตุการณ์การดาวน์โหลดแอป
    • ในช่อง externalOfferDetails ให้ตั้งค่า appDownloadEventExternalTransactionId เป็น externalTransactionId ของ เหตุการณ์การดาวน์โหลดแอป คุณไม่จำเป็นต้องกรอกข้อมูลในช่องอื่นๆ ใน externalOfferDetails

ตัวอย่างคำขอสำหรับธุรกรรมในแอปภายนอกที่ดาวน์โหลดผ่านข้อเสนอภายนอก

POST /androidpublisher/v3/applications/com.myapp.android/externalTransactions?externalTransactionId=ABC-DEF-GHI

Body
 {
"originalPreTaxAmount" : {
   "priceMicros": "100000",
   "currency": "EUR"
 },
 "originalTaxAmount" : {
   "priceMicros": "10000",
   "currency": "EUR"
 },
"transactionTime" : "2025-11-22T12:45:00Z",
 "oneTimeTransaction" : {
   "externalTransactionToken": my_external_transaction_token_for_link_to_download_event"
 },
 "userTaxAddress" : {
   "regionCode": "DE"
 },
 "externalOfferDetails" : {
   "appDownloadEventExternalTransactionId": "my_external_transaction_id_for_link_to_download_event"
 }
}

ดูรายละเอียดค่าบริการ Play ที่อัปเดตแล้วสำหรับธุรกรรมประเภทต่างๆ ได้ในการเปลี่ยนแปลงโปรแกรมข้อเสนอภายนอกสำหรับผู้ใช้ในเขตเศรษฐกิจยุโรป (EEA)

รายงานธุรกรรมที่ตามมาสำหรับการซื้อ

ในบางกรณี การชำระเงินของผู้ใช้มากกว่า 1 รายการอาจเชื่อมโยงกับการซื้อภายนอกเดียวกัน เช่น การต่ออายุการสมัครใช้บริการหรือการเติมเงินแพ็กเกจแบบชำระล่วงหน้า คุณสามารถรายงานธุรกรรมที่ตามมาเหล่านี้ได้โดยใช้ API เดียวกันใน Externaltransactions ตามที่อธิบายไว้ในรายงานการซื้อใหม่ คุณไม่จำเป็นต้องใช้ externalTransactionToken สำหรับธุรกรรมต่อๆ ไป แต่ระบบจะส่ง externalTransactionId ใหม่ที่ไม่ซ้ำกันเป็นพารามิเตอร์การค้นหาสำหรับธุรกรรมการต่ออายุหรือการเติมเงินแต่ละรายการ โดยมีรหัสของธุรกรรมเริ่มต้นรวมอยู่ในฟิลด์ initialExternalTransactionId

จากตัวอย่างก่อนหน้า

  1. การต่ออายุครั้งแรกของผู้ใช้ 1 จะเกิดขึ้นในระบบการเรียกเก็บเงินระบบอื่น รหัสธุรกรรมเริ่มต้นคือ 123-456-789
  2. นักพัฒนาแอปจะรายงานการเกิดธุรกรรมซ้ำในพารามิเตอร์การค้นหา URL เป็นรหัสธุรกรรมภายนอกสําหรับธุรกรรมใหม่นี้ ขณะเดียวกันก็อ้างอิง รหัสธุรกรรมภายนอกของธุรกรรมเริ่มต้นในช่อง initialExternalTransactionId

ตัวอย่างคำขอ

POST /androidpublisher/v3/applications/com.myapp.android/externalTransactions?externalTransactionId=abc-def-ghi

Body
 {
"originalPreTaxAmount" : {
   "priceMicros": "12634000000",
   "currency": "KRW"
 },
 "originalTaxAmount" : {
   "priceMicros": "1263000000",
   "currency": "KRW"
 },
"transactionTime" : "2022-02-22T12:45:00Z",
 "recurringTransaction" : {
   "initialExternalTransactionId": "123-456-789",

   "externalSubscription" {
     "subscriptionType": "RECURRING"
   }
 },
 "userTaxAddress" : {
   "regionCode": "KR"
 }
}

รายงานการอัปเกรดหรือดาวน์เกรด

หากต้องการรายงานการอัปเกรดหรือดาวน์เกรดเมื่อผู้ใช้เป็นเจ้าของการสมัครใช้บริการใน ระบบการเรียกเก็บเงินระบบอื่น คุณจะต้องใช้ปลายทางและฟังก์ชันเดียวกันใน Externaltransactions API โดยส่ง externalTransactionToken ที่ ระบุไว้ในแอปสำหรับธุรกรรมการอัปเกรดหรือดาวน์เกรด ซึ่งทํางานคล้ายกับการรายงานการซื้อใหม่

รายงานการดาวน์โหลดแอป

หากต้องการรายงานการติดตั้งแอปในระบบการเรียกเก็บเงินของข้อเสนอภายนอก คุณต้อง เรียกใช้ Externaltransactions.createexternaltransaction โดยส่ง externalTransactionToken ที่ให้ไว้กับแอป รายงานธุรกรรมนี้เป็น ธุรกรรมแบบครั้งเดียวที่ไม่มีค่าใช้จ่าย กระบวนการนี้คล้ายกับการรายงานธุรกรรมเริ่มต้น อย่าลืมใส่ ExternalOfferDetails ในเนื้อความของคำขอ

ตัวอย่างคำขอ

POST /androidpublisher/v3/applications/com.myapp.android/externalTransactions?externalTransactionId=123-456-789

Body
 {
"originalPreTaxAmount" : {
   "priceMicros": "0",
   "currency": "USD"
 },
 "originalTaxAmount" : {
   "priceMicros": "0",
   "currency": "USD"
 },
"transactionTime" : "2025-12-22T12:45:00Z",
 "oneTimeTransaction" : {
   "externalTransactionToken": "my_token",
 },
 "userTaxAddress" : {
   "regionCode": "US"
 }
 "externalOfferDetails" : {
   "linkType" : "LINK_TO_APP_DOWNLOAD",
   "installedAppPackage" : "my.external.app",
   "installedAppCategory" : "APP"
 }
}

ย้ายข้อมูลจากการรายงานธุรกรรมการเรียกเก็บเงินระบบอื่นด้วยตนเอง

หากต้องการย้ายข้อมูลการสมัครใช้บริการที่ใช้งานอยู่ซึ่งเริ่มต้นขณะที่คุณเสนอการเรียกเก็บเงินระบบอื่นโดยไม่มีการรายงานอัตโนมัติ ให้สร้างธุรกรรมใหม่ที่มีต้นทุนเป็น 0 โดยใช้ฟิลด์ migratedTransactionProgram แทนการระบุ initialExternalTransactionId หรือ externalTransactionToken ตั้งค่า transactionTimeเป็นเวลาที่ผู้ใช้ลงชื่อสมัครใช้ การสมัครใช้บริการที่ใช้งานอยู่แต่ละรายการเป็นครั้งแรก หลังจากนั้น ให้รายงานธุรกรรมที่ตามมาแต่ละรายการสำหรับการสมัครใช้บริการเหล่านี้ตามปกติผ่าน API โดยระบุ initialExternalTransactionId ที่ใช้ก่อนหน้านี้เพื่อสร้างธุรกรรมการต่ออายุ เมื่อย้ายข้อมูลการสมัครใช้บริการแล้ว คุณไม่จำเป็นต้องรายงานธุรกรรมที่ตามมาสำหรับการสมัครใช้บริการด้วยตนเองอีกต่อไป ตราบใดที่รายงานผ่านวิธีการอัตโนมัติที่อธิบายไว้ในหน้านี้

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

ใช้ฟิลด์ migratedTransactionProgram ได้เมื่อย้ายข้อมูลจากการรายงานด้วยตนเองเท่านั้น เราจะเลิกใช้งานเมื่อไม่รองรับการรายงานด้วยตนเองอีกต่อไป

ตัวอย่างคำขอ

# Note that the externalTransactionId specified here will used to report
# subsequent transactions.

POST /androidpublisher/v3/applications/com.myapp.android/externalTransactions?externalTransactionId=abc-def-ghi

Body
 {
 # Be sure to set the price to 0 for this transaction since it does not reflect
 # an actual subscription renewal.
 "originalPreTaxAmount" : {
   "priceMicros": "0",
   "currency": "KRW"
 },
 "originalTaxAmount" : {
   "priceMicros": "0",
   "currency": "KRW"
 },

 # The transaction time should be set to when the user signed up for this
 # subscription.
 "transactionTime" : "2022-02-22T12:45:00Z",
  "recurringTransaction" : {
    "migratedTransactionProgram": "USER_CHOICE_BILLING",

    "externalSubscription" {
      "subscriptionType": "RECURRING"
    }
  },
 "userTaxAddress" : {
   "regionCode": "KR"
 }
}

ข้อกำหนดสำหรับโปรแกรมพาร์ทเนอร์ของ Play

นักพัฒนาแอปที่เข้าร่วมโปรแกรมพาร์ทเนอร์ เช่น Play Media Experience Program ต้องระบุ transaction_program_code เมื่อรายงานธุรกรรมภายนอก หากคุณเป็นนักพัฒนาแอปที่มีสิทธิ์ โปรดติดต่อผู้จัดการฝ่ายพัฒนาธุรกิจเพื่อขอข้อมูลเพิ่มเติมเกี่ยวกับวิธีตั้งค่าช่องนี้

รายงานการคืนเงินสำหรับการซื้อไปยัง Google Play

ผสานรวมกับ externaltransactions API เพื่อรายงานธุรกรรมที่คืนเงินให้ผู้ใช้ภายนอกระบบการเรียกเก็บเงินของ Google Play หากต้องการให้ Play ระบุธุรกรรมที่คืนเงินได้อย่างถูกต้อง คุณควรใส่ externalTransactionId ที่เกี่ยวข้องสำหรับธุรกรรมที่รายงานก่อนหน้านี้เป็นส่วนหนึ่งของพารามิเตอร์ URL

เมื่อรายงานการคืนเงินสำหรับการซื้อการสมัครใช้บริการ ให้ดู externalTransactionIdของความถี่ที่เฉพาะเจาะจงของการสมัครใช้บริการที่ กำลังคืนเงิน

ตัวอย่าง สมมติว่าการสมัครใช้บริการมีธุรกรรมต่อไปนี้

  • ธุรกรรมเริ่มต้นที่มีรหัสธุรกรรมภายนอก ABC.1234-5678-9012-34567

  • ธุรกรรมแบบเรียกเก็บเงินตามรอบแรกที่มีรหัสธุรกรรมภายนอก ABC.1234-5678-9012-34567..0

  • ธุรกรรมที่เกิดซ้ำรายการที่ 2 ที่มีรหัสธุรกรรมภายนอก ABC.1234-5678-9012-34567..1

หากต้องการรายงานการคืนเงินของธุรกรรมทั้งหมดสำหรับการสมัครใช้บริการ คุณต้องส่งคำขอคืนเงินแยกกัน 3 รายการ ได้แก่ คำขอหนึ่งรายการสำหรับธุรกรรมเริ่มต้น และอีก 2 รายการสำหรับธุรกรรมที่ตามมา

วิธีนี้ยอมรับทั้งการคืนเงินเต็มจำนวน (ซึ่งจำนวนเงินเท่ากับจำนวนเงินที่ผู้ใช้ชำระในธุรกรรมภายนอกเดิม) และการคืนเงินบางส่วน (ซึ่งจำนวนเงินน้อยกว่าจำนวนเงินที่ผู้ใช้ชำระในธุรกรรมภายนอกเดิม) สำหรับการคืนเงินบางส่วน คุณต้อง ระบุจำนวนเงินก่อนภาษีที่คืน

โควต้า API

Externaltransactions API มีโควต้า API สำหรับการเรียกทั้งหมดเช่นเดียวกับปลายทางอื่นๆ ใน Google Play Developer API

นอกจากนี้ Externaltransactions API ยังมีขีดจำกัดการค้นหา 1,200 รายการต่อนาที (QPM) ในการเรียกไปยัง Externaltransactions.createexternaltransaction หรือ Externaltransactions.refundexternaltransaction การโทรไปยัง Externaltransactions.getexternaltransaction จะไม่นับรวมในขีดจำกัด 1,200 QPM นี้