定制 profscode/nilvera 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

profscode/nilvera

Composer 安装命令:

composer require profscode/nilvera

包简介

Laravel package for Nilvera E-Fatura and E-Arşiv integration.

README 文档

README

Bu paket, Nilvera API'si ile E-Fatura, E-Arşiv ve E-İrsaliye süreçlerinizi Laravel üzerinde kolayca yönetmenizi sağlar.

Kurulum

  1. Paketi composer üzerinden yükleyin:
composer require profscode/nilvera
  1. Konfigürasyon dosyasını yayınlayın:
php artisan vendor:publish --tag="nilvera-config"
  1. .env dosyanıza API bilgilerinizi ekleyin:
NILVERA_BASE_URL=https://api.nilvera.com
NILVERA_API_KEY=your_api_key_here

1. Genel ve Dashboard İşlemleri

Dashboard için özet verileri ve kredi durumlarını takip edebilirsiniz.

use ProfsCode\Nilvera\Facades\Nilvera;

// Hesap Kredilerini Al
$credits = Nilvera::getCredits();

// Güncel Döviz Kurlarını Al (Nilvera üzerinden)
$rates = Nilvera::getExchangeRates();

// Dashboard Özet Verileri (Krediler, Kurlar, Son Faturalar, Günlük İstatistikler)
// Parametre: mode ('einvoice' veya 'earchive'), params (SummaryPeriod: today, yesterday, week, month)
$dashboard = Nilvera::getDashboardData('einvoice', ['SummaryPeriod' => 'month']);

1.1 Firma İşlemleri (Company Operations)

Hesabınıza tanımlı firma bilgilerini, modülleri ve mali mühür/e-imza sertifikalarını yönetebilirsiniz.

// Firma Bilgilerini Getir
$company = Nilvera::getCompanyInfo();

// Firma Bilgilerini Güncelle
Nilvera::updateCompanyInfo([
    'Email' => 'info@firma.com',
    'PhoneNumber' => '03121234567',
    'Address' => 'Atatürk Cad. No:1',
    'District' => 'Çankaya',
    'City' => 'Ankara',
]);

// Firmaya Tanımlı Modülleri Getir (E-Fatura, E-Arşiv vb. aktiflik durumu)
$modules = Nilvera::getCompanyModules();

// Firma Sertifikalarını (Mali Mühür/E-İmza/HSM) Listele
$certificates = Nilvera::getCompanyCertificates();

// Yeni Sertifika Ekle
Nilvera::addCompanyCertificate([
    'SerialNo' => '1234567890',
    'Type' => 'EIMZA', // MALIMUHUR, EIMZA, HSM
    'Password' => '******',
    'Description' => 'Yedek e-imza',
]);

// Sertifika Bilgilerini Güncelle
Nilvera::updateCompanyCertificate([
    'ID' => 1,
    'Type' => 'EIMZA',
    'SerialNo' => '1234567890',
    'Description' => 'Güncellenmiş açıklama',
]);

// Seri Numarasına Göre Sertifika Getir
$certificate = Nilvera::getCompanyCertificateBySerial('1234567890');

// Sertifikayı Sil
Nilvera::deleteCompanyCertificate(1);

// Kullanıcıya Tanımlı Firmaları Listele
$companies = Nilvera::getUserCompanies();

Firma Kimlik Bilgileri (Company Identity)

// Firma Kimlik Bilgilerini Listele (MERSİS No, Ticaret Sicil No, vb.)
$identities = Nilvera::getCompanyIdentities();

// Firmaya Yeni Kimlik Bilgisi Ekle
// Name: HIZMETNO, MUSTERINO, TESISATNO, TELEFONNO, DISTRIBUTORNO, TICARETSICILNO, TAPDKNO,
//       BAYINO, ABONENO, SAYACNO, EPDKNO, SUBENO, PASAPORTNO, URETICINO, ARACIKURUMETIKET,
//       ARACIKURUMVKN, CIFTCINO, IMALATCINO, DOSYANO, HASTANO, MERSISNO
Nilvera::addCompanyIdentity('MERSISNO', '0123456789012345');

