# Api per emettere lo Scontrino ELettronico dal gestionale?

**URL:** <https://forum.italia.it/t/api-per-emettere-lo-scontrino-elettronico-dal-gestionale/11881>\
**Category:** Fatturazione Elettronica\
**Created:** [30 Ottobre 2019, 1:48pm UTC](https://forum.italia.it/t/api-per-emettere-lo-scontrino-elettronico-dal-gestionale/11881 "2019-10-30T13:48:16Z")\
**Posts on this page:** 20\
**Page:** 9

<div class="post-metadata">

**Author:** ![DrFalken](https://forum.italia.it/letter_avatar_proxy/v4/letter/d/a183cd/32.png) [@DrFalken](https://forum.italia.it/u/DrFalken)\
**Post date:** [23 Marzo 2026, 1:44pm UTC](https://forum.italia.it/t/api-per-emettere-lo-scontrino-elettronico-dal-gestionale/11881/166 "2026-03-23T13:44:27Z")

</div>

Lo genera il JS dopo il post a ../telematico

---

<div class="post-metadata">

**Author:** ![igor\_felluga](https://forum.italia.it/user_avatar/forum.italia.it/igor_felluga/32/15289_2.png) [@igor\_felluga](https://forum.italia.it/u/igor_felluga)\
**Post date:** [23 Marzo 2026, 2:04pm UTC](https://forum.italia.it/t/api-per-emettere-lo-scontrino-elettronico-dal-gestionale/11881/167 "2026-03-23T14:04:16Z")

</div>

proprio per questo motivo ho dovuto usare playwright, con node non riuscivo a replicare, magari ero solo stanco ma avevo bisogno di una soluzione tampone

---

<div class="post-metadata">

**Author:** ![reddy](https://forum.italia.it/letter_avatar_proxy/v4/letter/r/f9ae1b/32.png) [@reddy](https://forum.italia.it/u/reddy)\
**Post date:** [23 Marzo 2026, 2:04pm UTC](https://forum.italia.it/t/api-per-emettere-lo-scontrino-elettronico-dal-gestionale/11881/168 "2026-03-23T14:04:35Z")

</div>

Sì, ho verificato: per la precisione `x-appl` viene restituito come header dalla response della chiamata a `https://ivaservizi.agenziaentrate.gov.it/instr/instradamento-fatture-rest/rs/initLight`

---

<div class="post-metadata">

**Author:** ![DrFalken](https://forum.italia.it/letter_avatar_proxy/v4/letter/d/a183cd/32.png) [@DrFalken](https://forum.italia.it/u/DrFalken)\
**Post date:** [23 Marzo 2026, 3:25pm UTC](https://forum.italia.it/t/api-per-emettere-lo-scontrino-elettronico-dal-gestionale/11881/169 "2026-03-23T15:25:38Z")

</div>

riuscite a superare [https://ivaservizi.agenziaentrate.gov.it/instr/instradamento-fatture-rest/rs/setUserChoice](https://ivaservizi.agenziaentrate.gov.it/instr/instradamento-fatture-rest/rs/setUserChoice) ??

---

<div class="post-metadata">

**Author:** ![reddy](https://forum.italia.it/letter_avatar_proxy/v4/letter/r/f9ae1b/32.png) [@reddy](https://forum.italia.it/u/reddy)\
**Post date:** [23 Marzo 2026, 3:30pm UTC](https://forum.italia.it/t/api-per-emettere-lo-scontrino-elettronico-dal-gestionale/11881/170 "2026-03-23T15:30:38Z")

</div>

No, nemmeno io riesco. Passo tutti i cookie e anche l’header `x-appl` (recuperato dalla request come nel mio post precedente), ma ricevo come errore `406 Not Acceptable`.

Le sto provando tutte ma niente. Qualche altra idea?

---

<div class="post-metadata">

**Author:** ![Antonio\_Gabriele](https://forum.italia.it/user_avatar/forum.italia.it/antonio_gabriele/32/5434_2.png) [@Antonio\_Gabriele](https://forum.italia.it/u/Antonio_Gabriele)\
**Post date:** [23 Marzo 2026, 4:15pm UTC](https://forum.italia.it/t/api-per-emettere-lo-scontrino-elettronico-dal-gestionale/11881/171 "2026-03-23T16:15:40Z")

</div>

Non riesco a reperire il Cookie JSESSIONID. Qualcuno mi può dare una mano?

---

<div class="post-metadata">

**Author:** ![DrFalken](https://forum.italia.it/letter_avatar_proxy/v4/letter/d/a183cd/32.png) [@DrFalken](https://forum.italia.it/u/DrFalken)\
**Post date:** [23 Marzo 2026, 6:12pm UTC](https://forum.italia.it/t/api-per-emettere-lo-scontrino-elettronico-dal-gestionale/11881/173 "2026-03-23T18:12:27Z")

</div>

> [@reddy](#):
>
> ma ricevo come errore `406 Not Acceptable`.

io “409 Conflict” e non mi genera il cookie B2BCookie ☹

---

<div class="post-metadata">

**Author:** ![reddy](https://forum.italia.it/letter_avatar_proxy/v4/letter/r/f9ae1b/32.png) [@reddy](https://forum.italia.it/u/reddy)\
**Post date:** [23 Marzo 2026, 6:27pm UTC](https://forum.italia.it/t/api-per-emettere-lo-scontrino-elettronico-dal-gestionale/11881/174 "2026-03-23T18:27:07Z")

</div>

Io il 409 Conflict l’ho risolto passando l’header `x-appl` (ovviamente dev’essere corretto, quello fornito dal server). Per quale endpoint ti dà errore 409 Conflict?

---

<div class="post-metadata">

**Author:** ![DrFalken](https://forum.italia.it/letter_avatar_proxy/v4/letter/d/a183cd/32.png) [@DrFalken](https://forum.italia.it/u/DrFalken)\
**Post date:** [24 Marzo 2026, 6:01am UTC](https://forum.italia.it/t/api-per-emettere-lo-scontrino-elettronico-dal-gestionale/11881/175 "2026-03-24T06:01:17Z")

</div>

Il 409 è su SetUserChoice

x-appl lo passo, oltretutto controllo e eventuali cambiamenti di valore (che non ci sono) tra una richiesta e l’altra

Riusciamo a fare un elenco completo ed ordinato di URL, metodi, headers, cookies, Origin e Referer ?

---

<div class="post-metadata">

**Author:** ![publidok](https://forum.italia.it/letter_avatar_proxy/v4/letter/p/d2c977/32.png) [@publidok](https://forum.italia.it/u/publidok)\
**Post date:** [24 Marzo 2026, 8:36am UTC](https://forum.italia.it/t/api-per-emettere-lo-scontrino-elettronico-dal-gestionale/11881/176 "2026-03-24T08:36:57Z")

</div>

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>`

- Headers: Content-Type: application/json, `x-appl: <valore>`

- Body JSON: {“cf”: “”, “pIva”: “”, “tipoutenza”: “meStesso”}

- 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

---

<div class="post-metadata">

**Author:** ![Victor\_Hugo\_Scacchi](https://forum.italia.it/user_avatar/forum.italia.it/victor_hugo_scacchi/32/3230_2.png) [@Victor\_Hugo\_Scacchi](https://forum.italia.it/u/Victor_Hugo_Scacchi)\
**Post date:** [24 Marzo 2026, 9:02am UTC](https://forum.italia.it/t/api-per-emettere-lo-scontrino-elettronico-dal-gestionale/11881/177 "2026-03-24T09:02:49Z")

</div>

Ottimo grazie. Provero subito

---

<div class="post-metadata">

**Author:** ![DrFalken](https://forum.italia.it/letter_avatar_proxy/v4/letter/d/a183cd/32.png) [@DrFalken](https://forum.italia.it/u/DrFalken)\
**Post date:** [24 Marzo 2026, 9:03am UTC](https://forum.italia.it/t/api-per-emettere-lo-scontrino-elettronico-dal-gestionale/11881/178 "2026-03-24T09:03:25Z")

</div>

Mitico! Faccio le dovute modifiche nel mio programma

---

<div class="post-metadata">

**Author:** ![Victor\_Hugo\_Scacchi](https://forum.italia.it/user_avatar/forum.italia.it/victor_hugo_scacchi/32/3230_2.png) [@Victor\_Hugo\_Scacchi](https://forum.italia.it/u/Victor_Hugo_Scacchi)\
**Post date:** [24 Marzo 2026, 9:51am UTC](https://forum.italia.it/t/api-per-emettere-lo-scontrino-elettronico-dal-gestionale/11881/179 "2026-03-24T09:51:21Z")

</div>

Ho problemi nella selezione come incaricato.

---

<div class="post-metadata">

**Author:** ![reddy](https://forum.italia.it/letter_avatar_proxy/v4/letter/r/f9ae1b/32.png) [@reddy](https://forum.italia.it/u/reddy)\
**Post date:** [24 Marzo 2026, 10:06am UTC](https://forum.italia.it/t/api-per-emettere-lo-scontrino-elettronico-dal-gestionale/11881/180 "2026-03-24T10:06:15Z")

</div>

Anche io ho il flow da incaricato. Sto provando la soluzione proposta da @publidok [nel post precedente](https://forum.italia.it/t/api-per-emettere-lo-scontrino-elettronico-dal-gestionale/11881/176) e sembra funzionare perfettamente, ma per l’incaricato bisogna fare due modifiche e aggiungere dei passaggi.

## Modifiche per il flusso “Incaricato”

### Step 7b – wizardTemplate

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

- Headers: `x-appl: <valore catturato>`

La richiesta è uguale, ma la response JSON è diversa ed è strutturata così:

```auto
{
  "cfUidUltimo": "<codice fiscale personale>",
  "enabledEsercizioOpzioni": false,
  "enabledQrCode": false,
  "enabledVerificaPivaCf": false,
  "hasDelega": false,
  "intermediario": false,
  "richiestaIncarichi": {
    "incarichi": [
      {
        "deleghe": false,
        "incaricante": {
          "cf": "<codice fiscale azienda>",
          "sede": "FOL",
          "tipo": "INCARICO"
        },
        "intermediario": false,
        "tutore": false
      }
    ]
  },
  "serpico": false,
  "soloPerMe": false,
  "tutore": false,
  "tutore_AT": false
}

```

### Step 7c – procediWizard (passaggio aggiuntivo)

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

- Headers: `x-appl: <valore catturato>`
- Body JSON: `{"tipoutenza": "incaricato"}`

### Step 7d – procediWizard (passaggio aggiuntivo)

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

- Headers: `x-appl: <valore catturato>`
- Body JSON (attenzione al JSON embeddato dentro al JSON):

```auto
{
  "tipoutenza": "incaricato",
  "incaricante": "{\"deleghe\":false,\"incaricante\":{\"cf\":\"<codice fiscale azienda>\",\"sede\":\"FOL\",\"tipo\":\"INCARICO\"},\"intermediario\":false,\"tutore\":false}",
  "tipoincaricante": "incaricoDiretto",
  "pIva": null
}

```

### Step 8 – setUserChoice

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

- Headers: Content-Type: application/json, `x-appl: <valore>`

Anche qui bisogna modificare il payload JSON (anche qui attenzione al JSON embeddato nel JSON):

```auto
{
  "tipoutenza": "incaricato",
  "incaricante": "{\"deleghe\":false,\"incaricante\":{\"cf\":\"<codice fiscale azienda>\",\"sede\":\"FOL\",\"tipo\":\"INCARICO\"},\"intermediario\":false,\"tutore\":false}",
  "tipoincaricante": "incaricoDiretto",
  "cf": "<codice fiscale azienda>"
}

```

---

<div class="post-metadata">

**Author:** ![igor\_felluga](https://forum.italia.it/user_avatar/forum.italia.it/igor_felluga/32/15289_2.png) [@igor\_felluga](https://forum.italia.it/u/igor_felluga)\
**Post date:** [24 Marzo 2026, 10:50am UTC](https://forum.italia.it/t/api-per-emettere-lo-scontrino-elettronico-dal-gestionale/11881/181 "2026-03-24T10:50:43Z")

</div>

@pubpub grazie mille, in poco tempo ho tolto playwright e ricosturito tutto in node

se a qualcuno serve il codice per node mi scriva lo giro volentieri

---

<div class="post-metadata">

**Author:** ![DrFalken](https://forum.italia.it/letter_avatar_proxy/v4/letter/d/a183cd/32.png) [@DrFalken](https://forum.italia.it/u/DrFalken)\
**Post date:** [24 Marzo 2026, 2:22pm UTC](https://forum.italia.it/t/api-per-emettere-lo-scontrino-elettronico-dal-gestionale/11881/182 "2026-03-24T14:22:00Z")

</div>

Ho seguito i passaggi di Guido ma sono bloccato qui:

=== URL: ivaservizi.agenziaentrate.gov.it/instr/instradamento-fatture-rest/rs/setUserChoice?v=1774364157245 ===  
Codice restituito: HTTP/1.1 409 Conflict (409)  
11 cookies:  
SIAMPELB=02  
SIAMPE\_TAI=[…]  
SIAMPE=[…]  
SIAMPLB=[…]  
d1826a18ffe5ae8cb10ab7a343423ffb=[…]  
COOKIE\_SUPPORT=true  
GUEST\_LANGUAGE\_ID=it\_IT  
LtpaToken2=[…]  
cookieutentee0194=[…]  
AE=ALREADYSET  
portaleCookie=[…]  
=== ===

A voi risultano altri cookies ?

**Aggiornamento** : ho riscritto gli headers e ora funziona e finalmente restituisce il cookie B2BCookie 😅

---

<div class="post-metadata">

**Author:** ![reddy](https://forum.italia.it/letter_avatar_proxy/v4/letter/r/f9ae1b/32.png) [@reddy](https://forum.italia.it/u/reddy)\
**Post date:** [24 Marzo 2026, 3:01pm UTC](https://forum.italia.it/t/api-per-emettere-lo-scontrino-elettronico-dal-gestionale/11881/183 "2026-03-24T15:01:04Z")

</div>

I miei cookie dopo il login sono i seguenti, non corrispondono esattamente:

```auto
  0 => "SIAMPELB"
  1 => "SIAMPE_TAI"
  2 => "SIAMPE"
  3 => "SIAMPLB"
  4 => "d1826a18ffe5ae8cb10ab7a343423ffb"
  5 => "LtpaToken2"
  6 => "cookieutentee0194"
  7 => "AE"
  8 => "portaleCookie"
  9 => "B2BCookie"
  10 => "FATSC"

```

---

<div class="post-metadata">

**Author:** ![DrFalken](https://forum.italia.it/letter_avatar_proxy/v4/letter/d/a183cd/32.png) [@DrFalken](https://forum.italia.it/u/DrFalken)\
**Post date:** [24 Marzo 2026, 3:12pm UTC](https://forum.italia.it/t/api-per-emettere-lo-scontrino-elettronico-dal-gestionale/11881/184 "2026-03-24T15:12:22Z")

</div>

Risolto grazie, ho riscritto gli headers

---

<div class="post-metadata">

**Author:** ![enrilor](https://forum.italia.it/letter_avatar_proxy/v4/letter/e/46a35a/32.png) [@enrilor](https://forum.italia.it/u/enrilor)\
**Post date:** [25 Marzo 2026, 4:57pm UTC](https://forum.italia.it/t/api-per-emettere-lo-scontrino-elettronico-dal-gestionale/11881/185 "2026-03-25T16:57:24Z")

</div>

Signori buonasera.  
Stiamo cercando di implementare queste modifiche ma si sbatte il naso sull’errore 409 del setUserChoice.  
I cookie ci sono, il x-appl pure.  
Due cose non mi sono chiare. Il timestamp usate lo stesso per tutte le chiamate? In setUserChoice si lasciano proprio vuoti cf e pIva nel json?  
Saltando questa fase si arriva anche ad avere il cookie FATSC ma senza B2BCookie poi sono tutti errori 400.  
Chi ha scritto di aver risoldo quali headers inserisce?

---

<div class="post-metadata">

**Author:** ![enrilor](https://forum.italia.it/letter_avatar_proxy/v4/letter/e/46a35a/32.png) [@enrilor](https://forum.italia.it/u/enrilor)\
**Post date:** [25 Marzo 2026, 8:07pm UTC](https://forum.italia.it/t/api-per-emettere-lo-scontrino-elettronico-dal-gestionale/11881/186 "2026-03-25T20:07:35Z")

</div>

Puff alla fine abbiamo risolto!  
Da babbei andavamo a cancellare alcuni header dopo averli inseriti.  
cf e pIva ci vogliono in setUserChoice.

Grazie ancora per la lista degli step perchè non ci saremmo mai arrivati.

[Pagina precedente](https://forum.italia.it/t/api-per-emettere-lo-scontrino-elettronico-dal-gestionale/11881.md?page=8)

[Pagina seguente](https://forum.italia.it/t/api-per-emettere-lo-scontrino-elettronico-dal-gestionale/11881.md?page=10)
