# InvoiceInfo

### UUID

> It is the unique number in the Guid data type that will be used to track the invoice.

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

{% hint style="info" %}
If the field is sent empty, a new UUID will be added to the invoice by the system.
{% endhint %}

### TemplateUUID

> This field is used for the UUID of the XSLT that will be added to the invoice. XSLT of the UUID is added to the invoice.

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

{% hint style="info" %}

* If the TemplateUUID field is full and the TemplateBase64String field is empty, the design of the entered TemplateUUID information will be added to the invoice.
* If the TemplateBase64String field is full, TemplateBase64String information will be added as the design of the invoice, regardless of the TemplateUUID field.
* If the TemplateUUID and TemplateBase64String fields are left blank, the default design will be added to the invoice.
  {% endhint %}

### TemplateBase64String

> Base64 of the design to be added to the invoice is added here.

{% hint style="info" %}

* If the TemplateUUID field is full and the TemplateBase64String field is empty, the design of the entered TemplateUUID information will be added to the invoice.
* If the TemplateBase64String field is full, TemplateBase64String information will be added as the design of the invoice, regardless of the TemplateUUID field.
* If the TemplateUUID and TemplateBase64String fields are left blank, the default design will be added to the invoice.
  {% endhint %}

### InvoiceType

> It is an object of enum data type. It can take the following values. The selection should be made according to the invoice type.

```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" %}
In case the invoice type is "ISTISNA"; The VAT exemption reason must be entered in the "KDVExemptionReasonCode" field in the TaxExemptionReasonInfo object. The values it can take are stated under VAT Exemption Reasons in the code lists section.
{% endhint %}

{% hint style="info" %}
If the invoice type is "IHRACKAYITLI"; The Export registered invoice reason must be entered in the "KDVExemptionReasonCode" field in the TaxExemptionReasonInfo object. The possible values are specified under Export Registered Invoice Reasons in the code lists section.
{% endhint %}

### InvoiceSerieOrNumber

> You can enter the 16-digit e-Invoice number and 3-digit serial information in this field. If you enter a 16-digit invoice number, no action will be taken and the value you entered will be determined as the invoice number. If you enter a 3-digit series, a number is generated based on this series defined on the portal.

```javascript
//Manual Invoice Number
EInvoice.InvoiceInfo.InvoiceSerieOrNumber = "EFT2022000000001";

//Series Information
EInvoice.InvoiceInfo.InvoiceSerieOrNumber = "EFT";
```

{% hint style="info" %}
The next number is automatically assigned to the EFT series registered in the portal.
{% endhint %}

### IssueDate

> Invoice date and time are entered in this field.

```javascript
EInvoice.InvoiceInfo.IssueDate = "2022-01-23T10:20:39.846Z";
```

### CurrencyCode

> This field is where the currency of the invoice will be entered. The possible values are specified under Currency Codes in the code lists section.

```javascript
EInvoice.InvoiceInfo.CurrencyCode = "TRY";
```

### ExchangeRate

> This field is where the exchange rate will be entered when the invoice is issued in a currency other than Turkish Lira. Exchange rate information will appear on the invoice.

### InvoiceProfile

> It is an object of enum data type. It can take the following values. This is the field where the scenario of the e-invoice will be specified.

```csharp
public enum InvoiceProfile 
{ 
        TEMELFATURA = 1,
        TICARIFATURA = 2,
        IHRACAT = 3,
        YOLCUBERABERFATURA = 4,
        EARSIVFATURA = 5,
        KAMU = 6,
        HKS = 7
}
```

{% tabs %}
{% tab title="BASIC INVOICE" %}

> The invoice is automatically accepted without waiting for a response from the recipient. In case of rejection, the buyer must issue a return invoice.
> {% endtab %}

{% tab title="COMMERCIAL INVOICE" %}

> In this invoice scenario, the buyer can return an ACCEPT/REJECT response to the invoice within 8 days. If there is no response from the buyer within 8 days, the invoice is automatically accepted.
> {% endtab %}

{% tab title="EXPORT" %}

> This is the scenario to be used for goods export invoices annexed to the Customs Declaration. The invoice is automatically transmitted to GTB. If accepted, the 23-digit reference number is sent to the system by GTB.
> {% endtab %}

{% tab title="EARSIVINVOICE" %}

> This is the mandatory scenario to be used for E-Archive invoices.
> {% endtab %}

{% tab title="PUBLIC" %}

> This is the scenario that should be used for e-Invoices to be issued to Public Institutions.
> {% endtab %}
> {% endtabs %}

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

### DespatchDocumentReference

> This field is where the delivery note information of the invoice can be entered. More than one delivery note information can be entered.

```csharp
public class KeyValue
{
  //Despatch date
  public DateTime IssueDate { get; set; }

  //Despatchnumber
  public string Value { get; set; }
}
```

### OrderReference

> This field is where order information for the invoice can be entered.

```csharp
public class KeyValue
{
  //Order date
  public DateTime IssueDate { get; set; }

  //Order number
  public string Value { get; set; }
}
```

### OrderReferenceDocument

> This field is where the order document information for the invoice can be entered.

```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:** The value of the added file or other information can be entered here.

