e-Müstahsil Makbuzu

Uygulama

Kullanım Senaryoları

Normal, GV stopajı, borsa tescil, SGK prim, mera fonu, çoklu kesinti, tevkifat, çok kalemli oluşturma ve iptal akışları için karar ağacı.

Genel Bakış

e-Müstahsil Makbuzu tek bir oluşturma akışı etrafında şekillenir: entegratör, çiftçi ve alıcı firma bilgileriyle birlikte ürün kalemlerini, vergi toplamlarını ve varsa kesinti tutarlarını içeren bir JSON gönderir. Bu modülde karar noktaları kesinti uygulanıp uygulanmayacağı, kesintinin hangi teknik alanda taşındığı, satır sayısı ve iptal uygunluğu üzerinden ilerler.

Karar Ağacı

Müstahsil akışı, vergi/kesinti toplamlarının belge yapısına etkisini satır sayısı ve iptal uygunluğu kararlarıyla birlikte ele alır.

Kesinti uygulanacak mı?HayırTaxTotal temel vergi toplamıKesinti kodu bulunmazVergi/kesintiTaxTotal.TaxSubtotal0003, 8001, SGK_PRIM, 9040TevkifatWithholdingGV stopajıPayableAmount kesinti ve tevkifat sonrası net tutarla uyumlu olmalıdır

Alan Zorunluluk Matrisi

Senaryo seçildikten sonra zorunluluk, ortak belge alanları ile senaryoya özgü kesinti alanlarının birlikte tamamlanmasıyla netleşir.

Ortak belge alanlarıtaraf, satır, toplamSenaryo seçiminormal, kesinti, iptalTaxTotal0003, 8001SGK_PRIM, 9040Net toplamPayableAmountWithholdingsadece tevkifat varsa
SenaryoHer Zaman ZorunluSenaryoda ZorunluBoş Kalabilecek Alan
Normal oluşturmaCreditNoteExternalId, taraflar, CreditNoteLine[], LegalMonetaryTotalEk kesinti alanı yokWithholdingTaxTotal
GV stopajıOrtak belge alanlarıTaxTotal.TaxSubtotal içinde 0003, matrah, oran, tutarWithholdingTaxTotal, tevkifat kullanılmıyorsa
Borsa tescilOrtak belge alanlarıTaxTotal.TaxSubtotal içinde 8001, matrah, oran, tutarWithholdingTaxTotal
SGK primOrtak belge alanlarıTaxTotal.TaxSubtotal içinde SGK_PRIM, matrah, oran, tutarWithholdingTaxTotal
Mera fonuOrtak belge alanlarıTaxTotal.TaxSubtotal içinde 9040, matrah, oran, tutarWithholdingTaxTotal
Çoklu kesintiOrtak belge alanlarıHer kod için ayrı TaxSubtotal; TaxTotal.TaxAmount alt satır toplamıyla uyumluSenaryoda kullanılmayan kesinti kodları
TevkifatOrtak belge alanlarıWithholdingTaxTotal ve net PayableAmountTaxTotal altında aynı ekonomik tutarın ikinci kez düşülmesi
İptalCreditNoteExternalId, Ettn, CreditNoteNumber, EArchiveStatusBelgenin Signed durumda olmasıBelge satır ve tutar modeli

Ana Senaryo Grupları

Senaryo grupları, makbuzun hangi iş durumunda hangi request alanlarıyla ayrıştığını konumlandırır.

GrupNe Zaman Kullanılır?Ayırt Edici Alan
Normal oluşturmaTek ürün kalemi ve ek kesinti yoksaCreditNoteLine, LegalMonetaryTotal
Vergi/kesinti toplamlı işlemGV stopajı, borsa tescil, SGK prim veya mera fonu tutarı belge toplamında izlenecekseTaxTotal[].TaxSubtotal
Tevkifatlı işlemUBL tevkifat alanı ayrıca doldurulacaksaWithholdingTaxTotal
Çok kalemli makbuzAynı çiftçiden birden fazla ürün alınıyorsaCreditNoteLine[]
İptalBelge Signed durumundayken iptal edilecekseCreditNoteCancelRequestModel

Oluşturma Senaryoları

Aşağıdaki kartlar en sık karşılaşılan varyasyonları gösterir.

Normal Oluşturma

Tek kalemli bir tarımsal ürün alımı; ek kesinti yoksa belge toplamı satır ve vergi toplamlarıyla kapanır.

AlanDeğer
CreditNoteTypeCodeMUSTAHSILMAKBUZ
AccountingSupplierParty.SchemeIdTCKN (çiftçi)
AccountingCustomerParty.SchemeIdVKN (alıcı firma)
CreditNoteLine1 kalem

Vergi/Kesinti Toplamlı İşlem

Excel ile içe aktarma ve barkod üretimi, GV stopajı, borsa tescil, SGK prim ve mera fonu tutarlarını TaxTotal.TaxSubtotal içindeki kodlardan okur; bu kodlar belge seviyesinde ve gerekiyorsa satır seviyesinde aynı ekonomik hesabı yansıtmalıdır.

KodAdKapsam
0003GV STOPAJIGelir vergisi stopajı
8001BORSA TES.ÜC.Borsa tescil kesintisi
SGK_PRIMSGK PRIM KESINTISISGK prim kesintisi
9040MERA FONUMera fonu kesintisi
Hesap sınırı: PayableAmount, belge üzerinde taşınan kesinti ve tevkifatların etkisini yansıtacak net ödenecek tutar olmalıdır.

Tevkifatlı İşlem

UBL tevkifat alanı kullanılacaksa WithholdingTaxTotal hem belge hem satır seviyesinde doldurulur; bu alan GİB raporundaki tevkifat bölümüne karşılık gelir.

AlanDeğer
WithholdingTaxTotal.TaxCategory.TaxScheme.NameGV STOPAJI
WithholdingTaxTotal.TaxCategory.TaxScheme.TaxTypeCode0003

Çok Kalemli Makbuz

Aynı çiftçiden birden fazla ürün kalemi tek makbuzda toplanabilir; CreditNoteLine alanı bir liste olduğundan her kalem ayrı bir satır olarak eklenir.

AlanDeğer
CreditNoteLine2+ kalem, her biri kendi Item/Price/CreditedQuantity bilgisiyle

İptal Senaryosu

Bir makbuz yalnızca Signed durumundaysa iptal edilebilir; akış şeması için e-Müstahsil Makbuzu Nedir? — İptal Akışı bölümüne bakın. İptal isteği POST /api/CreditNoteApi/CancelOutgoingCreditNote endpointine CreditNoteCancelRequestModel ile gönderilir (bkz. Request Örnekleri).

Edge-Case Tablosu

Sınır durumlar, entegrasyonun beklenmeyen kombinasyonlarda nasıl davranacağını önceden görmek için ayrı ele alınır.

#DurumSonuçNeden
E1UUId geçersiz GUID formatında gönderilirseCOM0017
E2CreditNoteExternalId tekrar gönderilirseEMM0028
E3UUId tekrar gönderilirseEMM0035
E4CreditNoteNumber regex formatına uymazsaFormat hatası
E5IssueDate gelecek bir tarih olarak gönderilirseUBL kardinalite hatası
E6IssueDate'de saat bileşeni boşsa (00:00:00)UBL kardinalite hatası
E7CreditNoteAndXmlCreated durumunda iptal denenirseEMM0024
E8Zaten iptal edilmiş bir belge tekrar iptal edilirseEMM0025
E9UUId boş gönderilirsePlatform otomatik GUID üretir
E10CreditNoteNumber boş gönderilirse (firma ayarı platform kaynaklıysa)Platform üretir