Api per emettere lo Scontrino ELettronico dal gestionale?

Buongiorno a tutti, sono riuscito a creare correttamente il documento commerciale, vi lascio i passaggi di seguito**

STEP 1 — Pagina di login**

GET https://iampe.agenziaentrate.gov.it/sam/UI/Login?realm=/agenziaentrate&goto=https%3A%2F%2Fportale.agenziaentrate.gov.it%3A443%2FPortaleWeb%2Fhome%3Fto%3DFATBTB

  • Carica la pagina di login e inizializza i cookie SIAMPE

STEP 2 — Login telematico

POST https://iampe.agenziaentrate.gov.it/api/login/telematico

  • Headers: Content-Type: application/json;charset=utf-8, Referer: .../sam/UI/Login, Origin: https://iampe.agenziaentrate.gov.it

  • Body JSON: {"username": "<CF>", "pin": "<PIN>", "password": "<PASSWORD>"}

  • Risposta: {"success": true} — imposta i cookie LtpaToken2, cookieutentee0194, portaleCookie

STEP 3 — Accesso al portale

GET https://portale.agenziaentrate.gov.it/PortaleWeb/home?to=FATBTB

STEP 4 — Init portale

GET https://portale.agenziaentrate.gov.it/portale-rest/rs/initPortale?v=<timestamp>&to=FATBTB

  • Può tornare 501, non è bloccante

STEP 5 — Instradamento home

GET https://ivaservizi.agenziaentrate.gov.it/instr/InstradamentofcWeb/home

STEP 6 — initLight (cattura x-appl)

GET https://ivaservizi.agenziaentrate.gov.it/instr/instradamento-fatture-rest/rs/initLight?v=<timestamp>&to=FATBTB

  • Headers: Accept: application/json, text/plain, */*, Referer: .../InstradamentofcWeb/home

  • Importante: dalla response header si cattura x-appl (token di sessione instradamento)

STEP 7 — Wizard

GET https://ivaservizi.agenziaentrate.gov.it/instr/InstradamentofcWeb/wizard

STEP 7b — wizardTemplate

GET https://ivaservizi.agenziaentrate.gov.it/instr/instradamento-fatture-rest/rs/wizardTemplate?v=<timestamp>

  • Headers: x-appl: <valore catturato>

  • Risposta JSON con soloPerMe (boolean) e PIva (array di P.IVA)

STEP 8 — setUserChoice

Se soloPerMe=true e c’è una sola P.IVA, si salta procediWizard e si va direttamente a:

POST https://ivaservizi.agenziaentrate.gov.it/instr/instradamento-fatture-rest/rs/setUserChoice?v=<timestamp>

Altrimenti prima POST procediWizard con {"tipoutenza": "meStesso", "cf": "<CF>"}, poi setUserChoice.

STEP 9b — Ritorno alla home instradamento

GET https://ivaservizi.agenziaentrate.gov.it/instr/InstradamentofcWeb/home

STEP 9c — fullTemplate

GET https://ivaservizi.agenziaentrate.gov.it/instr/instradamento-fatture-rest/rs/fullTemplate?v=<timestamp>

  • Headers: x-appl: <valore>, Referer: .../InstradamentofcWeb/home

STEP 9d — /dp/PI2FC (FONDAMENTALE)

GET https://ivaservizi.agenziaentrate.gov.it/dp/PI2FC

  • Headers: Referer: https://ivaservizi.agenziaentrate.gov.it/instr/InstradamentofcWeb/home

  • Questo è il passaggio chiave: la response imposta il cookie FATSC (domain .agenziaentrate.gov.it), che è il token di autenticazione per tutte le chiamate /ser/api/. Senza questo cookie, tutte le API tornano 401.

STEP 10 — Pagina documenti commerciali

GET https://ivaservizi.agenziaentrate.gov.it/ser/documenticommercialionline/

STEP 10c/10d/10e — Bootstrap API (init sessione)

Da qui in poi NON si usa più x-appl. Gli headers sono quelli del AjaxService AngularJS:

  • GET .../common/testata/v1/info/me

  • GET .../ser/api/documenti/v1/doc/documenti/dati/fiscali

  • GET .../ser/api/documenti/v1/doc/documenti/ultimo/

Queste inizializzano la sessione servlet (JSESSIONID).

STEP 11 — Invio documento

POST https://ivaservizi.agenziaentrate.gov.it/ser/api/documenti/v1/doc/documenti/

  • Stessi headers API di sopra

  • Body JSON: il payload del documento commerciale (stesso formato di prima)

Saluti

1 Mi Piace