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';

Alanın boş gönderilmesi durumunda sistem tarafından yeni bir UUID faturaya eklenecektir.

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';
  • TemplateUUID alanının dolu ve TemplateBase64String alanının boş olması durumunda girilen TemplateUUID bilgisine ait tasarım faturaya eklenecektir.

  • TemplateBase64String alanının dolu olması durumunda TemplateUUID alanına bakılmaksızın TemplateBase64String bilgisi faturanın tasarımı olarak eklenecektir.

  • TemplateUUID ve TemplateBase64String alanları boş geçilirse faturaya varsayılan tasarım eklenecektir.

TemplateBase64String

Faturaya eklenecek tasarımın Base64'ü buraya eklenir.

  • TemplateUUID alanının dolu ve TemplateBase64String alanının boş olması durumunda girilen TemplateUUID bilgisine ait tasarım faturaya eklenecektir.

  • TemplateBase64String alanının dolu olması durumunda TemplateUUID alanına bakılmaksızın TemplateBase64String bilgisi faturanın tasarımı olarak eklenecektir.

  • TemplateUUID ve TemplateBase64String alanları boş geçilirse faturaya varsayılan tasarım eklenecektir.

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;

Fatura tipi "ISTISNA" olması durumunda ; TaxExemptionReasonInfo nesnesinde bulunan "KDVExemptionReasonCode" alanına KDV istisna muafiyet sebebi girilmelidir. Alabileceği değerler kod listeleri bölümünde KDV Muafiyet Sebepleri altında belirtilmiştir.

Fatura tipi "IHRACKAYITLI" olması durumunda ;

TaxExemptionReasonInfo nesnesinde bulunan "KDVExemptionReasonCode" alanına İhraç kayıtlı fatura sebebi girilmelidir. Alabileceği değerler kod listeleri bölümünde İhraç Kayıtlı Fatura Sebepleri altında belirtilmiştir.

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";

Portal da kayıtlı EFT serisine otomatik olarak sıradaki numara verilir.

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.

Yalnızca ' doc, docx, ppt, pptx, pdf, jpg, jpeg, png ' Tipinde Dosyalar Yüklenebilir.

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.

Yalnızca ' doc, docx, ppt, pptx, pdf, jpg, jpeg, png ' Tipinde Dosyalar Yüklenebilir.

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.