// Firmadan Kimlik Bilgisi Sil
Nilvera::deleteCompanyIdentity(1);

Kampanyalar (Campaign)

// Aktif Kampanyaları Getir
$campaigns = Nilvera::getCampaigns();

GİB Kullanıcı Bilgileri (GIB User)

// GİB E-Arşiv Kullanıcı Adı ve Parolasını Getir
$credentials = Nilvera::getGibUserCredentials();

// GİB E-Arşiv Kullanıcı Adı ve Parolasını Güncelle
Nilvera::updateGibUserCredentials('gib_kullanici_adi', 'gib_parola');

Mail / SMS / WhatsApp Ayarları

// Mail/SMS/WhatsApp Bildirim Ayarlarını Getir
$settings = Nilvera::getMailSettings();

// WhatsApp Bildirimini Aç/Kapat
Nilvera::setWhatsappSetting(true);

// Mail Bildirimini Aç/Kapat
Nilvera::setMailSetting(false);

// SMS Bildirimini Aç/Kapat
Nilvera::setSmsSetting(true);

2. Fatura Listeleme ve Sorgulama

Farklı durum ve yönlerdeki faturaları gelişmiş filtrelerle listeleyebilirsiniz.

// Gelen/Giden Faturaları Listele (Gelişmiş Filtreleme)
// Yön: 'Sale' (Giden) veya 'Purchase' (Gelen)
$invoices = Nilvera::getInvoices('Sale', [
    'StartDate' => '2024-01-01',
    'EndDate' => '2024-01-31',
    'PageSize' => 50,
    'Search' => 'Müşteri Adı',
    'StatusCode' => ['succeed', 'error'] // Opsiyonel filtre
]);

// Eski (Arşivlenmiş) Faturaları Çek
$oldInvoices = Nilvera::getOldInvoices('einvoice', ['Page' => 1]);

// Eski Faturanın HTML İçeriğini Al
$oldHtml = Nilvera::getOldInvoiceHtml($uuid, 'einvoice');

// Eski Faturanın PDF İçeriğini Al (binary)
$oldPdf = Nilvera::getOldInvoicePdf($uuid, 'einvoice');
file_put_contents('eski-fatura.pdf', $oldPdf);

// Eski Faturanın XML İçeriğini Al
$oldXml = Nilvera::getOldInvoiceXml($uuid, 'einvoice');

// Eski Faturaları Toplu Dışa Aktar (Xml, Pdf, OnePagePdf)
$exported = Nilvera::exportOldInvoices([$uuid1, $uuid2], 'Pdf', 'einvoice');
file_put_contents('eski-faturalar.pdf', $exported);

// Eski Faturalara Toplu Yeni Durum Ata (UnPrint, Print, Transferred, Untransferred)
$result = Nilvera::updateOldInvoicesStatus([$uuid1, $uuid2], 'Print', 'einvoice');

// GIB E-Arşiv Gelen Faturaları Listele
$gibInvoices = Nilvera::getGibInvoices(['Search' => 'VKN']);

// Taslak Faturaları Listele
$drafts = Nilvera::getDraftInvoices('einvoice', ['Page' => 1]);

3. Fatura Detayları ve Görüntüleme

Fatura içeriğine, görseline ve eklerine erişebilirsiniz.

// Fatura HTML Görselini Al
$html = Nilvera::getInvoiceHtml($uuid, 'einvoice', 'Sale');

// Fatura Tarihçesini (Loglarını) Al
$history = Nilvera::getInvoiceHistories($uuid, 'Sale');

// Fatura Ek Dosyalarını Al
$attachments = Nilvera::getInvoiceAttachments($uuid, 'Sale');

// Fatura Detay Bilgilerini Al
$details = Nilvera::getInvoiceDetails($uuid, 'Sale');

