CINXE.COM
Voided Purchases API | Google Play Developer API | Google for Developers
<!doctype html> <html lang="en" dir="ltr"> <head><script type="text/javascript" src="/_static/js/bundle-playback.js?v=HxkREWBo" charset="utf-8"></script> <script type="text/javascript" src="/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("http://web.archive.org/web"); __wm.wombat("https://developers.google.com/android-publisher/voided-purchases","20231015221255","http://web.archive.org/","web","/_static/", "1697407975"); </script> <link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=S1zqJCYt" /> <link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <meta name="google-signin-client-id" content="721724668570-nbkv1cfusk7kk4eni4pjvepaus73b13t.apps.googleusercontent.com"> <meta name="google-signin-scope" content="profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award"> <meta property="og:site_name" content="Google for Developers"> <meta property="og:type" content="website"><meta name="theme-color" content="#1a73e8"><meta charset="utf-8"> <meta content="IE=Edge" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="manifest" href="/web/20231015221255/https://developers.google.com/_pwa/developers/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//web.archive.org/web/20231015221255/https://www.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20231015221255/https://fonts.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20231015221255/https://fonts.googleapis.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20231015221255/https://apis.google.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20231015221255/https://www.google-analytics.com/" crossorigin><link rel="stylesheet" href="//web.archive.org/web/20231015221255cs_/https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"> <link rel="stylesheet" href="//web.archive.org/web/20231015221255cs_/https://fonts.googleapis.com/css2?family=Material+Icons&family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=block"><link rel="stylesheet" href="http://web.archive.org/web/20231015221255cs_/https://www.gstatic.com/devrel-devsite/prod/vbc75fa051dd9e107a8ce8cc1f77e4f700bcffa15e6da6ad5305464a1ca4637b5/developers/css/app.css"> <link rel="shortcut icon" href="http://web.archive.org/web/20231015221255im_/https://www.gstatic.com/devrel-devsite/prod/vbc75fa051dd9e107a8ce8cc1f77e4f700bcffa15e6da6ad5305464a1ca4637b5/developers/images/favicon-new.png"> <link rel="apple-touch-icon" href="http://web.archive.org/web/20231015221255im_/https://www.gstatic.com/devrel-devsite/prod/vbc75fa051dd9e107a8ce8cc1f77e4f700bcffa15e6da6ad5305464a1ca4637b5/developers/images/touchicon-180-new.png"><link rel="canonical" href="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher/voided-purchases"><link rel="search" type="application/opensearchdescription+xml" title="Google for Developers" href="http://web.archive.org/web/20231015221255/https://developers.google.com/s/opensearch.xml"> <link rel="alternate" hreflang="en" href="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher/voided-purchases"/><link rel="alternate" hreflang="x-default" href="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher/voided-purchases"/><link rel="alternate" hreflang="ar" href="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher/voided-purchases?hl=ar"/><link rel="alternate" hreflang="bn" href="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher/voided-purchases?hl=bn"/><link rel="alternate" hreflang="zh-Hans" href="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher/voided-purchases?hl=zh-cn"/><link rel="alternate" hreflang="zh-Hant" href="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher/voided-purchases?hl=zh-tw"/><link rel="alternate" hreflang="fa" href="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher/voided-purchases?hl=fa"/><link rel="alternate" hreflang="fr" href="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher/voided-purchases?hl=fr"/><link rel="alternate" hreflang="de" href="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher/voided-purchases?hl=de"/><link rel="alternate" hreflang="he" href="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher/voided-purchases?hl=he"/><link rel="alternate" hreflang="hi" href="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher/voided-purchases?hl=hi"/><link rel="alternate" hreflang="id" href="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher/voided-purchases?hl=id"/><link rel="alternate" hreflang="it" href="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher/voided-purchases?hl=it"/><link rel="alternate" hreflang="ja" href="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher/voided-purchases?hl=ja"/><link rel="alternate" hreflang="ko" href="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher/voided-purchases?hl=ko"/><link rel="alternate" hreflang="pl" href="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher/voided-purchases?hl=pl"/><link rel="alternate" hreflang="pt-BR" href="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher/voided-purchases?hl=pt-br"/><link rel="alternate" hreflang="ru" href="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher/voided-purchases?hl=ru"/><link rel="alternate" hreflang="es-419" href="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher/voided-purchases?hl=es-419"/><link rel="alternate" hreflang="th" href="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher/voided-purchases?hl=th"/><link rel="alternate" hreflang="tr" href="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher/voided-purchases?hl=tr"/><link rel="alternate" hreflang="vi" href="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher/voided-purchases?hl=vi"/><title>Voided Purchases API | Google Play Developer API | Google for Developers</title> <meta property="og:title" content="Voided Purchases API | Google Play Developer API | Google for Developers"><meta name="description" content="See how you can gain access, view voided purchases, and set quotas. This includes API best practices."> <meta property="og:description" content="See how you can gain access, view voided purchases, and set quotas. This includes API best practices."><meta property="og:url" content="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher/voided-purchases"><meta property="og:image" content="http://web.archive.org/web/20231015221255im_/https://www.gstatic.com/devrel-devsite/prod/vbc75fa051dd9e107a8ce8cc1f77e4f700bcffa15e6da6ad5305464a1ca4637b5/developers/images/opengraph/google-blue.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="675"><meta property="og:locale" content="en"><meta name="twitter:card" content="summary_large_image"><script type="application/ld+json"> { "@context": "http://web.archive.org/web/20231015221255/https://schema.org", "@type": "Article", "headline": "Voided Purchases API" } </script><script type="application/ld+json"> { "@context": "http://web.archive.org/web/20231015221255/https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "Google Play Developer API", "item": "http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher" },{ "@type": "ListItem", "position": 2, "name": "Voided Purchases API", "item": "http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher/voided-purchases" }] } </script> <link rel="stylesheet" href="/web/20231015221255cs_/https://developers.google.com/extras.css"></head> <body class="" template="page" theme="google-blue" type="article" layout="docs" pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <section class="devsite-wrapper"><devsite-header role="banner"> <div class="devsite-header--inner nocontent"> <div class="devsite-top-logo-row-wrapper-wrapper"> <div class="devsite-top-logo-row-wrapper"> <div class="devsite-top-logo-row"> <button type="button" id="devsite-hamburger-menu" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Navigation menu button" visually-hidden aria-label="Open menu"> </button> <div class="devsite-product-name-wrapper"> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list"> <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> <a href="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Upper Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Google Play Developer API"> <svg class="devsite-google-wordmark" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 148 48"> <title>Google</title> <path class="devsite-google-wordmark-svg-path" d="M19.58,37.65c-9.87,0-18.17-8.04-18.17-17.91c0-9.87,8.3-17.91,18.17-17.91c5.46,0,9.35,2.14,12.27,4.94l-3.45,3.45c-2.1-1.97-4.93-3.49-8.82-3.49c-7.21,0-12.84,5.81-12.84,13.02c0,7.21,5.64,13.02,12.84,13.02c4.67,0,7.34-1.88,9.04-3.58c1.4-1.4,2.32-3.41,2.66-6.16H19.58v-4.89h16.47c0.18,0.87,0.26,1.92,0.26,3.06c0,3.67-1.01,8.21-4.24,11.44C28.93,35.9,24.91,37.65,19.58,37.65z M61.78,26.12c0,6.64-5.1,11.53-11.36,11.53s-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53S61.78,19.43,61.78,26.12z M56.8,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C53.84,33.11,56.8,30.22,56.8,26.12z M87.25,26.12c0,6.64-5.1,11.53-11.36,11.53c-6.26,0-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53C82.15,14.59,87.25,19.43,87.25,26.12zM82.28,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C79.32,33.11,82.28,30.22,82.28,26.12z M112.09,15.29v20.7c0,8.52-5.02,12.01-10.96,12.01c-5.59,0-8.95-3.76-10.22-6.81l4.41-1.83c0.79,1.88,2.71,4.1,5.81,4.1c3.8,0,6.16-2.36,6.16-6.77v-1.66h-0.18c-1.14,1.4-3.32,2.62-6.07,2.62c-5.76,0-11.05-5.02-11.05-11.49c0-6.51,5.28-11.57,11.05-11.57c2.75,0,4.93,1.22,6.07,2.58h0.18v-1.88H112.09z M107.64,26.16c0-4.06-2.71-7.03-6.16-7.03c-3.49,0-6.42,2.97-6.42,7.03c0,4.02,2.93,6.94,6.42,6.94C104.93,33.11,107.64,30.18,107.64,26.16z M120.97,3.06v33.89h-5.07V3.06H120.97z M140.89,29.92l3.93,2.62c-1.27,1.88-4.32,5.11-9.61,5.11c-6.55,0-11.28-5.07-11.28-11.53c0-6.86,4.77-11.53,10.71-11.53c5.98,0,8.91,4.76,9.87,7.34l0.52,1.31l-15.42,6.38c1.18,2.31,3.01,3.49,5.59,3.49C137.79,33.11,139.58,31.84,140.89,29.92zM128.79,25.77l10.31-4.28c-0.57-1.44-2.27-2.45-4.28-2.45C132.24,19.04,128.66,21.31,128.79,25.77z"/> </svg>Play Developer API </a> </li> </ul> </span> </div> <div class="devsite-top-logo-row-middle"> <div class="devsite-header-upper-tabs"> </div> <devsite-search aria-expanded="false" aria-haspopup="listbox" enable-signin enable-search enable-suggestions enable-query-completion project-name="Google Play Developer API" tenant-name="Google for Developers" project-scope="/android-publisher" url-scoped="https://developers.google.com/s/results/android-publisher" role="combobox"> <form class="devsite-search-form" action="http://web.archive.org/web/20231015221255/https://developers.google.com/s/results" method="GET"> <div class="devsite-search-container"> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-haspopup="false" aria-multiline="false" aria-label="Search box" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="searchbox" type="text" value=""> <div class="devsite-search-image material-icons" aria-hidden="true"></div> </div> </div> </form> <button type="button" search-close class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Close search"></button> </devsite-search> </div> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en">English</a> </li> <li role="presentation"> <a role="menuitem" lang="id">Bahasa Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="de">Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es">Español</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419">Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr">Français</a> </li> <li role="presentation"> <a role="menuitem" lang="it">Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl">Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br">Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi">Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr">Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru">Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he">עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar">العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa">فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi">हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn">বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th">ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn">中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw">中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja">日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko">한국어</a> </li> </ul> </devsite-language-selector> <devsite-user enable-profiles fp-auth id="devsite-user"> <span class="button devsite-top-button" aria-hidden="true" visually-hidden>Sign in</span> </devsite-user> </div> </div> </div> <div class="devsite-collapsible-section "> <div class="devsite-header-background"> <div class="devsite-doc-set-nav-row"> <devsite-tabs class="lower-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Lower tabs"> <tab active> <a href="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher" track-metadata-eventdetail="https://developers.google.com/android-publisher" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - guides" track-metadata-module="primary nav" aria-label="Guides, selected" data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides"> Guides </a> </tab> <tab> <a href="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher/api-ref/rest" track-metadata-eventdetail="https://developers.google.com/android-publisher/api-ref/rest" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - reference" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference"> Reference </a> </tab> <tab> <a href="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher/libraries" track-metadata-eventdetail="https://developers.google.com/android-publisher/libraries" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - samples" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Samples" track-name="samples"> Samples </a> </tab> </nav> </devsite-tabs> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars> <nav class="devsite-book-nav devsite-nav nocontent" aria-label="Side menu"> <div class="devsite-mobile-header"> <button type="button" id="devsite-close-nav" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close navigation" aria-label="Close navigation"> </button> <div class="devsite-product-name-wrapper"> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list"> <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> <a href="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Upper Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Google Play Developer API"> <svg class="devsite-google-wordmark" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 148 48"> <title>Google</title> <path class="devsite-google-wordmark-svg-path" d="M19.58,37.65c-9.87,0-18.17-8.04-18.17-17.91c0-9.87,8.3-17.91,18.17-17.91c5.46,0,9.35,2.14,12.27,4.94l-3.45,3.45c-2.1-1.97-4.93-3.49-8.82-3.49c-7.21,0-12.84,5.81-12.84,13.02c0,7.21,5.64,13.02,12.84,13.02c4.67,0,7.34-1.88,9.04-3.58c1.4-1.4,2.32-3.41,2.66-6.16H19.58v-4.89h16.47c0.18,0.87,0.26,1.92,0.26,3.06c0,3.67-1.01,8.21-4.24,11.44C28.93,35.9,24.91,37.65,19.58,37.65z M61.78,26.12c0,6.64-5.1,11.53-11.36,11.53s-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53S61.78,19.43,61.78,26.12z M56.8,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C53.84,33.11,56.8,30.22,56.8,26.12z M87.25,26.12c0,6.64-5.1,11.53-11.36,11.53c-6.26,0-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53C82.15,14.59,87.25,19.43,87.25,26.12zM82.28,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C79.32,33.11,82.28,30.22,82.28,26.12z M112.09,15.29v20.7c0,8.52-5.02,12.01-10.96,12.01c-5.59,0-8.95-3.76-10.22-6.81l4.41-1.83c0.79,1.88,2.71,4.1,5.81,4.1c3.8,0,6.16-2.36,6.16-6.77v-1.66h-0.18c-1.14,1.4-3.32,2.62-6.07,2.62c-5.76,0-11.05-5.02-11.05-11.49c0-6.51,5.28-11.57,11.05-11.57c2.75,0,4.93,1.22,6.07,2.58h0.18v-1.88H112.09z M107.64,26.16c0-4.06-2.71-7.03-6.16-7.03c-3.49,0-6.42,2.97-6.42,7.03c0,4.02,2.93,6.94,6.42,6.94C104.93,33.11,107.64,30.18,107.64,26.16z M120.97,3.06v33.89h-5.07V3.06H120.97z M140.89,29.92l3.93,2.62c-1.27,1.88-4.32,5.11-9.61,5.11c-6.55,0-11.28-5.07-11.28-11.53c0-6.86,4.77-11.53,10.71-11.53c5.98,0,8.91,4.76,9.87,7.34l0.52,1.31l-15.42,6.38c1.18,2.31,3.01,3.49,5.59,3.49C137.79,33.11,139.58,31.84,140.89,29.92zM128.79,25.77l10.31-4.28c-0.57-1.44-2.27-2.45-4.28-2.45C132.24,19.04,128.66,21.31,128.79,25.77z"/> </svg>Play Developer API </a> </li> </ul> </span> </div> </div> <div class="devsite-book-nav-filter "> <span class="filter-list-icon material-icons" aria-hidden="true"></span> <input type="text" placeholder="Filter" aria-label="Type to filter" role="searchbox"> <span class="filter-clear-button hidden" data-title="Clear filter" aria-label="Clear filter" role="button" tabindex="0"></span> </div> <div class="devsite-book-nav-wrapper"> <div class="devsite-mobile-nav-top"> <ul class="devsite-nav-list"> <li class="devsite-nav-item"> <a href="/web/20231015221255/https://developers.google.com/android-publisher" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Guides" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Guides </span> <span class="devsite-nav-icon material-icons" data-icon="forward"> </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231015221255/https://developers.google.com/android-publisher/api-ref/rest" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Reference" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Reference </span> <span class="devsite-nav-icon material-icons" data-icon="forward"> </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231015221255/https://developers.google.com/android-publisher/libraries" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Samples" track-name="samples" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Samples" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Samples </span> </a> </li> </ul> </div> <div class="devsite-mobile-nav-bottom"> <ul class="devsite-nav-list" menu="_book"> <li class="devsite-nav-item"><a href="/web/20231015221255/https://developers.google.com/android-publisher" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /android-publisher" track-type="bookNav" track-name="click" track-metadata-eventdetail="/android-publisher"><span class="devsite-nav-text" tooltip>Overview</span></a></li> <li class="devsite-nav-item"><a href="/web/20231015221255/https://developers.google.com/android-publisher/getting_started" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /android-publisher/getting_started" track-type="bookNav" track-name="click" track-metadata-eventdetail="/android-publisher/getting_started"><span class="devsite-nav-text" tooltip>Getting Started</span></a></li> <li class="devsite-nav-item"><a href="/web/20231015221255/https://developers.google.com/android-publisher/quotas" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /android-publisher/quotas" track-type="bookNav" track-name="click" track-metadata-eventdetail="/android-publisher/quotas"><span class="devsite-nav-text" tooltip>Quotas</span></a></li> <li class="devsite-nav-item"><a href="/web/20231015221255/https://developers.google.com/android-publisher/edits" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /android-publisher/edits" track-type="bookNav" track-name="click" track-metadata-eventdetail="/android-publisher/edits"><span class="devsite-nav-text" tooltip>Edits</span></a></li> <li class="devsite-nav-item"><a href="/web/20231015221255/https://developers.google.com/android-publisher/tracks" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /android-publisher/tracks" track-type="bookNav" track-name="click" track-metadata-eventdetail="/android-publisher/tracks"><span class="devsite-nav-text" tooltip>APKs and Tracks</span></a></li> <li class="devsite-nav-item"><a href="/web/20231015221255/https://developers.google.com/android-publisher/download-apks" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /android-publisher/download-apks" track-type="bookNav" track-name="click" track-metadata-eventdetail="/android-publisher/download-apks"><span class="devsite-nav-text" tooltip>Download generated APKs</span></a></li> <li class="devsite-nav-item"><a href="/web/20231015221255/https://developers.google.com/android-publisher/reply-to-reviews" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /android-publisher/reply-to-reviews" track-type="bookNav" track-name="click" track-metadata-eventdetail="/android-publisher/reply-to-reviews"><span class="devsite-nav-text" tooltip>Reply to Reviews API</span></a></li> <li class="devsite-nav-item"><a href="/web/20231015221255/https://developers.google.com/android-publisher/voided-purchases" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /android-publisher/voided-purchases" track-type="bookNav" track-name="click" track-metadata-eventdetail="/android-publisher/voided-purchases"><span class="devsite-nav-text" tooltip>Voided Purchases API</span></a></li> <li class="devsite-nav-item"><a href="/web/20231015221255/https://developers.google.com/android-publisher/api_usage" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /android-publisher/api_usage" track-type="bookNav" track-name="click" track-metadata-eventdetail="/android-publisher/api_usage"><span class="devsite-nav-text" tooltip>API Usage Instructions</span></a></li> <li class="devsite-nav-item"><a href="/web/20231015221255/https://developers.google.com/android-publisher/upload" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /android-publisher/upload" track-type="bookNav" track-name="click" track-metadata-eventdetail="/android-publisher/upload"><span class="devsite-nav-text" tooltip>Uploading Files</span></a></li> <li class="devsite-nav-item"><a href="/web/20231015221255/https://developers.google.com/android-publisher/concurrency-considerations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /android-publisher/concurrency-considerations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/android-publisher/concurrency-considerations"><span class="devsite-nav-text" tooltip>Concurrency Considerations</span></a></li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" class="devsite-main-content" has-book-nav has-sidebar> <div class="devsite-sidebar"> <div class="devsite-sidebar-content"> <devsite-toc class="devsite-nav" role="navigation" aria-label="On this page" depth="2" scrollbars></devsite-toc> <devsite-recommendations-sidebar class="nocontent devsite-nav"> </devsite-recommendations-sidebar> </div> </div> <devsite-content> <article class="devsite-article"> <div class="devsite-article-meta nocontent" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="http://web.archive.org/web/20231015221255/https://developers.google.com/" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail=""> Home </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="http://web.archive.org/web/20231015221255/https://developers.google.com/products" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail=""> Products </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="http://web.archive.org/web/20231015221255/https://developers.google.com/android-publisher" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="3" track-type="globalNav" track-name="breadcrumb" track-metadata-position="3" track-metadata-eventdetail="Google Play Developer API"> Google Play Developer API </a> </li> </ul> <devsite-thumb-rating position="header"> </devsite-thumb-rating> </div> <h1 class="devsite-page-title">Voided Purchases API</h1><devsite-feature-tooltip ack-key="AckCollectionsBookmarkTooltipDismiss" analytics-category="Site-Wide Custom Events" analytics-action-show="Callout Profile displayed" analytics-action-close="Callout Profile dismissed" analytics-label="Create Collection Callout" class="devsite-page-bookmark-tooltip nocontent" dismiss-button="true" id="devsite-collections-dropdown" dismiss-button-text="Dismiss" close-button-text="Got it"> <devsite-bookmark></devsite-bookmark> <span slot="popout-heading"> Stay organized with collections </span> <span slot="popout-contents"> Save and categorize content based on your preferences. </span> </devsite-feature-tooltip> <devsite-toc class="devsite-nav" depth="2" devsite-toc-embedded> </devsite-toc> <devsite-recommendations-dropdown class="nocontent"></devsite-recommendations-dropdown> <div class="devsite-article-body clearfix "> <div class="devsite-page-title-meta"></div> <p>The Google Play Voided Purchases API provides a list of orders that are associated with purchases that a user has voided. You can use information from this list to implement a revocation system that prevents the user from accessing products from those orders.</p> <p>This API applies to one-time in-app orders and App Subscriptions.</p> <p>A purchase can be voided in the following ways:</p> <ul> <li>The user requests a refund for their order.</li> <li>The user cancels their order.</li> <li>An order is charged back.</li> <li><p>Developer cancels or refunds order.</p> <aside class="note"><strong>Note:</strong><span> only revoked orders will be shown in the Voided Purchases API. If a developer refunds a purchase without setting the revoke option, the order will not be returned by the API.</span></aside></li> <li><p>Google cancels or refunds order.</p></li> </ul> <p>By using this API, you help create a more balanced and fair experience for all of your app's users, particularly if your app is a game.</p> <aside class="note"><strong>Note:</strong><span> Unlike other order-related data sources, the Voided Purchases API includes purchases that are charged back by payment processors. Therefore, you might see inconsistencies between the information from this API and information from other order-related data sources.</span></aside><aside class="note"><strong>Note:</strong><span> The Voided Purchases API returns voided purchases only when they need to be revoked. Developers can use this API as an indication for when to take additional action on their end.</span></aside> <h2 id="gaining_access" data-text="Gaining Access">Gaining Access</h2> <p>To work with the Voided Purchases API, you need to have permission to view financial information. You provide authorization using an OAuth client or a service account. If you're using a service account, enable the "View financial reports" permission within this account.</p> <p>To learn more about gaining authorized access to Google Play Developer APIs, see the following guides:</p> <ul> <li><a href="/web/20231015221255/https://developers.google.com/android-publisher/getting_started#setting_up_api_access_clients">Setting Up API Access Clients</a></li> <li><a href="http://web.archive.org/web/20231015221255/https://support.google.com/googleplay/android-developer/answer/2528691">Add developer account users & manage permissions</a></li> </ul> <h2 id="viewing_voided_purchases" data-text="Viewing Voided Purchases">Viewing Voided Purchases</h2> <p>Use the <code translate="no" dir="ltr">GET</code> method to request a list of voided purchases. In your request, include the fully-qualified package name for your app—such as <code translate="no" dir="ltr">com.google.android.apps.maps</code>—and the authorization token you received when <a href="#gaining_access">gaining access</a> to the API.</p> <pre class="pretty-print" translate="no" dir="ltr"> GET https://www.googleapis.com/androidpublisher/v3/applications/ <var class="apiparam" translate="no">your_package_name</var>/purchases/voidedpurchases?access_token=<var class="apiparam" translate="no">your_auth_token</var> </pre> <p>You can also include the following parameters in your request, each of which is optional:</p> <dl> <dt>startTime</dt> <dd><p>The time, in milliseconds since the <a class="external-link" href="http://web.archive.org/web/20231015221255/https://en.wikipedia.org/wiki/Unix_time">Unix epoch</a>, of the oldest voided purchase that you want to see in the response. By default, <code translate="no" dir="ltr">startTime</code> is set to 30 days ago.</p> <p>The API can only show voided purchases that have occurred during the past 30 days. Older voided purchases are not included in the response, regardless of the value that you've provided for <code translate="no" dir="ltr">startTime</code>.</p> <aside class="note"> <b>Note:</b> The voided purchases within the response are filtered based on the time at which a given record is seen as voided by the API, not by the value of <code translate="no" dir="ltr">voidedTimeMillis</code> returned in the response. </aside></dd> <dt>endTime</dt> <dd><p>The time, in milliseconds since the <a class="external-link" href="http://web.archive.org/web/20231015221255/https://en.wikipedia.org/wiki/Unix_time">Unix epoch</a>, of the newest voided purchase of that you want to see in the response. By default, <code translate="no" dir="ltr">endTime</code> is set to the current time.</p> <aside class="note"><b>Note:</b> The voided purchases within the response are filtered based on the time at which a given record is seen as voided by the API, not by the value of <code translate="no" dir="ltr">voidedTimeMillis</code> returned in the response. </aside></dd> <dt>maxResults</dt> <dd>The maximum number of voided purchases that appear in each response. By default, this value is 1000. Note that the maximum value for this parameter is also 1000.</dd> <dt>token</dt> <dd>A continuation token from a previous response, allowing you to view more results.</dd> <dt>type</dt> <dd><p>The type of voided purchases that appear in each response. If set to 0, only voided in-app purchases will be returned. If set to 1, both voided in-app purchases and voided subscription purchases will be returned. Default value is 0. </p> <aside class="note"><b>Note:</b> Before requesting to receive voided subscription purchases, you must switch to use orderId in the response which uniquely identifies one-time purchases and subscriptions. Otherwise, you will receive multiple subscription orders with the same PurchaseToken. </aside></dd> </dl> <p>The response is a JSON string that contains a list of voided purchases. If there are more results than the number specified in the <code translate="no" dir="ltr">maxResults</code> request parameter , the response includes a <code translate="no" dir="ltr">nextPageToken</code> value, which you can pass into a subsequent request to view more results. The first result in the list shows the oldest voided purchase.</p> <pre class="pretty-print" translate="no" dir="ltr"> { "tokenPagination": { "nextPageToken": "<var translate="no">next_page_token</var>" }, "voidedPurchases": [ { "kind": "androidpublisher#voidedPurchase", "purchaseToken": "<var translate="no">some_purchase_token</var>", "purchaseTimeMillis": "1468825200000", "voidedTimeMillis": "1469430000000", "orderId": "some_order_id", "voidedSource": "0", "voidedReason": "4" }, { "kind": "androidpublisher#voidedPurchase", "purchaseToken": "<var translate="no">some_other_purchase_token</var>", "purchaseTimeMillis": "1468825100000", "voidedTimeMillis": "1470034800000", "orderId": "some_other_order_id", "voidedSource": "2", "voidedReason": "5" }, ] } </pre> <h2 id="quotas" data-text="Quotas">Quotas</h2> <p>The Voided Purchases API sets the following quotas on a per-package basis:</p> <ul> <li>6000 queries per day. (The day begins and ends at midnight Pacific Time.)</li> <li>30 queries during any 30-second period.</li> </ul> <h3 id="guidelines_for_initial_requests" data-text="Guidelines for initial requests">Guidelines for initial requests</h3> <p>During your initial API request, you may want to fetch all available data for your app. Although unlikely, this process could exhaust your daily quota. To obtain voided purchases data in a safer, more consistent manner, follow these best practices:</p> <ul> <li>Use the default value for the <code translate="no" dir="ltr">maxResults</code> parameter. That way, if you use your entire query quota for a day, you can retrieve the details of 6,000,000 voided purchases.</li> <li>If a response includes a value for <code translate="no" dir="ltr">nextPageToken</code>, assign this value to the <code translate="no" dir="ltr">token</code> parameter during your next request.</li> </ul> <h2 id="best_practices" data-text="Best Practices">Best Practices</h2> <p>As you determine how to use this API in your app, remember that there are many reasons to void a purchase and that there is no single solution that works in all cases. You should keep your users in mind when designing your revocation policies and strategies. To do so, you can apply these recommended practices:</p> <ul> <li>Use this API as one of many elements in a comprehensive strategy to address undesired behavior. Revoking access to in-app products is usually more effective when combined with an app that has reasonable prices for in-app purchases, an app design that discourages undesirable behavior, a strong user base whose culture rejects such behavior, and responsive and efficient user support channels.</li> <li>Administer your revocation policy uniformly to ensure fairness for all users.</li> <li>Consider creating a staged policy when addressing undesired behavior. For example, start with in-app warnings for early offenses, then escalate your responses as a user's undesired behavior continues. As a last resort, you can prevent a user from interacting with your app at all.</li> <li>When you introduce a revocation policy, and each time you update it, use your app's outreach channels to inform your users about the changes. Give your users time to clearly understand these changes before they take effect in your app.</li> <li>Be transparent to your users and inform them whenever you take action, such as revoking their access to an in-app product. Ideally, users should be able to dispute your decisions, and such disputes should be treated fairly.</li> <li>Monitor feedback forms and community forums to understand what drives users to behave in undesirable ways and how they carry out such behavior. Act on these insights as a first line of defense.</li> </ul> </div> <devsite-recommendations display="in-page" hidden yield> </devsite-recommendations> <devsite-thumb-rating position="footer"> </devsite-thumb-rating> <devsite-recommendations id="recommendations-link" yield></devsite-recommendations> </article> <devsite-content-footer class="nocontent"> <p>Except as otherwise noted, the content of this page is licensed under the <a href="http://web.archive.org/web/20231015221255/https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 License</a>, and code samples are licensed under the <a href="http://web.archive.org/web/20231015221255/https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 License</a>. For details, see the <a href="http://web.archive.org/web/20231015221255/https://developers.google.com/site-policies">Google Developers Site Policies</a>. Java is a registered trademark of Oracle and/or its affiliates.</p> <p>Last updated 2023-10-13 UTC.</p> </devsite-content-footer> <devsite-notification> </devsite-notification> <div class="devsite-content-data"> <template class="devsite-thumb-rating-down-categories"> [{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Missing the information I need" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Too complicated / too many steps" },{ "type": "thumb-down", "id": "outOfDate", "label":"Out of date" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Samples / code issue" },{ "type": "thumb-down", "id": "otherDown", "label":"Other" }] </template> <template class="devsite-thumb-rating-up-categories"> [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Easy to understand" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Solved my problem" },{ "type": "thumb-up", "id": "otherUp", "label":"Other" }] </template> </div> </devsite-content> </main> <devsite-footer-promos class="devsite-footer"> </devsite-footer-promos> <devsite-footer-linkboxes class="devsite-footer"> <nav class="devsite-footer-linkboxes nocontent" aria-label="Footer links"> <ul class="devsite-footer-linkboxes-list"> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Product Info</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/web/20231015221255/https://developers.google.com/android-publisher/terms" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)"> Terms of Service </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Related Links</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="http://web.archive.org/web/20231015221255/https://play.google.com/console" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)"> Google Play Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="http://web.archive.org/web/20231015221255/http://developer.android.com/distribute/googleplay/start.html" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)"> Get Started with Publishing </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Related APIs</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/web/20231015221255/https://developers.google.com/games/services/publishing" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)"> Play Games Services </a> </li> </ul> </li> </ul> </nav> </devsite-footer-linkboxes> <devsite-footer-utility class="devsite-footer"> <div class="devsite-footer-utility nocontent"> <nav class="devsite-footer-sites" aria-label="Other Google Developers websites"> <a href="http://web.archive.org/web/20231015221255/https://developers.google.com/" class="devsite-footer-sites-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Developers Link"> <picture> <source srcset="http://web.archive.org/web/20231015221255im_/https://www.gstatic.com/devrel-devsite/prod/vbc75fa051dd9e107a8ce8cc1f77e4f700bcffa15e6da6ad5305464a1ca4637b5/developers/images/lockup-google-for-developers-dark-theme.svg" media="(prefers-color-scheme: none)" class="devsite-dark-theme" loading="lazy" alt="Google Developers"> <img class="devsite-footer-sites-logo" src="http://web.archive.org/web/20231015221255im_/https://www.gstatic.com/devrel-devsite/prod/vbc75fa051dd9e107a8ce8cc1f77e4f700bcffa15e6da6ad5305464a1ca4637b5/developers/images/lockup-google-for-developers.svg" loading="lazy" alt="Google Developers"> </picture> </a> <ul class="devsite-footer-sites-list"> <li class="devsite-footer-sites-item"> <a href="//web.archive.org/web/20231015221255/https://developer.android.com/" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Android Link"> Android </a> </li> <li class="devsite-footer-sites-item"> <a href="//web.archive.org/web/20231015221255/https://developer.chrome.com/home" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Chrome Link"> Chrome </a> </li> <li class="devsite-footer-sites-item"> <a href="//web.archive.org/web/20231015221255/https://firebase.google.com/" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Firebase Link"> Firebase </a> </li> <li class="devsite-footer-sites-item"> <a href="//web.archive.org/web/20231015221255/https://cloud.google.com/" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Cloud Platform Link"> Google Cloud Platform </a> </li> <li class="devsite-footer-sites-item"> <a href="/web/20231015221255/https://developers.google.com/products" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer All products Link"> All products </a> </li> </ul> </nav> <nav class="devsite-footer-utility-links" aria-label="Utility links"> <ul class="devsite-footer-utility-list"> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/web/20231015221255/https://developers.google.com/terms/site-terms" data-category="Site-Wide Custom Events" data-label="Footer Terms link"> Terms </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//web.archive.org/web/20231015221255/https://policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link"> Privacy </a> </li> <li class="devsite-footer-utility-item devsite-footer-utility-button"> <span class="devsite-footer-utility-description">Sign up for the Google for Developers newsletter</span> <a class="devsite-footer-utility-link gc-analytics-event" href="/web/20231015221255/https://developers.google.com/newsletter/subscribe" data-category="Site-Wide Custom Events" data-label="Footer Subscribe link"> Subscribe </a> </li> </ul> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en">English</a> </li> <li role="presentation"> <a role="menuitem" lang="id">Bahasa Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="de">Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es">Español</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419">Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr">Français</a> </li> <li role="presentation"> <a role="menuitem" lang="it">Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl">Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br">Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi">Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr">Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru">Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he">עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar">العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa">فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi">हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn">বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th">ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn">中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw">中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja">日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko">한국어</a> </li> </ul> </devsite-language-selector> </nav> </div> </devsite-footer-utility> <devsite-panel></devsite-panel> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar type="cookie-notification" data-cookie-notice="0"> </devsite-snackbar> <devsite-tooltip></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics analytics-iframe enable-ga4> <script type="application/json" analytics>[{"dimensions": {"dimension4": "Google Play Developer API", "dimension3": false, "dimension1": "Signed out", "dimension11": false, "dimension5": "en", "dimension6": "en"}, "gaid": "UA-24532603-1", "metrics": {"ratings_value": "metric1", "ratings_count": "metric2"}}]</script> <script type="application/json" tag-management gtm>{"ga4": ["G-272J68FCRF"], "ga4p": ["G-272J68FCRF"], "gtm": [], "parameters": {"internalUser": "False", "language": {"machineTranslated": "False", "requested": "en", "served": "en"}, "pageType": "article", "projectName": "Google Play Developer API", "signedIn": "False", "tenant": "developers", "recommendations": {"sourcePage": "", "sourceType": 0, "sourceRank": 0, "sourceIdenticalDescriptions": 0, "sourceTitleWords": 0, "sourceDescriptionWords": 0, "experiment": ""}, "experiment": {"ids": ""}}, "tags": []}</script> </devsite-analytics> <devsite-badger></devsite-badger> <script nonce="jdlaXbaMuFgwzB8CIcIxn0niOrxqEX"> (function(d,e,v,s,i,t,E){d['GoogleDevelopersObject']=i; t=e.createElement(v);t.async=1;t.src=s;E=e.getElementsByTagName(v)[0]; E.parentNode.insertBefore(t,E);})(window, document, 'script', 'http://web.archive.org/web/20231015221255/https://www.gstatic.com/devrel-devsite/prod/vbc75fa051dd9e107a8ce8cc1f77e4f700bcffa15e6da6ad5305464a1ca4637b5/developers/js/app_loader.js', '[1,"en",null,"/js/devsite_app_module.js","http://web.archive.org/web/20231015221255/https://www.gstatic.com/devrel-devsite/prod/vbc75fa051dd9e107a8ce8cc1f77e4f700bcffa15e6da6ad5305464a1ca4637b5","http://web.archive.org/web/20231015221255/https://www.gstatic.com/devrel-devsite/prod/vbc75fa051dd9e107a8ce8cc1f77e4f700bcffa15e6da6ad5305464a1ca4637b5/developers","http://web.archive.org/web/20231015221255/https://developers-dot-devsite-v2-prod.appspot.com",null,null,["/_pwa/developers/manifest.json","http://web.archive.org/web/20231015221255/https://www.gstatic.com/devrel-devsite/prod/vbc75fa051dd9e107a8ce8cc1f77e4f700bcffa15e6da6ad5305464a1ca4637b5/images/video-placeholder.svg","http://web.archive.org/web/20231015221255/https://www.gstatic.com/devrel-devsite/prod/vbc75fa051dd9e107a8ce8cc1f77e4f700bcffa15e6da6ad5305464a1ca4637b5/developers/images/favicon-new.png","http://web.archive.org/web/20231015221255/https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"],1,null,[1,6,8,12,14,17,21,25,40,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,111,112,113,115,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,144,147,148,149,150,151,152,154,155,156,157,158,159,161,163,164,165,168,169,170,172,173,179,180,182,183,186,190,191,193,196],"AIzaSyAP-jjEJBzmIyKR4F-3XITp8yM9T1gEEI8","AIzaSyB6xiKGDR5O3Ak2okS4rLkauxGUG7XP0hg","developers.google.com","AIzaSyAQk0fBONSGUqCNznf6Krs82Ap1-NV6J4o","AIzaSyCCxcqdrZ_7QMeLCRY20bh_SXdAYqy70KY",null,null,null,["Search__enable_page_map","Profiles__enable_profile_notifications_ui","Profiles__enable_developer_profiles_callout","Profiles__enable_searchable_interests","Concierge__enable_concierge","Badges__enable_delete_badges","Cloud__enable_cloud_shell_fte_user_flow","Search__enable_acl_suggestions","Significatio__enable_by_tenant","MiscFeatureFlags__enable_tls_version_for_gaia_calls","Profiles__enable_page_saving","Search__enable_faceted_search","BookNav__enable_book_nav_filtering","MiscFeatureFlags__enable_firebase_utm","Experiments__enable_experiments","Profiles__enable_suggested_interests","Profiles__enable_developer_profiles_interests","ContentExcellence__enable_verified_date","Profiles__require_profile_eligibility_for_signin","Cloud__enable_cloud_facet_chat","Significatio__enable_footprints","Profiles__enable_profile_communities","SignIn__enable_auto_signin_oauth","Search__enable_suggestions_from_borg","Search__enable_devsite_serp","Cloud__enable_cloud_shell","Analytics__enable_ga4_analytics","Experiments__reqs_query_experiments","Localization__enable_locale_redirects","OpenInReplit__enable_replit","Significatio__enable_experiment_id_caching","BookNav__enable_collapsible_book_nav","Badges__enable_hide_badges","Cloud__enable_cloudx_ping","Search__enable_dynamic_content_confidential_banner","MiscFeatureFlags__content_publisher_push_queue","MiscFeatureFlags__emergency_css","AuthorPageInsights__enable_author_page_insights","Profiles__enable_public_developer_profiles","MiscFeatureFlags__developers_footer_dark_image","Cloud__enable_free_trial_server_call","Profiles__enable_profile_collections","Cloud__enable_cloud_dlp_service","Profiles__enable_developer_profiles_dashboard_recommendations","ContentExcellence__enable_googler_button","Concierge__enable_pushui","Badges__enable_drag_and_drop_badges","Cloud__enable_cloudx_experiment_ids","MiscFeatureFlags__devpanel_url","MiscFeatureFlags__developers_footer_image"],null,null,"AIzaSyBLEMok-5suZ67qRPzx0qUtbnLmyT_kCVE","http://web.archive.org/web/20231015221255/https://developerscontentserving-pa.clients6.google.com","AIzaSyCM4QpTRSqP5qI4Dvjt4OAScIN8sOUlO-k","http://web.archive.org/web/20231015221255/https://developerscontentsearch-pa.clients6.google.com",1]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html><!-- FILE ARCHIVED ON 22:12:55 Oct 15, 2023 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 20:20:16 Nov 26, 2024. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.52 exclusion.robots: 0.036 exclusion.robots.policy: 0.025 esindex: 0.009 cdx.remote: 42.254 LoadShardBlock: 152.418 (3) PetaboxLoader3.datanode: 150.513 (4) load_resource: 310.699 PetaboxLoader3.resolve: 264.499 -->