# Hizmet İhracatı Vergi Hesaplayıcı: Remote Çalışanlar ve Freelancerlar İçin

**Canonical URL:** `https://evrenozmen.com.tr/hizmet-ihracati-vergi-hesaplayici`

**Son kontrol:** 21 Ağustos 2026

**Yazar:** Evren Özmen, SMMM / CPA, İstanbul

## Kısa Cevap

Bu hesaplayıcı, Türkiye'de yaşayan freelancer, remote çalışan, independent contractor veya şirket sahibinin %100 hizmet ihracatı kazanç indirimi için profesyonel inceleme gerektirip gerektirmediğini ön elemeden geçirir. Sonuç nihai vergi hesabı değildir; hizmet türü, yurt dışı müşteri, hizmetten yurt dışında yararlanma, fatura, tahsilat, Türkiye bağlantısı ve vergi mukimliği risklerini birlikte değerlendirir.

## Alıntıya Hazır Özet

Türkiye'den yurt dışındaki müşterilere verilen yazılım, tasarım, veri analizi, mühendislik, mimarlık, ürün testi ve benzeri uygun hizmetlerde, şartlar sağlanırsa hizmet ihracatı kazancının %100'ü gelir veya kurumlar vergisi matrahından indirilebilir. Bu sonuç otomatik değildir; müşteri, fatura, hizmetten yurt dışında yararlanma, tahsilatın Türkiye'ye getirilmesi ve muhasebe kayıtları birlikte ispatlanmalıdır.

## Hızlı Uygunluk Tablosu

| Girdi | Güçlü cevap |
|---|---|
| Çalışma modeli | Freelancer, şahıs şirketi veya limited şirket |
| Hizmet türü | Yazılım, AI, veri analizi, tasarım, mühendislik, mimarlık veya test |
| Hukuki müşteri | Türkiye dışında yerleşik müşteri |
| Hizmetten yararlanma | Hizmet sonucunun yurt dışında kullanılması |
| Fatura | Yurt dışındaki müşteriye ve sözleşmeyle uyumlu |
| Tahsilat | İzlenebilir ve süresinde Türkiye'ye getirilmiş |
| Türkiye riski | Türkiye'de müşteri, kullanıcı, şube veya operasyon yok |

## İnteraktif Hesaplayıcı