// Fatura Vergi Detaylarını Al (KDV, ÖTV vb. kırılımı)
// E-Arşiv için direction parametresi yok sayılır (Invoices endpointi kullanılır)
$taxes = Nilvera::getInvoiceTaxes($uuid, 'Sale', 'einvoice');

// Gelen Faturaya Yanıt Ver (Kabul/Red)
// AnswerCode: 'approved' veya 'rejected'
Nilvera::answerInvoice($uuid, 'approved');
Nilvera::answerInvoice($uuid, 'rejected', 'Hatalı fatura tutarı');

// Red Cevabını (Red Notunu) Getir
$rejectNote = Nilvera::getInvoiceRejectedNote($uuid);

// Faturanın Güncel Statü Bilgisini Getir
// StatusCode: unknown, waiting, succeed, error | ReportStatus: NotReported, Reported
// E-Arşiv için direction parametresi yok sayılır (Invoices endpointi kullanılır)
$status = Nilvera::getInvoiceStatus($uuid, 'Sale', 'einvoice');

// E-Arşiv Faturasını İptal Et
Nilvera::cancelEArchiveInvoice($uuid);

// E-Arşiv Faturasının İptal İşlemini Geri Al
Nilvera::revertCancelEArchiveInvoice($uuid);

// E-Arşiv Raporu Gönder (Dönem Bazlı)
$report = Nilvera::sendEArchiveReport(2024, 1);

// Gönderilen E-Arşiv Raporlarını Listele
$reports = Nilvera::getEArchiveReports(pageSize: 30, page: 1, sortColumn: 'PeriodYear', sortType: 'DESC', periodYear: 2024, periodMonth: 1);

// Rapora Dahil Edilebilecek Belgeleri Listele
$reportable = Nilvera::getEArchiveReportableDocuments(pageSize: 30, page: 1, search: 'GIB', periodYear: 2024, periodMonth: 1);

// Gönderilmiş Bir Rapordaki Belgeleri Listele
$reportDocs = Nilvera::getEArchiveReportDocuments($report['UUID']);

// Rapor XML İçeriğini İndir
$reportXml = Nilvera::downloadEArchiveReportXml($report['UUID']);

// Raporun İşlem Geçmişini Getir
$reportHistories = Nilvera::getEArchiveReportHistories($report['UUID']);

// Taslak Fatura Modelini (Verisini) Al
$model = Nilvera::getDraftModel($uuid, 'einvoice');

4. Fatura Oluşturma ve Gönderme

Laravel verilerinizi Nilvera modeline dönüştürüp fatura oluşturabilirsiniz.

// 1. Laravel Verisini Nilvera Modeline Dönüştür
$data = [
    'TaxNumber'    => '1234567890',
    'Title'        => 'Örnek Limited Şirketi',
    'Address'      => 'Atatürk Cad. No:1',
    'District'     => 'Çankaya',
    'City'         => 'Ankara',
    'CurrencyCode' => 'TRY', // Opsiyonel, varsayılan TRY
    'Series'       => 'HIZ', // Fatura Serisi
    'Scenario'     => 'Ticari', // Temel veya Ticari
    'items'        => [
        [
            'Name'     => 'Yazılım Hizmeti',
            'Quantity' => 1,
            'Price'    => 5000,
            'VatRate'  => 20,
            'UnitCode' => 'C62', // ADET için Nilvera kodu
            'Description' => 'Ocak ayı bakım bedeli'
        ]
    ],
    'Notes' => 'Fatura notu buraya yazılır.'
];

$model = Nilvera::mapToModel($data, $isArchive = false);

// 2. Taslak Oluştur
$result = Nilvera::createDraft($model, 'einvoice');

// 3. Faturayı Önizle (HTML döner)
$preview = Nilvera::previewInvoice($model, 'einvoice');

