# InvoiceInfo

### UUID

> Guid veri tipinde faturanın takibi için kullanılacak unique numaradır.

```json5
EInvoice.InvoiceInfo.UUID = 'b8787efb-639d-4efc-85b5-953bf1dbaac0';
```

{% hint style="info" %}
Alanın boş gönderilmesi durumunda sistem tarafından yeni bir UUID faturaya eklenecektir.
{% endhint %}

### TemplateUUID

> Bu alan faturaya eklenecek olan XSLT’nin UUID'si için kullanılır. UUID'ye ait XSLT faturaya eklenir.

```json5
EInvoice.InvoiceInfo.TemplateUUID = '94e8b735-1361-4d6f-a4a6-3745b62239c8';
```

{% hint style="info" %}

* TemplateUUID alanının **dolu** ve TemplateBase64String alanının <mark style="color:red;">**boş olması durumunda**</mark> girilen TemplateUUID bilgisine ait tasarım faturaya eklenecektir.
* TemplateBase64String alanının **dolu olması** durumunda TemplateUUID alanına <mark style="color:red;">**bakılmaksızın**</mark> TemplateBase64String bilgisi faturanın tasarımı olarak eklenecektir.
* TemplateUUID ve TemplateBase64String <mark style="color:red;">**alanları boş geçilirse**</mark> faturaya **varsayılan** tasarım eklenecektir.
  {% endhint %}

### TemplateBase64String

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

{% hint style="info" %}

* TemplateUUID alanının **dolu** ve TemplateBase64String alanının <mark style="color:red;">**boş olması durumunda**</mark> girilen TemplateUUID bilgisine ait tasarım faturaya eklenecektir.
* TemplateBase64String alanının **dolu olması** durumunda TemplateUUID alanına <mark style="color:red;">**bakılmaksızın**</mark> TemplateBase64String bilgisi faturanın tasarımı olarak eklenecektir.
* TemplateUUID ve TemplateBase64String <mark style="color:red;">**alanları boş geçilirse**</mark> faturaya **varsayılan** tasarım eklenecektir.
  {% endhint %}

### InvoiceType

> Enum veri tipinde bir nesnedir. Aşağıdaki bulunan değerleri alabilir. Fatura tipine göre seçim yapılmalıdır.

```csharp
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,
        SARJ = 13,
        SARJANLIK = 14,
        TEKNOLOJIDESTEK = 15,
        YTBSATIS = 16,
        YTBISTISNA = 17,
        YTBIADE = 18,
        YTBTEVKIFAT = 19,
        YTBTEVKIFATIADE = 20
 }
```

```javascript
EInvoice.InvoiceInfo.InvoiceType = 0;
```

