onesto-it/laravel-sdk

SDK Laravel per integrare le API di Onesto.it (fatturazione elettronica, SDI, F24).

Maintainers

Package info

github.com/Onesto-it/laravel-sdk

Homepage

Documentation

pkg:composer/onesto-it/laravel-sdk

Statistics

Installs: 7

Dependents: 1

Suggesters: 0

Stars: 0

Open Issues: 0

v1.1.1 2026-05-20 23:29 UTC

This package is auto-updated.

Last update: 2026-05-20 23:31:53 UTC


README

Latest Version on Packagist Total Downloads License

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.