onesto-it / laravel-sdk
SDK Laravel per integrare le API di Onesto.it (fatturazione elettronica, SDI, F24).
Requires
- php: >=8.1
- guzzlehttp/guzzle: ^7.0
- illuminate/http: >=9.0
- illuminate/support: >=9.0
Requires (Dev)
- orchestra/testbench: ^8.0 || ^9.0
- phpunit/phpunit: ^10.0 || ^11.0
README
SDK Laravel ufficiale per integrare le API di Onesto.it — fatturazione elettronica, invio SDI, gestione clienti e movimenti.
Requisiti
- PHP 8.1+
- Laravel 9, 10, 11, 12
Installazione
composer require onesto-it/laravel-sdk
Il service provider e l'alias Onesto vengono registrati automaticamente da Laravel package discovery.
(Opzionale) pubblica il file di configurazione:
php artisan vendor:publish --tag=onesto-config
Configurazione
Nel file .env:
ONESTO_TOKEN=la_tua_api_key # opzionale, default https://api.onesto.it ONESTO_URL=https://api.onesto.it # opzionale, default 30s ONESTO_TIMEOUT=30
Il token si genera dal pannello Onesto → Impostazioni → API.
Utilizzo
Creare una fattura manuale
use Onesto; $result = Onesto::createInvoiceManually([ 'cliente' => [ 'ragione_sociale' => 'Acme SRL', 'piva' => '01234567890', 'indirizzo' => 'Via Roma 1', 'cap' => '20121', 'citta' => 'Milano', 'provincia' => 'MI', 'nazione' => 'IT', 'pec' => 'acme@pec.it', ], 'articoli' => [ ['descrizione' => 'Consulenza', 'quantita' => 1, 'prezzo' => 1000, 'iva' => 22], ], 'scadenze' => [ ['data' => '2026-06-30', 'importo' => 1220], ], 'numerazione' => 'Standard', 'issue_date' => '2026-05-20', 'tipo_documento' => 'TD01', 'metodo_pagamento' => 'Bonifico', 'invia_sdi' => true, ]);
Creare una fattura da Partita IVA
I dati anagrafici vengono recuperati automaticamente da Onesto:
Onesto::createInvoiceFromPIVA([ 'piva' => '01234567890', 'numerazione' => 'Standard', 'issue_date' => '2026-05-20', 'tipo_documento' => 'TD01', 'metodo_pagamento' => 'Bonifico', 'articoli' => [...], 'scadenze' => [...], 'invia_sdi' => true, ]);
Riferimenti Pubblica Amministrazione (CIG, CUP, ordine, determina…)
Per progetti finanziati, appalti pubblici o PNRR puoi passare due oggetti opzionali:
pa→ solo i codici PA (cig,cup,cups).ordine→ riferimenti all'ordine d'acquisto (numero,data,impegno,determina,codice_commessa). Validi anche fuori dalla PA (es. B2B con ordine d'acquisto interno).
Tutti i campi sono opzionali; quelli passati vengono inseriti nei <DatiOrdineAcquisto> della FatturaPA al momento dell'invio SDI.
Onesto::createInvoiceManually([ // ... cliente, articoli, scadenze come sopra ... 'pa' => [ 'cig' => 'ZF3392A8B7', // Codice Identificativo Gara 'cups' => [ // Codici Unico Progetto (più di uno OK) 'J53D23000170006', 'K12C24000050001', ], ], 'ordine' => [ 'numero' => 'ORD-2025-001', 'data' => '2025-04-15', 'impegno' => 'IMP-123', // Impegno di spesa 'determina' => 'DET-456', // Determina / commessa 'codice_commessa' => 'COMM-789', // Codice commessa / convenzione ], ]);
Funziona allo stesso modo anche con Onesto::createInvoiceFromPIVA([...]).
Vincoli sui campi:
| Campo | Max chars | Note |
|---|---|---|
pa.cig |
15 | Alfanumerico |
pa.cup |
15 | Singolo. Per più CUP usa pa.cups. |
pa.cups[*] |
15 | Lista. Prevale su pa.cup se entrambi presenti. |
ordine.numero |
20 | Numero ordine |
ordine.data |
— | Formato YYYY-MM-DD |
ordine.impegno |
100 | Impegno di spesa |
ordine.determina |
100 | Determina / commessa |
ordine.codice_commessa |
100 | Codice commessa / convenzione |
Senza Facade (dependency injection)
use OnestoIt\Sdk\Onesto; class FattureController { public function __construct(private Onesto $onesto) {} public function store() { return $this->onesto->createInvoiceManually([...]); } }
Per la struttura completa dei payload e tutte le risposte, vedi la documentazione API Onesto.
Licenza
MIT © True Solutions S.r.l.