{"id":16482449,"url":"https://github.com/f/fatura","last_synced_at":"2025-05-16T08:03:47.197Z","repository":{"id":38405558,"uuid":"239051882","full_name":"f/fatura","owner":"f","description":"eArşiv / eFatura Fatura Oluşturucu","archived":false,"fork":false,"pushed_at":"2024-08-08T19:51:44.000Z","size":40,"stargazers_count":599,"open_issues_count":18,"forks_count":91,"subscribers_count":42,"default_branch":"master","last_synced_at":"2025-05-13T06:11:16.198Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://earsivportal.efatura.gov.tr/intragiris.html","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/f.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-08T01:30:28.000Z","updated_at":"2025-05-12T15:57:20.000Z","dependencies_parsed_at":"2024-12-20T07:02:37.376Z","dependency_job_id":"09c726a1-ff18-4c89-bb4f-1ad359b04934","html_url":"https://github.com/f/fatura","commit_stats":{"total_commits":34,"total_committers":11,"mean_commits":3.090909090909091,"dds":0.6176470588235294,"last_synced_commit":"81c78e4fbe4df304956701dcb040496602a619c1"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/f%2Ffatura","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/f%2Ffatura/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/f%2Ffatura/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/f%2Ffatura/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/f","download_url":"https://codeload.github.com/f/fatura/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254493380,"owners_count":22080126,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-11T13:10:46.167Z","updated_at":"2025-05-16T08:03:47.179Z","avatar_url":"https://github.com/f.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🧾 Fatura.js\n\neArşiv sistemi üzerinde fatura oluşturmanızı sağlar.\n\n### Alternatifler\n\n| Dil | Repo | Geliştirici |\n| --- | ---- | ----------- |\n| PHP | https://github.com/AdemAliDurmus/fatura | Adem Ali Durmuş |\n| PHP | https://github.com/furkankadioglu/efatura | Furkan Kadıoğlu |\n| PHP | https://github.com/mlevent/fatura | Mert Levent |\n| C#  | https://github.com/BFYDigital/e-arsiv-fatura-dotnet | BFY Digital |\n\n\u003e Bu sistem **https://earsivportal.efatura.gov.tr/** adresini kullanarak bu sistem üzerinden fatura oluşturmanızı sağlar.\n\n\u003e Bu sistem GİB'e tabi **şahıs şirketi** ya da **şirket** hesapları ile çalışır ve bu kişilikler adına resmi fatura oluşturur. Kesilen faturaları https://earsivportal.efatura.gov.tr/ adresinden görüntüleyebilir ya da bu kütüphane ile indirebilirsiniz.\n\n#### Kullanıcı Adı ve Parola Bilgileri\n\n\u003e [https://earsivportal.efatura.gov.tr/intragiris.html](https://earsivportal.efatura.gov.tr/intragiris.html) adresindeki parola ekranında kullanılan kullanıcı kodu ve parola ile bu paketi kullanabilirsiniz.\n\u003e ℹ️ Bu **kullanıcı kodu ve parola bilgilerini** muhasebecinizden ya da **GİB - İnteraktif Vergi Dairesi**'nden edinebilirsiniz.\n\n## Yükleme\n\n```\nnpm install fatura\n```\n\n## Kullanım\n\nOldukça kolay bir kullanıma sahiptir:\n\n#### `createInvoiceAndGetDownloadURL(user, pass, invoice, { sign })`\n\nBu method ile fatura oluşturulup imzalanır ve indirme adresi döner.\n\n```js\nconst fatura = require('fatura')\n\nconst faturaURL = await fatura.createInvoiceAndGetDownloadURL(\n    'GIB Kullanıcı Adı', \n    'GIB Parolası', {\n        ... faturaDetayları\n    },\n    // Varsayılan olarak sign: true gönderilir.\n    { sign: false }\n)\n```\n\n#### `createInvoiceAndGetHTML(user, pass, invoice, { sign })`\n\nBu method ile fatura oluşturulup imzalanır ve fatura HTML'i döner. Bu HTML'i `iframe` içerisinde gösterip yazdırılmasını sağlayabilirsiniz.\n\n```js\nconst fatura = require('fatura')\n\nconst faturaHTML = await fatura.createInvoiceAndGetHTML(\n    'GIB Kullanıcı Adı', \n    'GIB Parolası', {\n        ... faturaDetayları\n    },\n    // Varsayılan olarak sign: true gönderilir.\n    { sign: false }\n)\n```\n\n---\n\n## Diğer Fonksiyonlar\n\nMuhtemelen pek gerekmeyecek diğer alt fonksiyonlar:\n\n#### `enableTestMode()`\n\nBu fonksiyonu çağırdığınızda sistem **https://earsivportaltest.efatura.gov.tr** adresini kullanmaya geçer. Fakat burada sistem bazen dolu olabilir.\n\n#### `getToken(user, pass): String`\n\n**eFatura Portal**'ını kullanabileceğiniz `token`'ı döner.\n\n#### `createDraftInvoice(token, invoiceDetails): Object`\n\neFatura.gov.tr'de fatura direkt oluşmaz. Önce **Taslak** fatura oluşturmak gerekir. `createDraftInvoice` size taslak bir fatura oluşturacaktır. `invoiceDetails` parametresi aşağıdaki şekilde bir JavaScript nesnesi kabul eder:\n\n\u003e ℹ️ UUID vermezseniz yeni bir UUID atanır.\n\n```js\n{\n    // UUID vermezseniz yeni bir UUID yaratılacaktır.\n    uuid: \"4c72cb57-b72d-4812-ac48-0a0bce83e771\",\n\n    date: \"08/02/2020\",\n    time: \"09:07:48\",\n    taxIDOrTRID: \"11111111111\",\n    taxOffice: \"Beylikduzu\",\n    title: \"FATIH AKIN\",\n    name: \"\",\n    surname: \"\",\n    fullAddress: \"X Sok. Y Cad. No: 3 Z Istanbul\",\n    items: [\n        {\n        name: \"Stickker\",\n        quantity: 1,\n        unitPrice: 100,\n        price: 100,\n        VATRate: 18,\n        VATAmount: 18\n        }\n    ],\n    totalVAT: 18,\n    grandTotal: 100.0,\n    grandTotalInclVAT: 118.0,\n    paymentTotal: 118.0\n}\n```\n\n#### `findInvoice(token, { date, uuid }): Object`\n\nHer fatura için bir `uuid` oluşturulur. Bu `uuid` kullanılarak faturanın oluşturulduğu tarih içerisindeki taslak fatura bulunur ve getirilir. Bu veri içerisinde **imzalama** esnasında gerekecek **GIB Belge Numarası** bulunur. Bu method ile diğer taslak faturalara da erişebilirsiniz.\n\n#### `getAllInvoicesByDateRange(token, { startDate, endDate }): Array`\n\nİki tarih arasındaki tüm faturaları döner.\n\n#### `getAllInvoicesIssuedToMeByDateRange(token, { startDate, endDate }): Array`\n\nİki tarih arasındaki gelen faturaları (GİB'deki adıyla Adıma Düzenlenen Belgeleri) döner.\n\n#### `signDraftInvoice(token, draftInvoice): void`\n\n☢️ Fatura imzalama faturanın kesilmesi işlemidir ve **vergi sisteminde mali veri oluşturur.** Bu nedenle dikkatli kullanınız.\n\n`findDraftInvoice` methodu ile alınan veri `draftInvoice` parametresine gönderilerek bulunan faturanın imzalanması sağlanır.\n\n#### `getDownloadURL(token, uuid): String`\n\nİmzalanmış faturaların efatura.gov.tr üzerinden indirme bağlantısını döner ve `.zip` formatında indirir. Bu dosya içerisinde `html` ve `xml` dosyaları bulunur.\n\n#### `getInvoiceHTML(token, uuid): String`\n\nİmzalanmış faturaların efatura.gov.tr üzerinden HTML içerigini döner. Bu metni dosyaya kaydedebilir ya da `iframe` üzerinden yazdırılmasını sağlayabilirsiniz.\n\n#### `cancelDraftInvoice(token, reason, draftInvoice): String`\n\nTaslak halindeki faturalar iptal edilebilir.\n\n## Lisans\nMIT\n\n----\n\n\u003e ☢️ **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.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ff%2Ffatura","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ff%2Ffatura","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ff%2Ffatura/lists"}