# InteroperabilityInvalidRequest 400 - ANNCSU Aggiornamento coordinate - client Python

**URL:** <https://forum.italia.it/t/interoperabilityinvalidrequest-400-anncsu-aggiornamento-coordinate-client-python/48989>\
**Category:** Interoperabilità\
**Created:** [27 Maggio 2026, 9:51am UTC](https://forum.italia.it/t/interoperabilityinvalidrequest-400-anncsu-aggiornamento-coordinate-client-python/48989 "2026-05-27T09:51:00Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![picomiles](https://forum.italia.it/user_avatar/forum.italia.it/picomiles/32/769_2.png) [@picomiles](https://forum.italia.it/u/picomiles)\
**Post date:** [27 Maggio 2026, 9:51am UTC](https://forum.italia.it/t/interoperabilityinvalidrequest-400-anncsu-aggiornamento-coordinate-client-python/48989/1 "2026-05-27T09:51:00Z")

</div>

Buongiorno a tutti,

sto implementando un client Python per l’e-service **ANNCSU – Aggiornamento coordinate v.1** su PDND per conto del Comune di Patti (IPA `c_g377`), nell’ambito della Misura PNRR 1.3.1.

L’autenticazione PDND funziona correttamente (voucher ottenuto con `auth.interop.pagopa.it`).  
Ogni chiamata all’endpoint di produzione restituisce però HTTP 400 `InteroperabilityInvalidRequest`.

**Endpoint:** `https://modipa.agenziaentrate.gov.it/govway/rest/in/AgenziaEntrate-PDND/anncsu-aggiornamento-coordinate/v1/gestionecoordinate`

**Body inviato (bytes):**

json

```auto
{"richiesta":{"accesso":{"codcom":"G377","progr_civico":"16340725","coordinate":{"x":"15.013479","y":"38.148081","metodo":"3"}}}}

```

**Header HTTP:**

- `Authorization: Bearer <voucher PDND>`

- `Content-Type: application/json`

- `Content-Encoding: identity`

- `Digest: SHA-256=V6tUgtJopl6gNLd/b12L4aqLvFDRqf/Af/HfUIwQiuo=`

- `Agid-JWT-Signature` e `Agid-JWT-TrackingEvidence`: JWT firmati con chiave ModI dedicata (KID distinto da quello del voucher, entrambi nel portachiavi del Client e-service PDND)

**Payload Agid-JWT-Signature** (decodificato):

json

```auto
{
  "iss": "<client_id>", "sub": "<client_id>",
  "aud": "https://modipa.agenziaentrate.gov.it/.../v1/gestionecoordinate",
  "purposeId": "GESTIONE_CIVICO",
  "iat": ..., "exp": ..., "jti": "...",
  "signed_headers": [
    {"digest": "SHA-256=V6tUgtJopl6gNLd/b12L4aqLvFDRqf/Af/HfUIwQiuo="},
    {"content-type": "application/json"}
  ]
}

```

**Payload Agid-JWT-TrackingEvidence** (decodificato):

json

```auto
{
  "iss": "<client_id>", "sub": "<client_id>",
  "aud": "https://modipa.agenziaentrate.gov.it/.../v1/gestionecoordinate",
  "purposeId": "GESTIONE_CIVICO",
  "dnonce": ..., "userID": "<CF>", "userLocation": "ced@comune.patti.me.it", "LoA": "LAL2",
  "iat": ..., "exp": ..., "jti": "..."
}

```

Il body viene inviato come **bytes** e il digest è coerente tra JWT e header HTTP.  
Usiamo due chiavi RSA distinte (voucher e ModI).  
L’header JWT contiene `alg`, `kid`, `typ` ma **non `x5c`**.

**Domanda principale:** è obbligatorio includere il claim `x5c` nell’header dei JWT ModI, e in tal caso serve un certificato emesso da una CA accreditata o va bene quello autofirmato derivato dalla chiave RSA già caricata su PDND?

Ho già contattato SOGEI (`infopdnd_anncsu@sogei.it`) e sto aspettando una risposta.  
Ultimo govway\_id: `8b995f1f-59ab-11f1-99f6-005056ae302d`

Grazie in anticipo.

Nino Galante

---

<div class="post-metadata">

**Author:** ![francbartoli](https://forum.italia.it/user_avatar/forum.italia.it/francbartoli/32/15728_2.png) [@francbartoli](https://forum.italia.it/u/francbartoli)\
**Post date:** [29 Maggio 2026, 9:54pm UTC](https://forum.italia.it/t/interoperabilityinvalidrequest-400-anncsu-aggiornamento-coordinate-client-python/48989/2 "2026-05-29T21:54:20Z")

</div>

Ciao Nino,

da quello che ho potuto verificare nell’implementazione python di [anncsu-sdk](https://github.com/anncsu-open/anncsu-sdk) non serve un CA accreditata ma è sufficiente possedere la chiave privata. Le due chiavi private sono state sufficienti per far lavorare il nostro client.  
Peraltro, se ti va di provarlo, vedrai che ha una comoda CLI a cui passi tutte le configurazioni (incluse le chiavi private) e poi si preoccupa lui di aggiornare i token.

Spero ti sia utile.

Saluti

Francesco

---

<div class="post-metadata">

**Author:** ![picomiles](https://forum.italia.it/user_avatar/forum.italia.it/picomiles/32/769_2.png) [@picomiles](https://forum.italia.it/u/picomiles)\
**Post date:** [10 Giugno 2026, 9:29pm UTC](https://forum.italia.it/t/interoperabilityinvalidrequest-400-anncsu-aggiornamento-coordinate-client-python/48989/3 "2026-06-10T21:29:10Z")

</div>

Ciao Francesco,

grazie mille per la risposta e per il suggerimento sull’SDK.

Mi scuso se la mia risposta è tardiva ma nel frattempo il problema era stato risolto. Il problema era nell’`aud` dei JWT ModI: bisognava usare l’URL base dell’e-service (`/v1`) invece dell’endpoint completo (`/v1/gestionecoordinate`). Una volta corretta quella impostazione tutto ha funzionato perfettamente.

Ho anche avuto modo di vedere anncsu-sdk ed è stato utile per capire la struttura corretta dei JWT ModI.

Se può essere utile alla community, la soluzione al problema originale era semplicemente questa: l’`aud` nei JWT `Agid-JWT-Signature` e `Agid-JWT-TrackingEvidence` deve corrispondere all’`aud` presente nel voucher PDND, ovvero l’URL base senza il path dell’operazione specifica.

Grazie ancora e un cordiale saluto.

Nino Galante
