System.register(["@angular/core","@angular/material/core","@angular/cdk/coercion","@angular/common","rxjs","rxjs/operators","@angular/common/http","@angular/platform-browser"],(function(t){"use strict";var e,n,o,i,s,r,a,c,l,h,u,g,f,m,d,_,p,v,I,S,C,E,F,w,R;return{setters:[function(t){e=t.SecurityContext,n=t,t.Injectable,o=t.Optional,t.Inject,i=t.SkipSelf,s=t.ErrorHandler,r=t.InjectionToken,a=t.inject,t.Component,t.ViewEncapsulation,t.ChangeDetectionStrategy,t.Attribute,t.Input,t.NgModule},function(t){c=t.mixinColor,l=t.MatCommonModule},function(t){h=t.coerceBooleanProperty},function(t){u=t.DOCUMENT},function(t){g=t.of,f=t.throwError,m=t.forkJoin,d=t.Subscription},function(t){_=t.tap,p=t.map,v=t.catchError,I=t.finalize,S=t.share,C=t.take},function(t){E=t,F=t.HttpClient},function(t){w=t,R=t.DomSanitizer}],execute:function(){t({ICON_REGISTRY_PROVIDER_FACTORY:L,MAT_ICON_LOCATION_FACTORY:D,getMatIconFailedToSanitizeLiteralError:b,getMatIconFailedToSanitizeUrlError:x,getMatIconNameNotFoundError:y,getMatIconNoHttpProviderError:A});const N=["*"];function y(t){return Error(`Unable to find icon with the name "${t}"`)}function A(){return Error("Could not find HttpClient provider for use with Angular Material icons. Please include the HttpClientModule from @angular/common/http in your app imports.")}function x(t){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${t}".`)}function b(t){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${t}".`)}class T{constructor(t,e,n){this.url=t,this.svgText=e,this.options=n}}class M{constructor(t,e,n,o){this._httpClient=t,this._sanitizer=e,this._errorHandler=o,this._svgIconConfigs=new Map,this._iconSetConfigs=new Map,this._cachedIconsByUrl=new Map,this._inProgressUrlFetches=new Map,this._fontCssClassesByAlias=new Map,this._resolvers=[],this._defaultFontSetClass=["material-icons","mat-ligature-font"],this._document=n}addSvgIcon(t,e,n){return this.addSvgIconInNamespace("",t,e,n)}addSvgIconLiteral(t,e,n){return this.addSvgIconLiteralInNamespace("",t,e,n)}addSvgIconInNamespace(t,e,n,o){return this._addSvgIconConfig(t,e,new T(n,null,o))}addSvgIconResolver(t){return this._resolvers.push(t),this}addSvgIconLiteralInNamespace(t,n,o,i){const s=this._sanitizer.sanitize(e.HTML,o);if(!s)throw b(o);const r=s;return this._addSvgIconConfig(t,n,new T("",r,i))}addSvgIconSet(t,e){return this.addSvgIconSetInNamespace("",t,e)}addSvgIconSetLiteral(t,e){return this.addSvgIconSetLiteralInNamespace("",t,e)}addSvgIconSetInNamespace(t,e,n){return this._addSvgIconSetConfig(t,new T(e,null,n))}addSvgIconSetLiteralInNamespace(t,n,o){const i=this._sanitizer.sanitize(e.HTML,n);if(!i)throw b(n);const s=i;return this._addSvgIconSetConfig(t,new T("",s,o))}registerFontClassAlias(t,e=t){return this._fontCssClassesByAlias.set(t,e),this}classNameForFontAlias(t){return this._fontCssClassesByAlias.get(t)||t}setDefaultFontSetClass(...t){return this._defaultFontSetClass=t,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(t){const n=this._sanitizer.sanitize(e.RESOURCE_URL,t);if(!n)throw x(t);const o=this._cachedIconsByUrl.get(n);return o?g(O(o)):this._loadSvgIconFromConfig(new T(t,null)).pipe(_((t=>this._cachedIconsByUrl.set(n,t))),p((t=>O(t))))}getNamedSvgIcon(t,e=""){const n=U(e,t);let o=this._svgIconConfigs.get(n);if(o)return this._getSvgFromConfig(o);if(o=this._getIconConfigFromResolvers(e,t),o)return this._svgIconConfigs.set(n,o),this._getSvgFromConfig(o);const i=this._iconSetConfigs.get(e);return i?this._getSvgFromIconSetConfigs(t,i):f(y(n))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(t){return t.svgText?g(O(this._svgElementFromConfig(t))):this._loadSvgIconFromConfig(t).pipe(p((t=>O(t))))}_getSvgFromIconSetConfigs(t,n){const o=this._extractIconWithNameFromAnySet(t,n);if(o)return g(o);const i=n.filter((t=>!t.svgText)).map((t=>this._loadSvgIconSetFromConfig(t).pipe(v((n=>{const o=`Loading icon set URL: ${this._sanitizer.sanitize(e.RESOURCE_URL,t.url)} failed: ${n.message}`;return this._errorHandler.handleError(new Error(o)),g(null)})))));return m(i).pipe(p((()=>{const e=this._extractIconWithNameFromAnySet(t,n);if(!e)throw y(t);return e})))}_extractIconWithNameFromAnySet(t,e){for(let n=e.length-1;n>=0;n--){const o=e[n];if(o.svgText&&o.svgText.toString().indexOf(t)>-1){const e=this._svgElementFromConfig(o),n=this._extractSvgIconFromSet(e,t,o.options);if(n)return n}}return null}_loadSvgIconFromConfig(t){return this._fetchIcon(t).pipe(_((e=>t.svgText=e)),p((()=>this._svgElementFromConfig(t))))}_loadSvgIconSetFromConfig(t){return t.svgText?g(null):this._fetchIcon(t).pipe(_((e=>t.svgText=e)))}_extractSvgIconFromSet(t,e,n){const o=t.querySelector(`[id="${e}"]`);if(!o)return null;const i=o.cloneNode(!0);if(i.removeAttribute("id"),"svg"===i.nodeName.toLowerCase())return this._setSvgAttributes(i,n);if("symbol"===i.nodeName.toLowerCase())return this._setSvgAttributes(this._toSvgElement(i),n);const s=this._svgElementFromString("");return s.appendChild(i),this._setSvgAttributes(s,n)}_svgElementFromString(t){const e=this._document.createElement("DIV");e.innerHTML=t;const n=e.querySelector("svg");if(!n)throw Error(" tag not found");return n}_toSvgElement(t){const e=this._svgElementFromString(""),n=t.attributes;for(let t=0;tt)),I((()=>this._inProgressUrlFetches.delete(s))),S());return this._inProgressUrlFetches.set(s,a),a}_addSvgIconConfig(t,e,n){return this._svgIconConfigs.set(U(t,e),n),this}_addSvgIconSetConfig(t,e){const n=this._iconSetConfigs.get(t);return n?n.push(e):this._iconSetConfigs.set(t,[e]),this}_svgElementFromConfig(t){if(!t.svgElement){const e=this._svgElementFromString(t.svgText);this._setSvgAttributes(e,t.options),t.svgElement=e}return t.svgElement}_getIconConfigFromResolvers(t,e){for(let o=0;oe?e.pathname+e.search:""}}const k=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],H=k.map((t=>`[${t}]`)).join(", "),$=/^url\(['"]?#(.*?)['"]?\)$/;class W extends j{get inline(){return this._inline}set inline(t){this._inline=h(t)}get svgIcon(){return this._svgIcon}set svgIcon(t){t!==this._svgIcon&&(t?this._updateSvgIcon(t):this._svgIcon&&this._clearSvgElement(),this._svgIcon=t)}get fontSet(){return this._fontSet}set fontSet(t){const e=this._cleanupFontValue(t);e!==this._fontSet&&(this._fontSet=e,this._updateFontIconClasses())}get fontIcon(){return this._fontIcon}set fontIcon(t){const e=this._cleanupFontValue(t);e!==this._fontIcon&&(this._fontIcon=e,this._updateFontIconClasses())}constructor(t,e,n,o,i,s){super(t),this._iconRegistry=e,this._location=o,this._errorHandler=i,this._inline=!1,this._previousFontSetClass=[],this._currentIconFetch=d.EMPTY,s&&(s.color&&(this.color=this.defaultColor=s.color),s.fontSet&&(this.fontSet=s.fontSet)),n||t.nativeElement.setAttribute("aria-hidden","true")}_splitIconName(t){if(!t)return["",""];const e=t.split(":");switch(e.length){case 1:return["",e[0]];case 2:return e;default:throw Error(`Invalid icon name: "${t}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){const t=this._elementsWithExternalReferences;if(t&&t.size){const t=this._location.getPathname();t!==this._previousPath&&(this._previousPath=t,this._prependPathToReferences(t))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(t){this._clearSvgElement();const e=this._location.getPathname();this._previousPath=e,this._cacheChildrenWithExternalReferences(t),this._prependPathToReferences(e),this._elementRef.nativeElement.appendChild(t)}_clearSvgElement(){const t=this._elementRef.nativeElement;let e=t.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();e--;){const n=t.childNodes[e];1===n.nodeType&&"svg"!==n.nodeName.toLowerCase()||n.remove()}}_updateFontIconClasses(){if(!this._usingFontIcon())return;const t=this._elementRef.nativeElement,e=(this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet).split(/ +/):this._iconRegistry.getDefaultFontSetClass()).filter((t=>t.length>0));this._previousFontSetClass.forEach((e=>t.classList.remove(e))),e.forEach((e=>t.classList.add(e))),this._previousFontSetClass=e,this.fontIcon===this._previousFontIconClass||e.includes("mat-ligature-font")||(this._previousFontIconClass&&t.classList.remove(this._previousFontIconClass),this.fontIcon&&t.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(t){return"string"==typeof t?t.trim().split(" ")[0]:t}_prependPathToReferences(t){const e=this._elementsWithExternalReferences;e&&e.forEach(((e,n)=>{e.forEach((e=>{n.setAttribute(e.name,`url('${t}#${e.value}')`)}))}))}_cacheChildrenWithExternalReferences(t){const e=t.querySelectorAll(H),n=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let t=0;t{const i=e[t],s=i.getAttribute(o),r=s?s.match($):null;if(r){let t=n.get(i);t||(t=[],n.set(i,t)),t.push({name:o,value:r[1]})}}))}_updateSvgIcon(t){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),t){const[e,n]=this._splitIconName(t);e&&(this._svgNamespace=e),n&&(this._svgName=n),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(n,e).pipe(C(1)).subscribe((t=>this._setSvgElement(t)),(t=>{const o=`Error retrieving icon ${e}:${n}! ${t.message}`;this._errorHandler.handleError(new Error(o))}))}}static{this.\u0275fac=function(t){return new(t||W)(n.\u0275\u0275directiveInject(n.ElementRef),n.\u0275\u0275directiveInject(M),n.\u0275\u0275injectAttribute("aria-hidden"),n.\u0275\u0275directiveInject(z),n.\u0275\u0275directiveInject(n.ErrorHandler),n.\u0275\u0275directiveInject(P,8))}}static{this.\u0275cmp=n.\u0275\u0275defineComponent({type:W,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:8,hostBindings:function(t,e){2&t&&(n.\u0275\u0275attribute("data-mat-icon-type",e._usingFontIcon()?"font":"svg")("data-mat-icon-name",e._svgName||e.fontIcon)("data-mat-icon-namespace",e._svgNamespace||e.fontSet)("fontIcon",e._usingFontIcon()?e.fontIcon:null),n.\u0275\u0275classProp("mat-icon-inline",e.inline)("mat-icon-no-color","primary"!==e.color&&"accent"!==e.color&&"warn"!==e.color))},inputs:{color:"color",inline:"inline",svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],features:[n.\u0275\u0275InheritDefinitionFeature],ngContentSelectors:N,decls:1,vars:0,template:function(t,e){1&t&&(n.\u0275\u0275projectionDef(),n.\u0275\u0275projection(0))},styles:["mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color)}.mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}"],encapsulation:2,changeDetection:0})}}t("MatIcon",W);class B{static{this.\u0275fac=function(t){return new(t||B)}}static{this.\u0275mod=n.\u0275\u0275defineNgModule({type:B})}static{this.\u0275inj=n.\u0275\u0275defineInjector({imports:[l,l]})}}t("MatIconModule",B)}}})); Verovapaat netticasinot tarua vai totta – Gavin Mostert Attorneys

Verovapaat netticasinot tarua vai totta

Miten rahapelivoittojen verovapaus määritellään Suomen lainsäädännössä?

Suomessa rahapelivoittojen verovapaus perustuu tuloverolain 85 pykälään sekä Euroopan talousalueen sisäiseen vapaan liikkuvuuden periaatteeseen. EU-tuomioistuin vahvisti tämän periaatteen vuonna 2003, mikä kumosi Suomen aiemman järjestelmän kaksinkertaisesta verotuksesta. Pelaajat, jotka valitsevat verovapaat netticasinot, eivät joudu maksamaan voitoistaan erillistä tuloveroa. Peliyritykset maksavat veronsa suoraan lisenssimaahansa. verovapaat netticasinot

Tuloverolain mukaan voitot, jotka saadaan ETA-alueella toimivan pelilisenssin nojalla, ovat verovapaita. Tämä suojaa pelaajia tilanteissa, joissa voitot ylittävät tavanomaiset summat. Kansallinen lainsäädäntö noudattaa tiukasti EU-oikeuden säännöksiä vapaasta kilpailusta ja palveluiden tarjoamisesta jäsenvaltioiden välillä.

Mita sinun tulee tietaa kun valitset verovapaat netticasinot

Mitkä lisenssit takaavat verovapaat voitot suomalaisille pelaajille?

Verovapauden säilyminen edellyttää, että kasinolla on voimassa oleva ETA-alueen viranomaisen myöntämä lupa. Käytännössä kyseeseen tulevat Malta Gaming Authorityn eli MGA:n sekä Viron maksut ja tullihallinnon eli EMTA:n myöntämät lisenssit. Nämä viranomaiset valvovat pelien reiluustestausta, rahansiirtojen läpinäkyvyyttä ja vastuullisen pelaamisen toteuttamista. Suomessa pelivalvonnasta vastaa Poliisihallitus, ja uusi kansallinen pelivalvonta siirtyy uuden viranomaisen alaisuuteen vuoden 2027 alussa.

Sivustot, jotka toimivat Curacaon tai muiden ETA-alueen ulkopuolisten maiden lisensseillä, eivät tarjoa verovapaita voittoja. Näistä voitoista on ilmoitettava OmaVerossa, ja niistä peritään 30 tai 34 prosentin pääomatuloveroa. Siksi pelaajien on aina tarkistettava kasinon lisenssitiedot ennen pelitilin avaamista ja talletusten tekemistä.

Miten verovapaat netticasinot valitaan suomalaisille pelaajille

Miten maksutavat ja rahansiirrot vaikuttavat verotukseen?

Suomessa sallittuja maksutapoja ovat pikapankkimaksut kuten Trustly, Zimpler ja Siirto, sekä korttimaksut, verkkolompakot ja mobiilimaksut. Trustly-Pay-N-Play-kasinoissa talletus luo automaattisesti pelitilin ilman erillistä rekisteröintiä. Tämä prosessi vähentää henkilötietojen keruuta ja nopeuttaa kotiutuksia merkittävästi. Nämä pikakasinot toimivat tyypillisesti ETA-lisenssillä, jolloin niiden kautta saadut voitot ovat verovapaita.

Kryptovaluuttojen käyttö on teknisesti mahdollista tietyillä alustoilla, mutta ne eivät kuulu ETA-lisensoituihin maksutapoihin. Kryptovaluuttojen kautta saavutettuja voittoja ei pidetä verovapaina Suomessa. Rahansiirtojen läpinäkyvyys on keskeinen vaatimus ETA-alueen lisensoiduille toimijoille, mikä varmistaa rahapelien turvallisen luonteen.

Millaisia kuluttajansuojan vaatimuksia lisensoiduilla kasinoilla on?

ETA-lisensoidut kasinot ovat velvollisia noudattamaan tiukkoja kuluttajansuojan vaatimuksia. Vaatimuksiin kuuluvat ikävarmistus, pelirajoitukset, itseestämistyökalut, pelihistorian seuranta ja rahankäytön rajoittaminen. Pelivalvonta tarkastaa säännöllisesti, että kasino tarjoaa riittävät vastuullisen pelaamisen palvelut. Näitä ovat muun muassa talletus- ja tappiorajoitukset sekä mahdollisuus sulkea oma tili tilapäisesti tai pysyvästi.

Uusi suomalainen pelilainsäädäntö, jonka myötä Veikkauksen monopoli lakkautetaan vuoden 2026 lopussa, korostaa näiden suojatoimien sisällyttämistä kaikille lisensoiduille toimijoille. Pelaajien turvallisuus paranee, kun kansallinen valvonta laajennetaan koskemaan myös ulkomailta käsin toimivia, mutta Suomeen kohdennettuja sivustoja. Lisensointi pakottaa kasinot investomaan vastuullisen pelaamisen työkaluihin.

Ketkä pelaavat ulkomaisilla ja verovapailla nettikasinoilla Suomessa?

THL:n tutkimuksen mukaan 70 prosenttia suomalaisista eli noin 2,5 miljoonaa ihmistä on pelannut rahapelejä verkossa. Heistä noin 7 prosenttia eli noin 251 000 pelaajaa on käyttänyt ulkomaisia, ei-ETA-lisensoituja nettikasinoita. Ikäjakauma näiden pelaajien keskuudessa on laaja. 15–24-vuotiaat muodostavat noin 30 prosenttia pelaajista, 25–44-vuotiaat noin 40 prosenttia ja 45–74-vuotiaat loput 30 prosenttia.

Sukupuolijakauma rahapelaajien keskuudessa on melko tasainen: miehiä on 52 prosenttia ja naisia 48 prosenttia. Pelityypeistä nettisinopöytäpelit keräävät 22 prosentin suosion, kun taas kolikkopelit hallitsevat markkinaa 65 prosentin osuudella. Ulkomaiset verovapaat sivustot houkaisevat pelaajia laajemmalla pelivalikoimalla ja korkeammilla palautusprosenteilla verrattuna kotimaisiin monopolipeleihin.

Miten tunnistaa ETA-lisensoitu kasino luotettavasti?

Luotettavan kasinon tunnistaminen alkaa sivuston alareunasta löytyvien lisenssitietojen tarkistuksella. ETA-lisensoidulla kasinolla on oltava näkyvissä joko Malta Gaming Authorityn tai Viron vero- ja tullihallinnon logo sekä suora linkki viranomaisen rekisteriin. Tarkastaminen on välttämätöntä, koska osa sivustoista saattaa käyttää harhaanjohtavia merkintöjä lisensseistään. Virallinen rekisterimerkintä varmistaa, että voitot pysyvät verovapaina.

Pelaajien kannattaa vertailla eri kasinoiden ehtoja, sillä verovapaus ei yksinään takaa hyvää pelikokemusta. Asiantuntijat suorzittavat usein taustaselvityksiä kasinoiden taustayhtiöistä ja maksuliikenteen nopeudesta. Verovapauden lisäksi on tarkasteltava median kotiutusaikoja ja asiakaspalvelun tavoitettavuutta suomeksi.

Message Us on WhatsApp