API
Request → UBL XML Mapping
Entegratörün gönderdiği JSON alanlarının UBL XML'deki karşılığını gösteren referans tablo.
Mapping Kapsamı
Request modeli, UBL 2.1 CreditNote XML'e çiftçi/alıcı tarafları, ürün kalemleri, belge toplamları, vergi/kesinti toplamları ve tevkifat alanları üzerinden yansır.
Kısa kural: Request tarafındaki ekonomik veri
CreditNoteLine, TaxTotal, WithholdingTaxTotal ve LegalMonetaryTotal alanlarında; kimlik verisi ise AccountingSupplierParty ve AccountingCustomerParty altında UBL'e yansır. Müstahsil kesinti kodları TaxTotal.TaxSubtotal içinde de izlenebilir.Request Alanı → UBL XML Path
Mapping tablosu, request modelindeki iş kararlarının UBL XML'de hangi node'lara taşındığını izlenebilir hale getirir.
| Request Alanı | UBL XML Path | Açıklama |
|---|---|---|
| Root Alanlar | ||
UUId | cbc:UUID | ETTN — evrensel tekil belge kimliği |
CreditNoteNumber | cbc:ID | Belge numarası (16 karakter) |
ProfileId | cbc:ProfileID | Sabit: EARSIVBELGE |
CreditNoteTypeCode | cbc:CreditNoteTypeCode | Sabit: MUSTAHSILMAKBUZ |
DocumentCurrencyCode | cbc:DocumentCurrencyCode | ISO 4217 para birimi |
IssueDate | cbc:IssueDate + cbc:IssueTime | Tarih ve saat ayrı yazılır |
Note[] | cbc:Note (tekrarlanabilir) | Genel açıklamalar |
| Taraflar | ||
AccountingSupplierParty | cac:AccountingSupplierParty/cac:Party | Çiftçi (tedarikçi); SchemeId=TCKN |
AccountingCustomerParty | cac:AccountingCustomerParty/cac:Party | Alıcı firma; SchemeId=VKN |
| LegalMonetaryTotal → cac:LegalMonetaryTotal | ||
LegalMonetaryTotal. | cbc:LineExtensionAmount[@currencyID] | Satır toplamı |
LegalMonetaryTotal. | cbc:TaxExclusiveAmount[@currencyID] | KDV hariç tutar |
LegalMonetaryTotal. | cbc:TaxInclusiveAmount[@currencyID] | KDV dahil tutar |
LegalMonetaryTotal. | cbc:PayableAmount[@currencyID] | Ödenecek tutar (kesinti/tevkifat etkisi yansıtılmış) |
| TaxTotal[] → cac:TaxTotal | ||
TaxTotal[]. | cbc:TaxAmount[@currencyID] | Vergi/kesinti toplam tutarı |
TaxTotal[]. | cac:TaxSubtotal/cbc:TaxableAmount | Matrah |
TaxTotal[]. | cbc:Percent | KDV oranı (%) |
TaxTotal[].TaxSubtotal. | cac:TaxScheme/cbc:TaxTypeCode | Vergi/kesinti kodu: 0015, 0003, 8001, SGK_PRIM, 9040 |
TaxTotal[].TaxSubtotal. | cac:TaxScheme/cbc:Name | Kesinti adı: GV STOPAJI, BORSA TES.ÜC., SGK PRIM KESINTISI, MERA FONU |
| WithholdingTaxTotal[] → cac:WithholdingTaxTotal | ||
WithholdingTaxTotal[]. | cbc:TaxAmount[@currencyID] | Tevkifat tutarı |
WithholdingTaxTotal[].TaxSubtotal. | cbc:Percent | Tevkifat oranı (%) |
WithholdingTaxTotal[].TaxSubtotal. | cac:TaxScheme/cbc:TaxTypeCode | Tevkifat kodu; GV stopajı için 0003 |
| CreditNoteLine[] → cac:CreditNoteLine | ||
CreditNoteLine[]. | cbc:ID | Satır no (1'den başlar) |
CreditNoteLine[].CreditedQuantity / UnitCode | cbc:CreditedQuantity[@unitCode] | Miktar + birim |
CreditNoteLine[]. | cbc:LineExtensionAmount[@currencyID] | Satır toplamı |
CreditNoteLine[]. | cac:Item/cbc:Name | Ürün adı |
CreditNoteLine[]. | cac:Price/cbc:PriceAmount[@currencyID] | Birim fiyat |
CreditNoteLine[]. | cac:TaxTotal (satır altında) | Satır seviyesi vergi/kesinti alt toplamları |
CreditNoteLine[]. | cac:WithholdingTaxTotal (satır altında) | Satır seviyesi tevkifat (varsa) |
Uygulama Notları
Mapping notları, platformun otomatik tamamladığı alanlar ile entegratörün göndermesi gereken alanlar arasındaki sınırı netleştirir.
| Konu | Kontrol | Sonuç |
|---|---|---|
| Taraf kimliği | Çiftçi TCKN, alıcı firma VKN ile gönderilir | UBL taraf rolleri ve GİB raporu aynı kimliği kullanır |
| Vergi/kesinti kodları | TaxTotal. içinde 0003, 8001, SGK_PRIM, 9040 kodları gerektiği kadar taşınır | Barkod ve rapor üretimi kesinti tutarlarını kod bazında okuyabilir |
| Tevkifat | WithholdingTaxTotal belge ve satır seviyesinde uyumlu hesaplanır | GİB raporundaki tevkifat alanları beslenir |
| Satır kalemleri | Her ürün ayrı CreditNoteLine olarak yazılır | Çok kalemli makbuzlarda her ürün kendi miktar/fiyat bilgisini taşır |
| Sabit değerler | ProfileID=EARSIVBELGE, CreditNoteTypeCode=MUSTAHSILMAKBUZ | Belgenin GİB tarafında e-Müstahsil Makbuzu olarak sınıflanmasını sağlar |