diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1a3606e..24bac95 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,25 @@ Biçim [Keep a Changelog](https://keepachangelog.com/tr-TR/1.1.0/) esas alınır
## [Yayınlanmamış]
+Faz 17a: Kakeibo K2 — ekstre içe aktarma altyapısı.
+
+### Eklendi
+
+- **Ekstre içe aktarma** (`/islemler/ice-aktar`, İşlemler sayfasında "İçe aktar"): Kakeibo çalışma kitabı (.xlsx; "Kredi Kartı" ve "Maaş Hesabı" sayfaları) yüklenir, önce taslak olarak önizlenir, sonra tek seferde işlenir.
+- Kurulum adımı: dosyanın ihtiyaç duyduğu hesaplar (kredi kartı, maaş hesabı, nakit, ek hesap) mevcut hesaplardan seçilir ya da önerilen açılış bakiyesiyle tek tıkla oluşturulur (açılış bakiyesi dosyadaki devreden bakiyeden, kart borcu ilk kart ödemesinden).
+- Kontroller: her ekstre için **ekstre toplamı = satır toplamı**, maaş hesabı bakiye zinciri ve son bakiye, daha önce aktarılmış satırlar, bekletilen altın satırları ve oluşturulacak kategoriler.
+- Önizleme: satır başına tür (gider / gelir / atla), kategori ve Kakeibo grubu düzenlenebilir; "aynı açıklamalı tüm satırlara uygula"; İnceleme gereken / Grupsuz / Transfer / Atlanacak süzgeçleri.
+- Muhasebe kuralları: kart ödemesi, ATM çekimi ve hesaplar arası havale transfer (çift sayma yok); kampanya iadesi ve iadeler gelir ("İade"); KMH faizi, KKDF/BSMV ve banka ücretleri banka maliyeti; taksitler ekstreye yansıdığı kesim tarihinde, ortak taksit planıyla; aynı gün çıkan promosyon çifti atlanır.
+- Tekrar engeli: her satırın parmak izi saklanır; aynı dosya yeniden yüklendiğinde aktarılmış satırlar atlanır. **Toplu geri alma** aktarmanın tüm işlemlerini siler ve dosya yeniden aktarılabilir hale gelir.
+- Eksik Kakeibo kategorileri (Sigorta, Online alışveriş, Elektronik ve hobi, Kitap ve kültür; Prim, Yol parası, Avans, Eş katkısı, Aile desteği) işlenirken oluşturulur.
+- Migration `017-imports`: aktarma partileri ve işlem parmak izi dizinleri (geri alınabilir).
+- Testler: çalışma kitabı ayrıştırma, taksit metni, ekstre ve bakiye kontrolleri (birim); taslak, hesap oluşturma, toplu düzenleme, işleme, bakiyeler, tekrar yükleme ve geri alma (entegrasyon).
+
+### Bilinen sınırlamalar
+
+- Altın alım/satım satırları Faz 17b'de altın hesabı dosyasıyla eşleştirilene dek bekletilir; o zamana dek maaş hesabı bakiyesi bu satırların neti kadar farklı görünür.
+- Yapı Kredi "Güncel Dönem" (.xls) ve Ek Hesap / Altın Hesabı (PDF) dosyaları Faz 17b'de.
+
## [1.1.0] - 2026-11-07
Faz 16: Kakeibo K1 — dört harcama grubu.
diff --git a/src/app/(app)/islemler/ice-aktar/[id]/page.tsx b/src/app/(app)/islemler/ice-aktar/[id]/page.tsx
new file mode 100644
index 0000000..283f954
--- /dev/null
+++ b/src/app/(app)/islemler/ice-aktar/[id]/page.tsx
@@ -0,0 +1,17 @@
+import type { Metadata } from "next";
+import { notFound } from "next/navigation";
+import { ImportWizard } from "@/features/imports/components/import-wizard";
+import { getImportDraft } from "@/features/imports/service";
+import { tr } from "@/i18n/tr";
+import { requireActiveHousehold } from "@/lib/dal";
+
+export const metadata: Metadata = { title: tr.imports.title };
+
+/** /islemler/ice-aktar/:id — aktarma taslağı ya da işlenmiş aktarma. */
+export default async function ImportPage({ params }: PageProps<"/islemler/ice-aktar/[id]">) {
+ const { user, household } = await requireActiveHousehold("member");
+ const { id } = await params;
+ const draft = await getImportDraft(user.id, household.id, id);
+ if (!draft) notFound();
+ return ;
+}
diff --git a/src/app/(app)/islemler/ice-aktar/page.tsx b/src/app/(app)/islemler/ice-aktar/page.tsx
new file mode 100644
index 0000000..0395834
--- /dev/null
+++ b/src/app/(app)/islemler/ice-aktar/page.tsx
@@ -0,0 +1,67 @@
+import { ArrowLeft, ChevronRight } from "lucide-react";
+import type { Metadata } from "next";
+import Link from "next/link";
+import { notFound } from "next/navigation";
+import { PageHeader } from "@/components/page-header";
+import { Badge } from "@/components/ui/badge";
+import { Button } from "@/components/ui/button";
+import { UploadCard } from "@/features/imports/components/upload-card";
+import { listImports } from "@/features/imports/service";
+import { tr } from "@/i18n/tr";
+import { requireActiveHousehold } from "@/lib/dal";
+import { formatDateTime } from "@/shared/format";
+
+const t = tr.imports;
+export const metadata: Metadata = { title: t.title };
+
+/** /islemler/ice-aktar — Kakeibo çalışma kitabı yükleme ve aktarma geçmişi. */
+export default async function ImportsPage() {
+ const { user, household } = await requireActiveHousehold("member");
+ const list = await listImports(user.id, household.id);
+ if (!list) notFound();
+ return (
+ <>
+
+
+
+
+