Skip to main content

Lettura fatture

Endpoints

Le chiamate per la lettura delle fatture si dividono in due step.

Api

Questo v2non vuol dire però che sono complementari, ovvero, le chiamate di lettura fatture (step 2) possono essere effettuate anche senza lo step 1.

Perché è importante però utilizzare lo step 1?

Lo step 1, ovvero la chiamata di ItemOverview, è importante perché ci consente di verificare rapidamente se ci sono delle nuove fatture.

Questo permette di non sovraccaricare i nostri server perché se chiamando l’ItemOverview (step 1) ci restituisce che non ci sono delle nuove fatture è inutile procedere con lo step 2.

Dopo aver effettuato la chiamata di company Overview ( se non lo avete fatto, leggetelink qui).

Possiamopossiamo procedere a chiamare le api di lettura per ogni item che ha fatture.

 

Endpoint:

https://b2bread-api-test.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/InvoicesV2/getAll_1v2/invoices?ownerId{UUID}&active=true&lastTimestampFrom=1546335945000

Andiamoi ora a vedere come interrogare gli endpoint REST delle api v2 al fine di recuperare la lista di fatture attive e passive.

Evitare di filtrare sugli stati delle fatture e lavorare invece sul delta dei documenti cambiati a partireparametri da unaimpostare certasono:

data
    ownerId: da popolare con l’identificativo dell’azienda (aka listChangesFrom).

    Nella chiamata dovrò indicare come parametro lastTimestampFrom il valore di lastTimestamp della fattura più recente ottenuta in risposta alla precedente chiamata a v2/invoices.

    Se la chiamata è effettuata per la prima utilizzare un valore valido a piacere, ad esempio 1577836800000 (1 Gennaio 2020, 00:00:00 UTC).

    Attenzione NON vanno utilizzati i valori di lastTimestampActive / lastTimestampPassive della company overview, ma, ad essclusione della prima volta, per tutte le chiamate dovrà essere il valore di lastTimestamp della fattura più recente ricevuta in risposta. 

    Nella query string di ricerca è stato introdotto il parametro obbligatorio ownerId.UUID/CF/P.iva) Se l'azienda ha più di un ufficio e si vogliono recuperare le fatture di tutti gli uffici è possibile aggiungere al valore di ownerId il suffisso -ALL.

      active: da popolare con true o false. True se si vuole ottenere la lista delle fatture attive. False se si svuole ottenere la lista. delle fatture passive;
        lastTimestampFrom: da popolare con la data espressa in millisecondi. Ad eccezione della prima volta che può essere popolato con un data a piacere le volte successive deve essere popolato con il “lastTimestamp” della fattura più recente ricevuta dalla response.

        Come impostare la chiamata:

        Eseguo la prima chiamata con data a piacere, ad esempio 24/01/2022

        Dalla response ottengo tutte le fatture che hanno subito aggiornamenti successivi alla data impostata.

        Le fatture vengono restituite dalla più recente alla meno recente.

        Il giorno seguente ho bisogno di sapere se ci sono altri aggiornamenti sulle fatture?

        Quello che bisogna fare è fare è impostare nella chiamata il timestamp dell’ultima fattura ottenuta dalla response precedente.

        Esempio:

        24/01/2022 ore 11:00 à timestamp: 1643022047000

        Response:

        “…

        "currentStatusName": "INVIATO",

        "lastTimestamp": 1643047247000,

         "active": true,

         …"

        25/01/2022 ore 11:00  timestamp: 1643047247000

        In questo modo dalla response otterremo solo le fatture che hanno subito un aggiornamento e non nuovamente tutta la lista delle fatture.

        Il comportamento ideale da seguire quindi è sincronizzare le fatture tramite questa chiamata e poi impostare delle query da parte vostra per ottenere specifici risultati.

        E’ possibile trovare la stessa fattura in diverse chiamate?

        Sì è possibile perché il lastTimestamp di una fattura viene cambiato ad ogni aggiornamento quindi una fattura potresti averla in risposta anche ad ogni chiamata se (per esempio) venisse aggiornata ogni giorno.

         

        DiContinuation seguitoToken

        Il “continuationToken” ci permette di vedere, qualora siano presenti, le altre fatture ottenute dalla response.

        Il “size” della chiamata è impostato di default a 20 in modo da ottenere dalla response non più di 20 record (fatture).

        Nel caso in cui siano presenti più di 20 fatture, in fondo alla response, troveremo due chiamatetag diche esempio:ne danno conferma e sono “hasNext” popolato con “true” e “continuationToken” popolato con una stringa.

        Fatture Attive

        Esempio:

        https://b2bread-api-test.agyo.io/api/v2/invoices?ownerId=ABCDEF-ALL&active=true&lastTimestampFrom=1576167521000},

              "page": {

          ownerId=ABCDEF-ALL

                  "size": 20,

          //

                  "hasNext": true,

          Tutti

                  "continuationToken": "6g5TtcULxhoHlBd9DlTOmnTlqtnDa5Hz8zlimF7R1ahgTkS2fOYE1z3HM162btsWr8iV0xi2Pbd02nHD7XlwFX3Wtt2cA5iTxLJ07-zpwUXV1WJ9HAd9ko3t22M3tjjc"

          gli

              }

          uffici

          Quindi dell'aziendaper Azienda/Studio ABCDEF 

          active=true  //Filtrovisualizzare le altre fatture attivepresenti lastTimestampFrom=1576167521000nella //Timestampresponse dalnon qualedobbiamo partirefar peraltro effettuareche aggiungere alla chiamata il parametro “continuationToken” e popolarlo con la ricercastringa (ottenuto dalla companyOverview)  
          Fatture Passive

          https://b2bread-api-test.agyo.io/api/v2/invoices?ownerId=ABCDEF-ALL&active=false&lastTimestampFrom=1576167521000indicata.

            ownerId=ABCDEF-ALL  // Tutti gli uffici dell'azienda Azienda/Studio ABCDEF  active=false  //Filtro le fatture attive lastTimestampFrom=1576167521000 //Timestamp dal quale partire per effettuare la ricerca (ottenuto dalla companyOverview)