// 4. Doğrudan Gönder (Create & Send)
$sendResult = Nilvera::sendNewInvoice($model, 'einvoice');

// 5. Mevcut Taslağı Onayla ve Gönder (EditAndSend)
$confirmResult = Nilvera::sendInvoice($uuid);

// 6. Önizlenen Faturanın XML İçeriğini İndir
$xml = Nilvera::downloadInvoice($model, 'einvoice');

// 7. Önizlenen Faturanın PDF İçeriğini İndir
$pdf = Nilvera::downloadInvoicePdf($model, 'einvoice');

Tüm Alanlarla Referans Örnek

mapToModel'in okuyabildiği tüm opsiyonel alanları gösteren referans bir $data dizisi. İhtiyacınız olmayan alanları silebilir veya boş bırakabilirsiniz.

$data = [
    // --- Müşteri Bilgileri ---
    'TaxNumber'    => '1234567890', // VKN/TCKN
    'Title'        => 'Örnek Limited Şirketi',
    'TaxOffice'    => 'Kadıköy',
    'Alias'        => 'urn:mail:defaultpk@example.com', // Müşterinin GİB etiketi (e-Fatura mükellefiyse zorunlu)
    'Address'      => 'Atatürk Cad. No:1',
    'District'     => 'Çankaya',
    'City'         => 'Ankara',
    'Country'      => 'Türkiye',
    'PostalCode'   => '06000',
    'Phone'        => '02121234567',
    'Mail'         => 'musteri@example.com',

    // --- Gönderen (Firma) Bilgileri (opsiyonel, verilmezse config'den alınır) ---
    'CompanyInfo' => [
        'Name'      => 'Kendi Firmam A.Ş.',
        'TaxNumber' => '1234567801',
        'TaxOffice' => 'Erciyes',
        'Address'   => 'Merkez Mah. No:1',
        'District'  => 'Iğdır',
        'City'      => 'Iğdır',
        'Country'   => 'Türkiye',
        'PostalCode'=> '38070',
        'Phone'     => '02121234567',
        'Mail'      => 'info@kendifirmam.com',
        'WebSite'   => 'https://kendifirmam.com',
    ],

    // --- Genel Bilgiler ---
    'InvoiceUUID'  => null, // Boş bırakılırsa otomatik UUID üretilir
    'TemplateUuid' => null, // Belirli bir fatura şablonu kullanmak için
    'IssueDate'    => date('Y-m-d'), // Fatura tarihi, varsayılan bugün
    'Series'       => 'HIZ', // Fatura Serisi
    'Scenario'     => 'Ticari', // 'Temel' veya 'Ticari' -> InvoiceProfile
    'InvoiceProfile' => null, // Manuel set etmek isterseniz: TEMELFATURA, TICARIFATURA, IHRACAT, YOLCUBERABERFATURA, EARSIVFATURA, KAMU, HKS, ENERJI, ILAC_TIBBICIHAZ, OZELFATURA, YATIRIMTESVIK, IDIS
    'InvoiceType'  => null, // SATIS, IADE, ISTISNA, TEVKIFAT, IHRACKAYITLI, OZELMATRAH, SGK, KONAKLAMAVERGISI, vb. (boşsa SATIS/0)
    'CurrencyCode' => 'TRY', // Opsiyonel, varsayılan TRY
    'ExchangeRate' => null, // Döviz ise kur bilgisi

    // --- Vergi İstisna Bilgileri (Fatura Tipi = İstisna seçildiğinde) ---
    'KDVExemptionReasonCode' => null, // KDV istisna muafiyet sebep kodu
    'OTVExemptionReasonCode' => null, // ÖTV istisna muafiyet sebep kodu
    'AccommodationTaxExemptionReasonCode' => null, // Konaklama vergisi istisna sebep kodu

    // --- İrsaliye / Sevkiyat Bilgileri ---
    'DespatchDocumentReference' => [
        // ['Value' => 'IRS2024000000001', 'Date' => '2024-01-10'],
    ],

    // --- Sipariş Referansı ---
    'OrderReference' => [
        // 'ID' => 'SIP-2024-001',
        // 'Date' => '2024-01-05',
    ],

    // --- İade Faturası Bilgisi (InvoiceType = IADE iken) ---
    'ReturnInvoiceInfo' => [
        // ['InvoiceNumber' => 'GIB2024000000123', 'IssueDate' => '2024-01-15'],
    ],

    // --- Ek Masraflar ---
    'InsuranceTotal' => 0, // Sigorta tutarı
    'FreightTotal'   => 0, // Navlun tutarı

    // --- E-Arşiv İnternet Satış Bilgileri (mapToModel(..., isArchive: true) iken) ---
    'EArchiveSalesChannel' => 0, // 1 = İnternet satışı
    'EArchiveSendingType'  => 'KAGIT', // veya 'ELEKTRONIK'
    'InternetInfo' => [
        'WebSite'           => 'https://magazam.com',
        'PaymentMethod'     => 'KREDIKARTI/BANKAKARTI',
        'PaymentMethodName' => 'Kredi Kartı',
        'PaymentAgent'      => 'magazam.com',
        'PaymentDate'       => '2024-01-15',
    ],

    // --- Fatura Kalemleri ---
    'items' => [
        [
            'SellerCode'   => 'STK-001', // Satıcı stok kodu
            'Name'         => 'Yazılım Hizmeti',
            'Description'  => 'Ocak ayı bakım bedeli',
            'Quantity'     => 1,
            'Price'        => 5000,
            'VatRate'      => 20, // KDV %
            'UnitCode'     => 'C62', // ADET için Nilvera birim kodu
            'UnitName'     => 'ADET',
            'ExemptionReasonCode' => null, // Tevkifat/istisna kodu (satır bazlı)

            // Birden fazla vergi kalemi gerekiyorsa Taxes ile detaylandırılabilir
            'Taxes' => [
                // ['Code' => '0015', 'Amount' => 1000, 'Percent' => 20, 'ReasonCode' => null],
            ],

            // Özel matrah (ÖTV'li ürünler için)
            'OzelMatrahTotal'       => 0,
            'OzelMatrahReasonCode'  => null,

            // İhracat (GTİP) bilgileri
            'GTIPNo'             => null,
            'DeliveryTermCode'   => 'DAF',
            'TransportModeCode'  => '5',
            'PackageBrandName'   => '',
            'PackageID'          => '',
            'PackageQuantity'    => 0,
            'PackageTypeCode'    => 'BB',
            'CustomsTrackingNo'  => '',

            // Satır bazlı teslimat adresi
            'DeliveryAddress' => [
                // 'Address' => 'Liman Mah. No:5', 'District' => 'Mersin', 'City' => 'Mersin', 'Country' => 'Türkiye', 'PostalCode' => '33000',
            ],
        ],
    ],

    // --- Notlar ---
    'Notes' => 'Fatura notu buraya yazılır.', // string veya string[] olabilir
];

