webrteu / smartbill
SmartBill driver for webrteu/invoicing (Laravel, Romania)
Requires
- php: ^8.2
- illuminate/console: ^12.0|^13.0
- illuminate/http: ^12.0|^13.0
- illuminate/support: ^12.0|^13.0
- webrteu/invoicing: ^2.0
Requires (Dev)
- larastan/larastan: ^3.13
- laravel/pint: ^1.32
- orchestra/testbench: ^10.0|^11.0
- peckphp/peck: ^0.3
- pestphp/pest: ^3.8|^4.7
- pestphp/pest-plugin-laravel: ^3.2|^4.1
- pestphp/pest-plugin-type-coverage: ^3.6|^4.0.4
- phpstan/phpstan: ^2.3.3,!=2.3.4
- rector/rector: ^2.8
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Furnizorul SmartBill Cloud pentru webrteu/invoicing: facturile fiscale și proformele se emit în contul SmartBill,
cu seria și numărul de acolo, iar PDF-ul poate fi al SmartBill sau cel din șablonul webrteu/invoicing. Mai are
anulare, restaurare, ștergere și statusul încasării.
Nu este un pachet oficial SmartBill.
Versiunea 2.x e o rescriere. 1.x era legată de aplicația Auditor. Aplicațiile pe 1.x rămân pe
^1.0.
Cerințe
- PHP
^8.2, Laravel 12–13 - cont SmartBill Cloud cu acces API
webrteu/invoicing^2.0
Instalare
composer require webrteu/smartbill php artisan vendor:publish --tag=smartbill-config php artisan smartbill:series # seriile din cont php artisan smartbill:taxes # cotele de TVA din cont
Configurare
INVOICING_PROVIDER=smartbill SMARTBILL_USERNAME=facturi@firma.ro # emailul contului SmartBill SMARTBILL_TOKEN= # SmartBill → Contul meu → Integrări → API SMARTBILL_CIF=RO12345678 # CIF-ul firmei, cum apare în SmartBill SMARTBILL_SERIES_FISCAL=FCT # seria de facturi (smartbill:series) SMARTBILL_SERIES_PROFORMA=PRF # seria de proforme (smartbill:series --type=p) SMARTBILL_COLLECT_PAYMENT=false # true = factura fiscală apare încasată (plăți online confirmate) SMARTBILL_PAYMENT_TYPE=Card # Card | Ordin de plata | Numerar | Alta SMARTBILL_SEND_EMAIL=false # true = SmartBill trimite el factura clientului SMARTBILL_WAREHOUSE= # gestiunea, doar dacă descarci stoc în SmartBill SMARTBILL_TIMEOUT=30
Cotele de TVA se trimit după denumirea lor din contul tău (smartbill.taxes, implicit 21 => Normala,
11 => Redusa, 0 => Scutita). Verifică denumirile cu php artisan smartbill:taxes. Pentru neplătitorii de TVA
(INVOICING_SELLER_VAT_PAYER=false) se trimite Neplatitor TVA, ca în versiunea 1.x din producție.
Utilizare
Totul trece prin webrteu/invoicing:
$invoice = Invoicing::issue($invoiceData, invoiceable: $order); // POST /invoice (fiscală) sau /estimate (proformă) $invoice->fullNumber(); // "FCT-0042", de la SmartBill Invoicing::pdf($invoice, 'local'); // PDF-ul tău (șablonul webrteu/invoicing), cu numărul SmartBill Invoicing::pdf($invoice, 'provider'); // PDF-ul SmartBill Invoicing::cancel($invoice); // PUT /invoice/cancel
| Metodă | SmartBill |
|---|---|
SmartBill::pdf($invoice) |
GET /invoice/pdf sau /estimate/pdf |
SmartBill::restore($invoice) |
PUT /invoice/restore |
SmartBill::delete($invoice) |
DELETE /invoice (doar ultimul document din serie) |
SmartBill::paymentStatus($invoice) |
GET /invoice/paymentstatus, cu sumele în bani |
Prețurile se trimit în lei cu 2 zecimale. Erorile SmartBill (inclusiv errorText la HTTP 200) devin
SmartBillException, iar factura rămâne Failed în invoices. Cererile de emitere nu se reîncearcă automat.
Token-ul nu apare în loguri. Limita SmartBill e de 30 de apeluri la 10 secunde.
⚠️ Căile /invoice/pdf, /invoice/cancel, /invoice/restore și /invoice/paymentstatus sunt scrise după documentația
api.smartbill.ro și trebuie confirmate pe contul real.
Comenzi Artisan
smartbill:series {--type=f}: seriile (ffacturi,pproforme,cchitanțe)smartbill:taxes: cotele de TVA
Ce nu face pachetul
- e-Factura: SmartBill o poate trimite automat în SPV din setările contului; integrarea proprie va fi un pachet separat
- nomenclatorul de produse și clienți din SmartBill (trimite
saveToDb: false) - chitanțe și încasări ulterioare emiterii
Testare
composer test
Fixture-urile sunt scrise după documentația SmartBill. De înlocuit cu răspunsuri reale.
Changelog
Vezi CHANGELOG.md.
Autor
Licență
MIT. Vezi LICENSE.md.