> **IssueDate:** The date of the attached document. (Note: It can be entered as the invoice date even if it is not used as a document but only as a value entry.)

> **DocumentType:** The type or fixed value of the added document can be written in free text format.

> **DocumentTypeCode:** The type or fixed value of the added document can be written as free text.

> **Attachment:** If a file is to be entered, the file can be entered into this field.
>
> * **Base64Data:** The Base64 encoded version of the added file is entered here.
> * **MimeCode:** The MimeCode value of the added file is entered here. (Example: image/png)
> * **FileName:** The name of the added file can be entered here.

{% hint style="info" %}
Only files of type 'doc, docx, ppt, pptx, pdf, jpg, jpeg, png' can be uploaded.
{% endhint %}

### AdditionalDocumentReferences

> Only files of type 'doc, docx, ppt, pptx, pdf, jpg, jpeg, png' can be uploaded.

```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:** The value of the added file or other information can be entered here.

> **IssueDate:** The date of the added document. (Note: If not specifically a document, it can also be entered as the invoice date.)

> **DocumentType:** The type of the added document or fixed value can be written as free text.

> **DocumentTypeCode:** The type or fixed value of the added document can be written as free text.

> **Attachment:** If a file is to be entered, the file can be entered into this field.<br>
>
> * **Base64Data:** The Base64 encoded version of the added file is entered here.
> * **MimeCode:** The MimeCode value of the added file is entered here. (Example: image/png)
> * **FileName:** The name of the added file can be entered here.

{% hint style="info" %}
Only files of type 'doc, docx, ppt, pptx, pdf, jpg, jpeg, png' can be uploaded.
{% endhint %}

### TaxExemptionReasonInfo

> This field is where you can enter the reasons for tax exemptions for 0% VAT or Special Consumption Tax (ÖTV) found on the invoice. The possible values are listed under the "Tax Exemption Reasons" section in the code lists.

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

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

### PaymentTermsInfo

> This is the field where payment terms information will be entered.

```csharp
public class PaymentTermsDto
{
    public decimal Percent { get; set; }
    public decimal Amount { get; set; }
    public string Note { get; set; }
}
```

> **Percent:** The penalty rate to be applied in case of late payment is entered numerically.

> **Amount:** The payment amount can be entered numerically.

> **Note:** A free-text description can be entered regarding the payment terms.

### PaymentMeansInfo

> This is the field where payment method information will be entered.

```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:** The code for the payment method is entered here. Possible values are specified under the "Payment Method Codes" section in the code lists.

> **ChannelCode:** This is the field where the payment channel code will be entered. Possible values are specified under the "Payment Method Codes" section in the code lists.

> **DueDate:** The deadline for payment is entered in the year-month-day format

> **PayeeFinancialAccountID:** The account to which payment will be made is entered here.

> **Note:** Comments related to the payment can be entered as free text.

### OKCInfo

> This is the field where information about the payment recording device and receipt will be entered.

```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:** The receipt number is entered.

> **IssueDate:** The receipt date is entered.

> **Time:** The receipt time is entered.

> **ZNo:** The Z Report number is entered.

> **EndPointID:** The ÖKC serial number is entered.

> **DocumentDescription:** The receipt type is entered. Possible values are specified under the "POS Receipt Types" section in the code lists.

### ReturnInvoiceInfo

> This is the field where information about returned invoices can be entered. Multiple entries can be made.

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

> This is the field where the type of invoice is entered if it is related to the Social Security Institution (SGK). Possible values are specified under the "SGK Invoice Types" section in the code lists.

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

### InvoicePeriod

> If the type of invoice is related to the Social Security Institution (SGK), this is the field where the 'Period Start and End Dates' will be entered.

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

> If the type of invoice is related to the Social Security Institution (SGK), this is the field where the 'SGK Company Name, Document Number, and SGK Company Code' will be entered.

```csharp
public class SGKInfoDto
{
     public string RegisterName { get; set; }
     public string DocumentNumber { get; set; }
     public string RegisterCode { get; set; }
}
```

> **RegisterName:** The SGK company name is entered.

> **DocumentNumber:** The document number is entered.

> **RegisterCode:** The SGK company code is entered.

### Expenses

> This field is used when you want to add an extra charge to the invoice.

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

> **ExpenseType:** The type of expense is entered.

> **Percent:** The percentage of the cost is entered.

> **Amount:** The amount of the expense excluding VAT is entered.

### InvesmentIncentive

> It is used on invoices related to investment incentives.

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

> **DocumentNumber:** The investment incentive certificate number is entered.

> **DocumentDate:** The date of the investment incentive certificate is entered.

### ESUReportInfo

> Used when the invoice type is **SARJ** in energy invoices.

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

> **ID:** The ESU report ID information is entered.

> **IssueDate:** The ESU report date is entered.

### ShipmentNumber

> In the IDIS (Construction Iron Monitoring System) invoice scenario, the Shipment Number is entered in this field.

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

### InsuranceValueAmount

> In export invoices, the insurance amount is entered in this field. The entered insurance amount increases the invoice total.

### DeclaredForCarriageValueAmount

> In export invoices, the freight charge is entered in this field. The entered freight amount increases the invoice total.


---

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