🧾 e-Fatura
![npm downloads](https://img.shields.io/npm/dt/e-fatura.svg)
Bu paket, Node.js aracılığıyla e-Arşiv üzerinden fatura oluşturma, düzenleme, imzalama gibi işlemleri yapabilmenize olanak sağlar.
🚨 Bu paket vergiye tabî olan belge oluşturur. Hiç bir sorumluluk kabul edilmez ve ne yaptığınızdan emin olana kadar EInvoice.setTestMode(true) kullanarak test modu açık şekilde test verileriyle işlem yapmanız önerilir.
Kurulum
yarn add e-fatura
veya
npm i e-fatura
Paket Yapısı
import EInvoice, {
getDateFormat,
paymentPriceToText,
XsltRenderer,
EInvoiceCountry,
EInvoiceApi,
EInvoiceTypeError,
EInvoiceApiError,
InvoiceType,
EInvoiceApiErrorCode,
InvoiceApprovalStatus,
EInvoiceCurrencyType,
EInvoiceUnitType
} from 'e-fatura'
Özellikler
Kullanım
Kendi verileriniz ile test etmek için:
https://earsivportal.efatura.gov.tr/intragiris.html
Test hesaplarıyla test etmek için:
https://earsivportaltest.efatura.gov.tr/login.jsp
Test ortamı için kullanım;
Kullanım 1
import EInvoice from 'e-fatura'
await EInvoice.connect({
anonymous: true
})
await EInvoice.logout()
Kullanım 2
import EInvoice from 'e-fatura'
EInvoice.setTestMode(true)
await EInvoice.setAnonymousCredentials()
await EInvoice.connect()
await EInvoice.logout()
Ürün ortamı için kullanım;
Kullanım 1
import EInvoice from 'e-fatura'
await EInvoice.connect({
username: 'kullanıcı kodu|adı',
password: 'şifre'
})
await EInvoice.logout()
Kullanım 2
import EInvoice from 'e-fatura'
EInvoice.setCredentials({
username: 'kullanıcı kodu|adı',
password: 'şifre'
})
await EInvoice.connect()
await EInvoice.logout()
Hata Ayıklama
API ve tür hatalarının ayıklanması.
import axios from 'axios'
import EInvoice, {
EInvoiceApiError,
EInvoiceTypeError,
EInvoiceApiErrorCode
} from 'e-fatura'
try {
await EInvoice.createDraftInvoice({})
} catch (e) {
if (e instanceof EInvoiceTypeError) {
console.error('Tür hatası meydana geldi:', e)
} else if (e instanceof EInvoiceApiError) {
const response = e.getResponse()
switch (e.errorCode) {
case EInvoiceApiErrorCode.UNKNOWN_ERROR:
console.error('Bilinmeyen bir hata oluştu:', response)
break
case EInvoiceApiErrorCode.INVALID_RESPONSE:
console.error('Geçersiz API cevabı:', response)
break
case EInvoiceApiErrorCode.INVALID_ACCESS_TOKEN:
console.error('Geçersiz erişim jetonu:', response)
break
case EInvoiceApiErrorCode.BASIC_INVOICE_NOT_CREATED:
console.error('Basit fatura oluşturulamadı:', response)
}
} else if (axios.isAxiosError(e)) {
console.error('Axios hatası meydana geldi:', e)
} else {
console.error('Bilinmeyen bir hata meydana geldi:', e)
}
}
Not: Diğer API hata kodları için EInvoiceApiErrorCode.ts dosyasına bakabilirsiniz.
Ayrıca
Bu proje Furkan Kadıoğlu'nun efatura projesinden yola çıkılarak Node.js'e uyarlanmıştır.