PHPackages                             deniz/fatura - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. deniz/fatura

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

deniz/fatura
============

GİB eFatura.gov.tr Fatura Oluşturucu

v0.0.1(4y ago)14MITPHPPHP ^7.3|^8

Since Jun 1Pushed 4y agoCompare

[ Source](https://github.com/denizsinan/fatura)[ Packagist](https://packagist.org/packages/deniz/fatura)[ RSS](/packages/deniz-fatura/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (4)Versions (3)Used By (0)

🧾 Fatura
========

[](#-fatura)

### Bu paket [Fatih Kadir Akın](https://github.com/f)'ın hazırlamış olduğu [fatura](https://github.com/f/fatura) paketinin PHP dili ile yazılmış versiyonudur.

[](#bu-paket-fatih-kadir-akının-hazırlamış-olduğu-fatura-paketinin-php-dili-ile-yazılmış-versiyonudur)

eFatura sistemi üzerinde fatura oluşturmanızı sağlar.

> Bu sistem **** adresini kullanarak bu sistem üzerinden fatura oluşturmanızı sağlar.

> Bu sistem GİB'e tabi **şahış şirketi** ya da **şirket** hesapları ile çalışır ve bu kişilikler adına resmi fatura oluşturur. Kesilen faturaları  adresinden görüntüleyebilir ya da bu kütüphane ile indirebilirsiniz.

#### Kullanıcı Adı ve Parola Bilgileri

[](#kullanıcı-adı-ve-parola-bilgileri)

>  adresindeki parola ekranında kullanılan kullanıcı kodu ve parola ile bu paketi kullanabilirsiniz. ℹ️ Bu **kullanıcı kodu ve parola bilgilerini** muhasebecinizden ya da **GİB - İnteraktif Vergi Dairesi**'nden edinebilirsiniz.

---

Kurulum
-------

[](#kurulum)

```
composer require aad/fatura

```

---

Kullanım
--------

[](#kullanım)

Service sınıfının constructor ına konfigürasyon bilgilerini vererek kullanabilirsiniz.

### Örnek fatura bilgileri ve servis ayarları

[](#örnek-fatura-bilgileri-ve-servis-ayarları)

> Aşağıdaki şekilde fatura detaylarını kullanacağınız metoda parametre olarak verip faturanın bu bilgiler ile oluşmasını sağlayabilirsiniz. Bu bilgiler anlatılan örneklerde kullanılacaktır.

```
$fatura_detaylari = [
    'date' => "08/02/2020",
    'time' => "15:03:00",
    'taxIDOrTRID' => "11111111111",
    'taxOffice' => "Cankaya",
    'title' => "ADEM ALI'DEN FKA'YA SELAMLAR",
    'name' => "",
    'surname' => "",
    'fullAddress' => "X Sok. Y Cad. No: 3 Z T",
    'items' => [
        [
            'name' => "Ornek",
            'quantity' => 1,
            'unitPrice' => 0.01,
            'price' => 0.01,
            'VATRate' => 18,
            'VATAmount' => 0.0
        ]
    ],
    'totalVAT' => 0.0,
    'grandTotal' => 0.01,
    'grandTotalInclVAT' => 0.01,
    'paymentTotal' => 0.01
];
```

> Aşağıda servis ayarlarına ilişkin olması gereken bilgiler örnek olarak belirtilmiştir. `base_url` ve `service_type` bilgileri gönderilmediği durumda e-arşiv portalı test ortam bilgileri baz alınacaktır. Bu bilgiler anlatılan örneklerde kullanılacaktır.

```
$ayarlar = [
    'username'      => 'GIB Kullanıcı Adı',
    'password'      => 'GIB Kullanıcı Parolası',
    'base_url'      => "https://earsivportal.efatura.gov.tr",
    "service_type"  => "prod"
];
```

### createInvoiceAndGetDownloadURL

[](#createinvoiceandgetdownloadurl)

Bu metod imzalanmış faturayı oluşturur ve indirme adresi döner.

```
use AAD\Fatura\Service;

$service = new Service($ayarlar);
$fatura_url = $service->createInvoiceAndGetDownloadURL(['invoice_details' => $fatura_detaylari]);
```

### createInvoiceAndGetHTML

[](#createinvoiceandgethtml)

Bu metod imzalanmış faturayı oluşturur ve fatura çıktısını HTML formatta döner. Bu HTML'i `iframe` içerisinde gösterip yazdırılmasını sağlayabilirsiniz.

```
use AAD\Fatura\Service;

$service = new Service($ayarlar);
$fatura_html = $service->createInvoiceAndGetHTML(['invoice_details' => $fatura_detaylari]);
```

---

Diğer Kullanım Örnekleri
------------------------

[](#diğer-kullanım-örnekleri)

### getToken

[](#gettoken)

eFatura Portal'ını kullanabileceğiniz `token`'ı döner.

```
use AAD\Fatura\Service;

$service = new Service($ayarlar);
$token = $service->getToken();
```

### createDraftInvoice

[](#createdraftinvoice)

eFatura.gov.tr'de fatura direkt oluşmaz. Önce Taslak fatura oluşturmak gerekir. createDraftInvoice size taslak bir fatura oluşturacaktır. `$fatura_detaylari` değişkeninde olması gereken bilgiler `kullanım` başlığı altında belirtilmiştir.

```
use AAD\Fatura\Service;

$service = new Service($ayarlar);
$taslak = $service->createDraftInvoice($fatura_detaylari);
```

### findDraftInvoice

[](#finddraftinvoice)

Taslak olarak oluşturulan her fatura içerisinde `uuid` ve `date` bilgisi yer alır. Bu metod aracılığı ile belirtilen tarih aralığındaki taslak faturalar aranır. Arama sonuçlarında belirtilen `uuid` yi içeren fatura bilgisi var ise detaylarını döner. Şayet belirtilen `uuid` ve `date` bilgileriyle eşleşen bir taslak fatura bulunamaz ise boş `array` döner.

```
use AAD\Fatura\Service;

$service = new Service($ayarlar);
$bulunan_taslak = $service->findDraftInvoice(['date' => 'Taslak durumdaki faturanın tarihi', 'uuid' => 'Taslak durumdaki faturanın uuid bilgisi']);
```

> Belirtilen `uuid` ve `date` bilgisi ile eşleşen kayıt sonucu aşağıdaki şekilde dönmektedir.

```
Array
(
    [belgeNumarasi] => GIB2020000000430
    [aliciVknTckn] => 11111111111
    [aliciUnvanAdSoyad] =>
    [belgeTarihi] => 08-02-2020
    [belgeTuru] => FATURA
    [onayDurumu] => Onaylanmadı
    [ettn] => Fatura uuid
)

```

> Dönen bilgiler arasındaki GIB Belge Numarası (`ettn`) bilgisi taslak durumdaki faturanın `imzalanması` için kullanılacaktır.

signDraftInvoice
----------------

[](#signdraftinvoice)

☢️ Fatura imzalama faturanın kesilmesi işlemidir ve vergi sisteminde mali veri oluşturur. Bu nedenle dikkatli kullanınız.

`findDraftInvoice()` metodundan dönen bilgi doğrudan `signDraftInvoice()` metoduna parametre olarak verilip imzalanması sağlanabilir.

```
use AAD\Fatura\Service;

$service = new Service($ayarlar);
$bulunan_taslak = $service->findDraftInvoice(['date' => 'Fatura tarihi', 'uuid' => 'Fatura uuid']);
$imzalanmis_fatura = $service->signDraftInvoice($bulunan_taslak);
```

> İmzalama işleminin başarılı olması durumunda aşağıdaki şekilde yanıt dönmektedir.

```
Array
(
    [data] => İmzalama işlemi başarı ile tamamlandı.
    [metadata] => Array
        (
            [optime] => 20200208175608+0300
        )

)

```

getDownloadURL
--------------

[](#getdownloadurl)

İmzalanmış faturanın indirme bağlantısını bu metod aracılığı ile oluşturabilirsiniz.

```
use AAD\Fatura\Service;

$service = new Service($ayarlar);
$fatura_url = $service->getDownloadURL('Fatura uuid');
```

Henüz imzalanmamış bir faturanın indirme bağlantısına erişmek için `getDownloadURL` metodunun ikinci parametresine `false` değerini gönderebilirsiniz.

```
use AAD\Fatura\Service;

$service = new Service($ayarlar);
$fatura_url = $service->getDownloadURL('Fatura uuid', false);
```

getInvoiceHTML
--------------

[](#getinvoicehtml)

İmzalanmış faturanın HTML çıktısını bu metod aracılığı ile oluşturabilirsiniz.

```
use AAD\Fatura\Service;

$service = new Service($ayarlar);
$fatura_html = $service->getInvoiceHTML('Fatura uuid');
```

Henüz imzalanmamış bir faturanın HTML çıktısını oluşturmak için `getInvoiceHTML` metodunun ikinci parametresine `false` değerini gönderebilirsiniz.

```
use AAD\Fatura\Service;

$service = new Service($ayarlar);
$fatura_html = $service->getInvoiceHTML('Fatura uuid', false);
```

cancelDraftInvoice
------------------

[](#canceldraftinvoice)

Taslak durumdaki faturanın iptalini bu metod ile gerçekleştirebilirsiniz.

```
use AAD\Fatura\Service;

$service = new Service($ayarlar);
$fatura_html = $service->getInvoiceHTML('İptal sebebi', $bulunan_taslak);
```

setUuid
-------

[](#setuuid)

Fatura işlemlerinde özelleştirilmiş `uuid` tanımlamak için bu metodu kullanabilirsiniz.

```
use AAD\Fatura\Service;

$service = new Service($ayarlar);
$service->setUuid('590e1a3e-4aaf-11ea-b085-8434976ef848');
```

getAllInvoicesByDateRange
-------------------------

[](#getallinvoicesbydaterange)

Belirttiğiniz tarih aralığına göre taslak durumdaki faturaları listelemek için bu metodu kullanabilirsiniz.

```
use AAD\Fatura\Service;

$baslangic_tarihi = "08/02/2020";
$bitis_tarihi = "11/02/2020";

$service = new Service($ayarlar);
$taslak_faturalar = $service->getAllInvoicesByDateRange($baslangic_tarihi, $bitis_tarihi);
```

getRecipientDataByTaxIDOrTRID
-----------------------------

[](#getrecipientdatabytaxidortrid)

T.C. kimlik numarası veya vergi numarası ile ünvan, ad, soyad ve vergi dairesi bilgilerini öğrenmek için aşağıdaki metodu kullanabilirsiniz.

```
use AAD\Fatura\Service;

$tckn_veya_vkn = "";

$service = new Service($ayarlar);
$bilgiler = $service->getRecipientDataByTaxIDOrTRID($tckn_veya_vkn);
```

sendSignSMSCode / verifySignSMSCode
-----------------------------------

[](#sendsignsmscode--verifysignsmscode)

SMS dogrulama işlemini başlatmak için aşağıdaki metodu kullanabilirsiniz.

> Bu işlemin sonucunda dönecek olan `oid` bilgisi doğrulama adımında kullanılacaktır.

```
use AAD\Fatura\Service;

$telefon_numarasi = ""; // SMS doğrulama işleminin yapılacağı telefon numarası

$service = new Service($ayarlar);
$sms = $service->sendSignSMSCode($telefon_numarasi);
```

SMS dogrulama işlemini başlatmak için aşağıdaki metodu kullanabilirsiniz.

```
use AAD\Fatura\Service;

$dogrulama_kodu = ""; // Belirttiğiniz numaraya sms olarak gönderilmiş olan kod
$takip_numarasi = ""; // sendSignSMSCode metodu araciligi ile baslatmis oldugunuz islem sonucunda donen `oid` bilgisi

$service = new Service($ayarlar);
$sms = $service->verifySignSMSCode($telefon_numarasi, $takip_numarasi);
```

getUserData
-----------

[](#getuserdata)

Firma bilgilerini getirmek için aşağıdaki metodu kullanabilirsiniz.

```
use AAD\Fatura\Service;

$service = new Service($ayarlar);
$firma_bilgileri = $service->getUserData();
```

updateUserData
--------------

[](#updateuserdata)

Firma bilgilerini güncellemek için aşağıdaki metodu kullanabilirsiniz.

> `$firma_bilgileri` array i içerisinde getUserData metodundan dönen bilgiler yer almalıdır. Güncellemek istediğiniz bilgiyi array içerisinden değiştirek updateUserData metoduna parametre olarak verebilirsiniz.

```
use AAD\Fatura\Service;

$service = new Service($ayarlar);
$sonuc = $service->updateUserData($firma_bilgileri);
```

> Kullanım örneklerine examples/index.php dosyasından da erişebilirsiniz.

---

Lisans
------

[](#lisans)

MIT

---

> ☢️ **BU PAKET VERGİYE TABİ OLAN MALİ VERİ OLUŞTURUR.** BU PAKET NEDENİYLE OLUŞABİLECEK SORUNLARDAN BU PAKET SORUMLU TUTULAMAZ, RİSK KULLANANA AİTTİR. RİSKLİ GÖRÜYORSANIZ KULLANMAYINIZ.

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 Bus Factor1

Top contributor holds 82.4% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1805d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/9464d8099f117419e03901edc3a49d01d2c101a6228be4b3bad7165a8ddad237?d=identicon)[denizsinan](/maintainers/denizsinan)

---

Top Contributors

[![ademalidurmus](https://avatars.githubusercontent.com/u/22513266?v=4)](https://github.com/ademalidurmus "ademalidurmus (14 commits)")[![eyupinann](https://avatars.githubusercontent.com/u/53041708?v=4)](https://github.com/eyupinann "eyupinann (3 commits)")

---

Tags

efaturaearsivfaturagiv

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/deniz-fatura/health.svg)

```
[![Health](https://phpackages.com/badges/deniz-fatura/health.svg)](https://phpackages.com/packages/deniz-fatura)
```

###  Alternatives

[grumpydictator/firefly-iii

Firefly III: a personal finances manager.

22.8k69.3k](/packages/grumpydictator-firefly-iii)[pocketmine/pocketmine-mp

A server software for Minecraft: Bedrock Edition written in PHP

3.5k74.6k86](/packages/pocketmine-pocketmine-mp)[furkankadioglu/efatura

EFatura

4364.6k1](/packages/furkankadioglu-efatura)[shlinkio/shlink

A self-hosted and PHP-based URL shortener application with CLI and REST interfaces

4.8k4.3k](/packages/shlinkio-shlink)[getdkan/dkan

DKAN Open Data Catalog

385135.4k2](/packages/getdkan-dkan)[mlevent/fatura

PHP için GİB eArşiv/eFatura entegrasyonu.

1655.9k](/packages/mlevent-fatura)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
