Vai al contenuto

Fattura elettronica da command-line con invoice

Non è necessario imparare l'API o alcun linguaggio di programmazione per inviare e ricevere fatture. Abbiamo creato il comando invoice per scambiare in modo rapido e intuitivo file di fatture con il Servizio di Interscambio (SDI) dalla riga di comando.

In questo quickstart utilizzeremo lo strumento da riga di comando invoice per:

  1. Inviare file di fatture allo SDI
  2. Ricevere fatture dallo SDI
  3. Configurare lo strumento per un utilizzo ottimale

Prerequisiti

Presupponiamo che questi prerequisiti siano soddisfatti:

Warning

In tutti gli esempi, ricorda di sostituire la chiave di esempio con la tua chiave API di test. Non usare la chiave live, altrimenti i documenti verranno inviati allo SDI per la consegna effettiva.

Send

Il comando send consente di caricare file di fatture verso lo SDI. Ad esempio:

invoice send file1.xml --apikey ik_test_YOUR_API_KEY

Carica file1.xml nella Sandbox per scopi di test.

Puoi elencare più file:

invoice send file1.xml file2.xml path/to/another/file3.xml.p7m --apikey ik_test_YOUR_API_KEY

Il comando sopra carica file1.xml e file2.xml dalla directory corrente, e il file firmato digitalmente file3.xml.p7m da un percorso diverso.

I caricamenti in blocco sono probabilmente gestiti meglio con i caratteri jolly:

invoice send outbound/*.xml --apikey ik_test_YOUR_API_KEY

Carica tutti i file di fatture xml dalla directory outbound.

Elimina dopo il caricamento

Potresti voler eliminare i file locali una volta caricati. Questo si ottiene con l'opzione --delete:

invoice send file1.xml --delete --apikey ik_test_YOUR_API_KEY

Si comporta come il comando precedente, ma i file locali verranno rimossi in caso di caricamenti riusciti.

Validazione preliminare

Se non sei sicuro che le fatture siano valide per lo SDI, puoi richiedere una validazione preliminare con l'opzione --validate:

invoice send file1.xml --validate --apikey ik_test_YOUR_API_KEY

Il file verrà rifiutato in caso di errore nella validazione.

Richiedere aiuto

invoice send --help

Elenca tutte le opzioni disponibili e mostra come utilizzarle.

Receive

Il comando receive consente di scaricare le fatture dallo SDI.

invoice receive --apikey ik_test_YOUR_API_KEY

Non ricevi fatture nell'ambiente di produzione?

Assicurati che i tuoi corrispondenti utilizzino 7HD37X0 come valore del campo Codice Destinatario delle loro fatture. È così che lo SDI sa che devono essere inoltrate a Invoicetronic API.

Solo fatture non lette

Scarica tutti i file di fatture disponibili. Tuttavia, questo potrebbe scaricare file precedentemente scaricati. Se sei interessato solo alle fatture nuove, usa l'opzione --unread:

invoice receive --unread --apikey ik_test_YOUR_API_KEY

Ora verranno scaricate solo le fatture precedentemente non lette. Se vuoi mantenere solo le fatture nuove sull'API, puoi utilizzare l'opzione --delete:

Elimina una volta scaricate

invoice receive --delete --apikey ik_test_YOUR_API_KEY

Con il comando sopra, una volta che una fattura è stata scaricata e salvata su disco, verrà rimossa dal remoto.

Come JSON

Per impostazione predefinita, le fatture scaricate vengono salvate come file in base al valore del loro campo file_name. Se hai bisogno di elaborare immediatamente il documento, possibilmente con una pipeline Linux, potresti preferire un output JSON su stdout:

invoice receive --json --apikey ik_test_YOUR_API_KEY | more

Il comando sopra visualizzerà la fattura sulla console, mettendo in pausa quando lo schermo è pieno.

Configure

Dover ripetere la chiave API per ogni comando è tedioso. Puoi usare il comando config per salvare la chiave in un file di configurazione:

invoice config apikey ik_test_YOUR_API_KEY

Ora puoi omettere la chiave quando esegui un comando send o receive:

invoice receive --unread 

or:

invoice send file.xml

Eccetera. Il file di configurazione è memorizzato nella home directory dell'utente con il nome .invoice.yaml (è nascosto sui sistemi Unix/Linux). Ci sono più opzioni di configurazione, per vederle tutte basta usare l'opzione --list (-l):

invoice config --list

Configuration file: /Users/johndoe/.invoice.yaml
apikey: ik_test_YOUR_API_KEY
host: https://api.invoicetronic.com
verbose: false

Puoi anche modificare la configurazione tutta in una volta con invoice config --edit (o -e).

Come puoi vedere, puoi passare alla modalità verbosa (invoice config verbose true), impostare un host diverso (attualmente non molto utile), vedere dove è conservata la configurazione.

Variabili d'ambiente

Quando salvi la chiave API nella tua configurazione, viene memorizzata in chiaro. Se la sicurezza è una preoccupazione (dovrebbe esserlo), dovresti invece usare le variabili d'ambiente:

INVOICE_APIKEY=ik_test_MY_SUPER_SECRET_KEY invoice config -l

Configuration file: /Users/johndoe/.invoice.yaml
apikey: ik_test_MY_SUPER_SECRET_KEY     # stiamo eseguendo con la chiave dalla variabile d'ambiente
host: https://api.invoicetronic.com
verbose: false

Anteponendo INVOICE_ a qualsiasi impostazione di configurazione, puoi passarla come variabile d'ambiente, senza mai memorizzare i dati sensibili sul tuo sistema. Un esempio più utile:

INVOICE_APIKEY=ik_test_MY_SUPER_SECRET_KEY invoice send file1.xml

In un ambiente di integrazione continua, il valore della variabile d'ambiente dovrebbe provenire da un segreto di qualche tipo (GitHub Secrets, ecc.)