Sakarya’da otomotiv yan sanayi (vites kolu, fren parçası) üreten 165 çalışanlı bir firma, SAP Business One 10 PL03 üzerinde çalışıyor, ancak e-Fatura için ayrı bir portal kullanıyordu. Çift veri girişi, mutabakat hataları, GİB cezası riski. 5 ayda tüm e-Dönüşüm modülleri SAP B1 entegre edildi. Bu yazı projenin teknik notlarını paylaşıyor.
Türkiye e-Dönüşüm Zorunlulukları
| Belge | Zorunluluk eşiği (örnek) | Format |
|---|---|---|
| e-Fatura | Brüt satış 3M TL üzeri (artıyor) | UBL-TR XML |
| e-Arşiv Fatura | e-Fatura mükellefi olmayanlara kesilen | UBL-TR XML |
| e-İrsaliye | Belirli ciro + sektör | UBL-TR XML |
| e-Defter | e-Fatura mükellefleri | XBRL-GL XML |
| e-Müstahsil Makbuzu | Tarımsal alımlar | UBL-TR XML |
Firma 4 modülü birden geçirdi (e-Defter HQ muhasebe yapıyor zaten).
Mimari: SAP B1 + Özel Entegratör
[SAP B1] → AddOn → [Entegratör API REST/SOAP] → [GİB]
↓
[Mutabakat ekranı]
↓
[Gönderim/Kabul/Red durumu]
Özel entegratör seçildi (in-house GİB direkt bağlantı yerine). Sebep: küçük firma için dedicated GİB sertifikası ve kapasitesi gereksiz; entegratör SLA + UI veriyor.
Entegratör Karşılaştırması
| Kriter | Entegratör A | Entegratör B | Entegratör C |
|---|---|---|---|
| Aylık fatura ücreti (binde) | ~~25 TL/1000 | ~~32 TL/1000 | ~~22 TL/1000 |
| SAP B1 native AddOn | Var (önerilen) | API only | API only |
| Mutabakat ekranı | Web | Yok | Web + mobile |
| e-Defter desteği | Var | Var | Var |
| SLA uptime | %99.9 | %99.5 | %99.7 |
| Destek (TR mesai içi) | İyi | Orta | İyi |
Entegratör A seçildi (native AddOn, mutabakat ekranı için).
SAP B1 Tarafında Konfigürasyon
BP (Business Partner) Master Data
-- e-Fatura mükellefi sorgu (entegratör API'den senkron)
UPDATE OCRD
SET U_GIB_eFatura = 'Y',
U_PostaKutusu = 'urn:mail:defaultpk@example.com.tr',
U_VKN_TCKN = '1234567890'
WHERE CardCode = 'C00248';
Item Master: GTIP Kodu, Brand
Otomotiv parçaları için GTIP kodu zorunlu (e-İrsaliye için):
UPDATE OITM
SET U_GTIP = '8708.30.91.00.00', -- Fren tertibatı
U_BrandName = 'XYZ Brand'
WHERE ItemCode = 'PRD-FRK-450';
UDF (User Defined Field) Eklenenler
- e-Belge UUID
- GİB durumu (Beklemede / Kabul / Red / Hata)
- Gönderim zamanı
- Kabul/Red zamanı
- Senaryo (TICARI / TEMEL / EARSIVFATURA)
UBL-TR XML Örneği
<?xml version="1.0" encoding="UTF-8"?>
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2">
<cbc:ProfileID>TICARIFATURA</cbc:ProfileID>
<cbc:ID>ABC2026000001234</cbc:ID>
<cbc:UUID>f81d4fae-7dec-11d0-a765-00a0c91e6bf6</cbc:UUID>
<cbc:IssueDate>2026-04-25</cbc:IssueDate>
<cbc:InvoiceTypeCode>SATIS</cbc:InvoiceTypeCode>
<cac:AccountingSupplierParty>
<cac:Party>
<cbc:WebsiteURI>www.firma.com.tr</cbc:WebsiteURI>
<cac:PartyIdentification>
<cbc:ID schemeID="VKN">1234567890</cbc:ID>
</cac:PartyIdentification>
...
</cac:Party>
</cac:AccountingSupplierParty>
...
</Invoice>
Gönderim Akışı (SAP B1 → Entegratör → GİB)
- SAP B1’de fatura kaydedilir (status:
Onaylanmış) - AddOn UBL-TR XML üretir, entegratör API’ye gönderir
- Entegratör imzalar (Mali Mühür) ve GİB’e gönderir
- GİB UUID + ETTN üretir, response döner
- SAP B1 UDF’lerine durum kaydedilir
- Alıcı kabul/red ederse webhook ile durum güncellenir
Gelen Faturaların İşlenmesi
// Webhook handler (entegratörden gelen)
[HttpPost("inbound-invoice")]
public async Task<IActionResult> Receive(InboundInvoice payload)
{
// 1. UBL XML parse
var invoice = UblParser.Parse(payload.Xml);
// 2. SAP B1'de eşleşen sipariş ara
var po = await _b1.GetPOByVendorAndAmount(invoice.SupplierVKN, invoice.Total);
// 3. AP Invoice oluştur (3-way match)
if (po != null && po.Items.Match(invoice.Items))
{
await _b1.CreateAPInvoiceFromXml(invoice, po.DocEntry);
await _entegrator.AcceptInvoice(invoice.UUID);
}
else
{
// Manuel inceleme kuyruğu
await _queue.EnqueueForReview(invoice);
}
return Ok();
}
e-Defter Aylık Süreç
- Ay sonu: SAP B1’den XBRL-GL formatında defter export
- Entegratör imzalar (Mali Mühür)
- GİB’e yüklenir, berat alınır
- Berat e-Defter sistemine geri kaydedilir
- Süre: ay sonundan sonraki ayın sonuna kadar (Yevmiye + Kebir)
Sonuçlar
| Metrik | Önce | Sonra |
|---|---|---|
| Çift veri girişi (SAP + portal) | ~~22 saat/ay | 0 |
| Hatalı fatura (SAP-portal eşleşmeme) | ~~14/ay | ~~1/ay |
| Gelen fatura işleme süresi | ~~8 dk/fatura | ~~45 saniye (otomatik 3-way match) |
| Mutabakat (ay kapanış) | 3-4 gün | 0.5 gün |
| GİB ceza riski | Yüksek | Düşük |
Sahada Düşülen Üç Tuzak
- BP master data temizliği yapmadan başlamak: VKN/TCKN hataları, posta kutusu eksikleri faturayı reddedilir. Önce BP cleanup, sonra entegrasyon.
- e-İrsaliye için GTIP eksik: Otomotiv + tekstil + gıda gibi sektörlerde GTIP zorunlu. Item master’da eksiklik = irsaliye reddi.
- Test ortamı testlerini atlamak: Entegratörlerin test ortamı (preprod) GİB simülatörüne bağlı. Production’a geçmeden 100+ test fatura mutlaka.
CloudSpark olarak SAP Business One e-Dönüşüm projelerinde entegratör seçimi, AddOn deployment, BP master data temizliği, gelen-giden fatura akışı ve e-Defter süreçleri için danışmanlık veriyoruz.