E-Arşiv Faturası Oluşturma

mapToModel'e isArchive: true vererek E-Arşiv modeli oluşturabilirsiniz (root key ArchiveInvoice olur ve SalesPlatform/SendType/InternetInfo alanları eklenir).

$model = Nilvera::mapToModel($data, isArchive: true);

$result = Nilvera::createDraft($model, 'earchive');

İade (Return) Faturası Oluşturma

İade faturası oluşturmanın iki yolu vardır:

// 1. Var olan bir faturadan iade taslağı oluşturma (Nilvera otomatik doldurur)
$returnDraft = Nilvera::createReturnInvoice($uuid, 'Purchase');

// 2. Sıfırdan model ile iade faturası oluşturma
$data = [
    // ...standart fatura alanları...
    'InvoiceType' => 'IADE',
    'ReturnInvoiceInfo' => [
        ['InvoiceNumber' => 'GIB2024000000123', 'IssueDate' => '2024-01-15'],
    ],
];

$model = Nilvera::mapToModel($data);
$result = Nilvera::createDraft($model, 'einvoice');

Base64 (ZIP) İle Fatura Gönderme ve Önizleme

UBL-TR XML'i ZIP'leyip Base64'e çevirerek doğrudan gönderebilir veya önizleyebilirsiniz.

