e-Müstahsil Makbuzu

API

Entegratör API Endpoint Referansı

Kimlik doğrulama, belge işlemleri, sorgulama, alt modeller ve response alanları.

API Endpointlerini detaylı bir şekilde incelemek için swagger dokümantasyonuna ulaşabilirsiniz

https://edonusumtestmmapi.vbt.com.tr/swagger/docs/v1

Kimlik Doğrulama

API çağrıları, firmanın yetki bağlamı ve oturum token'ı üzerinden ilerler; bu alanda kullanılacak header ve token akışı netleştirilir.

💡 Tüm istekler VbtAuthorization header'ı gerektirir. Token almak için POST /api/Account/Token kullanın.
POST/api/Account/Token

Oturum token'ı alır. Tüm diğer endpointler bu token'ı VbtAuthorization header'ında bekler.

RequestTokenRequestModel{ Email, Password }
ResponseTokenResponseModel{ Token }

Alan Zorunluluk Matrisi

Request modeli, zorunlu alanlar ile koşula bağlı alanları birlikte taşır; matris entegrasyon öncesi alan kapsamını netleştirir.

AlanZorunlulukNot
CreditNoteExternalIdZDış sistem referansı, benzersiz olmalı
IssueDateZGelecek tarih olamaz, saat bileşeni dolu olmalı
AccountingSupplierPartyZÇiftçi bilgisi
AccountingCustomerPartyZAlıcı firma bilgisi
CreditNoteLineZEn az 1 kalem
LegalMonetaryTotalZSatır toplamı, KDV hariç/dahil ve ödenecek tutar
TaxTotalZKDV ve belge seviyesinde izlenen vergi/kesinti alt toplamları
WithholdingTaxTotalOUBL tevkifat alanı kullanılacaksa doldurulur
UUIdOBoş bırakılırsa platform tarafından üretilir
CreditNoteNumberŞFirma ayarına (numara kaynağı ERP mi platform mu) bağlıdır: ayar ERP ise siz sağlarsınız ve formatı doğrulanır, değilse platform üretip alanın üzerine yazar
CopyIndicatorOBelirtilmezse false kabul edilir

Z Zorunlu · O Opsiyonel · Ş Şartlı

Ekleme

Yeni makbuz oluşturma çağrıları, belge içeriğini ve taraf bilgilerini platforma teslim eder; farklı giriş yöntemleri aynı belge yaşam döngüsüne bağlanır.

POST/api/CreditNoteApi/AddOutgoingCreditNote

Yeni bir e-Müstahsil Makbuzu oluşturur ve sisteme kaydeder.

RequestOutgoingCreditNoteRequestModel
ResponseOutgoingCreditNoteAddResponseModel{ CreditNoteNumber, Ettn, HasError, Errors[] }
POST/api/CreditNoteApi/AddOutgoingCreditNoteByUbl

Hazır UBL CreditNote XML'i ile makbuz oluşturur.

RequestCreditNoteUblRequestModel
ResponseOutgoingCreditNoteAddResponseModel
POST/api/CreditNoteApi/AddOutgoingCreditNoteByExcel

Excel dosyasındaki birden fazla satırı toplu olarak işler; bu modüle özgüdür.

RequestExcelFileRequestModel
ResponseList<OutgoingCreditNoteAddExcelResponseModel> — satır başına ayrı sonuç
POST/api/CreditNoteApi/PreviewOutgoingCreditNote

Makbuzu kaydetmeden önce önizleme yapar. Doğrulama ve format kontrollerini içerir.

RequestOutgoingCreditNoteRequestModel
ResponseOutgoingCreditNotePreviewResponseModel{ CreditNotePdfFileBytes, HasError, Errors[] }

Güncelleme

Güncelleme işlemleri, belge kesinleşmeden önceki düzeltme ihtiyacını karşılar; imza ve rapor durumu bu işlemin doğal sınırını belirler.

POST/api/CreditNoteApi/UpdateOutgoingCreditNote

Mevcut bir makbuzu JSON model ile günceller.

RequestOutgoingCreditNoteRequestModel (Id veya UUId zorunlu)
ResponseOutgoingCreditNoteUpdateResponseModel{ CreditNoteNumber, Ettn, HasError, Errors[] }
POST/api/CreditNoteApi/UpdateOutgoingCreditNoteByUbl

Mevcut bir makbuzu UBL XML ile günceller.

RequestCreditNoteUblRequestModel
ResponseOutgoingCreditNoteUpdateResponseModel{ CreditNoteNumber, Ettn, HasError, Errors[] }