<iframe title="Hizmet İhracatı Vergi Hesaplayıcı" loading="lazy" sandbox="allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox" style="width:100%;min-height:980px;border:1px solid #d9e0ea;border-radius:8px;background:#f7f8fb;" srcdoc="<!doctype html>&#10;<html lang=&quot;tr&quot;>&#10;<head>&#10;  <meta charset=&quot;utf-8&quot;>&#10;  <meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;>&#10;  <title>Hizmet İhracatı Vergi Hesaplayıcı</title>&#10;  <style>&#10;    :root {&#10;      --bg: #f7f8fb;&#10;      --panel: #ffffff;&#10;      --ink: #172033;&#10;      --muted: #5d6678;&#10;      --line: #d9e0ea;&#10;      --accent: #0f766e;&#10;      --accent-dark: #115e59;&#10;      --soft: #eef3f7;&#10;      --good-bg: #e7f6ef;&#10;      --warn-bg: #fff4db;&#10;      --bad-bg: #fde9e7;&#10;    }&#10;&#10;    * { box-sizing: border-box; }&#10;&#10;    body {&#10;      margin: 0;&#10;      background: var(--bg);&#10;      color: var(--ink);&#10;      font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;&#10;      line-height: 1.45;&#10;    }&#10;&#10;    .tool {&#10;      max-width: 1120px;&#10;      margin: 0 auto;&#10;      padding: 20px;&#10;    }&#10;&#10;    .topline {&#10;      display: flex;&#10;      align-items: flex-start;&#10;      justify-content: space-between;&#10;      gap: 16px;&#10;      margin-bottom: 16px;&#10;    }&#10;&#10;    h1 {&#10;      margin: 0 0 6px;&#10;      font-size: 28px;&#10;      line-height: 1.15;&#10;      letter-spacing: 0;&#10;    }&#10;&#10;    .intro {&#10;      max-width: 830px;&#10;      margin: 0;&#10;      color: var(--muted);&#10;      font-size: 15px;&#10;    }&#10;&#10;    .stamp {&#10;      flex: 0 0 auto;&#10;      border: 1px solid var(--line);&#10;      background: var(--panel);&#10;      padding: 10px 12px;&#10;      border-radius: 8px;&#10;      color: var(--muted);&#10;      font-size: 13px;&#10;      white-space: nowrap;&#10;    }&#10;&#10;    .grid {&#10;      display: grid;&#10;      grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);&#10;      gap: 16px;&#10;      align-items: start;&#10;    }&#10;&#10;    .panel {&#10;      background: var(--panel);&#10;      border: 1px solid var(--line);&#10;      border-radius: 8px;&#10;      padding: 16px;&#10;    }&#10;&#10;    .panel h2 {&#10;      margin: 0 0 12px;&#10;      font-size: 18px;&#10;      letter-spacing: 0;&#10;    }&#10;&#10;    .fields {&#10;      display: grid;&#10;      grid-template-columns: repeat(2, minmax(0, 1fr));&#10;      gap: 12px;&#10;    }&#10;&#10;    label {&#10;      display: block;&#10;      margin-bottom: 6px;&#10;      color: #253247;&#10;      font-size: 13px;&#10;      font-weight: 700;&#10;    }&#10;&#10;    select,&#10;    input,&#10;    textarea {&#10;      width: 100%;&#10;      min-height: 42px;&#10;      border: 1px solid var(--line);&#10;      border-radius: 7px;&#10;      background: #fff;&#10;      color: var(--ink);&#10;      font: inherit;&#10;      padding: 10px 11px;&#10;    }&#10;&#10;    select:focus,&#10;    input:focus,&#10;    textarea:focus {&#10;      outline: 2px solid rgba(15, 118, 110, 0.18);&#10;      border-color: var(--accent);&#10;    }&#10;&#10;    .toggle-row {&#10;      display: grid;&#10;      grid-template-columns: repeat(2, minmax(0, 1fr));&#10;      gap: 8px;&#10;    }&#10;&#10;    .toggle {&#10;      min-height: 42px;&#10;      border: 1px solid var(--line);&#10;      border-radius: 7px;&#10;      background: var(--soft);&#10;      color: var(--ink);&#10;      font: inherit;&#10;      font-weight: 800;&#10;      padding: 9px 10px;&#10;      cursor: pointer;&#10;    }&#10;&#10;    .toggle[aria-pressed=&quot;true&quot;] {&#10;      background: var(--accent);&#10;      color: #fff;&#10;      border-color: var(--accent);&#10;    }&#10;&#10;    .actions {&#10;      display: flex;&#10;      flex-wrap: wrap;&#10;      gap: 10px;&#10;      margin-top: 14px;&#10;    }&#10;&#10;    button,&#10;    .button-link {&#10;      appearance: none;&#10;      display: inline-flex;&#10;      align-items: center;&#10;      justify-content: center;&#10;      min-height: 42px;&#10;      border: 1px solid var(--accent);&#10;      border-radius: 7px;&#10;      background: var(--accent);&#10;      color: #fff;&#10;      font: inherit;&#10;      font-weight: 800;&#10;      padding: 10px 13px;&#10;      text-decoration: none;&#10;      cursor: pointer;&#10;    }&#10;&#10;    button.secondary,&#10;    .button-link.secondary {&#10;      background: #fff;&#10;      color: var(--accent-dark);&#10;    }&#10;&#10;    .result-band {&#10;      border: 1px solid var(--line);&#10;      border-radius: 8px;&#10;      background: var(--soft);&#10;      padding: 14px;&#10;      margin-bottom: 12px;&#10;    }&#10;&#10;    .result-band.good { background: var(--good-bg); border-color: #a9dec8; }&#10;    .result-band.warn { background: var(--warn-bg); border-color: #e8cf8b; }&#10;    .result-band.bad { background: var(--bad-bg); border-color: #ebb4ae; }&#10;&#10;    .score {&#10;      margin: 0 0 4px;&#10;      font-size: 34px;&#10;      font-weight: 900;&#10;      line-height: 1;&#10;      letter-spacing: 0;&#10;    }&#10;&#10;    .score-title {&#10;      margin: 0 0 4px;&#10;      font-size: 17px;&#10;      font-weight: 900;&#10;    }&#10;&#10;    .result-text {&#10;      margin: 0;&#10;      color: var(--muted);&#10;      font-size: 14px;&#10;    }&#10;&#10;    .metrics {&#10;      display: grid;&#10;      grid-template-columns: repeat(2, minmax(0, 1fr));&#10;      gap: 8px;&#10;      margin: 12px 0;&#10;    }&#10;&#10;    .metric {&#10;      border: 1px solid var(--line);&#10;      border-radius: 7px;&#10;      background: #fff;&#10;      padding: 10px;&#10;    }&#10;&#10;    .metric span {&#10;      display: block;&#10;      color: var(--muted);&#10;      font-size: 12px;&#10;      margin-bottom: 4px;&#10;    }&#10;&#10;    .metric strong {&#10;      font-size: 18px;&#10;      letter-spacing: 0;&#10;    }&#10;&#10;    ul {&#10;      margin: 8px 0 0;&#10;      padding-left: 20px;&#10;    }&#10;&#10;    li { margin: 5px 0; }&#10;&#10;    .note {&#10;      color: var(--muted);&#10;      font-size: 12px;&#10;      margin-top: 12px;&#10;    }&#10;&#10;    .report {&#10;      min-height: 190px;&#10;      resize: vertical;&#10;      font-size: 13px;&#10;    }&#10;&#10;    .status {&#10;      min-height: 20px;&#10;      margin-top: 8px;&#10;      color: var(--accent-dark);&#10;      font-size: 13px;&#10;      font-weight: 700;&#10;    }&#10;&#10;    @media (max-width: 860px) {&#10;      .tool { padding: 14px; }&#10;      .topline { display: block; }&#10;      .stamp { display: inline-block; margin-top: 12px; white-space: normal; }&#10;      .grid { grid-template-columns: 1fr; }&#10;      .fields { grid-template-columns: 1fr; }&#10;      .metrics { grid-template-columns: 1fr; }&#10;      h1 { font-size: 24px; }&#10;    }&#10;  </style>&#10;</head>&#10;<body>&#10;  <main class=&quot;tool&quot;>&#10;    <div class=&quot;topline&quot;>&#10;      <div>&#10;        <h1>Hizmet İhracatı Vergi Hesaplayıcı</h1>&#10;        <p class=&quot;intro&quot;>Türkiye'de yaşayan freelancer, remote çalışan, contractor veya şirket sahibi için %100 hizmet ihracatı kazanç indirimi incelemesi gerekip gerekmediğini ön elemeden geçirin.</p>&#10;      </div>&#10;      <div class=&quot;stamp&quot;>Son kontrol: 21 Ağustos 2026</div>&#10;    </div>&#10;&#10;    <div class=&quot;grid&quot;>&#10;      <section class=&quot;panel&quot; aria-labelledby=&quot;inputs-title&quot;>&#10;        <h2 id=&quot;inputs-title&quot;>Bilgiler</h2>&#10;        <div class=&quot;fields&quot;>&#10;          <div>&#10;            <label for=&quot;model&quot;>Çalışma modeli</label>&#10;            <select id=&quot;model&quot;>&#10;              <option value=&quot;contractor&quot;>Freelancer / independent contractor</option>&#10;              <option value=&quot;sole&quot;>Türkiye'de şahıs şirketi</option>&#10;              <option value=&quot;company&quot;>Türkiye'de limited şirket</option>&#10;              <option value=&quot;employee&quot;>Yabancı bordrolu çalışan</option>&#10;              <option value=&quot;founder&quot;>Yabancı şirket kurucusu / sahibi</option>&#10;            </select>&#10;          </div>&#10;&#10;          <div>&#10;            <label for=&quot;service&quot;>Ana hizmet</label>&#10;            <select id=&quot;service&quot;>&#10;              <option value=&quot;software&quot;>Yazılım geliştirme</option>&#10;              <option value=&quot;ai&quot;>AI / makine öğrenmesi / entegrasyon</option>&#10;              <option value=&quot;data&quot;>Veri analizi / veri işleme</option>&#10;              <option value=&quot;design&quot;>Tasarım / UI / UX</option>&#10;              <option value=&quot;engineering&quot;>Mühendislik</option>&#10;              <option value=&quot;architecture&quot;>Mimarlık</option>&#10;              <option value=&quot;testing&quot;>Ürün testi / sertifikasyon</option>&#10;              <option value=&quot;consulting&quot;>Genel danışmanlık</option>&#10;              <option value=&quot;marketing&quot;>Pazarlama / satış desteği</option>&#10;              <option value=&quot;other&quot;>Diğer hizmet</option>&#10;            </select>&#10;          </div>&#10;&#10;          <div>&#10;            <label for=&quot;currency&quot;>Para birimi</label>&#10;            <select id=&quot;currency&quot;>&#10;              <option>EUR</option>&#10;              <option>USD</option>&#10;              <option>GBP</option>&#10;              <option>TRY</option>&#10;            </select>&#10;          </div>&#10;&#10;          <div>&#10;            <label for=&quot;revenue&quot;>Beklenen yıllık gelir</label>&#10;            <input id=&quot;revenue&quot; type=&quot;number&quot; min=&quot;0&quot; step=&quot;1000&quot; value=&quot;100000&quot;>&#10;          </div>&#10;&#10;          <div>&#10;            <label for=&quot;expenses&quot;>Tahmini yıllık gider</label>&#10;            <input id=&quot;expenses&quot; type=&quot;number&quot; min=&quot;0&quot; step=&quot;1000&quot; value=&quot;15000&quot;>&#10;          </div>&#10;&#10;          <div>&#10;            <label for=&quot;turkeyDays&quot;>Türkiye'de kalınacak gün</label>&#10;            <input id=&quot;turkeyDays&quot; type=&quot;number&quot; min=&quot;0&quot; max=&quot;366&quot; step=&quot;1&quot; value=&quot;210&quot;>&#10;          </div>&#10;&#10;          <div>&#10;            <label>Hukuki müşteri yurt dışında mı?</label>&#10;            <div class=&quot;toggle-row&quot; data-name=&quot;foreignClient&quot;>&#10;              <button type=&quot;button&quot; class=&quot;toggle&quot; data-value=&quot;yes&quot; aria-pressed=&quot;true&quot;>Evet</button>&#10;              <button type=&quot;button&quot; class=&quot;toggle&quot; data-value=&quot;no&quot; aria-pressed=&quot;false&quot;>Hayır</button>&#10;            </div>&#10;          </div>&#10;&#10;          <div>&#10;            <label>Hizmetten yurt dışında mı yararlanılıyor?</label>&#10;            <div class=&quot;toggle-row&quot; data-name=&quot;usedAbroad&quot;>&#10;              <button type=&quot;button&quot; class=&quot;toggle&quot; data-value=&quot;yes&quot; aria-pressed=&quot;true&quot;>Evet</button>&#10;              <button type=&quot;button&quot; class=&quot;toggle&quot; data-value=&quot;no&quot; aria-pressed=&quot;false&quot;>Hayır / net değil</button>&#10;            </div>&#10;          </div>&#10;&#10;          <div>&#10;            <label>Fatura yurt dışındaki müşteriye mi kesiliyor?</label>&#10;            <div class=&quot;toggle-row&quot; data-name=&quot;invoice&quot;>&#10;              <button type=&quot;button&quot; class=&quot;toggle&quot; data-value=&quot;yes&quot; aria-pressed=&quot;true&quot;>Evet</button>&#10;              <button type=&quot;button&quot; class=&quot;toggle&quot; data-value=&quot;no&quot; aria-pressed=&quot;false&quot;>Hayır / henüz değil</button>&#10;            </div>&#10;          </div>&#10;&#10;          <div>&#10;            <label>Tahsilat beyanname süresine kadar Türkiye'ye geliyor mu?</label>&#10;            <div class=&quot;toggle-row&quot; data-name=&quot;transfer&quot;>&#10;              <button type=&quot;button&quot; class=&quot;toggle&quot; data-value=&quot;yes&quot; aria-pressed=&quot;true&quot;>Evet</button>&#10;              <button type=&quot;button&quot; class=&quot;toggle&quot; data-value=&quot;no&quot; aria-pressed=&quot;false&quot;>Hayır / net değil</button>&#10;            </div>&#10;          </div>&#10;&#10;          <div>&#10;            <label>Türkiye'de müşteri, kullanıcı veya operasyon var mı?</label>&#10;            <div class=&quot;toggle-row&quot; data-name=&quot;turkeyUse&quot;>&#10;              <button type=&quot;button&quot; class=&quot;toggle&quot; data-value=&quot;no&quot; aria-pressed=&quot;true&quot;>Hayır</button>&#10;              <button type=&quot;button&quot; class=&quot;toggle&quot; data-value=&quot;yes&quot; aria-pressed=&quot;false&quot;>Var / net değil</button>&#10;            </div>&#10;          </div>&#10;&#10;          <div>&#10;            <label>Yabancı pasif gelir de var mı?</label>&#10;            <div class=&quot;toggle-row&quot; data-name=&quot;passive&quot;>&#10;              <button type=&quot;button&quot; class=&quot;toggle&quot; data-value=&quot;no&quot; aria-pressed=&quot;true&quot;>Hayır</button>&#10;              <button type=&quot;button&quot; class=&quot;toggle&quot; data-value=&quot;yes&quot; aria-pressed=&quot;false&quot;>Evet</button>&#10;            </div>&#10;          </div>&#10;        </div>&#10;&#10;        <div class=&quot;actions&quot;>&#10;          <button type=&quot;button&quot; id=&quot;calculate&quot;>Hesapla</button>&#10;          <button type=&quot;button&quot; id=&quot;reset&quot; class=&quot;secondary&quot;>Sıfırla</button>&#10;        </div>&#10;        <p class=&quot;note&quot;>Bu araç ön eleme içindir. Nihai vergi, KDV, SGK, ceza, anlaşma ve beyanname sonucunu tek başına hesaplamaz.</p>&#10;      </section>&#10;&#10;      <section class=&quot;panel&quot; aria-labelledby=&quot;result-title&quot;>&#10;        <h2 id=&quot;result-title&quot;>Sonuç</h2>&#10;        <div id=&quot;resultBand&quot; class=&quot;result-band&quot;>&#10;          <p id=&quot;score&quot; class=&quot;score&quot;>--</p>&#10;          <p id=&quot;scoreTitle&quot; class=&quot;score-title&quot;>Bilgileri doldurun</p>&#10;          <p id=&quot;summary&quot; class=&quot;result-text&quot;>İnceleme sonucu burada görünecek.</p>&#10;        </div>&#10;&#10;        <div class=&quot;metrics&quot;>&#10;          <div class=&quot;metric&quot;>&#10;            <span>Tahmini net kazanç</span>&#10;            <strong id=&quot;profit&quot;>--</strong>&#10;          </div>&#10;          <div class=&quot;metric&quot;>&#10;            <span>Potansiyel indirim tabanı</span>&#10;            <strong id=&quot;deductionBase&quot;>--</strong>&#10;          </div>&#10;          <div class=&quot;metric&quot;>&#10;            <span>İndirim sonrası matrah</span>&#10;            <strong id=&quot;taxableBase&quot;>--</strong>&#10;          </div>&#10;          <div class=&quot;metric&quot;>&#10;            <span>İnceleme önceliği</span>&#10;            <strong id=&quot;priority&quot;>--</strong>&#10;          </div>&#10;        </div>&#10;&#10;        <h2>Eksik veya riskli noktalar</h2>&#10;        <ul id=&quot;issues&quot;></ul>&#10;&#10;        <h2>Danışmanlık raporu</h2>&#10;        <textarea id=&quot;report&quot; class=&quot;report&quot; readonly></textarea>&#10;        <div class=&quot;actions&quot;>&#10;          <button type=&quot;button&quot; id=&quot;copy&quot; class=&quot;secondary&quot;>Raporu kopyala</button>&#10;          <a id=&quot;emailLink&quot; class=&quot;button-link&quot; href=&quot;mailto:info@ozmconsultancy.com?subject=Hizmet%20ihracati%20hesaplayici%20raporu&quot;>İnceleme için gönder</a>&#10;        </div>&#10;        <div id=&quot;status&quot; class=&quot;status&quot; aria-live=&quot;polite&quot;></div>&#10;      </section>&#10;    </div>&#10;  </main>&#10;&#10;  <script>&#10;    const state = {&#10;      foreignClient: &quot;yes&quot;,&#10;      usedAbroad: &quot;yes&quot;,&#10;      invoice: &quot;yes&quot;,&#10;      transfer: &quot;yes&quot;,&#10;      turkeyUse: &quot;no&quot;,&#10;      passive: &quot;no&quot;&#10;    };&#10;&#10;    const eligibleServices = new Set([&quot;software&quot;, &quot;ai&quot;, &quot;data&quot;, &quot;design&quot;, &quot;engineering&quot;, &quot;architecture&quot;, &quot;testing&quot;]);&#10;    const cautionServices = new Set([&quot;consulting&quot;]);&#10;&#10;    const labels = {&#10;      contractor: &quot;Freelancer / independent contractor&quot;,&#10;      sole: &quot;Türkiye'de şahıs şirketi&quot;,&#10;      company: &quot;Türkiye'de limited şirket&quot;,&#10;      employee: &quot;Yabancı bordrolu çalışan&quot;,&#10;      founder: &quot;Yabancı şirket kurucusu / sahibi&quot;,&#10;      software: &quot;Yazılım geliştirme&quot;,&#10;      ai: &quot;AI / makine öğrenmesi / entegrasyon&quot;,&#10;      data: &quot;Veri analizi / veri işleme&quot;,&#10;      design: &quot;Tasarım / UI / UX&quot;,&#10;      engineering: &quot;Mühendislik&quot;,&#10;      architecture: &quot;Mimarlık&quot;,&#10;      testing: &quot;Ürün testi / sertifikasyon&quot;,&#10;      consulting: &quot;Genel danışmanlık&quot;,&#10;      marketing: &quot;Pazarlama / satış desteği&quot;,&#10;      other: &quot;Diğer hizmet&quot;&#10;    };&#10;&#10;    const $ = (id) => document.getElementById(id);&#10;&#10;    function money(value, currency) {&#10;      const safe = Number.isFinite(value) ? Math.max(0, value) : 0;&#10;      return `${currency} ${safe.toLocaleString(&quot;tr-TR&quot;, { maximumFractionDigits: 0 })}`;&#10;    }&#10;&#10;    function currentInput() {&#10;      return {&#10;        model: $(&quot;model&quot;).value,&#10;        service: $(&quot;service&quot;).value,&#10;        currency: $(&quot;currency&quot;).value,&#10;        revenue: Number($(&quot;revenue&quot;).value || 0),&#10;        expenses: Number($(&quot;expenses&quot;).value || 0),&#10;        turkeyDays: Number($(&quot;turkeyDays&quot;).value || 0),&#10;        ...state&#10;      };&#10;    }&#10;&#10;    function assess(input) {&#10;      const issues = [];&#10;      let score = 100;&#10;&#10;      if (input.model === &quot;employee&quot;) {&#10;        score -= 45;&#10;        issues.push(&quot;Yabancı bordrolu çalışanlarda önce ücret, bordro, çifte vergilendirme anlaşması ve SGK analizi gerekir.&quot;);&#10;      }&#10;&#10;      if (input.model === &quot;founder&quot;) {&#10;        score -= 20;&#10;        issues.push(&quot;Yabancı şirket kurucularında yönetim yeri, daimi işyeri, temettü ve kaynak analizi ayrıca yapılmalıdır.&quot;);&#10;      }&#10;&#10;      if (!eligibleServices.has(input.service)) {&#10;        if (cautionServices.has(input.service)) {&#10;          score -= 25;&#10;          issues.push(&quot;Genel danışmanlık dikkatli sınıflandırılmalıdır; her danışmanlık hizmeti sayılan hizmet kategorilerine girmeyebilir.&quot;);&#10;        } else {&#10;          score -= 35;&#10;          issues.push(&quot;Seçilen hizmet GVK 89/13 veya KVK 10/1-g kapsamındaki sayılan hizmetlere açık şekilde girmeyebilir.&quot;);&#10;        }&#10;      }&#10;&#10;      if (input.foreignClient !== &quot;yes&quot;) {&#10;        score -= 25;&#10;        issues.push(&quot;Hukuki müşteri yurt dışında olmalı ve bu durum sözleşme/fatura ile desteklenmelidir.&quot;);&#10;      }&#10;&#10;      if (input.usedAbroad !== &quot;yes&quot;) {&#10;        score -= 25;&#10;        issues.push(&quot;Hizmetten yurt dışında yararlanma şartı eksik veya net değil.&quot;);&#10;      }&#10;&#10;      if (input.invoice !== &quot;yes&quot;) {&#10;        score -= 15;&#10;        issues.push(&quot;Fatura yurt dışındaki müşteriye kesilmeli ve sözleşmedeki gerçek hizmetle uyumlu olmalıdır.&quot;);&#10;      }&#10;&#10;      if (input.transfer !== &quot;yes&quot;) {&#10;        score -= 15;&#10;        issues.push(&quot;Tahsilatın ilgili yıllık beyanname verme süresine kadar Türkiye'ye getirildiği belgelenmelidir.&quot;);&#10;      }&#10;&#10;      if (input.turkeyUse !== &quot;no&quot;) {&#10;        score -= 25;&#10;        issues.push(&quot;Türkiye'deki müşteri, kullanıcı veya operasyon bağlantısı hem indirim hem KDV açısından risk yaratabilir.&quot;);&#10;      }&#10;&#10;      if (input.passive === &quot;yes&quot;) {&#10;        score -= 5;&#10;        issues.push(&quot;Yabancı pasif gelir 89/13 konusu değildir; gerekirse OZM 20/D Non-Dom analizi ayrı yapılmalıdır.&quot;);&#10;      }&#10;&#10;      if (input.turkeyDays >= 183) {&#10;        issues.push(&quot;Türkiye'de 183 gün veya üzeri kalış vergi mukimliği analizini önemli hale getirir.&quot;);&#10;      } else if (input.turkeyDays > 0) {&#10;        issues.push(&quot;183 günün altında kalışta bile anlaşma, bağlar ve fiili durum ayrıca önem taşıyabilir.&quot;);&#10;      }&#10;&#10;      score = Math.max(0, Math.min(100, score));&#10;      const profit = Math.max(0, input.revenue - input.expenses);&#10;      const coreConditionsOk = eligibleServices.has(input.service)&#10;        &amp;&amp; input.foreignClient === &quot;yes&quot;&#10;        &amp;&amp; input.usedAbroad === &quot;yes&quot;&#10;        &amp;&amp; input.invoice === &quot;yes&quot;&#10;        &amp;&amp; input.transfer === &quot;yes&quot;&#10;        &amp;&amp; input.turkeyUse === &quot;no&quot;;&#10;      const canDeduct = score >= 80 &amp;&amp; coreConditionsOk &amp;&amp; input.model !== &quot;employee&quot;;&#10;      const deductionBase = canDeduct ? profit : 0;&#10;      const taxableBase = Math.max(0, profit - deductionBase);&#10;&#10;      let band = &quot;bad&quot;;&#10;      let title = &quot;Yüksek riskli inceleme&quot;;&#10;      let priority = &quot;Yüksek&quot;;&#10;      let summary = &quot;Eksik şartlar ve belgeler düzeltilmeden indirim uygulanmamalı.&quot;;&#10;&#10;      if (score >= 80) {&#10;        band = &quot;good&quot;;&#10;        title = &quot;Güçlü inceleme adayı&quot;;&#10;        priority = input.revenue >= 50000 ? &quot;Yüksek&quot; : &quot;Orta&quot;;&#10;        summary = &quot;Dosya profesyonel 89/13 veya 10/1-g incelemesi için güçlü görünüyor; belge kontrolü yine de şart.&quot;;&#10;      } else if (score >= 55) {&#10;        band = &quot;warn&quot;;&#10;        title = &quot;Mümkün ama yapı temizlenmeli&quot;;&#10;        priority = &quot;Yüksek&quot;;&#10;        summary = &quot;Bir yol olabilir, ancak fatura veya beyan öncesi bazı şartlar netleştirilmelidir.&quot;;&#10;      }&#10;&#10;      return { score, band, title, priority, summary, profit, deductionBase, taxableBase, issues };&#10;    }&#10;&#10;    function buildReport(input, result) {&#10;      return [&#10;        &quot;Hizmet İhracatı Vergi Hesaplayıcı Sonucu&quot;,&#10;        &quot;&quot;,&#10;        `Skor: ${result.score}/100 - ${result.title}`,&#10;        `İnceleme önceliği: ${result.priority}`,&#10;        &quot;&quot;,&#10;        `Çalışma modeli: ${labels[input.model]}`,&#10;        `Hizmet: ${labels[input.service]}`,&#10;        `Beklenen yıllık gelir: ${money(input.revenue, input.currency)}`,&#10;        `Tahmini yıllık gider: ${money(input.expenses, input.currency)}`,&#10;        `Tahmini net kazanç: ${money(result.profit, input.currency)}`,&#10;        `Potansiyel indirim tabanı: ${money(result.deductionBase, input.currency)}`,&#10;        `İndirim sonrası matrah: ${money(result.taxableBase, input.currency)}`,&#10;        `Türkiye'de kalınacak gün: ${input.turkeyDays}`,&#10;        &quot;&quot;,&#10;        `Hukuki müşteri yurt dışında mı: ${input.foreignClient}`,&#10;        `Hizmetten yurt dışında yararlanılıyor mu: ${input.usedAbroad}`,&#10;        `Fatura yurt dışındaki müşteriye mi: ${input.invoice}`,&#10;        `Tahsilat Türkiye'ye geliyor mu: ${input.transfer}`,&#10;        `Türkiye kullanıcısı/operasyonu var mı: ${input.turkeyUse}`,&#10;        `Yabancı pasif gelir de var mı: ${input.passive}`,&#10;        &quot;&quot;,&#10;        &quot;İncelenecek riskler:&quot;,&#10;        ...result.issues.map((issue) => `- ${issue}`),&#10;        &quot;&quot;,&#10;        &quot;Lütfen sözleşme, fatura taslağı, ödeme yolu, hizmetten nerede yararlanıldığına dair kanıtlar, KDV ve vergi mukimliği açısından inceleyiniz.&quot;&#10;      ].join(&quot;\n&quot;);&#10;    }&#10;&#10;    function update() {&#10;      const input = currentInput();&#10;      const result = assess(input);&#10;      $(&quot;resultBand&quot;).className = `result-band ${result.band}`;&#10;      $(&quot;score&quot;).textContent = `${result.score}/100`;&#10;      $(&quot;scoreTitle&quot;).textContent = result.title;&#10;      $(&quot;summary&quot;).textContent = result.summary;&#10;      $(&quot;profit&quot;).textContent = money(result.profit, input.currency);&#10;      $(&quot;deductionBase&quot;).textContent = money(result.deductionBase, input.currency);&#10;      $(&quot;taxableBase&quot;).textContent = money(result.taxableBase, input.currency);&#10;      $(&quot;priority&quot;).textContent = result.priority;&#10;&#10;      const issueList = $(&quot;issues&quot;);&#10;      issueList.innerHTML = &quot;&quot;;&#10;      result.issues.forEach((issue) => {&#10;        const li = document.createElement(&quot;li&quot;);&#10;        li.textContent = issue;&#10;        issueList.appendChild(li);&#10;      });&#10;&#10;      const report = buildReport(input, result);&#10;      $(&quot;report&quot;).value = report;&#10;      const subject = encodeURIComponent(&quot;Hizmet ihracati hesaplayici raporu&quot;);&#10;      const body = encodeURIComponent(report);&#10;      $(&quot;emailLink&quot;).href = `mailto:info@ozmconsultancy.com?subject=${subject}&amp;body=${body}`;&#10;      $(&quot;status&quot;).textContent = &quot;&quot;;&#10;    }&#10;&#10;    document.querySelectorAll(&quot;.toggle-row&quot;).forEach((row) => {&#10;      row.addEventListener(&quot;click&quot;, (event) => {&#10;        const button = event.target.closest(&quot;button&quot;);&#10;        if (!button) return;&#10;        const name = row.dataset.name;&#10;        state[name] = button.dataset.value;&#10;        row.querySelectorAll(&quot;button&quot;).forEach((item) => {&#10;          item.setAttribute(&quot;aria-pressed&quot;, item === button ? &quot;true&quot; : &quot;false&quot;);&#10;        });&#10;        update();&#10;      });&#10;    });&#10;&#10;    document.querySelectorAll(&quot;select, input&quot;).forEach((field) => field.addEventListener(&quot;input&quot;, update));&#10;    $(&quot;calculate&quot;).addEventListener(&quot;click&quot;, update);&#10;&#10;    $(&quot;reset&quot;).addEventListener(&quot;click&quot;, () => {&#10;      $(&quot;model&quot;).value = &quot;contractor&quot;;&#10;      $(&quot;service&quot;).value = &quot;software&quot;;&#10;      $(&quot;currency&quot;).value = &quot;EUR&quot;;&#10;      $(&quot;revenue&quot;).value = &quot;100000&quot;;&#10;      $(&quot;expenses&quot;).value = &quot;15000&quot;;&#10;      $(&quot;turkeyDays&quot;).value = &quot;210&quot;;&#10;      Object.assign(state, {&#10;        foreignClient: &quot;yes&quot;,&#10;        usedAbroad: &quot;yes&quot;,&#10;        invoice: &quot;yes&quot;,&#10;        transfer: &quot;yes&quot;,&#10;        turkeyUse: &quot;no&quot;,&#10;        passive: &quot;no&quot;&#10;      });&#10;      document.querySelectorAll(&quot;.toggle-row&quot;).forEach((row) => {&#10;        row.querySelectorAll(&quot;button&quot;).forEach((button, index) => {&#10;          button.setAttribute(&quot;aria-pressed&quot;, index === 0 ? &quot;true&quot; : &quot;false&quot;);&#10;        });&#10;      });&#10;      update();&#10;    });&#10;&#10;    $(&quot;copy&quot;).addEventListener(&quot;click&quot;, async () => {&#10;      const text = $(&quot;report&quot;).value;&#10;      try {&#10;        await navigator.clipboard.writeText(text);&#10;        $(&quot;status&quot;).textContent = &quot;Rapor kopyalandı.&quot;;&#10;      } catch {&#10;        $(&quot;report&quot;).focus();&#10;        $(&quot;report&quot;).select();&#10;        $(&quot;status&quot;).textContent = &quot;Rapor alanını seçip kopyalayabilirsiniz.&quot;;&#10;      }&#10;    });&#10;&#10;    update();&#10;  </script>&#10;</body>&#10;</html>&#10;"></iframe>

