CINXE.COM

Xsolla Documentation - SDKs for Android

<!doctype html><html lang=en><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="IE=edge"><link rel=stylesheet href=https://cdn.xsolla.net/developers/v-20250221-v02/static/css/bundle.css><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=description content="Follow our developer documentation to integrate Xsolla products step-by-step or customize your solution with our APIs."><meta name=keywords content><meta name=robots content="index, follow, noodp"><meta name=googlebot content="index, follow"><meta name=google content="notranslate"><meta name=format-detection content="telephone=no"><meta property="og:image" content="https://cdn.xsolla.net/developers/v-20250221-v02/images/baseof/xsolla-developers-og.png"><meta property="og:image:secure_url" content="https://cdn.xsolla.net/developers/v-20250221-v02/images/baseof/xsolla-developers-og.png"><title>Xsolla Documentation - SDKs for Android</title><link rel="shortcut icon" type=image/x-icon href=https://cdn.xsolla.net/developers/v-20250221-v02/images/baseof/favicon.png><link rel=icon type=image/x-icon href=https://cdn.xsolla.net/developers/v-20250221-v02/images/baseof/favicon.png><link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css><script id=MathJax-script async src=https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js></script> <script>MathJax={tex:{displayMath:[["\\[","\\]"],["$$","$$"]]}}</script><script type=text/javascript>window.NREUM||(NREUM={}),NREUM.init={privacy:{cookies_enabled:!0}},window.NREUM||(NREUM={}),__nr_require=function(e,t,n){function s(n){if(!t[n]){var o=t[n]={exports:{}};e[n][0].call(o.exports,function(t){var o=e[n][1][t];return s(o||t)},o,o.exports)}return t[n].exports}if("function"==typeof __nr_require)return __nr_require;for(var o=0;o<n.length;o++)s(n[o]);return s}({1:[function(e){function o(e){try{s.console&&console.log(e)}catch{}}var i,a=e("ee"),r=e(24),s={};try{i=localStorage.getItem("__nr_flags").split(","),console&&"function"==typeof console.log&&(s.console=!0,i.indexOf("dev")!==-1&&(s.dev=!0),i.indexOf("nr_dev")!==-1&&(s.nrDev=!0))}catch{}s.nrDev&&a.on("internal-error",function(e){o(e.stack)}),s.dev&&a.on("fn-err",function(e,t,n){o(n.stack)}),s.dev&&(o("NR AGENT IN DEVELOPMENT MODE"),o("flags: "+r(s,function(e){return e}).join(", ")))},{}],2:[function(e){function u(e,t,n,i,a){try{o?o-=1:c(a||new h(e,t,n),!0)}catch(e){try{r("ierr",[e,s.now(),!0])}catch{}}return"function"==typeof l&&l.apply(this,m(arguments))}function h(e,t,n){this.message=e||"Uncaught error with no additional information",this.sourceURL=t,this.line=n}function c(e,t){var n=t?null:s.now();r("err",[e,n])}var r=e("handle"),m=e(25),i=e("ee"),s=e("loader"),f=e("gos"),l=window.onerror,a=!1,d="nr@seenError",o=0;s.features.err=!0,e(1),window.onerror=u;try{throw new Error}catch(t){"stack"in t&&(e(9),e(8),"addEventListener"in window&&e(5),s.xhrWrappable&&e(10),a=!0)}i.on("fn-start",function(){a&&(o+=1)}),i.on("fn-err",function(e,t,n){a&&!n[d]&&(f(n,d,function(){return!0}),this.thrown=!0,c(n))}),i.on("fn-end",function(){a&&!this.thrown&&o>0&&(o-=1)}),i.on("internal-error",function(e){r("ierr",[e,s.now(),!0])})},{}],3:[function(e){e("loader").features.ins=!0},{}],4:[function(e){function l(){}if(window.performance&&window.performance.timing&&window.performance.getEntriesByType){var c,a=e("ee"),o=e("handle"),y=e(9),h=e(8),d="learResourceTimings",i="addEventListener",j="resourcetimingbufferfull",g="bstResource",p="resource",m="-start",f="-end",r="fn"+m,u="fn"+f,v="bstTimer",b="pushState",s=e("loader");s.features.stn=!0,e(7),"addEventListener"in window&&e(5),c=NREUM.o.EV,a.on(r,function(e){var n=e[0];n instanceof c&&(this.bstStart=s.now())}),a.on(u,function(e,t){var n=e[0];n instanceof c&&o("bst",[n,t,this.bstStart,s.now()])}),y.on(r,function(e,t,n){this.bstStart=s.now(),this.bstType=n}),y.on(u,function(e,t){o(v,[t,this.bstStart,s.now(),this.bstType])}),h.on(r,function(){this.bstStart=s.now()}),h.on(u,function(e,t){o(v,[t,this.bstStart,s.now(),"requestAnimationFrame"])}),a.on(b+m,function(){this.time=s.now(),this.startPath=location.pathname+location.hash}),a.on(b+f,function(){o("bstHist",[location.pathname+location.hash,this.startPath,this.time])}),i in window.performance&&(window.performance["c"+d]?window.performance[i](j,function(){o(g,[window.performance.getEntriesByType(p)]),window.performance["c"+d]()},!1):window.performance[i]("webkit"+j,function(){o(g,[window.performance.getEntriesByType(p)]),window.performance["webkitC"+d]()},!1)),document[i]("scroll",l,{passive:!0}),document[i]("keypress",l,!1),document[i]("click",l,!1)}},{}],5:[function(e,t){function i(e){for(var t=e;t&&!t.hasOwnProperty(o);)t=Object.getPrototypeOf(t);t&&a(t)}function a(e){c.inPlace(e,[o,l],"-",d)}function d(e){return e[1]}var s=e("ee").get("events"),c=e("wrap-function")(s,!0),u=e("gos"),r=XMLHttpRequest,o="addEventListener",l="removeEventListener";t.exports=s,"getPrototypeOf"in Object?(i(document),i(window),i(r.prototype)):r.prototype.hasOwnProperty(o)&&(a(window),a(r.prototype)),s.on(o+"-start",function(e){var n=e[1],s=u(n,"nr@wrapped",function(){function t(){if("function"==typeof n.handleEvent)return n.handleEvent.apply(n,arguments)}var e={object:t,function:n}[typeof n];return e?c(e,"fn-",null,e.name||"anonymous"):n});this.wrapped=e[1]=s}),s.on(l+"-start",function(e){e[1]=this.wrapped||e[1]})},{}],6:[function(e,t){function r(e,t,n){var o=e[t];"function"==typeof o&&(e[t]=function(){var e,r,i=p(arguments),t={};return s.emit(n+"before-start",[i],t),t[a]&&t[a].dt&&(r=t[a].dt),e=o.apply(this,i),s.emit(n+"start",[i,r],e),e.then(function(t){return s.emit(n+"end",[null,t],e),t},function(t){throw s.emit(n+"end",[t],e),t})})}var s=e("ee").get("fetch"),p=e(25),m=e(24);t.exports=s;var i=window,o="fetch-",l=o+"body-",h=["arrayBuffer","blob","json","text","formData"],d=i.Request,c=i.Response,f=i.fetch,u="prototype",a="nr@context";d&&c&&f&&(m(h,function(e,t){r(d[u],t,l),r(c[u],t,l)}),r(i,"fetch",o),s.on(o+"end",function(e,t){var i,n=this;t?(i=t.headers.get("content-length"),null!==i&&(n.rxSize=i),s.emit(o+"done",[null,t],n)):s.emit(o+"done",[e],n)}))},{}],7:[function(e,t){var s,o,i=e("ee").get("history"),a=e("wrap-function")(i);t.exports=i,s=window.history&&window.history.constructor&&window.history.constructor.prototype,o=window.history,s&&s.pushState&&s.replaceState&&(o=s),a.inPlace(o,["pushState","replaceState"],"-")},{}],8:[function(e,t){var o=e("ee").get("raf"),i=e("wrap-function")(o),s="equestAnimationFrame";t.exports=o,i.inPlace(window,["r"+s,"mozR"+s,"webkitR"+s,"msR"+s],"raf-"),o.on("raf-start",function(e){e[0]=i(e[0],"fn-")})},{}],9:[function(e,t){function d(e,t,n){e[0]=s(e[0],"fn-",null,n)}function u(e,t,n){this.method=n,this.timerDuration=isNaN(e[1])?0:+e[1],e[0]=s(e[0],"fn-",this,n)}var o=e("ee").get("timer"),s=e("wrap-function")(o),i="setTimeout",a="setInterval",c="clearTimeout",l="-start",r="-";t.exports=o,s.inPlace(window,[i,"setImmediate"],i+r),s.inPlace(window,[a],a+r),s.inPlace(window,[c,"clearImmediate"],c+r),o.on(a+l,d),o.on(i+l,u)},{}],10:[function(e,t){function d(e,t){l.inPlace(t,["onreadystatechange"],"fn-",u)}function O(){var e=this,t=s.context(e);e.readyState>3&&!t.resolved&&(t.resolved=!0,s.emit("xhr-resolved",[],e)),l.inPlace(e,_,"fn-",u)}function w(e){o.push(e),m&&(g?g.then(a):p?p(a):(i=-i,v.data=i))}function a(){for(var e=0;e<o.length;e++)d([],o[e]);o.length&&(o=[])}function u(e,t){return t}function y(e,t){for(var n in e)t[n]=e[n];return t}e(5);var i,c,g,v,b=e("ee"),s=b.get("xhr"),l=e("wrap-function")(s),r=NREUM.o,h=r.XHR,m=r.MO,f=r.PR,p=r.SI,j="readystatechange",_=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],o=[];t.exports=s,c=window.XMLHttpRequest=function(e){var t=new h(e);try{s.emit("new-xhr",[t],t),t.addEventListener(j,O,!1)}catch(e){try{s.emit("internal-error",[e])}catch{}}return t},y(h,c),c.prototype=h.prototype,l.inPlace(c.prototype,["open","send"],"-xhr-",u),s.on("send-xhr-start",function(e,t){d(e,t),w(t)}),s.on("open-xhr-start",d),m?(g=f&&f.resolve(),!p&&!f&&(i=1,v=document.createTextNode(i),new m(a).observe(v,{characterData:!0}))):b.on("fn-end",function(e){e[0]&&e[0].type===j||a()})},{}],11:[function(e,t){function a(e){if(!o(e))return null;if(t=window.NREUM,!t.loader_config)return null;var d=(t.loader_config.accountID||"").toString()||null,f=(t.loader_config.agentID||"").toString()||null,v=(t.loader_config.trustKey||"").toString()||null;if(!d||!f)return null;var t,n=i.generateSpanId(),p=i.generateTraceId(),g=Date.now(),a={spanId:n,traceId:p,timestamp:g};return(e.sameOrigin||s(e)&&m())&&(a.traceContextParentHeader=r(n,p),a.traceContextStateHeader=c(n,g,d,f,v)),(e.sameOrigin&&!u()||!e.sameOrigin&&s(e)&&h())&&(a.newrelicHeader=l(n,p,g,d,f,v)),a}function r(e,t){return"00-"+t+"-"+e+"-01"}function c(e,t,n,s,o){var i=0,a="",r=1,c="",l="";return o+"@nr="+i+"-"+r+"-"+n+"-"+s+"-"+e+"-"+a+"-"+c+"-"+l+"-"+t}function l(e,t,n,s,o,i){var a,r="btoa"in window&&"function"==typeof window.btoa;return r?(a={v:[0,1],d:{ty:"Browser",ac:s,ap:o,id:e,tr:t,ti:n}},i&&s!==i&&(a.d.tk=i),btoa(JSON.stringify(a))):null}function o(e){return d()&&s(e)}function s(e){var n,s,o=!1,t={};if("init"in NREUM&&"distributed_tracing"in NREUM.init&&(t=NREUM.init.distributed_tracing),e.sameOrigin)o=!0;else if(t.allowed_origins instanceof Array)for(n=0;n<t.allowed_origins.length;n++)if(s=f(t.allowed_origins[n]),e.hostname===s.hostname&&e.protocol===s.protocol&&e.port===s.port){o=!0;break}return o}function d(){return"init"in NREUM&&"distributed_tracing"in NREUM.init&&!!NREUM.init.distributed_tracing.enabled}function u(){return"init"in NREUM&&"distributed_tracing"in NREUM.init&&!!NREUM.init.distributed_tracing.exclude_newrelic_header}function h(){return"init"in NREUM&&"distributed_tracing"in NREUM.init&&NREUM.init.distributed_tracing.cors_use_newrelic_header!==!1}function m(){return"init"in NREUM&&"distributed_tracing"in NREUM.init&&!!NREUM.init.distributed_tracing.cors_use_tracecontext_headers}var i=e(21),f=e(13);t.exports={generateTracePayload:a,shouldGenerateTrace:o}},{}],12:[function(e){function m(e){var n,t=this.params,i=this.metrics;if(!this.ended){this.ended=!0;for(n=0;n<d;n++)e.removeEventListener(r[n],this.listener,!1);t.aborted||(i.duration=o.now()-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):h(this,e),i.cbTime=this.cbTime,s.emit("xhr-done",[e],e),f("xhr",[t,i,this.startTime]))}}function v(e,t){var n=c(t),s=e.params;s.host=n.hostname+":"+n.port,s.pathname=n.pathname,e.parsedOrigin=c(t),e.sameOrigin=e.parsedOrigin.sameOrigin}function h(e,t){e.params.status=t.status;var n,s=g(t,e.lastSize);(s&&(e.metrics.rxSize=s),e.sameOrigin)&&(n=t.getResponseHeader("X-NewRelic-App-Data"),n&&(e.params.cat=n.split(", ").pop())),e.loadCaptureCalled=!0}if(o=e("loader"),o.xhrWrappable){var o,f=e("handle"),c=e(13),l=e(11).generateTracePayload,s=e("ee"),r=["load","error","abort","timeout"],d=r.length,u=e("id"),a=e(17),p=e(16),g=e(14),i=window.XMLHttpRequest;o.features.xhr=!0,e(10),e(6),s.on("new-xhr",function(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=m,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,e.addEventListener("load",function(){h(t,e)},!1),a&&(a>34||a<10)||window.opera||e.addEventListener("progress",function(e){t.lastSize=e.loaded},!1)}),s.on("open-xhr-start",function(e){this.params={method:e[0]},v(this,e[1]),this.metrics={}}),s.on("open-xhr-end",function(e,t){"loader_config"in NREUM&&"xpid"in NREUM.loader_config&&this.sameOrigin&&t.setRequestHeader("X-NewRelic-ID",NREUM.loader_config.xpid);var s,n=l(this.parsedOrigin);n&&(s=!1,n.newrelicHeader&&(t.setRequestHeader("newrelic",n.newrelicHeader),s=!0),n.traceContextParentHeader&&(t.setRequestHeader("traceparent",n.traceContextParentHeader),n.traceContextStateHeader&&t.setRequestHeader("tracestate",n.traceContextStateHeader),s=!0),s&&(this.dt=n))}),s.on("send-xhr-start",function(e,t){var i,a,c=this.metrics,l=e[0],n=this;c&&l&&(a=p(l),a&&(c.txSize=a)),this.startTime=o.now(),this.listener=function(e){try{"abort"!==e.type||n.loadCaptureCalled||(n.params.aborted=!0),("load"!==e.type||n.called===n.totalCbs&&(n.onloadCalled||"function"!=typeof t.onload))&&n.end(t)}catch(e){try{s.emit("internal-error",[e])}catch{}}};for(i=0;i<d;i++)t.addEventListener(r[i],this.listener,!1)}),s.on("xhr-cb-time",function(e,t,n){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof n.onload||this.end(n)}),s.on("xhr-load-added",function(e,t){var n=""+u(e)+!!t;this.xhrGuids&&!this.xhrGuids[n]&&(this.xhrGuids[n]=!0,this.totalCbs+=1)}),s.on("xhr-load-removed",function(e,t){var n=""+u(e)+!!t;this.xhrGuids&&this.xhrGuids[n]&&(delete this.xhrGuids[n],this.totalCbs-=1)}),s.on("addEventListener-end",function(e,t){t instanceof i&&"load"===e[0]&&s.emit("xhr-load-added",[e[1],e[2]],t)}),s.on("removeEventListener-end",function(e,t){t instanceof i&&"load"===e[0]&&s.emit("xhr-load-removed",[e[1],e[2]],t)}),s.on("fn-start",function(e,t,n){t instanceof i&&("onload"===n&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=o.now()))}),s.on("fn-end",function(e,t){this.xhrCbStart&&s.emit("xhr-cb-time",[o.now()-this.xhrCbStart,this.onload,t],t)}),s.on("fetch-before-start",function(e){function i(e,t){var n=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),n=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),n=!0),n}var t,n,s,a,o=e[1]||{};if("string"==typeof e[0]?s=e[0]:e[0]&&e[0].url?s=e[0].url:window.URL&&e[0]&&e[0]instanceof URL&&(s=e[0].href),s&&(this.parsedOrigin=c(s),this.sameOrigin=this.parsedOrigin.sameOrigin),t=l(this.parsedOrigin),t&&(t.newrelicHeader||t.traceContextParentHeader))if("string"==typeof e[0]||window.URL&&e[0]&&e[0]instanceof URL){n={};for(a in o)n[a]=o[a];n.headers=new Headers(o.headers||{}),i(n.headers,t)&&(this.dt=t),e.length>1?e[1]=n:e.push(n)}else e[0]&&e[0].headers&&i(e[0].headers,t)&&(this.dt=t)})}},{}],13:[function(e,t){var s={};t.exports=function(e){if(e in s)return s[e];var o,a,r,n=document.createElement("a"),i=window.location,t={};return n.href=e,t.port=n.port,o=n.href.split("://"),!t.port&&o[1]&&(t.port=o[1].split("/")[0].split("@").pop().split(":")[1]),t.port&&"0"!==t.port||(t.port="https"===o[0]?"443":"80"),t.hostname=n.hostname||i.hostname,t.pathname=n.pathname,t.protocol=o[0],"/"!==t.pathname.charAt(0)&&(t.pathname="/"+t.pathname),a=!n.protocol||":"===n.protocol||n.protocol===i.protocol,r=n.hostname===document.domain&&n.port===i.port,t.sameOrigin=a&&(!n.hostname||r),"/"===t.pathname&&(s[e]=t),t}},{}],14:[function(e,t){function o(e,t){var n=e.responseType;return"json"===n&&null!==t?t:"arraybuffer"===n||"blob"===n||"json"===n?s(e.response):"text"===n||""===n||void 0===n?s(e.responseText):void 0}var s=e(16);t.exports=o},{}],15:[function(e,t){function l(){}function i(e,t,n){return function(){return r(e,[s.now()].concat(m(arguments)),t?null:this,n),t?void 0:this}}var h,r=e("handle"),d=e(24),m=e(25),c=e("ee").get("tracer"),s=e("loader"),o=NREUM;"undefined"==typeof window.newrelic&&(newrelic=o);var f=["setPageViewName","setCustomAttribute","setErrorHandler","finished","addToTrace","inlineHit","addRelease"],a="api-",u=a+"ixn-";d(f,function(e,t){o[t]=i(a+t,!0,"api")}),o.addPageAction=i(a+"addPageAction",!0),o.setCurrentRouteName=i(a+"routeName",!0),t.exports=newrelic,o.interaction=function(){return(new l).get()},h=l.prototype={createTracer:function(e,t){var n={},i=this,o="function"==typeof t;return r(u+"tracer",[s.now(),e,n],i),function(){if(c.emit((o?"":"no-")+"fn-start",[s.now(),i,o],n),o)try{return t.apply(this,arguments)}catch(e){throw c.emit("fn-err",[arguments,this,e],n),e}finally{c.emit("fn-end",[s.now()],n)}}}},d("actionText,setName,setAttribute,save,ignore,onEnd,getContext,end,get".split(","),function(e,t){h[t]=i(u+t)}),newrelic.noticeError=function(e,t){"string"==typeof e&&(e=new Error(e)),r("err",[e,s.now(),!1,t])}},{}],16:[function(e,t){t.exports=function(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return JSON.stringify(e).length}catch{return}}}},{}],17:[function(e,t){var s=0,o=navigator.userAgent.match(/Firefox[/\s](\d+\.\d+)/);o&&(s=+o[1]),t.exports=s},{}],18:[function(e,t){function i(){return r.exists&&performance.now?Math.round(performance.now()):(s=Math.max((new Date).getTime(),s))-o}function a(){return s}var s=(new Date).getTime(),o=s,r=e(26);t.exports=i,t.exports.offset=o,t.exports.getLastTimestamp=a},{}],19:[function(e,t){function s(e){return!(!e||!e.protocol||"file:"===e.protocol)}t.exports=s},{}],20:[function(e){function u(e){var n=e.getEntries();n.forEach(function(e){"first-paint"===e.name?o("timing",["fp",Math.floor(e.startTime)]):"first-contentful-paint"===e.name&&o("timing",["fcp",Math.floor(e.startTime)])})}function g(e){var n=e.getEntries();n.length>0&&o("lcp",[n[n.length-1]])}function m(e){e.getEntries().forEach(function(e){e.hadRecentInput||o("cls",[e])})}function h(e){if(e instanceof p&&!i){var t=Math.round(e.timeStamp),n={type:e.type};t<=s.now()?n.fid=s.now()-t:t>s.offset&&t<=Date.now()?(t-=s.offset,n.fid=s.now()-t):t=s.now(),i=!0,o("timing",["fi",t,n])}}function d(e){o("pageHide",[s.now(),e])}if(!("init"in NREUM&&"page_view_timing"in NREUM.init&&"enabled"in NREUM.init.page_view_timing&&NREUM.init.page_view_timing.enabled===!1)){var i,a,r,c,l,o=e("handle"),s=e("loader"),f=e(23),p=NREUM.o.EV;if("PerformanceObserver"in window&&"function"==typeof window.PerformanceObserver){r=new PerformanceObserver(u);try{r.observe({entryTypes:["paint"]})}catch{}a=new PerformanceObserver(g);try{a.observe({entryTypes:["largest-contentful-paint"]})}catch{}c=new PerformanceObserver(m);try{c.observe({type:"layout-shift",buffered:!0})}catch{}}"addEventListener"in document&&(i=!1,l=["click","keydown","mousedown","pointerdown","touchstart"],l.forEach(function(e){document.addEventListener(e,h,!1)})),f(d)}},{}],21:[function(e,t){function o(){function i(){return n?15&n[r++]:16*Math.random()|0}var n=null,r=0,s=window.crypto||window.msCrypto;s&&s.getRandomValues&&(n=s.getRandomValues(new Uint8Array(31)));for(var e,a="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx",t="",o=0;o<a.length;o++)e=a[o],"x"===e?t+=i().toString(16):"y"===e?(e=3&i()|8,t+=e.toString(16)):t+=e;return t}function i(){return s(16)}function a(){return s(32)}function s(e){function i(){return t?15&t[a++]:16*Math.random()|0}var s,o,t=null,a=0,n=window.crypto||window.msCrypto;n&&n.getRandomValues&&Uint8Array&&(t=n.getRandomValues(new Uint8Array(31)));for(s=[],o=0;o<e;o++)s.push(i().toString(16));return s.join("")}t.exports={generateUuid:o,generateSpanId:i,generateTraceId:a}},{}],22:[function(e,t){function r(e,t){if(!s)return!1;if(e!==s)return!1;if(!t)return!0;if(!o)return!1;for(var a=o.split("."),i=t.split("."),n=0;n<i.length;n++)if(i[n]!==a[n])return!1;return!0}var i,a,s=null,o=null,c=/Version\/(\S+)\s+Safari/;navigator.userAgent&&(i=navigator.userAgent,a=i.match(c),a&&i.indexOf("Chrome")===-1&&i.indexOf("Chromium")===-1&&(s="Safari",o=a[1])),t.exports={agent:s,version:o,match:r}},{}],23:[function(e,t){function a(e){function t(){e(o&&document[o]?document[o]:document[i]?"hidden":"visible")}"addEventListener"in document&&s&&document.addEventListener(s,t,!1)}t.exports=a;var s,o,i;"undefined"!=typeof document.hidden?(i="hidden",s="visibilitychange",o="visibilityState"):"undefined"!=typeof document.msHidden?(i="msHidden",s="msvisibilitychange"):"undefined"!=typeof document.webkitHidden&&(i="webkitHidden",s="webkitvisibilitychange",o="webkitVisibilityState")},{}],24:[function(e,t){function s(e,t){var s=[],n="",i=0;for(n in e)o.call(e,n)&&(s[i]=t(n,e[n]),i+=1);return s}var o=Object.prototype.hasOwnProperty;t.exports=s},{}],25:[function(e,t){function s(e,t,n){t||(t=0),"undefined"==typeof n&&(n=e?e.length:0);for(var s=-1,o=n-t||0,i=Array(o<0?0:o);++s<o;)i[s]=e[t+s];return i}t.exports=s},{}],26:[function(e,t){t.exports={exists:"undefined"!=typeof window.performance&&window.performance.timing&&"undefined"!=typeof window.performance.timing.navigationStart}},{}],ee:[function(e,t){function a(){}function r(e){function u(e){return e&&e instanceof a?e:e?l(e,c,i):i()}function f(n,i,a,r,c){if(c!==!1&&(c=!0),!o.aborted||r){e&&c&&e(n,i,a);for(var h,l=u(a),m=t(n),f=m.length,d=0;d<f;d++)m[d].apply(l,i);return h=s[g[n]],h&&h.push([v,n,i,l]),l}}function p(e,s){n[e]=t(e).concat(s)}function b(e,t){var s,o=n[e];if(o)for(s=0;s<o.length;s++)o[s]===t&&o.splice(s,1)}function t(e){return n[e]||[]}function j(e){return d[e]=d[e]||r(f)}function y(e,t){m(e,function(e,n){t=t||"feature",g[n]=t,t in s||(s[t]=[])})}var n={},g={},v={on:p,addEventListener:p,removeEventListener:b,emit:f,get:j,listeners:t,context:u,buffer:y,abort:h,aborted:!1};return v}function u(e){return l(e,c,i)}function i(){return new a}function h(){(s.api||s.feature)&&(o.aborted=!0,s=o.backlog={})}var c="nr@context",l=e("gos"),m=e(24),s={},d={},o=t.exports=r();t.exports.getOrSetContext=u,o.backlog=s},{}],gos:[function(e,t){function s(e,t,n){if(o.call(e,t))return e[t];var s=n();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:s,writable:!0,enumerable:!1}),s}catch{}return e[t]=s,s}var o=Object.prototype.hasOwnProperty;t.exports=s},{}],handle:[function(e,t){function o(e,t,n,o){s.buffer([e],o),s.emit(e,t,n)}var s=e("ee").get("handle");t.exports=o,o.ee=s},{}],id:[function(e,t){function s(e){var t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===window?0:a(e,i,function(){return o++})}var o=1,i="nr@id",a=e("gos");t.exports=s},{}],loader:[function(e,t){function d(){if(!f++){var n,s,e=l.info=NREUM.info,t=o.getElementsByTagName("script")[0];if(setTimeout(u.abort,3e4),!(e&&e.licenseKey&&e.applicationID&&t))return u.abort();g(j,function(t,n){e[t]||(e[t]=n)}),n=i(),r("mark",["onload",n+l.offset],null,"api"),r("timing",["load",n]),s=o.createElement("script"),s.src="https://"+e.agent,t.parentNode.insertBefore(s,t)}}function w(){"complete"===o.readyState&&m()}function m(){r("mark",["domContent",i()+l.offset],null,"api")}var f,i=e(18),r=e("handle"),g=e(24),u=e("ee"),_=e(22),v=e(19),s=window,o=s.document,c="addEventListener",p="attachEvent",a=s.XMLHttpRequest,h=a&&a.prototype;if(v(s.location)){NREUM.o={ST:setTimeout,SI:s.setImmediate,CT:clearTimeout,XHR:a,REQ:s.Request,EV:s.Event,PR:s.Promise,MO:s.MutationObserver};var b=""+location,j={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",agent:"js-agent.newrelic.com/nr-1208.min.js"},y=a&&h&&h[c]&&!/CriOS/.test(navigator.userAgent),l=t.exports={offset:i.getLastTimestamp(),now:i,origin:b,features:{},xhrWrappable:y,userAgent:_};e(15),e(20),o[c]?(o[c]("DOMContentLoaded",m,!1),s[c]("load",d,!1)):(o[p]("onreadystatechange",w),s[p]("onload",d)),r("mark",["firstbyte",i.getLastTimestamp()],null,"api"),f=0}},{}],"wrap-function":[function(e,t){function d(e,t){function n(t,n,o,a,d){function u(){var s,r,c,u;try{r=this,s=m(arguments),c="function"==typeof o?o(s,r):o||{}}catch(t){i([t,"",[s,r,a],c],e)}l(n+"start",[s,r,a],c,d);try{return u=t.apply(r,s)}catch(e){throw l(n+"err",[s,r,e],c,d),e}finally{l(n+"end",[s,r,u],c,d)}}return c(t)?t:(n||(n=""),u[s]=t,r(t,u,e),u)}function d(e,t,s,o,i){s||(s="");var a,r,l,d="-"===s.charAt(0);for(r=0;r<t.length;r++)a=t[r],l=e[a],c(l)||(e[a]=n(l,d?a+s:s,o,a,i))}function l(n,s,a,r){if(!o||t){var c=o;o=!0;try{e.emit(n,s,a,t,r)}catch(t){i([t,n,s,a],e)}o=c}}return e||(e=a),n.inPlace=d,n.flag=s,n}function i(e,t){t||(t=a);try{t.emit("internal-error",e)}catch{}}function r(e,t,n){if(Object.defineProperty&&Object.keys)try{var s,o=Object.keys(e);return o.forEach(function(n){Object.defineProperty(t,n,{get:function(){return e[n]},set:function(t){return e[n]=t,t}})}),t}catch(e){i([e],n)}for(s in e)f.call(e,s)&&(t[s]=e[s]);return t}function c(e){return!(e&&e instanceof Function&&e.apply&&!e[s])}function l(e,t){var n=t(e);return n[s]=e,r(e,n,a),n}function u(e,t,n){var s=e[t];e[t]=l(s,n)}function h(){for(var t=arguments.length,n=new Array(t),e=0;e<t;++e)n[e]=arguments[e];return n}var a=e("ee"),m=e(25),s="nr@original",f=Object.prototype.hasOwnProperty,o=!1;t.exports=d,t.exports.wrapFunction=l,t.exports.wrapInPlace=u,t.exports.argsToArray=h},{}]},{},["loader",2,12,4,3]),NREUM.loader_config={accountID:"110252",trustKey:"110252",agentID:"29885000",licenseKey:"008a2beb0f",applicationID:"29885000"},NREUM.info={beacon:"bam-cell.nr-data.net",errorBeacon:"bam-cell.nr-data.net",licenseKey:"008a2beb0f",applicationID:"29885000",sa:1}</script><link rel=alternate hreflang=x-default href=https://developers.xsolla.com/sdk/android/><link rel=alternate hreflang=de href=https://developers.xsolla.com/de/sdk/android/><link rel=alternate hreflang=ru href=https://developers.xsolla.com/ru/sdk/android/><link rel=alternate hreflang=ko href=https://developers.xsolla.com/ko/sdk/android/><link rel=alternate hreflang=zh href=https://developers.xsolla.com/zh/sdk/android/><link rel=alternate hreflang=ja href=https://developers.xsolla.com/ja/sdk/android/><link rel=alternate hreflang=es href=https://developers.xsolla.com/es/sdk/android/><link rel=alternate hreflang=pt href=https://developers.xsolla.com/pt/sdk/android/><link rel=alternate hreflang=fr href=https://developers.xsolla.com/fr/sdk/android/><script async src=https://widget.kapa.ai/kapa-widget.bundle.js data-project-name=Xsolla data-website-id=b94ede42-2037-464a-b739-92f0f1006f50 data-project-color=#0071FA data-project-logo=https://cdn.xsolla.net/developers/v-20250221-v02/images/baseof/robot-icon-white.png data-modal-image=https://cdn.xsolla.net/developers/v-20250221-v02/images/baseof/robot-icon-blue.png data-button-hide=true data-modal-override-open-id=ask-ai-button></script> <script>function getUserLanguage(){return navigator.languages&&navigator.languages.length?navigator.languages[0]:navigator.language||navigator.userLanguage}var languageMappings={en:{modalDisclaimer:"Answers are AI-generated and may contain errors. For security, avoid sharing personal information or API keys.",modalExampleQuestionsTitle:"Example questions",modalExampleQuestions:"How to integrate Web Shop?,Where can I find the project ID?",modalTitle:"Xsolla Developers Portal AI",modalAskAIInputPlaceholder:"Ask me a question about Xsolla..."},ru:{modalDisclaimer:"Ответы сгенерированы ИИ и могут содержать ошибки. В целях безопасности избегайте передачи личной информации или API-ключей.",modalExampleQuestionsTitle:"Примеры вопросов",modalExampleQuestions:"Как интегрировать Web Shop?,Где найти ID проекта?",modalTitle:"AI-ассистент Xsolla для разработчиков",modalAskAIInputPlaceholder:"Задайте мне вопрос об Xsolla..."},de:{modalDisclaimer:"Antworten werden von KI generiert und können Fehler enthalten. Geben Sie aus Sicherheitsgründen keine persönlichen Informationen oder API-Schlüssel weiter.",modalExampleQuestionsTitle:"Beispielfragen",modalExampleQuestions:"Wie integriere ich einen Webshop?,Wo kann ich eine Projekt-ID finden?",modalTitle:"Xsolla Developer Portal KI",modalAskAIInputPlaceholder:"Stelle mir eine Frage über Xsolla..."},fr:{modalDisclaimer:"Les réponses sont générées par l’IA et peuvent contenir des erreurs. Pour des raisons de sécurité, évitez de partager des informations personnelles ou des clés API.",modalExampleQuestionsTitle:"Exemples de questions",modalExampleQuestions:"Comment intégrer Web Shop ?,Où puis-je trouver l'ID du projet ?",modalTitle:"IA du portail Xsolla pour les développeurs",modalAskAIInputPlaceholder:"Posez-moi une question au sujet de Xsolla…"},es:{modalDisclaimer:"Las respuestas son generadas por IA y pueden contener errores. Por seguridad, evita compartir información personal o claves API.",modalExampleQuestionsTitle:"Preguntas de ejemplo",modalExampleQuestions:"¿Cómo integrar Web Shop?,¿Dónde encontrar el ID del proyecto?",modalTitle:"IA del portal de desarrolladores de Xsolla",modalAskAIInputPlaceholder:"Hágame una pregunta sobre Xsolla..."},ja:{modalDisclaimer:"回答はAIによって生成されており、誤りが含まれる可能性があります。セキュリティのため、個人情報やAPIキーを共有しないでください。",modalExampleQuestionsTitle:"質問例",modalExampleQuestions:"ウェブショップの統合方法は?,プロジェクトIDはどこにありますか?",modalTitle:"エクソーラ開発者ポータルAI",modalAskAIInputPlaceholder:"エクソーラについてご質問させてください..."},ko:{modalDisclaimer:"답변은 AI가 생성하며 오류가 포함될 수 있습니다. 보안을 위해 개인 정보나 API 키를 공유하지 마세요.",modalExampleQuestionsTitle:"예시 질문",modalExampleQuestions:"웹샵을 통합하려면 어떻게 해야 하나요?,프로젝트 ID는 어디에서 찾을 수 있나요?",modalTitle:"엑솔라 개발자 포털 AI",modalAskAIInputPlaceholder:"엑솔라에 대한 질문이 있으면 저에게 물어보세요..."},zh:{modalDisclaimer:"答案由AI生成,可能包含错误。为确保安全,请避免分享个人信息或API密钥。",modalExampleQuestionsTitle:"示例问题",modalExampleQuestions:"怎样集成网页商城?,在哪里可以找到项目ID?",modalTitle:"艾克索拉开发者门户AI",modalAskAIInputPlaceholder:"问我关于艾克索拉的问题..."},pt:{modalDisclaimer:"As respostas são geradas por IA e podem conter erros. Para segurança, evite compartilhar informações pessoais ou chaves de API.",modalExampleQuestionsTitle:"Exemplos de perguntas",modalExampleQuestions:"Como integrar a Web Shop?,Onde posso encontrar o ID do projeto?",modalTitle:"IA do Portal de Desenvolvedores Xsolla",modalAskAIInputPlaceholder:"Me faça uma pergunta sobre a Xsolla..."}},userLang=getUserLanguage().toLowerCase(),languageCode=userLang.split("-")[0],languageData=languageMappings[languageCode]||languageMappings.en;document.querySelector('script[data-project-name="Xsolla"]').setAttribute("data-modal-disclaimer",languageData.modalDisclaimer),document.querySelector('script[data-project-name="Xsolla"]').setAttribute("data-modal-example-questions-title",languageData.modalExampleQuestionsTitle),document.querySelector('script[data-project-name="Xsolla"]').setAttribute("data-modal-example-questions",languageData.modalExampleQuestions),document.querySelector('script[data-project-name="Xsolla"]').setAttribute("data-modal-title",languageData.modalTitle),document.querySelector('script[data-project-name="Xsolla"]').setAttribute("data-modal-ask-ai-input-placeholder",languageData.modalAskAIInputPlaceholder),document.querySelector('script[data-project-name="Xsolla"]').setAttribute("data-button-text",languageData.buttonText)</script></head><body data-spy=scroll data-target=#guide-menu data-offset=1 class=en lang=en><div class="ie-fixed-block hidden"><div class=op-content><div class=pnf-box><div class=c-pnf-box><div class=c-pnf-text-block><div class="s-title-gc-box ff-ers"><div class=item-s-title><span>Bad browser</span></div><div class=line-s-t></div></div><h1 class="pnf-g-title bad-browser"><span>Your browser is not supported. Please try a different browser</span></h1></div><div class=c-pnf-img-block><img src="data:image/svg+xml,%3Csvg%20width=%22226%22%20height=%22236%22%20xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath%20d=%22M212.303%2053V13.5H13.5V53h198.803zm0%2013H13.5v83.451c0%204.042%201.708%2010.25%204.812%2016.267%203.768%207.304%209.18%2013.706%2015.932%2018.306%2017.55%2011.956%2042.505%2011.237%2075.51-7.038%2045.704-25.307%2080.629-18.186%20102.55%2020.19V66zM.5%207A6.5%206.5%200%200%201%207%20.5h211.803a6.5%206.5%200%200%201%206.5%206.5v222.451c0%207.467-10.53%209.042-12.715%201.903-17.214-56.236-48.037-69.85-96.538-42.995-37.014%2020.495-67.172%2021.364-89.125%206.41C10.737%20183.74.5%20163.895.5%20149.45V7zm35%2033a7.5%207.5%200%201%201%200-15%207.5%207.5%200%200%201%200%2015zm22%200a7.5%207.5%200%201%201%200-15%207.5%207.5%200%200%201%200%2015zm22%200a7.5%207.5%200%201%201%200-15%207.5%207.5%200%200%201%200%2015zm25.5-.5v-13h89.524v13H105z%22%20fill=%22%23FFF%22/%3E%3C/svg%3E" alt="Error 404 image"></div></div></div></div></div><div class="container cc-full"><div class="banner-locale banner-locale--hidden"><div class=banner-locale__container><div class=banner-locale__text></div><button class=banner-locale__close-button>&#10005;</button></div></div><header class=header id=header><a href=/ class="header__logo logo"><svg xmlns="http://www.w3.org/2000/svg" width="80" height="80" viewBox="0 0 100 100" class="logo__image"> <g fill="none" fill-rule="evenodd"> <path fill="#0076FF" d="M0 0h100v100H0z"></path> <path fill="#FFF" d="M75.24 63.393c-4.067 0-7.383-3.29-7.383-7.364 0-4.076 3.316-7.368 7.383-7.368 4.036 0 7.35 3.292 7.35 7.368 0 4.074-3.314 7.364-7.35 7.364m-.002-10.714c1.838 0 3.333 1.523 3.333 3.362a3.338 3.338 0 0 1-3.333 3.334c-1.87 0-3.363-1.497-3.363-3.334a3.366 3.366 0 0 1 3.363-3.362zM45.089 82.143V68.75h4.018v13.393H45.09zm5.357 0V68.75h4.018v13.393h-4.018zm15.666-57.95l4.424 4.733-5.894 6.342-2.46-2.675 3.396-3.656-4.417-4.739.005-.006-.005-.009 2.486-2.648.005.01 3.401-3.688 2.485 2.646-3.426 3.69zM25.013 48.66l8.023 13.393H16.964l8.05-13.393zm.23 7.589l-2.029 2.679h4.018l-1.99-2.679zM42.41 21.915l-4.658 4.632 4.658 4.662-2.698 2.72-4.67-4.663-4.668 4.663-2.696-2.72 4.671-4.662-4.671-4.632 2.696-2.719 4.668 4.66 4.67-4.66 2.698 2.72z"></path> </g> </svg><img src=https://cdn.xsolla.net/developers/v-20250221-v02/images/general/Developer.svg class=logo__text alt=Developer></a><div class=header__controls><div class=search><div class="search__preview _toggle-search"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" class="search__icon"><g fill="none" stroke="#fff" stroke-width="12" stroke-linecap="square" stroke-miterlimit="10"><path d="M92.173 92.173l21.588 21.588"/><circle cx="59.892" cy="59.892" r="45.652"/></g></svg><div class=search__text>Search the docs</div></div><div class=search__wrapper><div class="search__icon search__icon_search"><svg width="16" height="100%" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" fill="#011627" clip-rule="evenodd" d="M6 12C2.68629 12 0 9.31371 0 6C0 2.68629 2.68629 0 6 0C9.31371 0 12 2.68629 12 6C12 7.29583 11.5892 8.49572 10.8907 9.47653L14.9667 13.5525C15.3572 13.943 15.3572 14.5762 14.9667 14.9667C14.5762 15.3572 13.943 15.3572 13.5525 14.9667L9.47653 10.8907C8.49572 11.5892 7.29583 12 6 12ZM6 10.6C8.54051 10.6 10.6 8.54051 10.6 6C10.6 3.45949 8.54051 1.4 6 1.4C3.45949 1.4 1.4 3.45949 1.4 6C1.4 8.54051 3.45949 10.6 6 10.6Z" fill="#00244D"/></svg></div><input class=search__input id=docsearch placeholder="Search the docs"> <button class="search__icon search__icon_close _toggle-search"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Capa_1" x="0px" y="0px" width="100%" height="100%" viewBox="0 0 357 357" style="enable-background:new 0 0 357 357;" xml:space="preserve"><g><g><polygon points="357,35.7 321.3,0 178.5,142.8 35.7,0 0,35.7 142.8,178.5 0,321.3 35.7,357 178.5,214.2 321.3,357 357,321.3 214.2,178.5 " fill="#011627"/></g></g></svg></button></div></div><span class=header__separator>or</span><div class=dropdownMenu id=dropdownMobileMenu><ul class=dropdownMenu__links><li><a class="link link_lightGrey" href=/#solutions>Solutions</a></li><li><a class="link link_lightGrey" href=/#doc>Products</a></li><li><a class="link link_lightGrey" href=/#api>API references</a></li><li><a class="link link_lightGrey" href=/#sdk>SDKs & libraries</a></li><li><a class="link link_lightGrey" href=/doc/partner-ecosystem>Partner Ecosystem</a></li><li><a class="link link_lightGrey" href=/#help>Help & support</a></li></ul><div class=dropdownMenu__buttons><button class="button button_ai dropdownMenu__control header__ai-button" id=ask-ai-button><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg" class="search__with-ai-icon"> <path d="M10.5 5.25C10.5 5.44891 10.421 5.63968 10.2803 5.78033C10.1397 5.92098 9.94891 6 9.75 6C8.75544 6 7.80161 6.39509 7.09835 7.09835C6.39509 7.80161 6 8.75544 6 9.75C6 9.94891 5.92098 10.1397 5.78033 10.2803C5.63968 10.421 5.44891 10.5 5.25 10.5C5.05109 10.5 4.86032 10.421 4.71967 10.2803C4.57902 10.1397 4.5 9.94891 4.5 9.75C4.5 8.75544 4.10491 7.80161 3.40165 7.09835C2.69839 6.39509 1.74456 6 0.75 6C0.551088 6 0.360322 5.92098 0.21967 5.78033C0.0790178 5.63968 0 5.44891 0 5.25C0 5.05109 0.0790178 4.86032 0.21967 4.71967C0.360322 4.57902 0.551088 4.5 0.75 4.5C1.74456 4.5 2.69839 4.10491 3.40165 3.40165C4.10491 2.69839 4.5 1.74456 4.5 0.75C4.5 0.551088 4.57902 0.360322 4.71967 0.21967C4.86032 0.0790178 5.05109 0 5.25 0C5.44891 0 5.63968 0.0790178 5.78033 0.21967C5.92098 0.360322 6 0.551088 6 0.75C6 1.74456 6.39509 2.69839 7.09835 3.40165C7.80161 4.10491 8.75544 4.5 9.75 4.5C9.94891 4.5 10.1397 4.57902 10.2803 4.71967C10.421 4.86032 10.5 5.05109 10.5 5.25Z" fill="white"/> <path d="M11.25 15C11.25 15.1989 11.171 15.3897 11.0303 15.5303C10.8897 15.671 10.6989 15.75 10.5 15.75C10.1022 15.75 9.72064 15.908 9.43934 16.1893C9.15804 16.4706 9 16.8522 9 17.25C9 17.4489 8.92098 17.6397 8.78033 17.7803C8.63968 17.921 8.44891 18 8.25 18C8.05109 18 7.86032 17.921 7.71967 17.7803C7.57902 17.6397 7.5 17.4489 7.5 17.25C7.5 16.8522 7.34196 16.4706 7.06066 16.1893C6.77936 15.908 6.39782 15.75 6 15.75C5.80109 15.75 5.61032 15.671 5.46967 15.5303C5.32902 15.3897 5.25 15.1989 5.25 15C5.25 14.8011 5.32902 14.6103 5.46967 14.4697C5.61032 14.329 5.80109 14.25 6 14.25C6.39782 14.25 6.77936 14.092 7.06066 13.8107C7.34196 13.5294 7.5 13.1478 7.5 12.75C7.5 12.5511 7.57902 12.3603 7.71967 12.2197C7.86032 12.079 8.05109 12 8.25 12C8.44891 12 8.63968 12.079 8.78033 12.2197C8.92098 12.3603 9 12.5511 9 12.75C9 13.1478 9.15804 13.5294 9.43934 13.8107C9.72064 14.092 10.1022 14.25 10.5 14.25C10.6989 14.25 10.8897 14.329 11.0303 14.4697C11.171 14.6103 11.25 14.8011 11.25 15Z" fill="white"/> <path d="M18 9.75C18 9.94891 17.921 10.1397 17.7803 10.2803C17.6397 10.421 17.4489 10.5 17.25 10.5C16.4544 10.5 15.6913 10.8161 15.1287 11.3787C14.5661 11.9413 14.25 12.7044 14.25 13.5C14.25 13.6989 14.171 13.8897 14.0303 14.0303C13.8897 14.171 13.6989 14.25 13.5 14.25C13.3011 14.25 13.1103 14.171 12.9697 14.0303C12.829 13.8897 12.75 13.6989 12.75 13.5C12.75 12.7044 12.4339 11.9413 11.8713 11.3787C11.3087 10.8161 10.5456 10.5 9.75 10.5C9.55109 10.5 9.36032 10.421 9.21967 10.2803C9.07902 10.1397 9 9.94891 9 9.75C9 9.55109 9.07902 9.36032 9.21967 9.21967C9.36032 9.07902 9.55109 9 9.75 9C10.5456 9 11.3087 8.68393 11.8713 8.12132C12.4339 7.55871 12.75 6.79565 12.75 6C12.75 5.80109 12.829 5.61032 12.9697 5.46967C13.1103 5.32902 13.3011 5.25 13.5 5.25C13.6989 5.25 13.8897 5.32902 14.0303 5.46967C14.171 5.61032 14.25 5.80109 14.25 6C14.25 6.79565 14.5661 7.55871 15.1287 8.12132C15.6913 8.68393 16.4544 9 17.25 9C17.4489 9 17.6397 9.07902 17.7803 9.21967C17.921 9.36032 18 9.55109 18 9.75Z" fill="white"/> </svg> <span>Ask AI</span></button> <a class="button button_primary dropdownMenu__control" target=_blank href='https://publisher.xsolla.com?locale=en' id=signUpButton><span>Sign Up</span></a><div class="dropdown dropdownMenu__control"><button class="button button_secondaryWhite button_withTriangle" type=button id=dropdownMenuButton data-toggle=dropdown aria-haspopup=true aria-expanded=false> EN</button><div class="dropdown-menu dropdown-menu-right langSwitcher" aria-labelledby=dropdownMenuButton><a class="langSwitcher__link _is-active" href=/sdk/android/ lang=en>English</a><a class=langSwitcher__link href=/de/sdk/android/ lang=de>Deutsch</a><a class=langSwitcher__link href=/ru/sdk/android/ lang=ru>Русский</a><a class=langSwitcher__link href=/ko/sdk/android/ lang=ko>한국어</a><a class=langSwitcher__link href=/zh/sdk/android/ lang=zh>中文(简体)</a><a class=langSwitcher__link href=/ja/sdk/android/ lang=ja>日本語</a><a class=langSwitcher__link href=/es/sdk/android/ lang=es>Español</a><a class=langSwitcher__link href=/pt/sdk/android/ lang=pt>Português</a><a class=langSwitcher__link href=/fr/sdk/android/ lang=fr>Français</a></div></div></div></div><div class=hamburgerMenu><div class="hamburgerMenu__bar hamburgerMenu__bar_1"></div><div class="hamburgerMenu__bar hamburgerMenu__bar_2"></div><div class="hamburgerMenu__bar hamburgerMenu__bar_3"></div></div></div></header><main class="main newGuideWrapper"><div class=mobileMenuWrapper id=mobileMenuWrapper><div class="mobileMenuWrapper__header _id_mobileMenuHeader"><span class=mobileMenuWrapper__title>SDKs for Android / Overview</span><div class=mobileMenuWrapper__icon></div></div><div class="mobileMenuWrapper__content _id_mobileMenuContent"><div class=mobileMenuWrapper__inner><a class="sideMenu__item button button_backTo c-icon arrow-alt-left" role=button href=/#sdk>&nbsp; Back to Docs</a> <a href=/sdk/android/ class="sideMenu__header sideMenu__item"><h2 class=sideMenu__heading>SDKs for Android</h2></a><ul class="list sideMenu__list sideMenu__item _active"><li class="list__item _active"><a class="nav-link _active" href=/sdk/android/>Overview</a></li><li class=list__item><a class=nav-link href=https://developers.xsolla.com/sdk-code-references/android-store/ target=_blank>SDK reference documentation</a></li></ul><ul class=list><p class="heading__label heading__label_withArrow _id_menuSubhead">Login library</p><ul class="list sideMenu__item sideMenu__list" data-success-title=android_sdk_sdk_login_library><li class=list__item><a href=/sdk/android/login/get-started>Get started</a></li><li class=list__item><a href=/sdk/android/login/set-up-publisher-project>Create project in Publisher Account</a></li><li class=list__item><a href=/sdk/android/login/set-up-login>Set up basic Login project</a></li><li class=list__item><a href=/sdk/android/login/install-library>Install library</a></li><li class=list__item><a href=/sdk/android/login/initialize-library>Initialize library</a></li></ul><p class="heading__label heading__label_withArrow _id_menuSubhead">Store library</p><ul class="list sideMenu__item sideMenu__list" data-success-title=android_sdk_sdk_store_library><li class=list__item><a href=/sdk/android/store/get-started>Get started</a></li><li class=list__item><a href=/sdk/android/store/set-up-publisher-project>Create project in Publisher Account</a></li><li class=list__item><a href=/sdk/android/store/implement-user-auth>Implement user authorization</a></li><li class=list__item><a href=/sdk/android/store/set-up-catalog>Set up catalog</a></li><li class=list__item><a href=/sdk/android/store/install-library>Install library</a></li><li class=list__item><a href=/sdk/android/store/initialize-library>Initialize library</a></li></ul><p class="heading__label heading__label_withArrow _id_menuSubhead">Inventory library</p><ul class="list sideMenu__item sideMenu__list" data-success-title=android_sdk_sdk_inventory_library><li class=list__item><a href=/sdk/android/inventory/get-started>Get started</a></li><li class=list__item><a href=/sdk/android/inventory/set-up-publisher-project>Create project in Publisher Account</a></li><li class=list__item><a href=/sdk/android/inventory/implement-user-auth>Implement user authorization</a></li><li class=list__item><a href=/sdk/android/inventory/install-library>Install library</a></li><li class=list__item><a href=/sdk/android/inventory/initialize-library>Initialize library</a></li></ul><p class="heading__label heading__label_withArrow _id_menuSubhead">Payments library</p><ul class="list sideMenu__item sideMenu__list" data-success-title=android_sdk_sdk_payments_library><li class=list__item><a href=/sdk/android/payments/get-started>Get started</a></li><li class=list__item><a href=/sdk/android/payments/set-up-publisher-project>Create project in Publisher Account</a></li><li class=list__item><a href=/sdk/android/payments/implement-user-auth>Implement user authorization</a></li><li class=list__item><a href=/sdk/android/payments/set-up-pay-station>Set up user redirection</a></li><li class=list__item><a href=/sdk/android/payments/install-library>Install library</a></li><li class=list__item><a href=/sdk/android/payments/integrate-on-app-side>Integrate SDK on application side</a></li><li class=list__item><a href=/sdk/android/payments/test-payments>Test payment process</a></li></ul><p class="heading__label heading__label_withArrow _id_menuSubhead">Subscriptions library</p><ul class="list sideMenu__item sideMenu__list" data-success-title=android_sdk_sdk_subscriptions_library><li class=list__item><a href=/sdk/android/subscriptions/get-started>Get started</a></li><li class=list__item><a href=/sdk/android/subscriptions/set-up-publisher-project>Create project in Publisher Account</a></li><li class=list__item><a href=/sdk/android/subscriptions/implement-user-auth>Implement user authorization</a></li><li class=list__item><a href=/sdk/android/subscriptions/set-up-plan>Set up subscription plan</a></li><li class=list__item><a href=/sdk/android/subscriptions/install-library>Install library</a></li><li class=list__item><a href=/sdk/android/subscriptions/initialize-library>Initialize library</a></li><li class=list__item><a href=/sdk/android/subscriptions/integrate-on-app-side>Integrate SDK on application side</a></li><li class=list__item><a href=/sdk/android/subscriptions/test-purchase>Test subscription purchase in sandbox mode</a></li><li class=list__item><a href=/sdk/android/subscriptions/go-live>Go live</a></li></ul><p class="heading__label heading__label_withArrow _id_menuSubhead">BaaS integrations</p><ul class="list sideMenu__item sideMenu__list" data-success-title=android_sdk_sdk_baas_integrations><li class=list__item><a href=/sdk/android/baas-integrations/how-to-use-pay-station-with-firebase>How to use Pay Station in combination with Firebase authentication</a></li></ul><p class="heading__label heading__label_withArrow _id_menuSubhead">Authentication</p><ul class="list sideMenu__item sideMenu__list" data-success-title=android_sdk_sdk_how_tos_authentication><li class=list__item><a href=/sdk/android/authentication/general-info>General information</a></li><li class=list__item><a href=/sdk/android/authentication/classic-auth>Classic login via username/email and password</a></li><li class=list__item><a href=/sdk/android/authentication/auth-via-device-id>Authentication via device ID</a></li><li class=list__item><a href=/sdk/android/authentication/passwordless-auth>Passwordless login</a></li><li class=list__item><a href=/sdk/android/authentication/social-auth>Social login</a></li><li class=list__item><a href=/sdk/android/authentication/auth-via-custom-id>Authentication via custom ID</a></li><li class=list__item><a href=/sdk/android/authentication/login-widget>Xsolla Login widget</a></li></ul><p class="heading__label heading__label_withArrow _id_menuSubhead">Catalog</p><ul class="list sideMenu__item sideMenu__list" data-success-title=android_sdk_android_sdk_features_catalog><li class=list__item><a href=/sdk/android/catalog/general-info>General information</a></li><li class=list__item><a href=/sdk/android/catalog/catalog-display>Display item catalog in your application</a></li></ul><p class="heading__label heading__label_withArrow _id_menuSubhead">Promotions</p><ul class="list sideMenu__item sideMenu__list" data-success-title=android_sdk_android_sdk_features_promo><li class=list__item><a href=/sdk/android/promo/general-info>General information</a></li><li class=list__item><a href=/sdk/android/promo/coupons>Coupons</a></li><li class=list__item><a href=/sdk/android/promo/promo-codes>Promo codes</a></li><li class=list__item><a href=/sdk/android/promo/personalized-offers>Personalized offers</a></li><li class=list__item><a href=/sdk/android/promo/free-items>Free items</a></li></ul><p class="heading__label heading__label_withArrow _id_menuSubhead">Item purchase</p><ul class="list sideMenu__item sideMenu__list" data-success-title=android_sdk_android_sdk_features_item_purchase><li class=list__item><a href=/sdk/android/item-purchase/general-info>General information</a></li><li class=list__item><a href=/sdk/android/item-purchase/one-click-purchase>Purchase in one click</a></li><li class=list__item><a href=/sdk/android/item-purchase/purchase-for-vc>Purchase for virtual currency</a></li><li class=list__item><a href=/sdk/android/item-purchase/cart-purchase>Purchase via shopping cart</a></li><li class=list__item><a href=/sdk/android/item-purchase/track-order>Track order status</a></li></ul><p class="heading__label heading__label_withArrow _id_menuSubhead">Player inventory</p><ul class="list sideMenu__item sideMenu__list" data-success-title=android_sdk_android_sdk_features_player_inventory><li class=list__item><a href=/sdk/android/player-inventory/general-info>General information</a></li><li class=list__item><a href=/sdk/android/player-inventory/display-inventory>Display player inventory in your application</a></li><li class=list__item><a href=/sdk/android/player-inventory/consume-item>Consume virtual items and currencies from player inventory</a></li></ul><p class="heading__label heading__label_withArrow _id_menuSubhead">User account and attributes</p><ul class="list sideMenu__item sideMenu__list" data-success-title=android_sdk_android_sdk_features_user_account_and_attributes><li class=list__item><a href=/sdk/android/user-account-and-attributes/general-info>General information</a></li><li class=list__item><a href=/sdk/android/user-account-and-attributes/user-attributes>User attributes</a></li><li class=list__item><a href=/sdk/android/user-account-and-attributes/user-account>User account</a></li><li class=list__item><a href=/sdk/android/user-account-and-attributes/account-linking>Account linking</a></li></ul></ul></div></div></div><nav class=sideMenu id=guide-menu><div class=sideMenu__sticky><a class="sideMenu__item button button_backTo c-icon arrow-alt-left" role=button href=/#sdk>&nbsp; Back to Docs</a> <a href=/sdk/android/ class="sideMenu__header sideMenu__item"><h2 class=sideMenu__heading>SDKs for Android</h2></a><ul class="list sideMenu__list sideMenu__item _active"><li class="list__item _active"><a class="nav-link _active" href=/sdk/android/>Overview</a></li><li class=list__item><a class=nav-link href=https://developers.xsolla.com/sdk-code-references/android-store/ target=_blank>SDK reference documentation</a></li></ul><ul class=list><p class="heading__label heading__label_withArrow _id_menuSubhead">Login library</p><ul class="list sideMenu__item sideMenu__list" data-success-title=android_sdk_sdk_login_library><li class=list__item><a href=/sdk/android/login/get-started>Get started</a></li><li class=list__item><a href=/sdk/android/login/set-up-publisher-project>Create project in Publisher Account</a></li><li class=list__item><a href=/sdk/android/login/set-up-login>Set up basic Login project</a></li><li class=list__item><a href=/sdk/android/login/install-library>Install library</a></li><li class=list__item><a href=/sdk/android/login/initialize-library>Initialize library</a></li></ul><p class="heading__label heading__label_withArrow _id_menuSubhead">Store library</p><ul class="list sideMenu__item sideMenu__list" data-success-title=android_sdk_sdk_store_library><li class=list__item><a href=/sdk/android/store/get-started>Get started</a></li><li class=list__item><a href=/sdk/android/store/set-up-publisher-project>Create project in Publisher Account</a></li><li class=list__item><a href=/sdk/android/store/implement-user-auth>Implement user authorization</a></li><li class=list__item><a href=/sdk/android/store/set-up-catalog>Set up catalog</a></li><li class=list__item><a href=/sdk/android/store/install-library>Install library</a></li><li class=list__item><a href=/sdk/android/store/initialize-library>Initialize library</a></li></ul><p class="heading__label heading__label_withArrow _id_menuSubhead">Inventory library</p><ul class="list sideMenu__item sideMenu__list" data-success-title=android_sdk_sdk_inventory_library><li class=list__item><a href=/sdk/android/inventory/get-started>Get started</a></li><li class=list__item><a href=/sdk/android/inventory/set-up-publisher-project>Create project in Publisher Account</a></li><li class=list__item><a href=/sdk/android/inventory/implement-user-auth>Implement user authorization</a></li><li class=list__item><a href=/sdk/android/inventory/install-library>Install library</a></li><li class=list__item><a href=/sdk/android/inventory/initialize-library>Initialize library</a></li></ul><p class="heading__label heading__label_withArrow _id_menuSubhead">Payments library</p><ul class="list sideMenu__item sideMenu__list" data-success-title=android_sdk_sdk_payments_library><li class=list__item><a href=/sdk/android/payments/get-started>Get started</a></li><li class=list__item><a href=/sdk/android/payments/set-up-publisher-project>Create project in Publisher Account</a></li><li class=list__item><a href=/sdk/android/payments/implement-user-auth>Implement user authorization</a></li><li class=list__item><a href=/sdk/android/payments/set-up-pay-station>Set up user redirection</a></li><li class=list__item><a href=/sdk/android/payments/install-library>Install library</a></li><li class=list__item><a href=/sdk/android/payments/integrate-on-app-side>Integrate SDK on application side</a></li><li class=list__item><a href=/sdk/android/payments/test-payments>Test payment process</a></li></ul><p class="heading__label heading__label_withArrow _id_menuSubhead">Subscriptions library</p><ul class="list sideMenu__item sideMenu__list" data-success-title=android_sdk_sdk_subscriptions_library><li class=list__item><a href=/sdk/android/subscriptions/get-started>Get started</a></li><li class=list__item><a href=/sdk/android/subscriptions/set-up-publisher-project>Create project in Publisher Account</a></li><li class=list__item><a href=/sdk/android/subscriptions/implement-user-auth>Implement user authorization</a></li><li class=list__item><a href=/sdk/android/subscriptions/set-up-plan>Set up subscription plan</a></li><li class=list__item><a href=/sdk/android/subscriptions/install-library>Install library</a></li><li class=list__item><a href=/sdk/android/subscriptions/initialize-library>Initialize library</a></li><li class=list__item><a href=/sdk/android/subscriptions/integrate-on-app-side>Integrate SDK on application side</a></li><li class=list__item><a href=/sdk/android/subscriptions/test-purchase>Test subscription purchase in sandbox mode</a></li><li class=list__item><a href=/sdk/android/subscriptions/go-live>Go live</a></li></ul><p class="heading__label heading__label_withArrow _id_menuSubhead">BaaS integrations</p><ul class="list sideMenu__item sideMenu__list" data-success-title=android_sdk_sdk_baas_integrations><li class=list__item><a href=/sdk/android/baas-integrations/how-to-use-pay-station-with-firebase>How to use Pay Station in combination with Firebase authentication</a></li></ul><p class="heading__label heading__label_withArrow _id_menuSubhead">Authentication</p><ul class="list sideMenu__item sideMenu__list" data-success-title=android_sdk_sdk_how_tos_authentication><li class=list__item><a href=/sdk/android/authentication/general-info>General information</a></li><li class=list__item><a href=/sdk/android/authentication/classic-auth>Classic login via username/email and password</a></li><li class=list__item><a href=/sdk/android/authentication/auth-via-device-id>Authentication via device ID</a></li><li class=list__item><a href=/sdk/android/authentication/passwordless-auth>Passwordless login</a></li><li class=list__item><a href=/sdk/android/authentication/social-auth>Social login</a></li><li class=list__item><a href=/sdk/android/authentication/auth-via-custom-id>Authentication via custom ID</a></li><li class=list__item><a href=/sdk/android/authentication/login-widget>Xsolla Login widget</a></li></ul><p class="heading__label heading__label_withArrow _id_menuSubhead">Catalog</p><ul class="list sideMenu__item sideMenu__list" data-success-title=android_sdk_android_sdk_features_catalog><li class=list__item><a href=/sdk/android/catalog/general-info>General information</a></li><li class=list__item><a href=/sdk/android/catalog/catalog-display>Display item catalog in your application</a></li></ul><p class="heading__label heading__label_withArrow _id_menuSubhead">Promotions</p><ul class="list sideMenu__item sideMenu__list" data-success-title=android_sdk_android_sdk_features_promo><li class=list__item><a href=/sdk/android/promo/general-info>General information</a></li><li class=list__item><a href=/sdk/android/promo/coupons>Coupons</a></li><li class=list__item><a href=/sdk/android/promo/promo-codes>Promo codes</a></li><li class=list__item><a href=/sdk/android/promo/personalized-offers>Personalized offers</a></li><li class=list__item><a href=/sdk/android/promo/free-items>Free items</a></li></ul><p class="heading__label heading__label_withArrow _id_menuSubhead">Item purchase</p><ul class="list sideMenu__item sideMenu__list" data-success-title=android_sdk_android_sdk_features_item_purchase><li class=list__item><a href=/sdk/android/item-purchase/general-info>General information</a></li><li class=list__item><a href=/sdk/android/item-purchase/one-click-purchase>Purchase in one click</a></li><li class=list__item><a href=/sdk/android/item-purchase/purchase-for-vc>Purchase for virtual currency</a></li><li class=list__item><a href=/sdk/android/item-purchase/cart-purchase>Purchase via shopping cart</a></li><li class=list__item><a href=/sdk/android/item-purchase/track-order>Track order status</a></li></ul><p class="heading__label heading__label_withArrow _id_menuSubhead">Player inventory</p><ul class="list sideMenu__item sideMenu__list" data-success-title=android_sdk_android_sdk_features_player_inventory><li class=list__item><a href=/sdk/android/player-inventory/general-info>General information</a></li><li class=list__item><a href=/sdk/android/player-inventory/display-inventory>Display player inventory in your application</a></li><li class=list__item><a href=/sdk/android/player-inventory/consume-item>Consume virtual items and currencies from player inventory</a></li></ul><p class="heading__label heading__label_withArrow _id_menuSubhead">User account and attributes</p><ul class="list sideMenu__item sideMenu__list" data-success-title=android_sdk_android_sdk_features_user_account_and_attributes><li class=list__item><a href=/sdk/android/user-account-and-attributes/general-info>General information</a></li><li class=list__item><a href=/sdk/android/user-account-and-attributes/user-attributes>User attributes</a></li><li class=list__item><a href=/sdk/android/user-account-and-attributes/user-account>User account</a></li><li class=list__item><a href=/sdk/android/user-account-and-attributes/account-linking>Account linking</a></li></ul></ul></div></nav><article><div class=newGuide><h1 id=android_sdk class="newGuide__title heading_navy">SDKs for Android</h1><div class=headings-hidden style="display: none;"><a class=nav-link href=https://developers.xsolla.com/sdk-code-references/android-store/ target=_blank>SDK reference documentation</a></div><div class="alert alert__type_notice"><div class=alert__header>Notice</div><div class=bodyText>Integrate <a href=/sdk/mobile/>Xsolla Mobile SDK</a> to enable In-App Payments across mobile platforms within and outside of stores in a platform-compliant way, powered by Pay Station with over 700 payment methods.</div></div><div class="newGuide__child newGuide__child_withPicture newGuide__child_primary"><div class=newGuide__overview><p class=bodyText><p class=bodyText>The SDK makes it easier to integrate Xsolla products into your Android project by providing out-of-the-box data structures and methods for working with Xsolla API.</p><p>After integration, you can use:<ul><li>Login to authenticate users and manage user accounts.</li><li>In-Game Store to manage in-game purchases in your application.</li><li>Pay Station to set up payments.</li><li>Subscriptions to provide users with access to a package of services under specified conditions (subscription cost and duration).</li></ul></p></p></div><figure><img src=https://cdn.xsolla.net/developers/v-20250221-v02/images//sdk/android/android-ready-made-solution.png style="max-width: 100%" height=auto></figure></div><h2 id=android_sdk_overview_choose>Choose and integrate libraries</h2><p>Choose libraries that suit your needs and follow the step-by-step instructions to integrate:</p><div class="alert alert__type_note"><div class=alert__header>Note</div><div class=bodyText>Publishing platforms (for instance, Google Play) may not allow using Store and Payments libraries. Check the policies and guidelines before publishing.</div></div><div class=flexBlock><div class="flexBlock__item flexBlock__item_halfOfPage"><h3 id=sdk_login_library>Login library</h3>The Login library is used to integrate applications based on Android with <a href=/doc/login/>Xsolla Login</a>. Main features:<ul><li>authentication via email or username and password</li><li>authentication via the following social networks:</li><ul><li><nt>Google</nt></li><li><nt>Facebook</nt></li><li><nt>Twitter</nt></li><li><nt>LinkedIn</nt></li><li>Naver</li><li><nt>Baidu</nt></li><li>QQ</li><li>WeChat</li></ul><li>authentication via a device ID</li><li>passwordless authentication via an email address or phone number</li><li>sign-up</li><li>email confirmation</li><li>password reset</li><li>user attributes management</li><li>user account</li></ul><p><a class="button button_primary" href=/sdk/android/login/>Integrate</a></div><div class="flexBlock__item flexBlock__item_halfOfPage"><h3 id=sdk_store_library>Store library</h3><p class=bodyText>The Store library is used to integrate applications based on Android with <a href=/doc/in-game-store/>In-Game Store</a>.</p><p>Main features:<ul><li>managing your in-game store</li><li>selling virtual items</li></ul></p><p><a class="button button_primary" href=/sdk/android/store/>Integrate</a></p></div></div><div class=flexBlock><div class="flexBlock__item flexBlock__item_halfOfPage"><h3 id=sdk_inventory_library>Inventory library</h3>The Inventory library is used to integrate applications based on Android with Player Inventory for managing:<ul><li>user inventory</li><li>virtual currency balance</li><li>cross-platform inventory</li></ul><p><a class="button button_primary" href=/sdk/android/inventory/>Integrate</a></div><div class="flexBlock__item flexBlock__item_halfOfPage"><h3 id=sdk_payments_library>Payments library</h3><p class=bodyText>The Payments library is used to integrate applications based on Android with <a href=/doc/pay-station/>Xsolla Pay Station</a>.</p><p>Main features:<ul><li>purchase for 130+ currencies</li><li>purchase via 700+ payment methods</li><li>built-in anti-fraud</li><li>payment UI localized in 20 languages</li><li>purchase refund</li></ul></p><p><a class="button button_primary" href=/sdk/android/payments/>Integrate</a></p></div></div><div class=flexBlock><div class=flexBlock__item><h3 id=sdk_subscriptions_library>Subscriptions library</h3><p class=bodyText>The Subscriptions library is used to integrate applications based on Android with <a href=/doc/subscriptions/>Subscriptions</a>. You should use <a href=/doc/login/>Xsolla Login</a> for user authorization.</p><p>Main features:<ul><li>selling subscriptions</li><li>subscription renewal and cancelation</li><li>subscription management from a user’s dashboard</li></ul></p><p><a class="button button_primary" href=/sdk/android/subscriptions/>Integrate</a></p></div><div class=flexBlock__item></div></div><div class=hrLine></div><h2 id=android_sdk_system_requirements>System requirements</h2><ul><li>Android OS 5.0 or higher</li><li>Internet connection</li></ul>The SDK uses <a href=https://www.android.com/gms/>Google Mobile Services</a> and doesn’t support builds for devices without Google Mobile Services, such as Huawei.<div class=hrLine></div><h2 id=sdk_charge_policy>Charge policy</h2><p class=bodyText>Xsolla offers the necessary tools to help you build and grow your gaming business, including personalized support at every stage. The terms of payment are determined by the contract that can be signed via Publisher Account.</p><p>The cost of using all Xsolla products is 5% of the amount you receive for the sale of the game and in-game goods via Xsolla Pay Station. If you do not use Xsolla Pay Station in your application, but use other products, contact your Customer Success Manager or email <a href=mailto:csm@xsolla.com><a href=mailto:csm@xsolla.com><a href=mailto:csm@xsolla.com>csm@xsolla.com</a></a></a> to clarify the terms and conditions.</p><div class=hrLine></div><h2 id=sdk_overview_how_tos>Set up your application</h2><p>Learn about advanced features from the how-tos:</p><p><a href=/sdk/android/authentication/ class="link_bold link_withArrow">Authentication</a></p><p><a href=/sdk/android/player-inventory/ class="link_bold link_withArrow">Player inventory</a></p><p><a href=/sdk/android/user-account-and-attributes/ class="link_bold link_withArrow">User account and attributes</a></p><div class=hrLine></div><h2 id=sdk_support>Contact our integration team</h2><p>Click the chat icon in the bottom right corner and contact the integration team via a messenger. We’ll answer you in real time and will help to resolve the problem.<div class="hrLine g_hidden"></div><div class="feedbackСontainer g_hidden"><div class=feedbackСontainer__header><div class=feedbackСontainer__title>Was this article helpful?</div><div class=feedbackСontainer__buttons><button href=# class="feedbackСontainer__button feedbackСontainer__button_good" data-id=doc_content_feedback_send-yes-answer><svg xmlns="http://www.w3.org/2000/svg" width="19" height="19" viewBox="0 0 19 19" class="buttonIcon"> <path class="buttonIcon__path" d="M8.60412 3.78524L7.29541 9.02006V15.6777H12.4531C13.4855 15.6777 14.3855 14.9751 14.6359 13.9734L15.3859 10.9734C15.7409 9.55336 14.6669 8.17773 13.2031 8.17773H10.2954C9.8812 8.17773 9.54541 7.84195 9.54541 7.42773V5.17773C9.54541 4.54678 9.15584 4.00681 8.60412 3.78524ZM5.79541 15.6777V9.67773H5.04541C4.21698 9.67773 3.54541 10.3493 3.54541 11.1777V14.1777C3.54541 15.0062 4.21698 15.6777 5.04541 15.6777H5.79541ZM5.95983 8.17773L7.3178 2.74583C7.39944 2.41232 7.70205 2.17773 8.04541 2.17773C9.70226 2.17773 11.0454 3.52088 11.0454 5.17773V6.67773H13.2031C15.6427 6.67773 17.4328 8.97044 16.8411 11.3372L16.0911 14.3372C15.6738 16.0066 14.1738 17.1777 12.4531 17.1777H5.04541C3.38856 17.1777 2.04541 15.8346 2.04541 14.1777V11.1777C2.04541 9.52088 3.38856 8.17773 5.04541 8.17773H5.95983Z" fill="white"/> </svg><div>Yes</div></button> <button href=# class="feedbackСontainer__button feedbackСontainer__button_bad" data-id=doc_content_feedback_send-no-answer><svg xmlns="http://www.w3.org/2000/svg" width="19" height="19" viewBox="0 0 19 19" class="buttonIcon"> <path class="buttonIcon__path" d="M10.3962 15.5702L11.7049 10.3354V3.67774L6.54726 3.67773C5.51481 3.67773 4.61484 4.3804 4.36444 5.38203L3.61444 8.38203C3.25942 9.80211 4.33347 11.1777 5.79726 11.1777H8.70493C9.11914 11.1777 9.45493 11.5135 9.45493 11.9277V14.1777C9.45493 14.8087 9.84449 15.3487 10.3962 15.5702ZM13.2049 3.67774V9.67774H13.9549C14.7834 9.67774 15.4549 9.00616 15.4549 8.17774V5.17774C15.4549 4.34931 14.7834 3.67774 13.9549 3.67774L13.2049 3.67774ZM13.0405 11.1777L11.6825 16.6096C11.6009 16.9432 11.2983 17.1777 10.9549 17.1777C9.29807 17.1777 7.95493 15.8346 7.95493 14.1777V12.6777H5.79726C3.35762 12.6777 1.56752 10.385 2.15922 8.01823L2.90922 5.01822C3.32657 3.34885 4.82651 2.17773 6.54726 2.17773L13.9549 2.17774C15.6118 2.17774 16.9549 3.52088 16.9549 5.17774V8.17774C16.9549 9.83459 15.6118 11.1777 13.9549 11.1777H13.0405Z" fill="white"/> </svg><div>No</div></button></div></div><div class=feedbackСontainer__forms><div class="feedbackСontainer__form feedbackСontainer__form_good"><form class=formBlock><div class="heading__noAnchor heading_h4">Thank you!</div><span class=formDetails>Is there anything we can improve?</span> <span class=messageInfo>Message</span> <textarea type=text name=feedback-answer class="answerInput heading_h5" required placeholder='Your message'></textarea> <button type=submit class="button button_primary sendForm" data-id=doc_content_feedback_send-yes-answer-other-reason disabled>Send</button></form></div><div class="feedbackСontainer__form feedbackСontainer__form_bad"><form class=formBlock><div class="heading__noAnchor heading_h4">We’re sorry to hear that</div><span class=formDetails>Please explain why this article wasn’t helpful to you.</span> <span class=messageInfo>Message</span> <textarea type=text name=feedback-answer class="answerInput heading_h5" required placeholder='Your message'></textarea> <button type=submit class="button button_primary sendForm" data-id=doc_content_feedback_send-no-answer-other-reason disabled>Send</button></form></div><div class="feedbackСontainer__form feedbackСontainer__form_thankYou"><div class="heading__noAnchor heading_h4">Thank you for your feedback!</div><span class=formDetails>We’ll review your message and use it to help us improve your experience.</span></div></div></div><div class="sdkHowToLine g_hidden"></div><div class=hrLine></div><small class=lastModDate>Last updated: February 3, 2025</small><div class=contextFeedbackInfo><div class=contextFeedbackInfo__content><p class=contextFeedbackInfo__content-text1>Found a typo or other text error? Select the text and press Ctrl+Enter.</p></div></div></div></article></main><footer class=footer id=footer><div class="footer__item footer__item_relative decor__triange_topRight"><a href=/><svg xmlns="http://www.w3.org/2000/svg" width="144" height="56" viewBox="0 0 144 56"> <g fill="none" fill-rule="evenodd"> <path fill="#FFF" d="M86.538 35.94l-2.948-4.972-2.948 4.972H76l5.126-8.338-4.598-7.436h4.422l2.596 4.378 2.596-4.378h4.466l-4.686 7.436 5.104 8.338h-4.488zm10.846.352c-3.806 0-5.874-1.672-6.292-4.62h4.136c.264 1.078 1.056 1.562 2.354 1.562 1.254 0 1.804-.418 1.804-1.122 0-.88-1.386-.99-2.97-1.188-2.2-.286-4.796-.77-4.796-3.806 0-2.486 1.958-4.224 5.566-4.224 3.828 0 5.544 1.716 5.94 4.268h-3.938c-.176-.88-.836-1.364-2.046-1.364-1.232 0-1.672.462-1.672 1.078 0 .792 1.078.924 2.97 1.166 2.2.286 4.84.836 4.84 3.806 0 2.552-1.936 4.444-5.896 4.444zm13.31-.022c-4.136 0-6.424-2.156-6.424-6.402v-.396c0-4.334 2.684-6.556 6.446-6.556 3.828 0 6.424 2.288 6.424 6.556v.396c0 4.246-2.552 6.402-6.446 6.402zm.022-3.454c1.474 0 2.442-.99 2.442-2.992v-.352c0-2.09-.88-3.168-2.42-3.168-1.496 0-2.486 1.034-2.486 3.168v.352c0 1.958.99 2.992 2.464 2.992zm12.21 3.124h-4.048V19h4.048v16.94zm6.27 0h-4.048V19h4.048v16.94zm7.348-2.596c1.606 0 2.684-1.276 2.684-2.53v-.77c-.374.286-.946.44-1.716.594-1.1.198-1.518.308-1.914.572-.352.264-.528.572-.528 1.012 0 .748.506 1.122 1.474 1.122zm3.3 2.596l-.44-2.134c-.726 1.43-2.112 2.464-4.488 2.464-2.772 0-4.114-1.32-4.114-3.432 0-1.54.638-2.53 1.672-3.168 1.012-.638 1.936-.814 4.004-1.144 1.936-.264 2.728-.484 2.728-1.298 0-.726-.44-1.232-1.804-1.232-1.408 0-2.09.66-2.134 1.848h-4.07c.198-2.97 2.222-4.928 6.204-4.928 4.224 0 5.742 1.936 5.742 4.884v8.14h-3.3z"></path> <path fill="#0076FF" d="M0 0h56v56H0z"></path> <path fill="#FFF" d="M42.134 35.5A4.13 4.13 0 0 1 38 31.376a4.132 4.132 0 0 1 4.134-4.126 4.126 4.126 0 0 1 0 8.25m0-6c1.029 0 1.866.853 1.866 1.883a1.87 1.87 0 0 1-1.867 1.867 1.872 1.872 0 0 1-1.883-1.867c0-1.03.836-1.883 1.883-1.883zM25.25 46v-7.5h2.25V46h-2.25zm3 0v-7.5h2.25V46h-2.25zm8.773-32.452l2.477 2.65-3.3 3.552-1.378-1.498 1.902-2.047-2.474-2.654.003-.003-.003-.006 1.392-1.483.003.006L37.55 10l1.391 1.481-1.918 2.067zM14.007 27.25l4.493 7.5h-9l4.507-7.5zm.129 4.25L13 33h2.25l-1.114-1.5zm9.614-19.228l-2.608 2.594 2.608 2.611L22.24 19l-2.616-2.61L17.01 19l-1.51-1.523 2.616-2.61-2.616-2.595 1.51-1.522 2.614 2.61 2.615-2.61 1.511 1.522z"></path> </g> </svg></a></div><div class="footer__item footer__menu menu"><nav class=menu__column><h4 class=footer__title>Integration</h4><a class="link link_lightGrey" href=/doc/pay-station/>Pay Station</a> <a class="link link_lightGrey" href=/doc/in-game-store/>In-Game Store</a> <a class="link link_lightGrey" href=/doc/subscriptions/>Subscriptions</a> <a class="link link_lightGrey" href=/doc/login/>Login</a> <a class="link link_lightGrey" href=/doc/launcher/>Launcher</a> <a class="link link_lightGrey" href=/doc/partner-network/>Partner Network</a> <a class="link link_lightGrey" href=/doc/site-builder/>Site Builder</a> <a class="link link_lightGrey" href=/doc/chat/>Chat</a></nav><nav class=menu__column><h4 class=footer__title>Solutions</h4><a class="link link_lightGrey" href=/solutions/web-shop/>Web Shop</a> <a class="link link_lightGrey" href=/solutions/payments/>Payments</a> <a class="link link_lightGrey" href=/solutions/gamesales/>Game Sales</a> <a class="link link_lightGrey" href=/solutions/ddh/>Digital Distribution Hub</a> <a class="link link_lightGrey" href=/solutions/cloud-gaming/>Cloud Gaming</a></nav><nav class=menu__column><h4 class=footer__title>Resources</h4><a class="link link_lightGrey" href=/#api>API Reference</a> <a class="link link_lightGrey" href=/#sdk>SDK</a></nav><nav class=menu__column><h4 class=footer__title>Support</h4><a class="link link_lightGrey" href=/doc/faq/>FAQs</a> <a class="link link_lightGrey" href=mailto:integration@xsolla.com>Contact Us</a></nav></div><div class="footer__item footer__credentials"><div class=systemStatus><span class="heading_grey heading__label heading__label_lineAfter">System status</span> <span class="footer__status systemStatus__indicator"><a href=https://status.xsolla.com target=_blank class="link link_lightGrey systemStatus__message"><span class="systemStatus__message_success systemStatus__message_hidden">All services operational</span> <span class="systemStatus__message_error systemStatus__message_hidden">Partial outage</span></a></span></div><div class=footer__list><p id=privacy-settings class="credentials__item credentials__item_withSeparator link link_lightGrey">Privacy Settings</p><a class="credentials__item credentials__item_withSeparator link link_lightGrey" href=https://xsolla.com/privacypolicy target=_blank>Privacy Policy</a> <a class="credentials__item credentials__item_withSeparator link link_lightGrey" href=https://xsolla.com/eula target=_blank>End User License Agreement</a> <span class="credentials__item heading_grey">© 2006–2025 Xsolla Inc.</span></div></div></footer><div class="contextReportBlock contextReportBlock__mainForm g_hidden"><div class=contextReportBlock__closeButton><img src=https://cdn.xsolla.net/developers/v-20250221-v02/images/context_report_cross.svg></div><div class="contextReportBlock__title heading_h5">Report a problem</div><div class=contextReportBlock__text>We always review our content. Your feedback helps us improve it.</div><form class=contextReportBlock__form><textarea required placeholder="Tell us about the issue" type=text class=contextReportBlock__comment></textarea> <input type=email placeholder=youremail@mail.com type=text class=contextReportBlock__email> <button class="contextReportBlock__sendButton button button_primary">Send</button></form><div class=contextReportBlock__formComment>Provide an email so we can follow up</div></div><div class="contextReportBlock contextReportBlock__thankYou g_hidden"><div class="heading__noAnchor heading_h4">Thank you for your feedback!</div></div><div class=gdpr id=gdpr-consent-form></div></div><script>var isIE=!!document.documentMode,container,ieBlock;isIE&&(document.execCommand("Stop"),container=document.querySelector(".container.cc-full"),container&&(container.parentElement.removeChild(container),ieBlock=document.querySelector(".ie-fixed-block.hidden"),ieBlock&&ieBlock.classList.remove("hidden")))</script><script>if(location.hostname!=="localhost"){const e={EXPIRATION:365*24*60*60,DOMAINS:{".xsolla.com":".xsolla.com",".srv.local":".srv.local"},COOKIES:{docs_visit:{name:"docs_visit",value:"1"},first_visit:{name:"first_visit",value:"developers"}}};function getCookieParams(){const t={expires:e.EXPIRATION,path:"/"},n=Object.keys(e.DOMAINS).find(e=>location.hostname.includes(e));return n&&(t.domain=e.DOMAINS[n]),t}function setCookie(t,n){const o=getCookieParams(),s=new Date;s.setTime(s.getTime()+e.EXPIRATION*1e3),o.expires=s.toUTCString();const i=`${encodeURIComponent(t)}=${encodeURIComponent(n)}`,a=Object.entries(o).reduce((e,[t,n])=>`${e}; ${t}=${n}`,i);document.cookie=a}function getCookie(e){const t=document.cookie.match(new RegExp(`(?:^|; )${e.replace(/([.$?*|{}()[\]\\/+^])/g,"\\$1")}=([^;]*)`));return t?decodeURIComponent(t[1]):void 0}setCookie(e.COOKIES.docs_visit.name,e.COOKIES.docs_visit.value),getCookie(e.COOKIES.first_visit.name)||setCookie(e.COOKIES.first_visit.name,e.COOKIES.first_visit.value)}</script><script src=https://cdn.xsolla.net/developers/v-20250221-v02/static/js/vendor.js></script> <script src=https://cdn.xsolla.net/developers/v-20250221-v02/static/js/oldBundle.js></script> <script src=https://cdn.xsolla.net/developers/v-20250221-v02/static/js/bundle.js></script> <script type=text/javascript src=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js></script><script>$(function(){$.ajax({url:"https://status.xsolla.com/index.json",success:function(e){var t,s=e.components,n=!0;s.forEach(function(e){n*=e.status==="operational"}),t=n?"_success":"_error",$(".systemStatus__indicator").removeClass("systemStatus__indicator_success systemStatus__indicator_error"),$(".systemStatus__indicator").addClass("systemStatus__indicator"+t),$(`.systemStatus__message${t}`).toggleClass("systemStatus__message_hidden")}})})</script> <script src=https://cdnjs.cloudflare.com/ajax/libs/dompurify/2.3.4/purify.min.js integrity=sha512-...your-integrity-hash... crossorigin=anonymous referrerpolicy=no-referrer></script> <script type=text/javascript>let pageSearch,checkMain,allData=[],currentSlice=defaultSlice=5,oldSlice=0;const docSearchConfig={container:"#docsearch",apiKey:"2f57c4b9fbbdb8bff20005a46661036c",appId:"7HCRISZ739",indexName:"xsolla"},dataSource=$(".searchContent__datasource"),dsSuggestions=$(dataSource).find(".ds-suggestions"),showMoreBtn=$(".searchContent__showMore"),tagsWrapper=$(".searchContent__tags"),availableTags=["api","sdk","doc"],seeAllResultText="See all results",noResultsText="No results for {request}.",spaceBlock="<div class='noResultBlock'>Enter a search term.</div>",pageSearchSetup={container:docSearchConfig.container,appId:docSearchConfig.appId,apiKey:docSearchConfig.apiKey,indexName:docSearchConfig.indexName,inputSelector:".searchContent__input",algoliaOptions:{facetFilters:["lang:en"],hitsPerPage:100},autocompleteOptions:{templates:{dropdownMenu:"<div style='display:none;'><div class='ds-dataset-1'></div></div>"},hint:!1,autoselect:!1,autoselectOnBlur:!1,tabAutocomplete:!1},queryHook:e=>{pageSearch.autocomplete.autocomplete.setVal(e.replace(/^\s+/g,""))},handleSelected:function(){},transformData:e=>{if($(dsSuggestions).html(""),e.length>0)allData=e,oldSlice=0,hitsHandler(e,currentSlice);else{const e=DOMPurify.sanitize(pageSearch.autocomplete.autocomplete.getVal()),t="<div class='noResultBlock'>"+noResultsText.replace("{request}",`"${e}"`)+"</div>",n='<a href="/" class="searchContent__backDocs">Back to Docs &rarr;</a>';$(dsSuggestions).html(t+n),$(".searchContent__backDocs").on("click",e=>{e.preventDefault();const t=$(e.currentTarget).attr("href");window.location.href=t}),$(dataSource).removeClass("hidden"),hideControls()}$(".searchContent__input.ds-input").val().trim().length===0&&(hideControls(),$(dsSuggestions).html(spaceBlock))}},hitSeparator=e=>e.reduce((e,t)=>(e.hasOwnProperty(t.hierarchy.lvl0)?e[t.hierarchy.lvl0].push(t):e[t.hierarchy.lvl0]=[t],e),{}),getParameterByName=(e,t=window.location.href)=>{const s=e.replace(/[[\]]/g,"\\$&");var o=new RegExp("[?&]"+s+"(=([^&#]*)|&|#|$)"),n=o.exec(t);return n?n[2]?decodeURIComponent(n[2].replace(/\+/g," ")):"":null},templateForSuggestion=(e,t)=>{const{lvl0:l,lvl1:c,lvl2:o,lvl3:i,lvl4:a,lvl5:r}=e._highlightResult.hierarchy;let n="";!c&&!o&&!i&&!a&&!r?n=l.value:(n+=c?`${c.value} ${o?">":""}`:"",n+=o?` ${o.value} ${i?">":""}`:"",n+=i?` ${i.value} ${a?">":""}`:"",n+=a?` ${a.value} ${r?">":""}`:"",n+=r?` ${r.value}`:"");const s={url:e.url?e.url:"",categoryHeader:e.hierarchy.lvl0?e.hierarchy.lvl0:"",suggestionTitle:n,suggestionText:e._highlightResult.content?e._highlightResult.content.value:""};return`<div class="ds-suggestion"> <a class="algolia-docsearch-suggestion ${t===0?"algolia-docsearch-suggestion__main":""} algolia-docsearch-suggestion__secondary" aria-label="Link to the result" href="${s.url}"> <div class="algolia-docsearch-suggestion--category-header"> <span class="algolia-docsearch-suggestion--category-header-lvl0">${s.categoryHeader}</span> </div> <div class="algolia-docsearch-suggestion--wrapper"> <div class="algolia-docsearch-suggestion--content"> <div class="algolia-docsearch-suggestion--title">${s.suggestionTitle}</div> <div class="algolia-docsearch-suggestion--text ${s.suggestionText===""?"hidden":""}">${s.suggestionText}</div> </div> </div> </a> </div>`},linkHandlers=()=>{$(".algolia-docsearch-suggestion").on("click",e=>{e.preventDefault();const t=$(e.currentTarget).attr("href");window.open(t,"_blank")})},hitsHandler=(e,t)=>{const n=hitSeparator(e.slice(oldSlice,t));Object.keys(n).forEach(e=>{for(let t=0;t<n[e].length;t++)$(dsSuggestions).append(templateForSuggestion(n[e][t],t)),$(showMoreBtn).removeClass("searchContent__showMore_hidden"),$(tagsWrapper).removeClass("searchContent__tags_hidden"),$(dataSource).removeClass("hidden")}),t>=allData.length&&$(showMoreBtn).addClass("searchContent__showMore_hidden"),oldSlice=t,linkHandlers()},hideControls=()=>{$(showMoreBtn).addClass("searchContent__showMore_hidden"),$(tagsWrapper).addClass("searchContent__tags_hidden")},removeSearchParams=()=>{history.replaceState&&window.history.replaceState({},document.title,window.location.pathname)};if(window.location.pathname.includes("/search/")||docsearch({container:docSearchConfig.container,appId:docSearchConfig.appId,apiKey:docSearchConfig.apiKey,indexName:docSearchConfig.indexName,inputSelector:".search__input",algoliaOptions:{facetFilters:["lang:en"],hitsPerPage:10},autocompleteOptions:{templates:{footer:` <div class="searchFooter"> <div class="searchFooter__showAll"> <a id="see_all_results" class="button button_secondaryBlue button_wide" href="#">${seeAllResultText}</a> </div> <div class="searchFooter__logo"> <a class="algolia-docsearch-footer--logo" href="https://www.algolia.com">Algolia</a> </div> </div> `},openOnFocus:!0,hint:!1},transformData:function(e){const t="g_hidden";return e.length===0||e.length<=5?($("#see_all_results").addClass(t),$(".searchFooter").addClass("searchFooter_noData")):($("#see_all_results").removeClass(t),$(".searchFooter").removeClass("searchFooter_noData")),e.slice(0,5)},debug:!1}),$(".searchContent__input").length>0&&(pageSearch=docsearch(pageSearchSetup)),$(".search__input").on("input",e=>{if(e.target.value.length>0){const t=$("html").attr("lang").toLowerCase();$("#see_all_results").attr("href",`${t==="en"?"/":`/${t}/`}search?q=`.concat(e.target.value))}}),$(".searchContent__tags").on("click",".button_tag",e=>{const s=$(e.currentTarget),t=$(e.currentTarget).attr("tag").toLowerCase(),n=$("html").attr("lang").toLowerCase();$(".searchContent__tags .button_tag").removeClass("button_tag_active"),$(s).addClass("button_tag_active"),t&&availableTags.includes(t)?pageSearchSetup.algoliaOptions.facetFilters=[`lang:${n}`,`tags:${t}`]:pageSearchSetup.algoliaOptions.facetFilters=[`lang:${n}`],currentSlice=defaultSlice,pageSearch.autocomplete.autocomplete.destroy(),pageSearch=docsearch(pageSearchSetup),pageSearch.autocomplete.autocomplete.setVal($(".searchContent__input.ds-input").val().replace(/^\s+/g,"")),pageSearch.autocomplete.autocomplete.open()}),$(".searchContent__input.ds-input").on("input",e=>{if(e.target.value.length===0&&($(dataSource).addClass("hidden"),removeSearchParams(),$(".searchCross").addClass("hidden")),e.target.value.length>=1){if($(dataSource).removeClass("hidden"),$(".searchCross").removeClass("hidden"),history.replaceState){var t=window.location.protocol+"//"+window.location.host+window.location.pathname+"?q="+e.target.value;window.history.replaceState({path:t},"",t)}e.target.value.trim().length===0&&(hideControls(),$(dsSuggestions).html(spaceBlock))}}),$(showMoreBtn).on("click",()=>{if(currentSlice+=defaultSlice,currentSlice<allData.length)hitsHandler(allData,currentSlice);else{const e=currentSlice-allData.length;e!==0?(hitsHandler(allData,currentSlice-e),$(showMoreBtn).addClass("searchContent__showMore_hidden")):(hitsHandler(allData,currentSlice),$(showMoreBtn).addClass("searchContent__showMore_hidden"))}}),$(".searchCross").on("click",()=>{$(dataSource).addClass("hidden"),$(".searchContent__input").val(""),removeSearchParams(),$(".searchCross").addClass("hidden"),currentSlice=defaultSlice}),$(document).ready(()=>{$("body").on("click","._toggle-search",()=>{$(".search__wrapper").toggleClass("search__wrapper_open"),$(".search__input").focus(),$(".hamburgerMenu").removeClass("_change"),$("#dropdownMobileMenu").removeClass("_active"),$("body").removeClass("g_isFixed")}),$(document).mouseup(e=>{var t=$(".search__wrapper");!t.is(e.target)&&t.has(e.target).length===0&&t.removeClass("search__wrapper_open")})}),window.location.pathname.includes("/search/")){$(".header__controls .search, .header__separator").addClass("hidden");let e=getParameterByName("q");e?(pageSearch.autocomplete.autocomplete.setVal(e),pageSearch.autocomplete.autocomplete.open()):($(".searchCross").addClass("hidden"),removeSearchParams(),$(dataSource).addClass("hidden"))}</script></body></html>

Pages: 1 2 3 4 5 6 7 8 9 10