İptal

İptal çağrısı, düzenlenmiş makbuzun durumuna göre değerlendirilir; platform yalnızca iptal için uygun belgelerde süreci başlatır.

POST/api/CreditNoteApi/CancelOutgoingCreditNote

Yalnızca Signed durumundaki bir makbuzu iptal eder.

Ön-koşulBelge Signed durumunda olmalı
RequestCreditNoteCancelRequestModel{ Id, CreditNoteExternalId, Ettn, CreditNoteNumber, EArchiveStatus, EArchiveCancelDescription }
Responsebool

Sorgulama & Görüntüleme

Sorgulama uçları, oluşturulmuş belgelerin durumunu, görüntüleme çıktısını ve teknik paket bilgisini aynı referans altında toplar.

GET/api/CreditNoteApi/GetOutgoingCreditNote?id={ETTN}

ETTN (UUId) ile tek bir makbuzun detayını getirir. Belgenin tüm alanları döner.

Requestid — string, ETTN/GUID
ResponseOutgoingCreditNoteResponseModel
POST/api/CreditNoteApi/GetCreditNoteGridList

UI grid ekranı için sayfalanmış makbuz listesi döner.

RequestSearchUIRequestModel<OutgoingCreditNoteListRequestModel>
ResponseSearchResponseModel<OutgoingCreditNoteGridResponseModel>
POST/api/CreditNoteApi/GetGlobalSearchCreditNoteList

Global arama ekranı için makbuz listesi döner.

RequestSearchUIRequestModel<GlobalSearchRequestModel>
ResponseSearchResponseModel<OutgoingCreditNoteGridResponseModel>
POST/api/CreditNoteApi/GetOutgoingCreditNoteList

Makbuz özet bilgilerini içeren liste. Entegratör sorgusu için uygundur.

RequestSearchRequestModel<OutgoingCreditNoteGetRequestModel>
ResponseSearchResponseModel<OutgoingCreditNoteSummaryResponseModel>
POST/api/CreditNoteApi/GetOutgoingCreditNoteLog

Belge üzerindeki işlem geçmişini (log kayıtlarını) listeler.

RequestSearchRequestModel<CreditNoteLogRequestModel>
ResponseSearchResponseModel<CreditNoteLogResponseModel>
POST/api/CreditNoteApi/GetOutgoingCreditNoteView

Belgenin HTML görüntüsünü döner (iframe içinde gösterim için).

RequestCreditNoteViewRequestModel{ Ettn, IsRead }
ResponseCreditNoteViewResponseModel{ CreditNoteHtmlView }
POST/api/CreditNoteApi/OutgoingCreditNoteIsRead

Belgeyi okundu olarak işaretler.

RequestCreditNoteViewRequestModel{ Ettn, IsRead }
Responsebool
POST/api/CreditNoteApi/GetOutgoingCreditNotePdf

Belgenin PDF formatındaki görselini döner.

RequestCreditNotePdfRequestModel{ CreditNoteEttns: ["ettn1", "ettn2"...] }
ResponseCreditNotePdfResponseModel{ CreditNotePdfFileBytes } (base64)
POST/api/CreditNoteApi/GetOutgoingCreditNoteDocumentPackage

Belge paketini (XML/PDF) getirir.

RequestGlobalDocumentPreviewRequestModel
ResponseDocumentPreviewResponseModel
POST/api/CreditNoteApi/GetOutgoingCreditNoteXmlList

Ham UBL XML listesini getirir.

RequestOutgoingCreditNoteXmlRequestModel
ResponseOutgoingCreditNoteXmlResponseModel
POST/api/CreditNoteApi/GetOutgingCreditNotePrefixList

Belge numarası önek listesini getirir.

RequestNumberPrefixRequestModel
ResponseIList<NumberPrefixResponseModel>

Alt Modeller

Ekleme ve güncelleme çağrılarında geçen ürün kalemi, vergi/kesinti ve taraf alt modelleri burada tek başlık altında toplanır.

CreditNoteLine

Ürün kalemi bilgisi — makbuzda satın alınan her tarımsal ürün için tek bir satır oluşturulur. En az bir kalem zorunludur; birden fazla ürün aynı makbuzda ayrı satırlar olarak gönderilebilir.

