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 cookieLtpaToken2,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) ePIva(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>
-
Headers: Content-Type: application/json,
x-appl: <valore> -
Imposta il cookie
B2BCookie
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