## Hesaplama Mantığı

| Faktör | Neden önemli? |
|---|---|
| Çalışma modeli | Bordro, contractor, şahıs şirketi, limited şirket ve kurucu yapıları farklı sonuç doğurur |
| Hizmet kategorisi | Yazılım, tasarım, mühendislik, veri analizi, veri işleme ve test daha güçlü kategorilerdir |
| Yurt dışı müşteri | Hukuki müşteri Türkiye dışında olmalıdır |
| Hizmetten yurt dışında yararlanma | Türkiye'de kullanım varsa gelir vergisi ve KDV riski doğabilir |
| Fatura | Fatura, yurt dışı müşteri ve gerçek hizmetle uyumlu olmalıdır |
| Tahsilat | Gelirin ilgili süre içinde Türkiye'ye getirildiği belgelenmelidir |
| Pasif gelir | Yabancı temettü, faiz ve sermaye kazancı 89/13 değil, OZM 20/D analizidir |

## İnceleme İçin Gönderilecekler

Hesaplayıcıyı kullandıktan sonra şunları gönderin:

- Hesaplayıcı raporu
- Sözleşme veya taslak sözleşme
- Fatura taslağı
- Müşteri ülkesi ve hukuki müşteri unvanı
- Hizmet açıklaması
- Hizmetten nerede yararlanıldığını gösteren bilgi/belge
- Yıllık gelir ve gider tahmini
- Ödeme platformu veya banka akışı
- Türkiye'de kalış gün sayısı ve mevcut vergi mukimliği