$zipBase64 = base64_encode(file_get_contents('fatura.zip'));

// Base64 (ZIP) Faturayı Gönder
$result = Nilvera::sendInvoiceBase64($zipBase64, 'urn:mail:defaultpk@nilvera.com', $templateUuid = null, 'einvoice');

// Base64 (ZIP) Faturayı Önizle (HTML döner)
$preview = Nilvera::previewInvoiceBase64($zipBase64, 'urn:mail:defaultpk@nilvera.com', 'einvoice');

5. Müşteri (Cari) Yönetimi

VKN/TCKN üzerinden mükellef sorgulama ve adres defteri işlemleri.

// Detaylı ve Normalize Edilmiş Müşteri Bilgisi Al
// (CheckTaxNumber ve GlobalCustomerInfo'yu birleştirir)
$customer = Nilvera::getCustomerDetails('1234567890');

// Nilvera Adres Defterine Müşteri Kaydet
Nilvera::createCustomer([
    'Name' => 'Müşteri Ünvanı',
    'TaxNumber' => '1234567890',
    'Email' => 'email@example.com',
    'City' => 'İstanbul'
]);

// Adres Defterindeki Müşterileri Listele (Sayfalı)
$customers = Nilvera::getCustomers(search: 'Müşteri', pageSize: 30, page: 1, sortColumn: 'Name', sortType: 'ASC');

// Müşteri Bilgilerini Güncelle
Nilvera::updateCustomer([
    'ID' => 1,
    'Name' => 'Güncellenmiş Ünvan',
    'Email' => 'yeni@example.com'
]);

// ID İle Müşteri Getir
$customer = Nilvera::getCustomerById(1);

// Müşteri Sil
Nilvera::deleteCustomer(1);

// Müşterileri Toplu Sil
Nilvera::bulkDeleteCustomers([1, 2, 3]);

// Müşteri Listesinde Arama Yap
$results = Nilvera::searchCustomers('Müşteri');

// Vergi Numarası İle Adres Defterindeki Müşteriyi Getir
$customer = Nilvera::getCustomerByTaxNumber('1234567890');

Stok Yönetimi (Stock)

// Stokları Listele (Sayfalı, Filtreli)
$stocks = Nilvera::getStocks(search: 'Ürün', pageSize: 30, page: 1, sortColumn: 'Name', sortType: 'ASC', isActive: true);

// Yeni Stok Ekle (Tekli veya Çoklu)
Nilvera::createStocks([
    'Name' => 'Yazılım Lisansı',
    'UnitCode' => 'C62',
    'Price' => 1000,
    'IsActive' => true,
    'TaxPercent' => 20,
]);

// Stok Bilgilerini Güncelle
Nilvera::updateStock([
    'ID' => 1,
    'Name' => 'Yazılım Lisansı (Güncel)',
    'Price' => 1200,
    'IsActive' => true,
    'TaxPercent' => 20,
]);

// ID İle Stok Getir
$stock = Nilvera::getStockById(1);

// Stok Sil
Nilvera::deleteStock(1);

// Stokları Toplu Sil
Nilvera::bulkDeleteStocks([1, 2, 3]);

// Stok Listesinde Arama Yap
$results = Nilvera::searchStocks('Yazılım');

Muhasebe Raporları (Report API)

// Yeni Muhasebe Raporu Oluştur
// ReportType: 'Invoice', 'Voucher' veya 'Producer'
$report = Nilvera::createReport([
    'Title' => 'Ocak Ayı Faturaları',
    'StartDate' => '2024-01-01',
    'EndDate' => '2024-01-31',
    'Type' => 1,
    'TemplateID' => 1,
    'ReportType' => 'Invoice',
    'Email' => 'rapor@firma.com',
]);

