InvoiceInfo
Bu nesne, fatura üst bilgilerini barındıran nesnedir. Nesne ile ilgili detaylar aşağıda anlatılmıştır.
UUID
Guid veri tipinde faturanın takibi için kullanılacak unique numaradır.
EInvoice.InvoiceInfo.UUID = 'b8787efb-639d-4efc-85b5-953bf1dbaac0';
TemplateUUID
Bu alan faturaya eklenecek olan XSLT’nin UUID'si için kullanılır. UUID'ye ait XSLT faturaya eklenir.
EInvoice.InvoiceInfo.TemplateUUID = '94e8b735-1361-4d6f-a4a6-3745b62239c8';
TemplateBase64String
Faturaya eklenecek tasarımın Base64'ü buraya eklenir.
InvoiceType
Enum veri tipinde bir nesnedir. Aşağıdaki bulunan değerleri alabilir. Fatura tipine göre seçim yapılmalıdır.
public enum InvoiceType
{
SATIS = 0,
IADE = 1,
ISTISNA = 2,
TEVKIFAT = 3,
IHRACKAYITLI = 4,
IPTAL = 5,
OZELMATRAH = 6,
SGK = 7,
TEVKIFATIADE = 8,
KOMISYONCU = 9,
HKSSATIS = 10,
HKSKOMISYONCU = 11,
KONAKLAMAVERGISI = 12
}
EInvoice.InvoiceInfo.InvoiceType = 0;
InvoiceSerieOrNumber
Bu alana 16 haneli e-Fatura numarasını, 3 haneli seri bilgisini girebilirsiniz. 16 haneli fatura numarası girmeniz durumunda herhangi bir işlem yapılmaz fatura numarası olarak girdiğiniz değer belirlenir. Eğer 3 haneli seri girerseniz portal üzerinde tanımlı olan bu seri üzerinden numara üretilir.
//Manuel Fatura Numarası
EInvoice.InvoiceInfo.InvoiceSerieOrNumber = "EFT2022000000001";
//Seri Bilgisi
EInvoice.InvoiceInfo.InvoiceSerieOrNumber = "EFT";
IssueDate
Bu alana fatura tarihi ve saati girilir.
EInvoice.InvoiceInfo.IssueDate = "2022-01-23T10:20:39.846Z";
CurrencyCode
Bu alan faturanın para biriminin girileceği alandır. Alabileceği değerler kod listeleri bölümünde Para Birim Kodları altında belirtilmiştir.
EInvoice.InvoiceInfo.CurrencyCode = "TRY";
ExchangeRate
Bu alan faturanın Türk lirasından farklı bir para biriminde kesildiğinde döviz kurunun girileceği alandır. Fatura üzerinde kur bilgisi görünecektir.
InvoiceProfile
Enum veri tipinde bir nesnedir. Aşağıdaki bulunan değerleri alabilir. E-Faturanın senaryosunun belirtileceği alandır.
public enum InvoiceProfile
{
TEMELFATURA = 1,
TICARIFATURA = 2,
IHRACAT = 3,
YOLCUBERABERFATURA = 4,
EARSIVFATURA = 5,
KAMU = 6,
HKS = 7
}
Fatura alıcısı tarafından herhangi bir yanıt beklemeden otomatik olarak kabul edilir. Reddedilmesi gereken durumda alıcının iade faturası kesmesi gerekir.
EInvoice.InvoiceInfo.InvoiceProfile = 2;
DespatchDocumentReference
Bu alan faturaya ait irsaliye bilgilerinin girilebileceği alandır. Birden fazla irsaliye bilgisi girilebilir.
public class KeyValue
{
//İrsaliye Tarihi
public DateTime IssueDate { get; set; }
//İrsaliye Numarası
public string Value { get; set; }
}
OrderReference
Bu alan faturaya ait sipariş bilgilerinin girilebileceği alandır.
public class KeyValue
{
//Sipariş Tarihi
public DateTime IssueDate { get; set; }
//Sipariş Numarası
public string Value { get; set; }
}
OrderReferenceDocument
Bu alan faturaya ait sipariş belgesi bilgilerinin girilebileceği alandır.
public class AdditionalDocumentReferenceDto
{
public string ID { get; set; }
public DateTime? IssueDate { get; set; }
public string DocumentType { get; set; }
public string DocumentTypeCode { get; set; }
public AttachmentDto Attachment { get; set; }
}
public class AttachmentDto
{
public string Base64Data { get; set; }
public string MimeCode { get; set; }
public string FileName { get; set; }
}
ID: Eklenen dosyanın yada diğer bilginin değeri buraya girilebilir.
IssueDate: Eklenen belgenin tarihi. (Not: Bir belge değil sadece değer girişi olarak kullanılacaksa da fatura tarihi olarak girilebilir.)
DocumentType: Eklenen belgenin tipi veya sabit değer serbest metin şeklinde yazılabilir.
DocumentTypeCode: Eklenen belgenin tipi veya sabit değer serbest metin şeklinde yazılabilir.
Attachment: Eğer bir dosya girilecekse, dosya bu alana girilebilir.
Base64Data: Eklenen dosyanın Base64 encode edilmiş hali buraya girilir.
MimeCode: Eklenen dosyanın MimeCode değeri buraya girilir. (Örn : image/png)
FileName: Eklenen dosyanın adı buraya girilebilir.
AdditionalDocumentReferences
Fatura içerisine ek dosya yada farklı bilgileri eklemek için kullanabileceğiniz alandır. Birden fazla dosya girilebilir.
public class AdditionalDocumentReferenceDto
{
public string ID { get; set; }
public DateTime? IssueDate { get; set; }
public string DocumentType { get; set; }
public string DocumentTypeCode { get; set; }
public AttachmentDto Attachment { get; set; }
}
public class AttachmentDto
{
public string Base64Data { get; set; }
public string MimeCode { get; set; }
public string FileName { get; set; }
}
ID: Eklenen dosyanın yada diğer bilginin değeri buraya girilebilir.
IssueDate: Eklenen belgenin tarihi. (Not: Bir belge değil sadece değer girişi olarak kullanılacaksa da fatura tarihi olarak girilebilir.)
DocumentType: Eklenen belgenin tipi veya sabit değer serbest metin şeklinde yazılabilir.
DocumentTypeCode: Eklenen belgenin tipi veya sabit değer serbest metin şeklinde yazılabilir.
Attachment: Eğer bir dosya girilecekse, dosya bu alana girilebilir.
Base64Data: Eklenen dosyanın Base64 encode edilmiş hali buraya girilir.
MimeCode: Eklenen dosyanın MimeCode değeri buraya girilir. (Örn : image/png)
FileName: Eklenen dosyanın adı buraya girilebilir.
TaxExemptionReasonInfo
Bu alan faturada bulunan 0 KDV veya ÖTV'lerin vergi muafiyet sebeplerini girebileceğiniz alandır. Alabileceği değerler kod listeleri bölümünde KDV Muafiyet Sebepleri / ÖTV Muafiyet Sebepleri altında belirtilmiştir.
public class TaxExemptionReasonInfoDto
{
public string KDVExemptionReasonCode { get; set; }
public string OTVExemptionReasonCode { get; set; }
}
EInvoice.InvoiceInfo.TaxExemptionReasonInfo = {
KDVExemptionReasonCode: "351",
OTVExemptionReasonCode: "151"
};
PaymentTermsInfo
Ödeme koşulları bilgisinin girileceği alandır.
public class PaymentTermsDto
{
public decimal Percent { get; set; }
public decimal Amount { get; set; }
public string Note { get; set; }
}
Percent: Ödemenin gecikmesi durumunda uygulanacak ceza oranı numerik olarak girilir.
Amount: Ödeme tutarı numerik olarak girilebilir.
Note: Ödeme koşulları ile ilgili açıklama serbest metin olarak girilir.
PaymentMeansInfo
Ödeme Şekli bilgilerinin girileceği alandır.
public class PaymentMeansDto
{
public string Code { get; set; }
public string ChannelCode { get; set; }
public DateTime DueDate { get; set; }
public string PayeeFinancialAccountID { get; set; }
public string Note { get; set; }
}
Code: Ödeme şeklinin kodu girilir. Alabileceği değerler kod listeleri bölümünde Ödeme Şekli Kodları altında belirtilmiştir.
ChannelCode: Ödeme kanalı kodunun girileceği alandır. Alabileceği değerler kod listeleri bölümünde Ödeme Şekli Kodları altında belirtilmiştir.
DueDate: Son ödeme günü yıl-ay-gün formatında girilir.
PayeeFinancialAccountID: Ödeme yapılacak hesap girilir.
Note: Ödeme ile ilgili açıklamalar serbest metin olarak girilir.
OKCInfo
Ödeme kaydedici cihaz ve fiş bilgisinin girileceği alandır.
public class OKCInfoDto
{
public string ID { get; set; }
public DateTime IssueDate { get; set; }
public string Time { get; set; }
public string ZNo { get; set; }
public string EndPointID { get; set; }
public string DocumentDescription { get; set; }
}
ID: Fiş numarası girilir.
IssueDate: Fiş tarihi girilir.
Time: Fiş saati girilir.
ZNo: Z Rapor numarası girilir.
EndPointID: ÖKC Seri numarası girilir.
DocumentDescription: Fiş tipi girilir. Alabileceği değerler kod listeleri bölümünde OKC Fiş Tipleri altında belirtilmiştir.
ReturnInvoiceInfo
İade edilen faturaların bilgilerinin girileceği alandır. Birden fazla giriş yapılabilir.
public class ReturnInvoiceInfoDto
{
public string InvoiceNumber { get; set; }
public DateTime IssueDate { get; set; }
}
EInvoice.InvoiceInfo.ReturnInvoiceInfo = [
{ InvoiceNumber:"EFT0000000000001", IssueDate: "2022-03-05" },
{ InvoiceNumber:"EFT0000000000002", IssueDate: "2022-03-06" },
];
AccountingCost
Faturanın tipi SGK olması durumunda SGK Fatura tipinin girileceği alandır. Alabileceği değerler kod listeleri bölümünde SGK Fatura altında belirtilmiştir.
EInvoice.InvoiceInfo.AccountingCost = "SAGLIK_MED";
InvoicePeriod
Faturanın tipi SGK olması durumunda 'Dönem Başlangıç ve Bitiş Tarihinin' girileceği alandır.
public class InvoicePeriodDto
{
public DateTime StartDate { get; set; }
public DateTime StartTime { get; set; }
public DateTime EndDate { get; set; }
public DateTime EndTime { get; set; }
}
SGKInfo
Faturanın tipi SGK olması durumunda 'SGK Şirket Adı, Dokuman Numarası ve SGK Şirket Kodunun' girileceği alandır.
public class SGKInfoDto
{
public string RegisterName { get; set; }
public string DocumentNumber { get; set; }
public string RegisterCode { get; set; }
}
RegisterName: SGK Şirket adı girilir.
DocumentNumber: Dokuman numarası girilir.
RegisterCode: SGK Şirket kodu girilir.