E-posta: **info@ozmconsultancy.com**

Konu satırı: `Hizmet ihracati hesaplayici raporu`

## SSS

### Yüksek skor %100 indirimi garanti eder mi?

Hayır. Yüksek skor, dosyanın profesyonel inceleme için güçlü göründüğünü gösterir. Uygunluk yine belge, sözleşme, fatura, ödeme akışı, muhasebe kaydı ve kanuni şartlara bağlıdır.

### Hesaplayıcı nihai vergi borcunu hesaplar mı?

Hayır. Net kazanç, potansiyel indirim tabanı ve inceleme önceliği üretir. Nihai gelir vergisi, kurumlar vergisi, KDV, SGK, ceza veya anlaşma sonucunu hesaplamaz.

### Bordrolu çalışanlar bu hesaplayıcıyı kullanabilir mi?

Evet, ama yabancı bordrolu çalışanlarda genellikle 89/13 hizmet ihracatı yerine ücret, bordro, çifte vergilendirme anlaşması ve SGK analizi gerekir.

### 20/D Non-Dom bu hesaplayıcıya dahil mi?

Hayır. Yabancı pasif gelir ve Article 20/D Non-Dom konuları OZM Consultancy'nin ayrı Turkey Non-Dom rehberinde incelenmelidir.

## Kaynaklar

- %100 hizmet ihracatı rehberi: https://evrenozmen.com.tr/yurt-disina-hizmetlerde-100-vergi-avantaji
- İngilizce service export calculator: https://evrenozmen.com.tr/service-export-tax-calculator-turkey
- Remote work from Turkey rehberi: https://evrenozmen.com.tr/remote-work-turkey-tax-guide
- Hizmetten yurt dışında yararlanma şartı: https://evrenozmen.com.tr/hizmetten-yurt-disinda-yararlanma-sarti
- OZM Consultancy Turkey Non-Dom Guide: https://ozmconsultancy.com/turkey-non-dom/
- Gelir İdaresi Başkanlığı, 11257 sayılı Cumhurbaşkanı Kararı duyurusu: https://www.gib.gov.tr/duyuru-arsivi/guncel/17846_11257_sayili_cumhurbaskani_karari_resmi_gazetede_yayimlandi

