---
title: "Calcola IVA"
method: POST
path: "/python/italian/iva/calcola"
tags: ["Tool"]
---

# Calcola IVA

`POST /python/italian/iva/calcola`

## Request

- Base URL: `https://imperioutils.com/api`
- URL: `https://imperioutils.com/api/python/italian/iva/calcola`
- Auth: API key in header `X-API-Key`

Calcola l'IVA italiana su un imponibile (aliquote 22/10/5/4/0/esente/fuori campo), con ritenuta d'acconto opzionale (autonomi 20%, agenti 11,5%), e decide la TERRITORIALITÀ delle operazioni con l'estero: beni o servizi, impresa o privato, UE o extra-UE → imponibile in Italia, non imponibile, non soggetta o IVA del paese di destinazione (aliquota ordinaria ufficiale TEDB dei 27 Stati), con Natura FatturaPA, annotazione in fattura e norma. Soglia UE di 10.000 € non dichiarata → due scenari calcolati, mai un numero scelto al posto tuo. Le norme citate seguono la data dell'operazione: DPR 633/72 fino al 31/12/2026, Testo unico IVA dal 1/1/2027. Gestisce le DUE basi imponibili della fattura di un professionista (contributo integrativo cassa solo nella base IVA, rivalsa INPS in entrambe).