// Oluşturulan Raporları Listele (Sayfalı, Filtreli)
$reports = Nilvera::getReports(search: null, pageSize: 30, page: 1, startDate: '2024-01-01', endDate: '2024-01-31', reportType: 'Invoice');

// Raporu İndir (UUID ile)
$file = Nilvera::downloadReport($report['UUID']);

// Yeni Rapor Şablonu Oluştur
Nilvera::createReportTemplate([
    'Name' => 'Standart Fatura Şablonu',
    'Type' => 1,
    'ReportType' => 'Invoice',
    'Columns' => [
        ['Name' => 'Fatura No', 'ID' => 1],
        ['Name' => 'Tarih', 'ID' => 2],
    ],
]);

// Rapor Şablonlarını Listele
$templates = Nilvera::getReportTemplates();

6. Toplu İşlemler ve Operasyonlar

// Toplu Fatura Gönderimi
Nilvera::bulkSendInvoices([['UUID' => '...', 'Alias' => '...']], 'einvoice');

// Toplu Taslak Silme
Nilvera::bulkDeleteInvoices(['uuid1', 'uuid2'], 'einvoice');

// Toplu Arşivleme
Nilvera::archiveInvoices(['uuid1', 'uuid2'], 'Sale');

// Toplu Okundu Olarak İşaretleme
Nilvera::markAsRead(['uuid1', 'uuid2'], 'Purchase');

// Toplu ERP Aktarıldı İşareti
Nilvera::markAsTransferred(['uuid1', 'uuid2'], 'Sale');

// Taslaklara Toplu Yeni Durum Atama
// operationType: Print, UnPrint (E-Fatura) | Transferred, Untransferred (E-Arşiv)
Nilvera::updateDraftsStatus(['uuid1', 'uuid2'], 'Print', 'einvoice');

7. Dışa Aktarma (Export) ve Yükleme

// Faturaları PDF/XML Olarak Dışa Aktar
// Formatlar: 'Pdf', 'OnePagePdf', 'Xml', 'Envelope'
$binaryContent = Nilvera::exportInvoices($uuids, 'Pdf', 'Sale');

// XML/UBL Dosyası Yükleyerek Fatura Oluştur
Nilvera::uploadXml($filePath, $fileName, 'einvoice');

// SGK PDF Yükleme
Nilvera::uploadSgkPdf($filePath, $fileName, 'SAGLIK_ECZ', 'registerCode');

8. Ekstra Fonksiyonlar

// WhatsApp Üzerinden Fatura Gönder (Taslaklar için)
Nilvera::sendWhatsapp($uuid, '90555XXXXXXX');

// E-Arşiv Faturasını Mail İle Gönder
$mailResult = Nilvera::sendInvoiceEmail($uuid, ['musteri@firma.com']);

// E-Arşiv Faturasını SMS İle Gönder
Nilvera::sendInvoiceSms($uuid, '90555XXXXXXX');

// Mail Aktivitelerini Getir (processed, delivered, open, click, bounce vb.)
$mailActivities = Nilvera::getMailActivityHistories($mailResult['MessageId']);

// SMS İşlem Geçmişini Getir
$smsHistories = Nilvera::getSmsHistories($uuid);

// WhatsApp İşlem Geçmişini Getir
$whatsappHistories = Nilvera::getWhatsappHistories($uuid);

// Fatura Serilerini Yönet
$series = Nilvera::getSeries('einvoice');
Nilvera::createSeries('ABC', 'einvoice');

// Seriyi Güncelle (Aktif/Pasif veya Varsayılan Yapma)
Nilvera::updateSeries(1, isActive: true, isDefault: false, mode: 'einvoice');

