Giden Fatura
Giden Fatura Senaryoları
On e-Fatura profili için ProfileId, InvoiceTypeCode, zorunlu alan, oluşturma, iptal ve itiraz senaryoları.
Genel Bakış
Giden e-Fatura, tek bir OutgoingInvoiceRequestModel gövdesi üzerinden 10 farklı ProfileId değerini kapsar (e-Arşiv Fatura ayrı bir rehberde ele alınır). Karar noktası, ProfileId ile InvoiceTypeCode alanlarının birlikte belirlediği kombinasyondur: her profil, belge tipini belirli bir alt kümeyle sınırlar ve profile özgü ek alanlar zorunlu kılar. Bu sayfa giden belgenin profil, alan ve oluşturma kararlarını açıklar; belge oluşturulduktan sonraki geçişler Giden Fatura Akışı, tarafların görev sınırları Giden Fatura Sorumlulukları sayfasındadır.
Karar Ağacı
İlk düğüm ProfileId seçimidir; bu seçim hem izin verilen InvoiceTypeCode alt kümesini hem de profile özgü zorunlu alanları belirler.
| Profil kümesi | Temel davranış | Ek sözleşme |
|---|---|---|
TEMELFATURA | Alıcı uygulama yanıtı beklenmeden temel teslim akışı izlenir. | Kamuya özgü kurallar seçilen tipe göre ayrıca uygulanır. |
TICARIFATURA | Alıcının kabul, red veya itiraz yanıtı izlenir. | Yanıt bekleme ve terminal durumlar giden fatura akışında takip edilir. |
KAMU | Kamu faturası kuralları uygulanır. | Geçerli TR IBAN ve kamuya özgü zorunlu alanlar gönderilir. |
IHRACAT / YOLCUBERABERFATURA | İhracat veya yolcu beraberi satış sözleşmesi uygulanır. | Gümrük ve taraf alanları seçilen profile göre tamamlanır. |
HKS / ENERJI / ILAC_TIBBICIHAZ | Sektörel kimlik ve satır alanları doğrulanır. | İlgili şema değerleri her fatura kaleminde taşınır. |
YATIRIMTESVIK / IDIS | Teşvik veya sevkiyat sözleşmesi uygulanır. | YTBNO, IdisSevkiyatNo ve ETIKETNO gibi profile özgü alanlar doldurulur. |
Alan Zorunluluk Matrisi
Ortak belge alanları her profilde aynı kalır; profile özgü alanlar yalnızca ilgili ProfileId gönderildiğinde devreye girer.
| Profil (ProfileId) | İzin Verilen InvoiceTypeCode | Profile Özgü Zorunlu Alan |
|---|---|---|
TEMELFATURA | Profile özgü ek kısıt yok | — |
TICARIFATURA | Profile özgü ek kısıt yok | Alıcı etiketi (ReceiverIdentifier) gönderildiyse GİB kullanıcı listesinde doğrulanır |
YOLCUBERABERFATURA | Yalnızca ISTISNA | BuyerCustomerParty'de PARTYTYPE=TAXFREE kimliği, Person.NationalityID, Person.IdentityDocumentReference.ID, TaxRepresentativeParty altında ARACIKURUMVKN/ARACIKURUMETIKET |
IHRACAT | Yalnızca ISTISNA | BuyerCustomerParty'de PARTYTYPE=EXPORT kimliği, PartyLegalEntity.RegistrationName, AccountingSupplierParty.PartyTaxScheme.TaxScheme.Name, satırda GTİP (Delivery.Shipment.GoodsItem.RequiredCustomsID), Incoterm, teslimat adresi, taşıma modu, InvoicedQuantity/Price > 0 |
KAMU | Profile özgü ek kısıt yok | PaymentMeans.PayeeFinancialAccount.ID geçerli TR IBAN, PayeeFinancialAccount.CurrencyCode dolu, BuyerCustomerParty zorunlu |
HKS | Profile özgü ek kısıt yok | Her InvoiceLine.Item.AdditionalItemIdentification içinde SchemeId=KUNYENO, değer tam 19 karakter |
ENERJI | Yalnızca SARJ veya SARJANLIK | — |
ILAC_TIBBICIHAZ | SATIS, ISTISNA, TEVKIFAT, TEVKIFATIADE, IADE, IHRACKAYITLI | Her InvoiceLine.Item.AdditionalItemIdentification içinde SchemeId değeri TIBBICIHAZ, ILAC veya DIGER |
YATIRIMTESVIK | SATIS, ISTISNA, IADE | ContractDocumentReference içinde SchemeId=YTBNO, 6 haneli değer ve dolu IssueDate; güncel GİB kılavuzundaki üçlü tip kümesi esas alınır |
IDIS | SATIS, ISTISNA, IADE, TEVKIFAT, TEVKIFATIADE, IHRACKAYITLI | IdisSevkiyatNo ile eşleşmeli; her InvoiceLine.Item.AdditionalItemIdentification içinde SchemeId=ETIKETNO, değer ile eşleşmeli |
IADE, TEVKIFATIADE, YTBIADE veya YTBTEVKIFATIADE ise yalnızca TEMELFATURA, EARSIVFATURA, ILAC_TIBBICIHAZ, YATIRIMTESVIK veya IDIS profilleri kabul edilir; ayrıca BillingReference/InvoiceDocumentReference altında DocumentTypeCode=IADE ve 16 haneli ID zorunludur .Ana Senaryo Grupları
Senaryo grupları, faturanın hangi profil altında hangi ek alanlarla ayrıştığını konumlandırır.
| Grup | Ne Zaman Kullanılır? | Ayırt Edici Alan |
|---|---|---|
| Temel Fatura | Alıcı GİB mükellefi ve özel bir profil gerekmiyorsa | Ek alan yok |
| Ticari Fatura | Alıcının ApplicationResponse ile kabul/red bildirmesi beklenecekse | Kabul/red uygulama yanıtı beklenir |
| Yolcu Beraberinde Eşya | Yurt dışında yerleşik yolcuya (Tax-Free) satış yapılıyorsa | PARTYTYPE=TAXFREE, TaxRepresentativeParty |
| İhracat | Gümrük Ticaret Bakanlığı ihracat listesine (PARTYTYPE=EXPORT) fatura kesiliyorsa | GTİP, Incoterm, teslimat alanları |
| Kamu | Alıcı kamu tüzel kişiliğiyse (veya TEMELFATURA olarak gönderilip alıcı kamu mükellefiyse) | PaymentMeans.PayeeFinancialAccount.ID (TR IBAN) |
| Hal Kayıt Sistemi | Sebze/meyve toptan satışında HKS künyesi izlenecekse | AdditionalItemIdentification.SchemeId=KUNYENO |
| Enerji | Şarj hizmeti faturası kesiliyorsa | InvoiceTypeCode=SARJ/SARJANLIK |
| İlaç/Tıbbi Cihaz | İlaç veya tıbbi cihaz teslimlerinde GİB izlenebilirliği gerekiyorsa | AdditionalItemIdentification.SchemeId=ILAC/TIBBICIHAZ/DIGER |
| Yatırım Teşvik | YTB kapsamındaki mal/hizmet teslimlerinde teşvik numarası izlenecekse | ContractDocumentReference.SchemeId=YTBNO |
| İDİS | İhracatta dahilde işleme rejimi sevkiyatı izlenecekse | IdisSevkiyatNo, AdditionalItemIdentification.SchemeId=ETIKETNO |
Oluşturma Senaryoları
Aşağıdaki kartlar her profil için entegratörün göndermesi gereken alanları ve işlem sonucunu gösterir.
Temel Fatura (TEMELFATURA)
Varsayılan profildir; özel bir senaryo gerekmiyorsa kullanılır. Profile özgü ek bir InvoiceTypeCode sınırlaması yoktur; genel e-Fatura kuralları uygulanır.
| Alan | Değer |
|---|---|
| ProfileId | TEMELFATURA |
| Alıcı yanıtı | Kabul/red uygulama yanıtı beklenmez; belge otomatik sonuçlandırılır |
Ticari Fatura (TICARIFATURA)
Alıcının faturayı ApplicationResponse ile kabul veya red etmesi beklenen iki taraflı akışta kullanılır. Profile özgü ek zorunlu alan yoktur; ayırt edici unsur iki taraflı onay akışıdır.
| Alan | Değer |
|---|---|
| ProfileId | TICARIFATURA |
| Alıcı yanıtı | WaitingForApproveOrReject durumunda kabul veya red uygulama yanıtı beklenir |
Yolcu Beraberinde Eşya (YOLCUBERABERFATURA)
Tax-Free satışlarında kullanılır; fatura tipi yalnızca ISTISNA olabilir, alıcı tarafı PARTYTYPE=TAXFREE kimliği taşımalı ve aracı kurum bilgisi TaxRepresentativeParty altında doldurulmalıdır.
| Alan | Değer |
|---|---|
| InvoiceTypeCode | ISTISNA (zorunlu, tek seçenek) |
| BuyerCustomerParty.PartyIdentifications | SchemeId=PARTYTYPE, Value=TAXFREE |
| BuyerCustomerParty.Party.Person.NationalityID | Dolu olmalı |
| BuyerCustomerParty.Party.Person.IdentityDocumentReference.ID | Dolu olmalı (pasaport no) |
| TaxRepresentativeParty.PartyIdentifications | ARACIKURUMVKN (10/11 haneli), ARACIKURUMETIKET — her biri tam bir adet |
İhracat (IHRACAT)
Fatura tipi yalnızca ISTISNA olabilir; alıcı PARTYTYPE=EXPORT kimliği taşımalı ve satır/teslimat alanları gümrük izlenebilirliği için doldurulmalıdır.
| Alan | Değer |
|---|---|
| InvoiceTypeCode | ISTISNA (zorunlu, tek seçenek) |
| BuyerCustomerParty.PartyIdentifications | SchemeId=PARTYTYPE, Value=EXPORT |
| BuyerCustomerParty.Party.PartyLegalEntity.RegistrationName | Dolu olmalı |
| AccountingSupplierParty.Party.PartyTaxScheme.TaxScheme.Name | Dolu olmalı |
| InvoiceLine.Delivery.Shipment.GoodsItem.RequiredCustomsID | 12 haneli GTİP ) |
| Delivery.DeliveryTerms (satır veya belge seviyesi) | SchemeId=INCOTERMS içeren en az bir ID |
| Delivery.DeliveryAddress (satır veya belge seviyesi) | En az bir tanesinde dolu olmalı |
| Delivery.Shipment.ShipmentStage.TransportModeCode (satır veya belge seviyesi) | En az bir tanesinde dolu olmalı |
| InvoiceLine.InvoicedQuantity / Price | > 0 |
Kamu (KAMU)
Alıcı kamu tüzel kişiliğiyse kullanılır; ödeme aracının Türkiye IBAN'ı olması zorunludur.
| Alan | Değer |
|---|---|
| PaymentMeans.PayeeFinancialAccount.ID | ile eşleşen TR IBAN |
| PaymentMeans.PayeeFinancialAccount.CurrencyCode | Dolu olmalı |
| BuyerCustomerParty | VBT e-Fatura API sözleşmesinde zorunludur |
Hal Kayıt Sistemi (HKS)
Sebze/meyve toptan satışında her satırın HKS künye numarasını taşıması gerekir.
| Alan | Değer |
|---|---|
| InvoiceLine.Item.AdditionalItemIdentification.SchemeId | KUNYENO |
| AdditionalItemIdentification.Value uzunluğu | Tam 19 karakter |
Enerji (ENERJI)
Şarj hizmeti faturalarında kullanılır; fatura tipi iki değerle sınırlıdır.
| Alan | Değer |
|---|---|
| InvoiceTypeCode | SARJ veya SARJANLIK |
İlaç/Tıbbi Cihaz (ILAC_TIBBICIHAZ)
İlaç veya tıbbi cihaz teslimlerinde her satırın GİB izlenebilirlik kodunu taşıması gerekir.
| Alan | Değer |
|---|---|
| InvoiceTypeCode | SATIS, ISTISNA, TEVKIFAT, TEVKIFATIADE, IADE veya IHRACKAYITLI |
| InvoiceLine.Item.AdditionalItemIdentification.SchemeId | TIBBICIHAZ, ILAC veya DIGER (en az biri her satırda) |
Yatırım Teşvik (YATIRIMTESVIK)
YTB kapsamındaki teslimlerde teşvik belge numarası ve harcama tipi kodu birlikte doğrulanır. Geçerli tip kümesi ve vergi koşulları için güncel GİB e-Fatura kılavuzu esas alınır.
| Alan | Değer |
|---|---|
| InvoiceTypeCode | SATIS, ISTISNA veya IADE |
| ContractDocumentReference.SchemeId | YTBNO, değer tam 6 hane |
| ContractDocumentReference.IssueDate | Dolu olmalı |
| InvoiceLine.Item.CommodityClassification.ItemClassificationCode | 01/02/03/04; seçilen kod için güncel GİB kılavuzundaki vergi koşulları uygulanır |
İDİS (IDIS)
Dahilde işleme rejimi sevkiyatlarında sevkiyat numarası ve satır etiket numarası zorunludur.
| Alan | Değer |
|---|---|
| InvoiceTypeCode | SATIS, ISTISNA, IADE, TEVKIFAT, TEVKIFATIADE veya IHRACKAYITLI |
| IdisSevkiyatNo | ile eşleşmeli (yorum: "SE-" ön eki + 7 haneli sayı) |
| InvoiceLine.Item.AdditionalItemIdentification.SchemeId | ETIKETNO, değer ile eşleşmeli (yorum: 2 harf + 7 rakam) |
İptal ve İtiraz Senaryosu
Giden faturada iptal yalnızca TEMELFATURA ve ILAC_TIBBICIHAZ profillerinde desteklenir. İtiraz ise belge kimliğiyle birlikte itiraz belgesi, tarihi, numarası, türü ve açıklaması gönderilerek kaydedilir.
| İşlem | Ön koşul | Endpoint |
|---|---|---|
| İptal | Profil TEMELFATURA veya ILAC_TIBBICIHAZ | CancelOutgoingInvoice |
| İtiraz | İtiraz belgesi bilgileri eksiksiz | ObjectOutgoingInvoice |
ObjectOutgoingInvoice işlemi ProfileId değerine göre sınırlandırılmaz. CancelOutgoingInvoice ise yalnızca yukarıda belirtilen profilleri kabul eder. Sınır Durumları
Sınır durumlar, profil seçiminin veya doğrulamanın beklenmeyen kombinasyonlarda nasıl davrandığını önceden görmek için ayrı ele alınır.
| # | Durum | Sonuç | Neden |
|---|---|---|---|
| E1 | ProfileId=TEMELFATURA gönderilir ve alıcı GİB nezdinde kamu tüzel kişisi olarak bulunursa | ⚠️ | KAMU profiline özgü IBAN ve BuyerCustomerParty kontrolleri uygulanır. |
| E2 | InvoiceTypeCode=IADE/TEVKIFATIADE/YTBIADE/YTBTEVKIFATIADE iken ProfileId TICARIFATURA, IHRACAT, YOLCUBERABERFATURA, KAMU, HKS, ENERJI gibi izin verilmeyen bir profil ise | ❌ | SCHEME hatası — sadece TEMELFATURA, EARSIVFATURA, ILAC_TIBBICIHAZ, YATIRIMTESVIK veya IDIS kabul edilir |
| E3 | InvoiceTypeCode=SGK iken ProfileId TEMELFATURA dışında bir değerse | ❌ | SCHEME hatası |
| E4 | InvoiceTypeCode=TEKNOLOJIDESTEK iken ProfileId EARSIVFATURA dışında bir değerse | ❌ | SCHEME hatası — bu tip zaten e-Fatura kapsamı dışına düşer |
| E5 | ReceiverIdentifier = urn:mail:yolcuberaberpk@gtb.gov.tr iken ProfileId YOLCUBERABERFATURA değilse | ❌ | SCHEME hatası |
| E6 | ReceiverIdentifier = urn:mail:ihracatpk@gtb.gov.tr iken ProfileId IHRACAT değilse | ❌ | SCHEME hatası |
| E7 | WithholdingTaxTotal dolu iken InvoiceTypeCode izin verilen kümenin dışındaysa | ❌ | SCHEME hatası. İzin verilen tipler: TEVKIFAT, YTBTEVKIFAT, IADE, YTBIADE, SGK, SARJ, SARJANLIK. |
| E8 | TaxTypeCode=4171 (Petrol/Doğalgaz ÖTV Tevkifatı) kullanılırken InvoiceTypeCode TEVKIFAT/IADE/YTBIADE/SGK dışındaysa | ❌ | SCHEME hatası |