# BillInfo

```csharp
public class BillInfoDto
{
    public Guid UUID { get; set; }
    public Guid TemplateUUID { get; set; }
    public string TemplateBase64String { get; set; }
    public string BillSerieOrNumber { get; set; }
    public DateTime IssueDate { get; set; } 
    public string CurrencyCode { get; set; }
    public decimal? ExchangeRate { get; set; }
    public RelatedDocument RelatedDocument { get; set; }
    public ValidityPeriod ValidityPeriod { get; set; }
}
```

### UUID

<mark style="color:blue;">`Guid`</mark>  <mark style="color:orange;">`Seçimli`</mark>

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

```javascript
Bill.BillInfo.UUID = 'b8787efb-639d-4efc-85b5-953bf1dbaac0';
```

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

### TemplateUUID

<mark style="color:blue;">`Guid`</mark>  <mark style="color:orange;">`Seçimli`</mark>

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

```javascript
Bill.BillInfo.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 adiyona eklenecektir.
* TemplateBase64String alanının **dolu olması** durumunda TemplateUUID alanına <mark style="color:red;">**bakılmaksızın**</mark> TemplateBase64String bilgisi adisyon tasarımı olarak eklenecektir.
* TemplateUUID ve TemplateBase64String <mark style="color:red;">**alanları boş geçilirse**</mark> adisyona **varsayılan** tasarım eklenecektir.
  {% endhint %}

### TemplateBase64String

<mark style="color:blue;">`string`</mark>  <mark style="color:orange;">`Seçimli`</mark>

> Adisyona 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 adisyona eklenecektir.
* TemplateBase64String alanının **dolu olması** durumunda TemplateUUID alanına <mark style="color:red;">**bakılmaksızın**</mark> TemplateBase64String bilgisi adisyon tasarımı olarak eklenecektir.
* TemplateUUID ve TemplateBase64String <mark style="color:red;">**alanları boş geçilirse**</mark> adisyona **varsayılan** tasarım eklenecektir.
  {% endhint %}

### BillSerieOrNumber

<mark style="color:blue;">`string`</mark>  <mark style="color:red;">`Zorunlu`</mark>

> Bu alana 16 haneli e-Adisyon numarasını, 3 haneli seri bilgisini girebilirsiniz. 16 haneli adisyon numarası girmeniz durumunda herhangi bir işlem yapılmaz adisyon 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 Adisyon Numarası
Bill.BillInfo.BillSerieOrNumber = "EAD2023000000001";

//Seri Bilgisi
Bill.BillInfo.BillSerieOrNumber= "EAD";
```

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

### IssueDate

<mark style="color:blue;">`DateTime`</mark>  <mark style="color:red;">`Zorunlu`</mark>

> Bu alana adisyon tarihi ve saati girilir.

```javascript
Bill.BillInfo.IssueDate = "2023-03-22T10:20:39.846Z";
```

### CurrencyCode

<mark style="color:blue;">`string`</mark>  <mark style="color:red;">`Zorunlu`</mark>

> Bu alan makbuzun para biriminin girileceği alandır. Alabileceği değerler kod listeleri bölümünde  [<mark style="color:blue;">Para Birim Kodları</mark>](https://developer.nilvera.com/kod-listeleri#para-birim-kodlari) altında belirtilmiştir.

```javascript
Bill.BillInfo.CurrencyCode = "TRY";
```

### ExchangeRate

<mark style="color:blue;">`string`</mark>  <mark style="color:orange;">`Seçimli`</mark>

> Bu alan adisyonun Türk lirasından farklı bir para biriminde kesildiğinde döviz kurunun girileceği alandır. Adisyon üzerinde kur bilgisi görünecektir.

### RelatedDocument

<mark style="color:blue;">`string`</mark>  <mark style="color:red;">`Zorunlu`</mark>

Hizmetin tamamlanması ile birlikte düzenlenecek e-Fatura veya e-Arşiv Fatura’nın evrensel tekil tanımlama numarası (ETTN) veya perakende satış fişinin düzenlendiği ÖKC’nin cihaz sicil numarası Code alanına girilecektir.

```csharp
public class RelatedDocument
    {
        public RelatedDocumentType Type { get; set; }
        public string Code { get; set; }
    }
```

> RelatedDocumentType Enum veri tipinde bir nesnedir.  Code alanına ÖKC'nın cihaz sicil numara girilirse SATIS\_FISI girilecektir. Code alanına ETTN girildiğinde ilgili kesilen faturanın türünün belirtileceği alandır. EFATURA **,** EARSIV\_FATURA değerlerini alabilir.

```csharp
public enum RelatedDocumentType
{ 
     EFATURA = 1,
     EARSIV_FATURA = 2,
     SATIS_FISI = 3
}
```

```javascript
Bill.BillInfo.RelatedDocument.Code= "b8787efb-639d-4efc-85b5-953bf1dbaac0";
```

```javascript
Bill.BillInfo.RelatedDocument.Type = "EFATURA";
```

### ValidityPeriod

<mark style="color:blue;">`string`</mark>  <mark style="color:red;">`Zorunlu`</mark>

> e-Adisyon belgesinin hizmet süresinin bulunduğu nesnedir. Masa kullanılmaya başlandığındaki tarih ve saat, bitiş zamanındaki tarih ve saat gönderilir.

```csharp
public class ValidityPeriod
    {
        public DateTime StartDate { get; set; }
        public DateTime EndDate { get; set; }
    }
```

```javascript
Bill.BillInfo.ValidityPeriod.StartDate = "2023-03-22T10:20:39.846Z";
```

```javascript
Bill.BillInfo.ValidityPeriod.EndDate = "2023-03-22T12:00:00.200Z";
```