AlanTipAçıklama
InvoiceLineExternalIdstringSatırın dış sistemdeki referansı
CreditedQuantityobjectMiktar + birim kodu
LineExtensionAmountdecimalSatır toplamı
ItemobjectÜrün/hizmet adı
PricedecimalBirim fiyat
TaxTotalobjectSatır vergi/kesinti bilgisi
WithholdingTaxTotalarraySatır tevkifat bilgisi (varsa)

TaxTotal Kesinti Kodları

TaxTotal, standart vergi alt toplamlarının yanında e-Müstahsil Makbuzu'na özgü kesinti kodlarını da taşıyabilir. Excel ile içe aktarma ve barkod üretimi, GV stopajı, borsa tescil, SGK prim ve mera fonu tutarlarını TaxSubtotal[].TaxCategory.TaxScheme.TaxTypeCode değerinden ayrıştırır.

TaxTypeCodeNameKullanım
0003GV STOPAJIGelir vergisi stopajı
8001BORSA TES.ÜC.Borsa tescil kesintisi
SGK_PRIMSGK PRIM KESINTISISGK prim kesintisi
9040MERA FONUMera fonu kesintisi

WithholdingTaxTotal

Tevkifat bilgisi — hem belge (OutgoingCreditNoteRequestModel.WithholdingTaxTotal) hem satır (CreditNoteLineRequestModel.WithholdingTaxTotal) seviyesinde doldurulabilen, tekrar eden bir dizidir. Bu alan kullanıldığında PayableAmount tevkifat etkisini yansıtacak şekilde hesaplanmalıdır.

AlanTipAçıklama
TaxAmountdecimalToplam tevkifat tutarı
TaxSubtotal[].TaxableAmountdecimalTevkifata tabi matrah
TaxSubtotal[].TaxAmountdecimalAlt kalem tevkifat tutarı
TaxSubtotal[].PercentdecimalTevkifat oranı (%)
TaxSubtotal[].TaxCategory.TaxScheme.NamestringÖrn. GV STOPAJI
TaxSubtotal[].TaxCategory.TaxScheme.TaxTypeCodestringÖrn. 0003

Taraflar

AccountingSupplierParty (çiftçi) ve AccountingCustomerParty (alıcı firma) aynı genel Party modelini paylaşır; ayırt edici alan PartyIdentifications içindeki SchemeId'dir.

TarafSchemeIdKimlik AlanıAd Alanı
AccountingSupplierParty (çiftçi)TCKNPartyIdentifications[].IdPerson (gerçek kişi ad/soyad)
AccountingCustomerParty (alıcı)VKNPartyIdentifications[].IdPartyName (tüzel kişi unvanı)

Enum Değerleri

API modellerinde kullanılan sabit değerler burada kısa bağlamıyla yer alır; enumların business anlamı, hata kodlarıyla ilişkisi ve validasyon referansları Teknik Referans sayfasında takip edilir.

Response — Belge Detay

GetOutgoingCreditNote yanıtındaki (OutgoingCreditNoteResponseModel) başlıca alanlar:

AlanTipAçıklama
IdintBelge Id
UUIdstringETTN
CreditNoteExternalIdstringDış sistem referansı
CreditNoteNumberstringBelge no
ProfileId / CreditNoteTypeCodestring / stringSabit: EARSIVBELGE / MUSTAHSILMAKBUZ
DocumentCurrencyCodestringPara birimi
IssueDateDateTimeDüzenleme tarihi
AccountingSupplierPartyName / AccountingSupplierVknTcknstring / stringÇiftçi adı ve kimlik no
AccountingCustomerPartyName / AccountingCustomerVknTcknstring / stringAlıcı firma adı ve VKN
PayableAmountdecimalÖdenecek tutar
TaxExclusiveAmount / TaxInclusiveAmountdecimal / decimalKDV hariç/dahil tutar
TaxTotalAmountdecimalToplam vergi/kesinti
WithholdingTaxTotalAmountdecimalToplam tevkifat
TaxTotalarrayVergi ve kesinti detayı
WithholdingTaxTotalarrayTevkifat detayı (varsa)
CreditNoteLinearrayÜrün kalemleri
OutgoingCreditNoteStatusstringBelge durumu
EArchiveStatusint1=Valid, 2=Cancelled
SigningTimeDateTime?İmza zamanı
EArchiveReportStatus / EArchiveReportDescriptionint / stringGİB rapor durumu ve açıklaması
EArchiveCancelDate / EArchiveCancelDescriptionDateTime? / stringİptal bilgileri (varsa)
IsRead / IsReadDatebool / DateTime?Okundu bilgisi