PHPackages                             kapasifulop/szamlazzphp - 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. [API Development](/categories/api)
4. /
5. kapasifulop/szamlazzphp

ActiveLibrary[API Development](/categories/api)

kapasifulop/szamlazzphp
=======================

Szamlazz.hu API integrációs csomag PHP-hoz

v1.1.1(1y ago)222MITPHPPHP ^8.0

Since Apr 21Pushed 1y ago1 watchersCompare

[ Source](https://github.com/kapasifulop/szamlazzphp)[ Packagist](https://packagist.org/packages/kapasifulop/szamlazzphp)[ RSS](/packages/kapasifulop-szamlazzphp/feed)WikiDiscussions main Synced today

READMEChangelog (7)Dependencies (3)Versions (9)Used By (0)

Számlázz.hu PHP
===============

[](#számlázzhu-php)

A Számlázz.hu API-hoz készített PHP integráció. **FEJLESZTÉS ALATT ÁLL!**

Telepítés
---------

[](#telepítés)

```
composer require kapasifulop/szamlazzphp
```

Laravel integrációval
---------------------

[](#laravel-integrációval)

A csomag Laravel keretrendszerrel is használható. A config publikálásához futtasd:

```
php artisan vendor:publish --provider="Szamlazzphp\SzamlazzphpServiceProvider"
```

Ezután konfiguráld a `.env` fájlban:

```
# Autentikáció típusa: api_key (API kulcs) vagy auth (felhasználónév/jelszó)
SZAMLAZZHU_AUTH_TYPE=api_key

# API kulcs alapú autentikáció
SZAMLAZZHU_TOKEN=your_token

# VAGY felhasználónév-jelszó alapú autentikáció csak akkor használható, ha nincs bekapcsolva a kétlépcsős azonosítás a Számlázz.hu fiókban! https://docs.szamlazz.hu/hu/agent/basics/agent-user
# SZAMLAZZHU_USER=your_username
# SZAMLAZZHU_PASSWORD=your_password

# Egyéb beállítások
SZAMLAZZHU_E_INVOICE=false                # E-számla generálása
SZAMLAZZHU_DOWNLOAD=true                  # Számla PDF letöltése
SZAMLAZZHU_DOWNLOAD_COUNT=1               # Letöltendő példányszám
SZAMLAZZHU_RESPONSE_VERSION=1             # Válasz verzió
SZAMLAZZHU_TIMEOUT=30                     # Időtúllépés másodpercben

```

> **FONTOS:** Felhasználónév és jelszó páros csak akkor használható, ha nincs bekapcsolva a kétlépcsős azonosítás a Számlázz.hu fiókban! [több](https://docs.szamlazz.hu/hu/agent/basics/agent-user)

### A SzamlazzHU Facade használata

[](#a-szamlazzhu-facade-használata)

A csomag tartalmaz egy beépített `SzamlazzHU` Facade-t, amelyet könnyen használhatsz Laravel alkalmazásodban. Ez a Facade automatikusan regisztrálva van, így nincs szükség további konfigurációra.

```
use Szamlazzphp\Facades\SzamlazzHU;
use Szamlazzphp\InvoiceBuilder;
use Szamlazzphp\Enum\PaymentMethod;
use Szamlazzphp\Enum\Currency;
use Szamlazzphp\Enum\Language;

// Számla lekérése
$invoice = SzamlazzHU::getInvoiceData('SZLA-12345');

// Számla kiállítása
$invoice = (new InvoiceBuilder($buyer))
    ->addItem($item)
    ->setPaymentMethod(PaymentMethod::BankTransfer)
    ->setCurrency(Currency::Ft)
    ->setLanguage(Language::Hungarian)
    ->build();

$result = SzamlazzHU::issueInvoice($invoice);

// Számla sztornózása
$result = SzamlazzHU::reverseInvoice('SZLA-12345', true, true);
```

### Alternatív használati módok

[](#alternatív-használati-módok)

A SzamlazzHU Facade mellett továbbra is használhatod a ClientInterface-t is közvetlenül:

#### 1. Constructor Injection

[](#1-constructor-injection)

```
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Szamlazzphp\Client\ClientInterface;
use Szamlazzphp\InvoiceBuilder;
use Szamlazzphp\Buyer;
use Szamlazzphp\Item;
use Szamlazzphp\Enum\Currency;
use Szamlazzphp\Enum\PaymentMethod;
use Szamlazzphp\Enum\Language;

class InvoiceController extends Controller
{
    protected $client;

    public function __construct(ClientInterface $client)
    {
        $this->client = $client;
    }

    public function issueInvoice(Request $request)
    {
        // Számla összeállítása
        $invoice = (new InvoiceBuilder($buyer))
            ->addItem($item)
            ->setPaymentMethod(PaymentMethod::BankTransfer)
            ->setCurrency(Currency::Ft)
            ->setLanguage(Language::Hungarian)
            ->build();

        // Számla kiállítása
        $result = $this->client->issueInvoice($invoice);

        return response()->json([
            'success' => true,
            'invoice_id' => $result['invoiceId']
        ]);
    }
}
```

#### 2. Service Container közvetlen használata

[](#2-service-container-közvetlen-használata)

```
public function downloadInvoice($invoiceId)
{
    // Kliens lekérése a Service Containerből
    $client = app(ClientInterface::class);

    // Számla adatok lekérdezése
    $invoiceData = $client->getInvoiceData($invoiceId, null, true);

    // További feldolgozás...
}
```

Használat
---------

[](#használat)

```
use Szamlazzphp\Client\SzamlaAgentClient;
use Szamlazzphp\Client\AuthBasedClient;
use Szamlazzphp\Invoice;
use Szamlazzphp\InvoiceBuilder;
use Szamlazzphp\Buyer;
use Szamlazzphp\Seller;
use Szamlazzphp\Item;
use Szamlazzphp\Enum\Currency;
use Szamlazzphp\Enum\PaymentMethod;
use Szamlazzphp\Enum\Language;

// API kulcs alapú kliens létrehozása
$client = new SzamlaAgentClient(
    'your_token',
    false, // eInvoice
    true,  // requestInvoiceDownload
    1,     // downloadedInvoiceCount
    1,     // responseVersion
    0      // timeout
);

// Vagy felhasználónév-jelszó alapú kliens létrehozása
// Felhasználónév és jelszó páros csak akkor használható, ha nincs bekapcsolva a kétlépcsős azonosítás a Számlázz.hu fiókban!
// $client = new AuthBasedClient(
//     'your_username',
//     'your_password',
//     false, // eInvoice
//     true,  // requestInvoiceDownload
//     1,     // downloadedInvoiceCount
//     1,     // responseVersion
//     0      // timeout
// );

// Vevő létrehozása
$buyer = new Buyer([
    'name' => 'Vevő Neve',
    'country' => 'Magyarország',
    'zip' => '1234',
    'city' => 'Budapest',
    'address' => 'Példa utca 1.',
    'email' => 'buyer@example.com',
    'taxNumber' => '12345678-1-42',
]);

// Eladó létrehozása (opcionális, ha az alapértelmezett számlázz.hu profilod megfelelő)
$seller = new Seller([
    'bank' => 'OTP Bank',
    'bankAccount' => '11111111-22222222-33333333',
]);

// Tétel létrehozása
$item = new Item([
    'label' => 'Termék vagy szolgáltatás',
    'quantity' => 1,
    'unit' => 'db',
    'vat' => 27, // ÁFA százalék
    'netUnitPrice' => 10000, // nettó egységár
    'comment' => 'Megjegyzés a tételhez',
]);

// Számla létrehozása Builder pattern segítségével (ajánlott)
$invoice = (new InvoiceBuilder($buyer))
    ->addItem($item)
    ->setPaymentMethod(PaymentMethod::BankTransfer)
    ->setCurrency(Currency::Ft)
    ->setLanguage(Language::Hungarian)
    ->setSeller($seller)
    ->setOrderNumber('ABC-123')
    ->setComment('Megjegyzés a számlához')
    ->build();

// Számla kiállítása
$result = $client->issueInvoice($invoice);

// Eredmény
echo "Számla azonosító: " . $result['invoiceId'] . PHP_EOL;

// Közvetlenül is létrehozható a számla (egyszerűbb esetekre)
$directInvoice = new Invoice(
    $buyer,
    [$item],
    new DateTime(), // issueDate - kiállítás dátuma
    new DateTime(), // fulfillmentDate - teljesítés dátuma
    new DateTime(), // dueDate - fizetési határidő
    PaymentMethod::BankTransfer,
    Currency::Ft,
    Language::Hungarian
);
$directInvoice->setSeller($seller);
$directInvoice->setOrderNumber('ABC-123');
```

InvoiceBuilder használata
-------------------------

[](#invoicebuilder-használata)

Az InvoiceBuilder egy fluent interfészt biztosít a számlák egyszerű és olvasható létrehozásához:

```
// Több tétel hozzáadása
$builder = new InvoiceBuilder($buyer);
$builder->addItem($item1);
$builder->addItem($item2);
$builder->addItem($item3);

// Vagy tömb formában
$builder->setItems([$item1, $item2, $item3]);

// Dátumok beállítása
$builder->setIssueDate(new DateTime('2023-12-01'))
    ->setFulfillmentDate(new DateTime('2023-12-01'))
    ->setDueDate(new DateTime('2023-12-15'));

// Egyéb opcionális beállítások
$builder->setOrderNumber('ABC-123')
    ->setPaid(true)
    ->setProforma(false)
    ->setNoNavReport(false)
    ->setInvoiceIdPrefix('INVOICE')
    ->setComment('Megjegyzés a számlához')
    ->setLogoImage('path/to/logo.png');

// Pénznem és árfolyam beállítása
$builder->setCurrency(Currency::EUR)
    ->setExchangeRate(380.0)
    ->setExchangeBank('MNB');

// Véglegesítés és számla létrehozása
$invoice = $builder->build();
```

Metódusok
---------

[](#metódusok)

### Számla kiállítása

[](#számla-kiállítása)

```
$client->issueInvoice($invoice);
// Vagy Laravelben
// $response = SzamlazzHU::issueInvoice($invoice);
```

### Számla adatok lekérése

[](#számla-adatok-lekérése)

```
$client->getInvoiceData('SZLA-123');
// vagy
$client->getInvoiceData(null, 'ABC-123');
// Vagy Laravelben
// $response = SzamlazzHU::getInvoiceData('SZLA-123');
```

### Számla sztornózása

[](#számla-sztornózása)

```
$client->reverseInvoice('SZLA-123', true, true);
// Vagy Laravelben
// $response = SzamlazzHU::reverseInvoice('SZLA-123', true, true);
```

### Számla letöltése PDF formátumban

[](#számla-letöltése-pdf-formátumban)

```
// Számla letöltése PDF-ben
$response = $client->downloadInvoicePdf('SZLA-123');
// Vagy Laravelben
// $response = SzamlazzHU::downloadInvoicePdf('SZLA-123')

// Ellenőrzés, hogy sikeres volt-e a letöltés
if ($response->isSuccess()) {
    // PDF mentése fájlba
    $response->savePdf('szamla.pdf');
    // vagy
    $response->storePdf('szamla.pdf');

    // Számla adatok lekérdezése
    $invoiceId = $response->getInvoiceId();
    $netTotal = $response->getNetTotal();
    $grossTotal = $response->getGrossTotal();
} else {
    // Hiba esetén
    $errorCode = $response->getErrorCode();
    $errorMessage = $response->getErrorMessage();
    echo "Hiba: {$errorMessage} (kód: {$errorCode})";
}
```

A `DownloadInvoiceResponse` osztály a letöltött számla adatait tartalmazza:

- `isSuccess()` - Sikeres volt-e a letöltés
- `getErrorCode()` - Hiba kód lekérdezése
- `getErrorMessage()` - Hibaüzenet lekérdezése
- `getInvoiceId()` - Számla azonosító lekérdezése
- `getNetTotal()` - Számla nettó összegének lekérdezése
- `getGrossTotal()` - Számla bruttó összegének lekérdezése
- `getPdf()` - PDF binary adatai
- `savePdf($filename)` / `storePdf($filename)` - PDF mentése fájlba

DownloadInvoiceResponse osztály részletesen
-------------------------------------------

[](#downloadinvoiceresponse-osztály-részletesen)

A `DownloadInvoiceResponse` osztály kezeli a számla PDF letöltésekor kapott válaszokat.

Az osztály segítségével egyszerűen kezelhető a számlák PDF-ben való letöltése és a válaszok feldolgozása. Az osztály támogatja a fluent interfészt, így a metódusok láncolhatók.

Licenc
------

[](#licenc)

MIT

###  Health Score

29

—

LowBetter than 57% of packages

Maintenance44

Moderate activity, may be stable

Popularity9

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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

Every ~0 days

Total

8

Last Release

439d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/69323434?v=4)[Kapási Fülöp](/maintainers/kapasifulop)[@kapasifulop](https://github.com/kapasifulop)

---

Top Contributors

[![kapasifulop](https://avatars.githubusercontent.com/u/69323434?v=4)](https://github.com/kapasifulop "kapasifulop (25 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/kapasifulop-szamlazzphp/health.svg)

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

###  Alternatives

[craftcms/cms

Craft CMS

3.6k3.6M3.1k](/packages/craftcms-cms)[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3741.3M46](/packages/tencentcloud-tencentcloud-sdk-php)[spatie/laravel-export

Create a static site bundle from a Laravel app

674146.0k6](/packages/spatie-laravel-export)[simplestats-io/laravel-client

Server-side analytics for Laravel that follows the full funnel from visit to registration to payment, attributed to the channel that drove it. Revenue, MRR, churn and ad-spend profit (ROAS/CAC) per channel. GDPR compliant, ad-blocker proof.

5022.0k](/packages/simplestats-io-laravel-client)[eslazarev/wildberries-sdk

Wildberries OpenAPI clients (generated).

273.0k](/packages/eslazarev-wildberries-sdk)[jasara/php-amzn-selling-partner-api

A fluent interface for Amazon's Selling Partner API in PHP

1348.7k1](/packages/jasara-php-amzn-selling-partner-api)

PHPackages © 2026

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