// Seri Detayını Getir (Yıl, Sıra No, Son Kesim Tarihi vb.)
$seriesDetail = Nilvera::getSeriesDetail(1, 'einvoice');

// Yeni Etiket Oluştur
$tag = Nilvera::createTag('Önemli', 'Önemli faturalar', '#FF0000', 'einvoice');

// Etiketi Güncelle
Nilvera::updateTag($tag['UUID'], name: 'Çok Önemli', color: '#FF6600', mode: 'einvoice');

// Etiketi Sil
Nilvera::deleteTag($tag['UUID'], 'einvoice');

// Satış/Alış Faturaları İçin Bildirim Ayarları
// Property: DocumentProfile, DocumentType, TaxNumber, PayableAmount, TaxableAmount, AllowanceTotal, SendType
// Operator: GreaterOrEqual, SmallOrEqual, Equal, NotEqual, Between
// NotificationValueType: Whatsapp, Sms, Mail
$ruleData = [
    'RuleName' => 'Yüksek Tutarlı Faturalar',
    'Rules' => [
        ['Property' => 'PayableAmount', 'Operator' => 'GreaterOrEqual', 'ValueFirst' => '1000'],
    ],
    'Contact' => [
        ['NotificationValue' => 'ornek@firma.com', 'NotificationValueType' => 'Mail'],
    ],
    'IsActive' => true,
];

// Satış Faturası Bildirim Ayarlarını Listele
$saleSettings = Nilvera::getSaleNotificationSettings('einvoice');

// Alış Faturası Bildirim Ayarlarını Listele
$purchaseSettings = Nilvera::getPurchaseNotificationSettings('einvoice');

// Satış Faturası İçin Bildirim Kuralı Oluştur
$saleRule = Nilvera::createSaleNotificationSetting($ruleData, 'einvoice');

// Alış Faturası İçin Bildirim Kuralı Oluştur
$purchaseRule = Nilvera::createPurchaseNotificationSetting($ruleData, 'einvoice');

// Satış/Alış Bildirim Ayarını Güncelle
Nilvera::updateSaleNotificationSetting(array_merge($ruleData, ['ID' => $saleRule['ID']]), 'einvoice');
Nilvera::updatePurchaseNotificationSetting(array_merge($ruleData, ['ID' => $purchaseRule['ID']]), 'einvoice');

// Satış/Alış Bildirim Ayarını Sil
Nilvera::deleteSaleNotificationSetting($saleRule['ID'], 'einvoice');
Nilvera::deletePurchaseNotificationSetting($purchaseRule['ID'], 'einvoice');

// Fatura Taslak Şablonlarını Al
$templates = Nilvera::getTemplates('einvoice');

// Şablonu Güncelle (Ad, Aktiflik, Varsayılan)
Nilvera::updateTemplate(1, name: 'Yeni Şablon Adı', isActive: true, isDefault: false, mode: 'einvoice');

// Şablon Detayını Getir
$templateDetail = Nilvera::getTemplateDetail(1, 'einvoice');

// Şablonu Sil
Nilvera::deleteTemplate(1, 'einvoice');

// Şablonu Önizle (HTML/Byte İçerik Döner)
$preview = Nilvera::previewTemplate($uuid, 'einvoice');

// Özel Kod (SpecialCode) Güncelle
Nilvera::updateSpecialCode($uuids, 'PROJE-001', 'einvoice');

// Faturayı GİB üzerinden sorgula
Nilvera::queryFromGib($uuid, 'Sale');

Konfigürasyon

config/nilvera.php dosyası üzerinden API bilgilerinizi ve varsayılan şirket bilgilerinizi yönetebilirsiniz.

return [
    'base_url' => env('NILVERA_BASE_URL'),
    'api_key' => env('NILVERA_API_KEY'),
    'company' => [
        'name' => 'Varsayılan Şirket Adı',
        // ... diğer bilgiler
    ]
];

统计信息

  • 总下载量: 3
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-05-15