Costo: **0 crediti**. Autenticazione: header `X-API-Key` (una chiave gratuita si ottiene da https://imperioutils.com/signup e si rigenera da https://imperioutils.com/settings/profile).

La stessa operazione è provabile **senza account** su `POST /registry/demo/calcolatore-iva` con `action: "calcola"`.

## Request body

- union
  - object
    - `imponibile` number, required: Compenso/corrispettivo in EUR (es. 1000), AL NETTO del contributo integrativo cassa e della rivalsa INPS: quelli si aggiungono con i due campi dedicati.
    - `aliquota_iva` '22' | '10' | '5' | '4' | '0' | 'esente' | 'fuori_campo': Aliquota IVA (default 22).
    - `tipo_operazione` 'b2b' | 'b2c' | 'PA': Tipo operazione (default b2b). intraUE ESIGE `cessionario_soggetto_iva`; verso un privato UE esige anche `oggetto`. extraUE senza `oggetto` è trattata come esportazione di beni (lo dichiara nei `presupposti`); per i servizi dichiara `oggetto` e `cessionario_soggetto_iva`: verso un privato extra-UE l'IVA di regola è italiana.
    - `cessionario_soggetto_iva` boolean: OBBLIGATORIO per tipo_operazione='intraUE' (e per extraUE con oggetto='servizi'). true = soggetto passivo con P.IVA valida al VIES: beni non imponibili (N3.2), servizi non soggetti (N2.1). false = consumatore privato: l'IVA è italiana o del paese di destinazione a seconda di `oggetto`, `vendita_a_distanza`, `soglia_ue_superata` e `tipo_servizio`.
    - `con_ritenuta` boolean: Applica la ritenuta d'acconto (default false).
    - `tipo_ritenuta` 'autonomo' | 'agente': Tipo ritenuta se con_ritenuta=true (autonomo 20% | agente 11,5%).
    - `contributo_integrativo_pct` number: Aliquota % del contributo integrativo della cassa professionale (default 0 = nessuna cassa). Tipicamente 4; 5 per i geometri; 2 per ENPAP/ENPAV — leggila dal regolamento della cassa: il tool non la deduce da ATECO. Entra nella base IVA ma NON in quella della ritenuta.
    - `rivalsa_inps_pct` number: Aliquota % della rivalsa INPS gestione separata addebitata in fattura (default 0). Per legge 4 (art. 1 c. 212 L. 662/1996). Entra in ENTRAMBE le basi.
    - `oggetto` 'beni' | 'servizi': Per intraUE/extraUE. Cambia il regime: cessione di beni intraUE B2B = non imponibile (N3.2, «operazione non imponibile»); servizi B2B = non soggetti (N2.1, «inversione contabile»). Obbligatorio verso un privato UE.
    - `paese_destinazione` string: ISO2 del paese del cliente ('EL' Grecia; 'XI' Irlanda del Nord = UE per i soli beni). Serve all'aliquota di destinazione sopra soglia.
    - `vendita_a_distanza` boolean: Beni a privato UE: true se il trasporto è a cura del cedente o per suo conto (default assunto true, e dichiarato). false = il cliente trasporta da sé → IVA italiana.
    - `soglia_ue_superata` boolean: Beni a distanza e servizi elettronici a privati UE: true se vendite a distanza + servizi TTE a privati UE hanno superato 10.000 € (anno precedente o in corso) OPPURE se hai optato per l'IVA di destinazione. Se non la dichiari ricevi DUE scenari calcolati e `iva_importo: null`.
    - `tipo_servizio` 'generico' | 'elettronico' | 'speciale': Per oggetto='servizi'. generico = regola generale (default assunto, e dichiarato); elettronico = telecomunicazione, teleradiodiffusione, servizi elettronici; speciale = immobili, trasporti, ristorazione, eventi, noleggio mezzi, intermediazione, lavorazioni su beni mobili — il tool NON calcola il luogo e lo dice, con le norme.
    - `servizio_7_septies` boolean: Servizi a privato extra-UE: true se il servizio è fra quelli dell'art. 7-septies (consulenza, pubblicità, dati, finanziari, personale, noleggio beni mobili…): non soggetto.
    - `aliquota_destinazione_pct` number: Aliquota del paese di destinazione, se il bene vi ha un'aliquota RIDOTTA. Senza, si usa l'ordinaria ufficiale (TEDB) e la risposta lo dichiara.
    - `data_operazione` string: AAAA-MM-GG, default oggi. Decide la norma citata: DPR 633/72 e DL 331/93 fino al 31/12/2026, Testo unico IVA (D.Lgs. 10/2026) dal 1/1/2027.
  - object
    - `imponibile` number, required: Compenso/corrispettivo in EUR (es. 1000), AL NETTO del contributo integrativo cassa e della rivalsa INPS: quelli si aggiungono con i due campi dedicati.
    - `aliquota_iva` '22' | '10' | '5' | '4' | '0' | 'esente' | 'fuori_campo': Aliquota IVA (default 22).
    - `tipo_operazione` 'b2b' | 'b2c' | 'intraUE' | 'extraUE' | 'PA', required: Tipo operazione (default b2b). intraUE ESIGE `cessionario_soggetto_iva`; verso un privato UE esige anche `oggetto`. extraUE senza `oggetto` è trattata come esportazione di beni (lo dichiara nei `presupposti`); per i servizi dichiara `oggetto` e `cessionario_soggetto_iva`: verso un privato extra-UE l'IVA di regola è italiana.
    - `cessionario_soggetto_iva` boolean: OBBLIGATORIO per tipo_operazione='intraUE' (e per extraUE con oggetto='servizi'). true = soggetto passivo con P.IVA valida al VIES: beni non imponibili (N3.2), servizi non soggetti (N2.1). false = consumatore privato: l'IVA è italiana o del paese di destinazione a seconda di `oggetto`, `vendita_a_distanza`, `soglia_ue_superata` e `tipo_servizio`.
    - `con_ritenuta` boolean: Applica la ritenuta d'acconto (default false).
    - `tipo_ritenuta` 'autonomo' | 'agente': Tipo ritenuta se con_ritenuta=true (autonomo 20% | agente 11,5%).
    - `contributo_integrativo_pct` number: Aliquota % del contributo integrativo della cassa professionale (default 0 = nessuna cassa). Tipicamente 4; 5 per i geometri; 2 per ENPAP/ENPAV — leggila dal regolamento della cassa: il tool non la deduce da ATECO. Entra nella base IVA ma NON in quella della ritenuta.
    - `rivalsa_inps_pct` number: Aliquota % della rivalsa INPS gestione separata addebitata in fattura (default 0). Per legge 4 (art. 1 c. 212 L. 662/1996). Entra in ENTRAMBE le basi.
    - `oggetto` 'beni' | 'servizi': Per intraUE/extraUE. Cambia il regime: cessione di beni intraUE B2B = non imponibile (N3.2, «operazione non imponibile»); servizi B2B = non soggetti (N2.1, «inversione contabile»). Obbligatorio verso un privato UE.
    - `paese_destinazione` string: ISO2 del paese del cliente ('EL' Grecia; 'XI' Irlanda del Nord = UE per i soli beni). Serve all'aliquota di destinazione sopra soglia.
    - `vendita_a_distanza` boolean: Beni a privato UE: true se il trasporto è a cura del cedente o per suo conto (default assunto true, e dichiarato). false = il cliente trasporta da sé → IVA italiana.
    - `soglia_ue_superata` boolean: Beni a distanza e servizi elettronici a privati UE: true se vendite a distanza + servizi TTE a privati UE hanno superato 10.000 € (anno precedente o in corso) OPPURE se hai optato per l'IVA di destinazione. Se non la dichiari ricevi DUE scenari calcolati e `iva_importo: null`.
    - `tipo_servizio` 'generico' | 'elettronico' | 'speciale': Per oggetto='servizi'. generico = regola generale (default assunto, e dichiarato); elettronico = telecomunicazione, teleradiodiffusione, servizi elettronici; speciale = immobili, trasporti, ristorazione, eventi, noleggio mezzi, intermediazione, lavorazioni su beni mobili — il tool NON calcola il luogo e lo dice, con le norme.
    - `servizio_7_septies` boolean: Servizi a privato extra-UE: true se il servizio è fra quelli dell'art. 7-septies (consulenza, pubblicità, dati, finanziari, personale, noleggio beni mobili…): non soggetto.
    - `aliquota_destinazione_pct` number: Aliquota del paese di destinazione, se il bene vi ha un'aliquota RIDOTTA. Senza, si usa l'ordinaria ufficiale (TEDB) e la risposta lo dichiara.
    - `data_operazione` string: AAAA-MM-GG, default oggi. Decide la norma citata: DPR 633/72 e DL 331/93 fino al 31/12/2026, Testo unico IVA (D.Lgs. 10/2026) dal 1/1/2027.
  - object
    - `imponibile` number, required: Compenso/corrispettivo in EUR (es. 1000), AL NETTO del contributo integrativo cassa e della rivalsa INPS: quelli si aggiungono con i due campi dedicati.
    - `aliquota_iva` '22' | '10' | '5' | '4' | '0' | 'esente' | 'fuori_campo': Aliquota IVA (default 22).
    - `tipo_operazione` 'b2b' | 'b2c' | 'intraUE' | 'extraUE' | 'PA', required: Tipo operazione (default b2b). intraUE ESIGE `cessionario_soggetto_iva`; verso un privato UE esige anche `oggetto`. extraUE senza `oggetto` è trattata come esportazione di beni (lo dichiara nei `presupposti`); per i servizi dichiara `oggetto` e `cessionario_soggetto_iva`: verso un privato extra-UE l'IVA di regola è italiana.
    - `cessionario_soggetto_iva` boolean, required: OBBLIGATORIO per tipo_operazione='intraUE' (e per extraUE con oggetto='servizi'). true = soggetto passivo con P.IVA valida al VIES: beni non imponibili (N3.2), servizi non soggetti (N2.1). false = consumatore privato: l'IVA è italiana o del paese di destinazione a seconda di `oggetto`, `vendita_a_distanza`, `soglia_ue_superata` e `tipo_servizio`.
    - `con_ritenuta` boolean: Applica la ritenuta d'acconto (default false).
    - `tipo_ritenuta` 'autonomo' | 'agente': Tipo ritenuta se con_ritenuta=true (autonomo 20% | agente 11,5%).
    - `contributo_integrativo_pct` number: Aliquota % del contributo integrativo della cassa professionale (default 0 = nessuna cassa). Tipicamente 4; 5 per i geometri; 2 per ENPAP/ENPAV — leggila dal regolamento della cassa: il tool non la deduce da ATECO. Entra nella base IVA ma NON in quella della ritenuta.
    - `rivalsa_inps_pct` number: Aliquota % della rivalsa INPS gestione separata addebitata in fattura (default 0). Per legge 4 (art. 1 c. 212 L. 662/1996). Entra in ENTRAMBE le basi.
    - `oggetto` 'beni' | 'servizi', required: Per intraUE/extraUE. Cambia il regime: cessione di beni intraUE B2B = non imponibile (N3.2, «operazione non imponibile»); servizi B2B = non soggetti (N2.1, «inversione contabile»). Obbligatorio verso un privato UE.
    - `paese_destinazione` string: ISO2 del paese del cliente ('EL' Grecia; 'XI' Irlanda del Nord = UE per i soli beni). Serve all'aliquota di destinazione sopra soglia.
    - `vendita_a_distanza` boolean: Beni a privato UE: true se il trasporto è a cura del cedente o per suo conto (default assunto true, e dichiarato). false = il cliente trasporta da sé → IVA italiana.
    - `soglia_ue_superata` boolean: Beni a distanza e servizi elettronici a privati UE: true se vendite a distanza + servizi TTE a privati UE hanno superato 10.000 € (anno precedente o in corso) OPPURE se hai optato per l'IVA di destinazione. Se non la dichiari ricevi DUE scenari calcolati e `iva_importo: null`.
    - `tipo_servizio` 'generico' | 'elettronico' | 'speciale': Per oggetto='servizi'. generico = regola generale (default assunto, e dichiarato); elettronico = telecomunicazione, teleradiodiffusione, servizi elettronici; speciale = immobili, trasporti, ristorazione, eventi, noleggio mezzi, intermediazione, lavorazioni su beni mobili — il tool NON calcola il luogo e lo dice, con le norme.
    - `servizio_7_septies` boolean: Servizi a privato extra-UE: true se il servizio è fra quelli dell'art. 7-septies (consulenza, pubblicità, dati, finanziari, personale, noleggio beni mobili…): non soggetto.
    - `aliquota_destinazione_pct` number: Aliquota del paese di destinazione, se il bene vi ha un'aliquota RIDOTTA. Senza, si usa l'ordinaria ufficiale (TEDB) e la risposta lo dichiara.
    - `data_operazione` string: AAAA-MM-GG, default oggi. Decide la norma citata: DPR 633/72 e DL 331/93 fino al 31/12/2026, Testo unico IVA (D.Lgs. 10/2026) dal 1/1/2027.
  - object
    - `imponibile` number, required: Compenso/corrispettivo in EUR (es. 1000), AL NETTO del contributo integrativo cassa e della rivalsa INPS: quelli si aggiungono con i due campi dedicati.
    - `aliquota_iva` '22' | '10' | '5' | '4' | '0' | 'esente' | 'fuori_campo': Aliquota IVA (default 22).
    - `tipo_operazione` 'b2b' | 'b2c' | 'intraUE' | 'extraUE' | 'PA', required: Tipo operazione (default b2b). intraUE ESIGE `cessionario_soggetto_iva`; verso un privato UE esige anche `oggetto`. extraUE senza `oggetto` è trattata come esportazione di beni (lo dichiara nei `presupposti`); per i servizi dichiara `oggetto` e `cessionario_soggetto_iva`: verso un privato extra-UE l'IVA di regola è italiana.
    - `cessionario_soggetto_iva` boolean, required: OBBLIGATORIO per tipo_operazione='intraUE' (e per extraUE con oggetto='servizi'). true = soggetto passivo con P.IVA valida al VIES: beni non imponibili (N3.2), servizi non soggetti (N2.1). false = consumatore privato: l'IVA è italiana o del paese di destinazione a seconda di `oggetto`, `vendita_a_distanza`, `soglia_ue_superata` e `tipo_servizio`.
    - `con_ritenuta` boolean: Applica la ritenuta d'acconto (default false).
    - `tipo_ritenuta` 'autonomo' | 'agente': Tipo ritenuta se con_ritenuta=true (autonomo 20% | agente 11,5%).
    - `contributo_integrativo_pct` number: Aliquota % del contributo integrativo della cassa professionale (default 0 = nessuna cassa). Tipicamente 4; 5 per i geometri; 2 per ENPAP/ENPAV — leggila dal regolamento della cassa: il tool non la deduce da ATECO. Entra nella base IVA ma NON in quella della ritenuta.
    - `rivalsa_inps_pct` number: Aliquota % della rivalsa INPS gestione separata addebitata in fattura (default 0). Per legge 4 (art. 1 c. 212 L. 662/1996). Entra in ENTRAMBE le basi.
    - `oggetto` 'beni' | 'servizi': Per intraUE/extraUE. Cambia il regime: cessione di beni intraUE B2B = non imponibile (N3.2, «operazione non imponibile»); servizi B2B = non soggetti (N2.1, «inversione contabile»). Obbligatorio verso un privato UE.
    - `paese_destinazione` string: ISO2 del paese del cliente ('EL' Grecia; 'XI' Irlanda del Nord = UE per i soli beni). Serve all'aliquota di destinazione sopra soglia.
    - `vendita_a_distanza` boolean: Beni a privato UE: true se il trasporto è a cura del cedente o per suo conto (default assunto true, e dichiarato). false = il cliente trasporta da sé → IVA italiana.
    - `soglia_ue_superata` boolean: Beni a distanza e servizi elettronici a privati UE: true se vendite a distanza + servizi TTE a privati UE hanno superato 10.000 € (anno precedente o in corso) OPPURE se hai optato per l'IVA di destinazione. Se non la dichiari ricevi DUE scenari calcolati e `iva_importo: null`.
    - `tipo_servizio` 'generico' | 'elettronico' | 'speciale': Per oggetto='servizi'. generico = regola generale (default assunto, e dichiarato); elettronico = telecomunicazione, teleradiodiffusione, servizi elettronici; speciale = immobili, trasporti, ristorazione, eventi, noleggio mezzi, intermediazione, lavorazioni su beni mobili — il tool NON calcola il luogo e lo dice, con le norme.
    - `servizio_7_septies` boolean: Servizi a privato extra-UE: true se il servizio è fra quelli dell'art. 7-septies (consulenza, pubblicità, dati, finanziari, personale, noleggio beni mobili…): non soggetto.
    - `aliquota_destinazione_pct` number: Aliquota del paese di destinazione, se il bene vi ha un'aliquota RIDOTTA. Senza, si usa l'ordinaria ufficiale (TEDB) e la risposta lo dichiara.
    - `data_operazione` string: AAAA-MM-GG, default oggi. Decide la norma citata: DPR 633/72 e DL 331/93 fino al 31/12/2026, Testo unico IVA (D.Lgs. 10/2026) dal 1/1/2027.
  - object
    - `imponibile` number, required: Compenso/corrispettivo in EUR (es. 1000), AL NETTO del contributo integrativo cassa e della rivalsa INPS: quelli si aggiungono con i due campi dedicati.
    - `aliquota_iva` '22' | '10' | '5' | '4' | '0' | 'esente' | 'fuori_campo': Aliquota IVA (default 22).
    - `tipo_operazione` 'b2b' | 'b2c' | 'intraUE' | 'extraUE' | 'PA', required: Tipo operazione (default b2b). intraUE ESIGE `cessionario_soggetto_iva`; verso un privato UE esige anche `oggetto`. extraUE senza `oggetto` è trattata come esportazione di beni (lo dichiara nei `presupposti`); per i servizi dichiara `oggetto` e `cessionario_soggetto_iva`: verso un privato extra-UE l'IVA di regola è italiana.
    - `cessionario_soggetto_iva` boolean, required: OBBLIGATORIO per tipo_operazione='intraUE' (e per extraUE con oggetto='servizi'). true = soggetto passivo con P.IVA valida al VIES: beni non imponibili (N3.2), servizi non soggetti (N2.1). false = consumatore privato: l'IVA è italiana o del paese di destinazione a seconda di `oggetto`, `vendita_a_distanza`, `soglia_ue_superata` e `tipo_servizio`.
    - `con_ritenuta` boolean: Applica la ritenuta d'acconto (default false).
    - `tipo_ritenuta` 'autonomo' | 'agente': Tipo ritenuta se con_ritenuta=true (autonomo 20% | agente 11,5%).
    - `contributo_integrativo_pct` number: Aliquota % del contributo integrativo della cassa professionale (default 0 = nessuna cassa). Tipicamente 4; 5 per i geometri; 2 per ENPAP/ENPAV — leggila dal regolamento della cassa: il tool non la deduce da ATECO. Entra nella base IVA ma NON in quella della ritenuta.
    - `rivalsa_inps_pct` number: Aliquota % della rivalsa INPS gestione separata addebitata in fattura (default 0). Per legge 4 (art. 1 c. 212 L. 662/1996). Entra in ENTRAMBE le basi.
    - `oggetto` 'beni' | 'servizi', required: Per intraUE/extraUE. Cambia il regime: cessione di beni intraUE B2B = non imponibile (N3.2, «operazione non imponibile»); servizi B2B = non soggetti (N2.1, «inversione contabile»). Obbligatorio verso un privato UE.
    - `paese_destinazione` string: ISO2 del paese del cliente ('EL' Grecia; 'XI' Irlanda del Nord = UE per i soli beni). Serve all'aliquota di destinazione sopra soglia.
    - `vendita_a_distanza` boolean: Beni a privato UE: true se il trasporto è a cura del cedente o per suo conto (default assunto true, e dichiarato). false = il cliente trasporta da sé → IVA italiana.
    - `soglia_ue_superata` boolean: Beni a distanza e servizi elettronici a privati UE: true se vendite a distanza + servizi TTE a privati UE hanno superato 10.000 € (anno precedente o in corso) OPPURE se hai optato per l'IVA di destinazione. Se non la dichiari ricevi DUE scenari calcolati e `iva_importo: null`.
    - `tipo_servizio` 'generico' | 'elettronico' | 'speciale': Per oggetto='servizi'. generico = regola generale (default assunto, e dichiarato); elettronico = telecomunicazione, teleradiodiffusione, servizi elettronici; speciale = immobili, trasporti, ristorazione, eventi, noleggio mezzi, intermediazione, lavorazioni su beni mobili — il tool NON calcola il luogo e lo dice, con le norme.
    - `servizio_7_septies` boolean: Servizi a privato extra-UE: true se il servizio è fra quelli dell'art. 7-septies (consulenza, pubblicità, dati, finanziari, personale, noleggio beni mobili…): non soggetto.
    - `aliquota_destinazione_pct` number: Aliquota del paese di destinazione, se il bene vi ha un'aliquota RIDOTTA. Senza, si usa l'ordinaria ufficiale (TEDB) e la risposta lo dichiara.
    - `data_operazione` string: AAAA-MM-GG, default oggi. Decide la norma citata: DPR 633/72 e DL 331/93 fino al 31/12/2026, Testo unico IVA (D.Lgs. 10/2026) dal 1/1/2027.

## Response `200`

Il JSON dello strumento, restituito così com'è.

## Other responses

- `401`: Nessuna credenziale o chiave rifiutata. Il corpo porta `details.header`, `details.docs` e `details.get_key`.
- `402`: Crediti esauriti.
- `429`: Tetto di richieste al minuto del piano superato.

---

[API](https://skmtc.dev/imperioutils/apis/imperio-utilities-api-fiscali-italiane.md) · [All operations](https://skmtc.dev/imperioutils/apis/imperio-utilities-api-fiscali-italiane/llms.txt) · [OpenAPI document](https://skmtc.dev/imperioutils/apis/imperio-utilities-api-fiscali-italiane/revisions/4b7a05d52f6c?raw)