{% hint style="info" %}
Fatura tipi <mark style="color:red;">**"ISTISNA"**</mark> 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](/kod-listeleri.md#kdv-muafiyet-sebepleri) altında belirtilmiştir.
{% endhint %}

{% hint style="info" %}
Fatura tipi <mark style="color:red;">**"IHRACKAYITLI"**</mark> 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](/kod-listeleri.md#ihrac-kayitli-kod-listesi) altında belirtilmiştir.
{% endhint %}

### 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.

```javascript
//Manuel Fatura Numarası
EInvoice.InvoiceInfo.InvoiceSerieOrNumber = "EFT2022000000001";

//Seri Bilgisi
EInvoice.InvoiceInfo.InvoiceSerieOrNumber = "EFT";
```

{% hint style="info" %}
Portal da kayıtlı EFT serisine otomatik olarak sıradaki numara verilir.
{% endhint %}

### IssueDate

> Bu alana fatura tarihi ve saati girilir.

```javascript
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ı](/kod-listeleri.md#para-birim-kodlari) altında belirtilmiştir.

```javascript
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.

```csharp
public enum InvoiceProfile 
{ 
        TEMELFATURA = 1,
        TICARIFATURA = 2,
        IHRACAT = 3,
        YOLCUBERABERFATURA = 4,
        EARSIVFATURA = 5,
        KAMU = 6,
        HKS = 7,
        ENERJI = 8,
        ILAC_TIBBICIHAZ = 9,
        OZELFATURA = 10,
        YATIRIMTESVIK = 11
}
```

{% tabs %}
{% tab title="TEMELFATURA" %}

> 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.
> {% endtab %}

{% tab title="TICARIFATURA" %}

> Bu fatura senaryosunda alıcı faturaya 8 gün içerisinde KABUL/RED yanıtı dönebilir. Eğer 8 Gün içerisinde alıcıdan herhangi bir yanıt gelmezse fatura otomatik olarak kabul edilir.
> {% endtab %}

{% tab title="IHRACAT" %}

> Gümrük Beyannamesi ekinde yer alan mal ihracı faturaları için kullanılacak senaryodur. Fatura GTB ye otomatik olarak iletilir Kabul olması durumunda 23 haneli referans numarası sisteme GTB tarafından gönderilir.
> {% endtab %}

{% tab title="EARSIVFATURA" %}

> E-Arşiv faturaları için kullanılması zorunlu olan senaryodur.
> {% endtab %}

{% tab title="KAMU" %}

> Kamu Kurumlarına kesilecek e-Fatura için kullanılması gereken senaryodur.
> {% endtab %}
> {% endtabs %}

```
EInvoice.InvoiceInfo.InvoiceProfile = 2;
```

### DespatchDocumentReference

> Bu alan faturaya ait irsaliye bilgilerinin girilebileceği alandır. Birden fazla irsaliye bilgisi girilebilir.

```csharp
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.

```csharp
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.

```csharp
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.<br>
>
> * **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.

{% hint style="info" %}
Yalnızca ' doc, docx, ppt, pptx, pdf, jpg, jpeg, png ' Tipinde Dosyalar Yüklenebilir.
{% endhint %}

### AdditionalDocumentReferences

> Fatura içerisine ek dosya yada farklı bilgileri eklemek için kullanabileceğiniz alandır. Birden fazla dosya girilebilir.

```csharp
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.<br>
>
> * **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.

{% hint style="info" %}
Yalnızca ' doc, docx, ppt, pptx, pdf, jpg, jpeg, png ' Tipinde Dosyalar Yüklenebilir.
{% endhint %}

### 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](/kod-listeleri.md#kdv-muafiyet-sebepleri) / [ÖTV Muafiyet Sebepleri](/kod-listeleri.md#oetv-muafiyet-sebepleri) altında belirtilmiştir.

```csharp
public class TaxExemptionReasonInfoDto
{
    public string KDVExemptionReasonCode { get; set; }
    public string OTVExemptionReasonCode { get; set; }
}
```

```javascript
EInvoice.InvoiceInfo.TaxExemptionReasonInfo = {
    KDVExemptionReasonCode: "351",
    OTVExemptionReasonCode: "151"
};
```

### PaymentTermsInfo

> Ödeme koşulları bilgisinin girileceği alandır.

```csharp
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.

```csharp
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.

```csharp
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.

```csharp
public class ReturnInvoiceInfoDto
{
    public string InvoiceNumber { get; set; }
    public DateTime IssueDate { get; set; }
}
```

```javascript
EInvoice.InvoiceInfo.ReturnInvoiceInfo = [
    { InvoiceNumber:"EFT0000000000001", IssueDate: "2022-03-05" },
    { InvoiceNumber:"EFT0000000000002", IssueDate: "2022-03-06" },
];
```

### AccountingCost

> Faturanın tipi <mark style="color:red;">**SGK**</mark> 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.

```javascript
EInvoice.InvoiceInfo.AccountingCost = "SAGLIK_MED";
```

### InvoicePeriod

> Faturanın tipi <mark style="color:red;">**SGK**</mark> olması durumunda **'Dönem Başlangıç ve Bitiş Tarihinin'** girileceği alandır.&#x20;

```csharp
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 <mark style="color:red;">**SGK**</mark> olması durumunda **'SGK Şirket Adı, Dokuman Numarası ve SGK Şirket Kodunun'** girileceği alandır.

```csharp
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.

### Expenses

> Faturada masral eklenmek istenildiğinde kullanılan alandır.

```csharp
public class ExpensesDto
{
    public ExpenseType ExpenseType { get; set; }
    public decimal Percent { get; set; }
    public decimal Amount { get; set; }
 }
```

> **ExpenseType:** Masraf türü girilir.

> **Percent:** Masraf yüzdesi girilir.

> **Amount:** Masrafın KDV hariç tutarı girilir.

### InvesmentIncentive

> Yatırım teşvik ile ilgili faturalarda kullanılır.

```csharp
public class InvestmentIncentiveDto
{
    public string DocumentNumber { get; set; }
    public DateTime DocumentDate { get; set; }
}
```

> **DocumentNumber:** Yatırım teşvik belge numarası girilir.

> **DocumentDate:** Yatırım teşvik belgesinin tarihi girilir.

### ESUReportInfo

> Enerji faturasında fatura tipi **SARJ** iken kullanılır.

```csharp
public class ESUReportInfoDto
{
    public string ID { get; set; }
    public DateTime IssueDate { get; set; }
}
```

> **ID:** ESU rapor ID bilgisi girilir.

> **IssueDate:** ESU rapor tarihi girilir.

### ShipmentNumber

> IDIS(İnşaat Demiri İzleme Sistemi) fatura senaryosun da **Sevkiyat Numarası** bu alana girilir.

```javascript
EInvoice.InvoiceInfo.ShipmentNumber = "SE-1234567";
```

### InsuranceValueAmount

> İhracat faturasında **sigorta bedeli** bu alana girilir. Girilen sigorta bedeli, fatura tutarını artırır.

### DeclaredForCarriageValueAmount

> İhracat faturasında **navlun bedeli** bu alana girilir. Girilen navlun bedeli, fatura tutarını artırır.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.nilvera.com/nilvera-model/einvoice/invoiceinfo.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
