{
  "openapi": "3.0.4",
  "info": {
    "title": "Amica Cloud API",
    "description": "L'Amica Cloud API fornisce accesso programmatico a tutti i dati aziendali gestiti da [Amica 20](https://gestionaleamica.com). Supporta il ciclo completo di documenti, fatture, magazzino, contabilità e anagrafiche. Per guide e documentazione completa, visitare [amica.dev](https://amica.dev/).\n\n## Autenticazione\n\nTutte le richieste API richiedono un token OAuth 2.0 Bearer valido, da includere nell'header `Authorization`:\n\n```\nAuthorization: Bearer <token>\n```\n\n### Registra la tua app\n\nPer integrare l'Amica Cloud API registra la tua applicazione sull'[**App Store di Amica**](https://apps.amica20.it). Al termine della registrazione ottieni una coppia di credenziali OAuth 2.0 — `client_id` e `client_secret` (il secret è mostrato **una sola volta**) — e scegli gli **scope** e il **flusso di autenticazione** desiderati.\n\n### Scegli il flusso\n\nLa scelta dipende da **come** la tua applicazione si autentica:\n\n- C'è un **utente** che può accedere via browser (web app, SPA, app mobile)? → **Authorization Code con PKCE**.\n- È un **servizio headless** (backend, batch, integrazione server-to-server) di una **singola azienda**, senza un utente che effettua il login? → **Client Credentials**.\n\n#### Authorization Code con PKCE\n\nConsigliato per le app che operano per conto di un utente Amica ed è l'**unico flusso disponibile per le app pubblicate sul marketplace**. Una sola registrazione serve un numero qualsiasi di aziende: ogni utente autorizza la tua app per la propria azienda tramite la pagina di consenso dell'identity provider, e il token riceve automaticamente il contesto di quell'azienda. La tua app riceve un `code` da scambiare con un access token.\n\n```\nGET  {identity-provider}/connect/authorize?response_type=code&client_id=<client_id>&redirect_uri=<redirect_uri>&scope=openid%20read%20write%20documenti&code_challenge=<challenge>&code_challenge_method=S256\nPOST {identity-provider}/connect/token\n     grant_type=authorization_code&code=<code>&code_verifier=<verifier>&client_id=<client_id>&client_secret=<client_secret>&redirect_uri=<redirect_uri>\n```\n\n#### Client Credentials\n\nPer integrazioni **server-to-server** senza utente interattivo. Disponibile solo per le **app private**, non per quelle pubblicate sul marketplace. Un'app Client Credentials è **legata a una singola azienda** — quella dell'utente che la registra — e il token ne riceve automaticamente il contesto. Per servire un'azienda diversa serve una registrazione separata; se devi distribuire la stessa app a più aziende usa invece **Authorization Code**.\n\n```\nPOST {identity-provider}/connect/token\nContent-Type: application/x-www-form-urlencoded\n\ngrant_type=client_credentials&client_id=<client_id>&client_secret=<client_secret>&scope=comune read write documenti\n```\n\n> **Importante:** non includere lo scope `openid` (né `profile`/`email`) in questo flusso. `openid` attiva OpenID Connect — richiede un utente che effettua il login e l'emissione di un ID token — cosa che un flusso server-to-server non prevede: la richiesta viene rifiutata con l'errore `Client cannot request OpenID scopes in client credentials flow`. Indica solo gli scope di risorsa (`comune`, `magazzino`, `documenti`, `contabilita`, ed eventualmente `read`/`write`).\n\nIn entrambi i casi la risposta contiene l'`access_token` (JWT con `aud: amica-cloud`) da usare nelle chiamate successive finché non scade (`expires_in`), dopodiché va richiesto un nuovo token. Ogni token contiene uno o più **scope** che determinano le aree accessibili (vedi sotto). Dalla [API Reference](https://amica.dev) è possibile incollare un access token per provare gli endpoint direttamente dal browser.\n\n## Scope di autorizzazione\n\nL'accesso agli endpoint è governato dagli scope presenti nel token OAuth:\n\n| Scope | Descrizione |\n|-|-|\n| `comune` | Anagrafiche: contatti, indirizzi, nazioni, valute, modalità di pagamento, ecc. |\n| `magazzino` | Magazzino: articoli, listini, movimenti di magazzino, giacenze, distinte base. |\n| `contabilita` | Contabilità: registrazioni contabili, scadenze, castelletti IVA, fatture elettroniche XML. |\n| `documenti` | Documenti: fatture, note di credito, DDT, ordini, preventivi, proforma ed emissione. |\n\nUna richiesta verso un endpoint non coperto dallo scope del token riceverà una risposta `403 Forbidden`.\n\n## Company ID\n\nLa maggior parte degli endpoint è relativa a una specifica azienda e segue il pattern:\n\n```\n/api/v3/{companyId}/risorsa\n```\n\nIl `companyId` è l'identificativo univoco di ciascun database aziendale. Usare l'endpoint `GET /api/v3/config/Azienda` per ottenere l'elenco delle aziende disponibili.\n\n## Paginazione\n\nGli endpoint che restituiscono liste supportano la paginazione tramite query parameter:\n\n| Parametro | Descrizione |\n|-|-|\n| `Skip` | Numero di elementi da saltare dall'inizio del set di risultati. |\n| `Take` | Numero di elementi da includere nella risposta. |\n\nLa risposta include due header:\n\n| Header | Descrizione |\n|-|-|\n| `X-Read-TotalCount` | Numero totale di elementi che soddisfano il filtro corrente. |\n| `X-Read-Count` | Numero di elementi effettivamente restituiti nel body della risposta. |\n\n## Ordinamento e filtri\n\nGli endpoint lista accettano parametri aggiuntivi:\n\n| Parametro | Descrizione |\n|-|-|\n| `Order` | Lista di proprietà per l'ordinamento, separate da virgola. Un segno meno (`-`) prima del nome indica ordine discendente. Es. `-RagioneSociale1,Citta`. |\n| `Filter` | Condizioni di ricerca: lista di espressioni separate da virgola, ciascuna formata da nome campo, operatore, valore ed eventuale connettore logico. Operatori: `$eq`, `$ne`, `$gt`, `$lt`, `$lte`, `$gte`, `$ct` (contiene), `$nct`, `$sw` (inizia con), `$ew` (finisce con). Connettori: `$and` (default, omissibile) e `$or`; le sotto-query si racchiudono tra `[]`. Es. `RagioneSociale1 $ct acme $or, Fido $gt 1000`. |\n| `SkipTotalCount` | Se `true`, l'header `X-Read-TotalCount` viene omesso dalla risposta: migliori prestazioni a scapito del conteggio totale. Default `false`. |\n\n## Espansione oggetti correlati\n\nGli endpoint singoli e lista supportano il parametro `Expand`. Quando fornito, gli oggetti correlati vengono inclusi inline nella risposta anziché restituiti come riferimenti. È possibile specificare espansioni multiple separate da virgola.\n\n## Gestione errori\n\nL'API usa codici di stato HTTP standard e restituisce [RFC 7807](https://tools.ietf.org/html/rfc7807) Problem Details in caso di errore:\n\n| Codice | Significato |\n|-|-|\n| `400` | Bad Request — validazione fallita o parametro obbligatorio mancante. |\n| `401` | Unauthorized — token mancante o scaduto. |\n| `403` | Forbidden — il token non possiede lo scope richiesto. |\n| `404` | Not Found — la risorsa richiesta non esiste. |\n| `409` | Conflict — conflitto di concorrenza. |\n| `422` | Unprocessable Entity — entità non processabile (es. token di concorrenza obsoleto). |\n\nAlcune risposte `400` includono un campo `overridable` che indica se l'errore di validazione può essere ignorato impostando il parametro `validationOverride` a `true`.\n\n## Controllo della concorrenza\n\nLe entità contengono una proprietà `ConcurrencyToken`. Quando si aggiorna un'entità tramite `PUT`, il token nel body della richiesta viene confrontato con il valore memorizzato. Se differiscono, viene restituito un `422 Unprocessable Entity`. Usare sempre l'ultimo token ricevuto da una risposta `GET` o `POST`.\n",
    "contact": {
      "url": "https://amica.dev",
      "email": "assistenza@gestionaleamica.com"
    },
    "version": "v3",
    "x-logo": {
      "url": "https://gestionaleamica.com/assets/img/Logo_Amica_Scritta.png",
      "altText": "Amica: tutto il software che serve per gestire la tua azienda"
    }
  },
  "paths": {
    "/api/v{version}/{companyId}/Anagrafica/new": {
      "get": {
        "tags": [
          "Anagrafica"
        ],
        "summary": "Restituisce una nuova istanza di un contatto del tipo specificato.",
        "description": "Richiede il parametro query `TipoAnagrafica` (int) che indica il tipo di contatto da creare.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Anagrafica"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Anagrafica/distinct": {
      "get": {
        "tags": [
          "Anagrafica"
        ],
        "summary": "Restituisce una lista di elementi distinti.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Selector",
            "in": "query",
            "description": "Il campo usato per distinguere gli elementi.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "RagioneSociale1"
            },
            "example": "RagioneSociale1"
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi, a partire dal primo, da escludere dal risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi distinti.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DistinctPropertyGroup"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Anagrafica": {
      "post": {
        "tags": [
          "Anagrafica"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Anagrafica"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Anagrafica"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Anagrafica"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Anagrafica"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "Anagrafica"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Anagrafica"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Anagrafica/{id}": {
      "put": {
        "tags": [
          "Anagrafica"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Anagrafica"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Anagrafica"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Anagrafica"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Anagrafica"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "Anagrafica"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Anagrafica"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Anagrafica"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Anagrafica"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/AreaGeografica/distinct": {
      "get": {
        "tags": [
          "AreaGeografica"
        ],
        "summary": "Restituisce una lista di elementi distinti.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Selector",
            "in": "query",
            "description": "Il campo usato per distinguere gli elementi.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "RagioneSociale1"
            },
            "example": "RagioneSociale1"
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi, a partire dal primo, da escludere dal risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi distinti.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DistinctPropertyGroup"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/AreaGeografica": {
      "post": {
        "tags": [
          "AreaGeografica"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AreaGeografica"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AreaGeografica"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AreaGeografica"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AreaGeografica"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "AreaGeografica"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AreaGeografica"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/AreaGeografica/{id}": {
      "put": {
        "tags": [
          "AreaGeografica"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AreaGeografica"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AreaGeografica"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AreaGeografica"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AreaGeografica"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "AreaGeografica"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AreaGeografica"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "AreaGeografica"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AreaGeografica"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/AreaGeografica/new": {
      "get": {
        "tags": [
          "AreaGeografica"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AreaGeografica"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Articolo": {
      "post": {
        "tags": [
          "Articolo"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Articolo"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Articolo"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Articolo"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Articolo"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "Articolo"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Articolo"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Articolo/{id}": {
      "put": {
        "tags": [
          "Articolo"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Articolo"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Articolo"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Articolo"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Articolo"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "Articolo"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Articolo"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Articolo"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Articolo"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Articolo/new": {
      "get": {
        "tags": [
          "Articolo"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Articolo"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/ArticoloMediaFile/bulk": {
      "delete": {
        "tags": [
          "ArticoloMediaFile"
        ],
        "summary": "Elimina in blocco tutti i file multimediali degli articoli.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "version",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successo. Tutti i file sono stati eliminati.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "ArticoloMediaFile"
        ],
        "summary": "Scarica tutti i file multimediali degli articoli come archivio ZIP.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "version",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'archivio ZIP.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. Nessun file disponibile.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/zip": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/ArticoloMediaFile": {
      "post": {
        "tags": [
          "ArticoloMediaFile"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ArticoloMediaFile"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ArticoloMediaFile"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ArticoloMediaFile"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArticoloMediaFile"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "ArticoloMediaFile"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ArticoloMediaFile"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/ArticoloMediaFile/{id}": {
      "put": {
        "tags": [
          "ArticoloMediaFile"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ArticoloMediaFile"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ArticoloMediaFile"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ArticoloMediaFile"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArticoloMediaFile"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "ArticoloMediaFile"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArticoloMediaFile"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "ArticoloMediaFile"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArticoloMediaFile"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/ArticoloMediaFile/new": {
      "get": {
        "tags": [
          "ArticoloMediaFile"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArticoloMediaFile"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/config/Azienda/{id}": {
      "get": {
        "tags": [
          "Azienda"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "query",
            "description": "ID univoco dell'azienda.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Azienda"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/config/Azienda": {
      "get": {
        "tags": [
          "Azienda"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "query",
            "description": "ID univoco dell'azienda.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Azienda"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/BeneServizio/compute": {
      "post": {
        "tags": [
          "BeneServizio"
        ],
        "summary": "Calcola gli importi di un Amica.BeneServizio (vedi Amica.BeneServizioComputeResult), considerando parametri come quantità movimentata, IVA applicata, eventuali sconti.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "version",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Dati di input per il calcolo.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BeneServizioComputeData"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/BeneServizioComputeData"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BeneServizioComputeData"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce il risultato del calcolo.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BeneServizioComputeResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      }
    },
    "/api/v{version}/{companyId}/BeneServizio/new": {
      "get": {
        "tags": [
          "BeneServizio"
        ],
        "summary": "Restituisce una nuova istanza di un bene/servizio.",
        "description": "Parametri query opzionali: `DocumentoId` (int) per collegare al documento, `Posizione` (int) per la posizione nella lista righe.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BeneServizio"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/BeneServizio/collegadocumento": {
      "post": {
        "tags": [
          "BeneServizio"
        ],
        "summary": "Collega un bene/servizio a un documento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Dati per il collegamento.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CollegaDocumentoData"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CollegaDocumentoData"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CollegaDocumentoData"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BeneServizio"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      }
    },
    "/api/v{version}/{companyId}/BeneServizio": {
      "post": {
        "tags": [
          "BeneServizio"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BeneServizio"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/BeneServizio"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BeneServizio"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BeneServizio"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "BeneServizio"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BeneServizio"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/BeneServizio/{id}": {
      "put": {
        "tags": [
          "BeneServizio"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BeneServizio"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/BeneServizio"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BeneServizio"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BeneServizio"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "BeneServizio"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BeneServizio"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "BeneServizio"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BeneServizio"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/tabelle/CassaPrevidenziale": {
      "get": {
        "tags": [
          "CassaPrevidenziale"
        ],
        "summary": "Restituisce il contenuto della tabella come lista di elementi.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "version",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CassaPrevidenziale"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CassaPrevidenziale"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CassaPrevidenziale"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/CastellettoIva": {
      "post": {
        "tags": [
          "CastellettoIva"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CastellettoIva"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CastellettoIva"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CastellettoIva"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CastellettoIva"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "CastellettoIva"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CastellettoIva"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/CastellettoIva/{id}": {
      "put": {
        "tags": [
          "CastellettoIva"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CastellettoIva"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CastellettoIva"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CastellettoIva"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CastellettoIva"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "CastellettoIva"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CastellettoIva"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "CastellettoIva"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CastellettoIva"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/CastellettoIva/new": {
      "get": {
        "tags": [
          "CastellettoIva"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CastellettoIva"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/CategoriaAnagrafica/distinct": {
      "get": {
        "tags": [
          "CategoriaAnagrafica"
        ],
        "summary": "Restituisce una lista di elementi distinti.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Selector",
            "in": "query",
            "description": "Il campo usato per distinguere gli elementi.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "RagioneSociale1"
            },
            "example": "RagioneSociale1"
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi, a partire dal primo, da escludere dal risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi distinti.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DistinctPropertyGroup"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/CategoriaAnagrafica": {
      "post": {
        "tags": [
          "CategoriaAnagrafica"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CategoriaAnagrafica"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CategoriaAnagrafica"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CategoriaAnagrafica"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoriaAnagrafica"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "CategoriaAnagrafica"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CategoriaAnagrafica"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/CategoriaAnagrafica/{id}": {
      "put": {
        "tags": [
          "CategoriaAnagrafica"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CategoriaAnagrafica"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CategoriaAnagrafica"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CategoriaAnagrafica"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoriaAnagrafica"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "CategoriaAnagrafica"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoriaAnagrafica"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "CategoriaAnagrafica"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoriaAnagrafica"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/CategoriaAnagrafica/new": {
      "get": {
        "tags": [
          "CategoriaAnagrafica"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoriaAnagrafica"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/CategoriaMerceologica": {
      "post": {
        "tags": [
          "CategoriaMerceologica"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CategoriaMerceologica"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CategoriaMerceologica"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CategoriaMerceologica"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoriaMerceologica"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "CategoriaMerceologica"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CategoriaMerceologica"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/CategoriaMerceologica/{id}": {
      "put": {
        "tags": [
          "CategoriaMerceologica"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CategoriaMerceologica"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CategoriaMerceologica"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CategoriaMerceologica"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoriaMerceologica"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "CategoriaMerceologica"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoriaMerceologica"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "CategoriaMerceologica"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoriaMerceologica"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/CategoriaMerceologica/new": {
      "get": {
        "tags": [
          "CategoriaMerceologica"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoriaMerceologica"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/CausaleDocumento": {
      "post": {
        "tags": [
          "CausaleDocumento"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CausaleDocumento"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CausaleDocumento"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CausaleDocumento"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CausaleDocumento"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "CausaleDocumento"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CausaleDocumento"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/CausaleDocumento/{id}": {
      "put": {
        "tags": [
          "CausaleDocumento"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CausaleDocumento"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CausaleDocumento"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CausaleDocumento"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CausaleDocumento"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "CausaleDocumento"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CausaleDocumento"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "CausaleDocumento"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CausaleDocumento"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/CausaleDocumento/new": {
      "get": {
        "tags": [
          "CausaleDocumento"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CausaleDocumento"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/CausaleIva": {
      "post": {
        "tags": [
          "CausaleIva"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CausaleIva"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CausaleIva"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CausaleIva"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CausaleIva"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "CausaleIva"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CausaleIva"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/CausaleIva/{id}": {
      "put": {
        "tags": [
          "CausaleIva"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CausaleIva"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CausaleIva"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CausaleIva"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CausaleIva"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "CausaleIva"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CausaleIva"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "CausaleIva"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CausaleIva"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/CausaleIva/new": {
      "get": {
        "tags": [
          "CausaleIva"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CausaleIva"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/CausaleMagazzino": {
      "post": {
        "tags": [
          "CausaleMagazzino"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CausaleMagazzino"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CausaleMagazzino"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CausaleMagazzino"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CausaleMagazzino"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "CausaleMagazzino"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CausaleMagazzino"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/CausaleMagazzino/{id}": {
      "put": {
        "tags": [
          "CausaleMagazzino"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CausaleMagazzino"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CausaleMagazzino"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CausaleMagazzino"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CausaleMagazzino"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "CausaleMagazzino"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CausaleMagazzino"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "CausaleMagazzino"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CausaleMagazzino"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/CausaleMagazzino/new": {
      "get": {
        "tags": [
          "CausaleMagazzino"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CausaleMagazzino"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/tabelle/CodicePagamento": {
      "get": {
        "tags": [
          "CodicePagamento"
        ],
        "summary": "Restituisce il contenuto della tabella come lista di elementi.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "version",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CodicePagamento"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CodicePagamento"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CodicePagamento"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/ContoContabile/repair": {
      "post": {
        "tags": [
          "ContoContabile"
        ],
        "summary": "Valida le registrazioni contabili, cercando di correggere i problemi più comuni.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContoContabileValidationResult"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContoContabileValidationResult"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContoContabileValidationResult"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      }
    },
    "/api/v{version}/{companyId}/ContoContabile": {
      "post": {
        "tags": [
          "ContoContabile"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContoContabile"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ContoContabile"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ContoContabile"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContoContabile"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "ContoContabile"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContoContabile"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/ContoContabile/{id}": {
      "put": {
        "tags": [
          "ContoContabile"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContoContabile"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ContoContabile"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ContoContabile"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContoContabile"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "ContoContabile"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContoContabile"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "ContoContabile"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContoContabile"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/ContoContabile/new": {
      "get": {
        "tags": [
          "ContoContabile"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContoContabile"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/DistintaBase": {
      "post": {
        "tags": [
          "DistintaBase"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Componente"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Componente"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Componente"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Componente"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "DistintaBase"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Componente"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/DistintaBase/{id}": {
      "put": {
        "tags": [
          "DistintaBase"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Componente"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Componente"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Componente"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Componente"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "DistintaBase"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Componente"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "DistintaBase"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Componente"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/DistintaBase/new": {
      "get": {
        "tags": [
          "DistintaBase"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Componente"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Documento/{documentoId}/emit": {
      "post": {
        "tags": [
          "Documento"
        ],
        "summary": "Emette un documento.",
        "description": "A seconda del tipo di documento, l'emissione comporta una serie di operazioni amministrative e contabili:\n\n\n            1) Aggiornamento dell'Amica.Anagrafica coinvolta (fatturato, numero fatture, ecc.);\n\n            2) Creazione della registrazione contabile di emissione;\n\n            3) Creazione delle scadenze attive o passive, in base al tipo di pagamento;\n\n            4) Eventuale autoproduzione dei beni fatturati tramite distinta base, se l'opzione è attiva;\n\n            5) Creazione del movimento di magazzino;\n\n            6) Aggiornamento delle giacenze dei beni coinvolti, nei rispettivi magazzini;\n\n            7) Aggiornamento di eventuali ordini collegati.\n\n\n            Un documento già emesso non può essere riemesso. Alcuni tipi di documento non supportano l'emissione (ordini e preventivi, ad esempio).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "documentoId",
            "in": "path",
            "description": "ID univoco del documento da emettere.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce il documento aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Documento"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Documento"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Documento"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione)."
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato."
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Documento/compute": {
      "post": {
        "tags": [
          "Documento"
        ],
        "summary": "Calcola i totali di un documento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Dati di input per l'operazione di calcolo.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentoComputeData"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentoComputeData"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentoComputeData"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce il risultato del calcolo.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentoComputeResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentoComputeResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentoComputeResult"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione)."
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Documento/{documentoId}/newinstancefromtemplate": {
      "post": {
        "tags": [
          "Documento"
        ],
        "summary": "Replica un documento. Crea una copia con la data odierna e, se è un documento di vendita, un nuovo numero.\nAlcuni campi vengono reimpostati ai valori predefiniti (stato del documento, stato SDI, stato del pagamento, ecc.).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "documentoId",
            "in": "path",
            "description": "ID univoco del documento.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Documento"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Documento"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Documento"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Documento/new": {
      "get": {
        "tags": [
          "Documento"
        ],
        "summary": "Restituisce una nuova istanza di un documento del tipo specificato.",
        "description": "Richiede il parametro query `TipoDocumento` (int) che indica il tipo di documento da creare.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Documento"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Documento/periodicinvoicing": {
      "post": {
        "tags": [
          "Documento"
        ],
        "summary": "Genera fatture per tutti i contatti che corrispondono ai criteri di fatturazione periodica.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "query",
            "description": "Non utilizzato.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Criteri e opzioni di fatturazione periodica.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PeriodicInvoicingData"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PeriodicInvoicingData"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PeriodicInvoicingData"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista dei documenti generati.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Documento"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Documento/{id}/import/ddt": {
      "post": {
        "tags": [
          "Documento"
        ],
        "summary": "Importa righe da uno o più DDT in un documento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID del documento di destinazione.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Opzioni di importazione, inclusi gli ID dei DDT da importare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DdtImportData"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DdtImportData"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DdtImportData"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce il documento aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Documento"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. Il documento di destinazione non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Documento/{id}/import/ordine": {
      "post": {
        "tags": [
          "Documento"
        ],
        "summary": "Importa righe da uno o più ordini in un documento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID del documento di destinazione.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Opzioni di importazione, inclusi gli ID degli ordini da importare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrdiniImportData"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/OrdiniImportData"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/OrdiniImportData"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce il documento aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Documento"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. Il documento di destinazione non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Documento/{id}/import/preventivo": {
      "post": {
        "tags": [
          "Documento"
        ],
        "summary": "Importa righe da uno o più preventivi in un documento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID del documento di destinazione.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Opzioni di importazione, inclusi gli ID dei preventivi da importare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentoImportData"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentoImportData"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentoImportData"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce il documento aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Documento"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. Il documento di destinazione non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Documento/{id}/import/reso": {
      "post": {
        "tags": [
          "Documento"
        ],
        "summary": "Importa righe da uno o più resi in un documento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID del documento di destinazione.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Opzioni di importazione, inclusi gli ID dei resi da importare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResoImportData"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ResoImportData"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ResoImportData"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce il documento aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Documento"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. Il documento di destinazione non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Documento/{id}/import/acconto": {
      "post": {
        "tags": [
          "Documento"
        ],
        "summary": "Importa righe da uno o più acconti in un documento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID del documento di destinazione.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Opzioni di importazione, inclusi gli ID degli acconti da importare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentoImportData"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentoImportData"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentoImportData"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce il documento aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Documento"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. Il documento di destinazione non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Documento/{id}/import/proforma": {
      "post": {
        "tags": [
          "Documento"
        ],
        "summary": "Importa righe da una o più fatture proforma in un documento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID del documento di destinazione.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Opzioni di importazione, inclusi gli ID delle proforma da importare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentoImportData"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentoImportData"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentoImportData"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce il documento aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Documento"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. Il documento di destinazione non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Documento/distinct": {
      "get": {
        "tags": [
          "Documento"
        ],
        "summary": "Restituisce una lista di elementi distinti.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Selector",
            "in": "query",
            "description": "Il campo usato per distinguere gli elementi.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "RagioneSociale1"
            },
            "example": "RagioneSociale1"
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi, a partire dal primo, da escludere dal risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi distinti.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DistinctPropertyGroup"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Documento": {
      "post": {
        "tags": [
          "Documento"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Documento"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Documento"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Documento"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Documento"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "Documento"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Documento"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Documento/{id}": {
      "put": {
        "tags": [
          "Documento"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Documento"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Documento"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Documento"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Documento"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "Documento"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Documento"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Documento"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Documento"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/DocumentoMediaFile/bulk": {
      "delete": {
        "tags": [
          "DocumentoMediaFile"
        ],
        "summary": "Elimina in blocco tutti i file multimediali dei documenti.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "version",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successo. Tutti i file sono stati eliminati.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "DocumentoMediaFile"
        ],
        "summary": "Scarica tutti i file multimediali dei documenti come archivio ZIP.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "version",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'archivio ZIP.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. Nessun file disponibile.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/zip": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/DocumentoMediaFile": {
      "post": {
        "tags": [
          "DocumentoMediaFile"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentoMediaFile"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentoMediaFile"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentoMediaFile"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentoMediaFile"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "DocumentoMediaFile"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DocumentoMediaFile"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/DocumentoMediaFile/{id}": {
      "put": {
        "tags": [
          "DocumentoMediaFile"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentoMediaFile"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentoMediaFile"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentoMediaFile"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentoMediaFile"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "DocumentoMediaFile"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentoMediaFile"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "DocumentoMediaFile"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentoMediaFile"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/DocumentoMediaFile/new": {
      "get": {
        "tags": [
          "DocumentoMediaFile"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentoMediaFile"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/FatturaElettronicaXml/sdi/upload": {
      "post": {
        "tags": [
          "FatturaElettronicaXml"
        ],
        "summary": "Invia una o più fatture al Sistema di Interscambio (SDI).",
        "description": "Il <a href=\"https://gestionaleamica.com/Software/ServizioInterscambioFatture\">Servizio di Interscambio Documenti</a> deve essere attivo per l'azienda e la relativa chiave di attivazione deve essere presente in !:ImpostazioniSdi.SdiApiKey.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Opzioni di invio.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FatturaElettronicaUploadOptions"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/FatturaElettronicaUploadOptions"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/FatturaElettronicaUploadOptions"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FatturaElettronicaUploadResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      }
    },
    "/api/v{version}/{companyId}/FatturaElettronicaXml/sdi/download/fatture": {
      "post": {
        "tags": [
          "FatturaElettronicaXml"
        ],
        "summary": "Scarica le nuove fatture dal Sistema di Interscambio (SDI).",
        "description": "Il <a href=\"https://gestionaleamica.com/Software/ServizioInterscambioFatture\">Servizio di Interscambio Documenti</a> deve essere attivo per l'azienda e la relativa chiave di attivazione deve essere presente in !:ImpostazioniSdi.SdiApiKey.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FatturaElettronicaImportResult"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      }
    },
    "/api/v{version}/{companyId}/FatturaElettronicaXml/sdi/download/esiti": {
      "post": {
        "tags": [
          "FatturaElettronicaXml"
        ],
        "summary": "Interroga il Sistema di Interscambio (SDI) e scarica gli esiti di invio delle fatture precedentemente caricate.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FatturaElettronicaImportResult"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      }
    },
    "/api/v{version}/{companyId}/FatturaElettronicaXml/pair": {
      "post": {
        "tags": [
          "FatturaElettronicaXml"
        ],
        "summary": "Associa una fattura XML a un documento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "FileName": {
                    "type": "string",
                    "description": "Nome del file.",
                    "example": "IT01234567890_00001.xml"
                  },
                  "Progressivo": {
                    "type": "string",
                    "description": "Progressivo del Sistema di Interscambio (SdI).",
                    "example": "00001"
                  },
                  "DocumentoId": {
                    "type": "integer",
                    "description": "Identificativo del Amica.Documento da abbinare.",
                    "format": "int32",
                    "example": 1
                  },
                  "file": {
                    "type": "string",
                    "description": "Contenuto del file.",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "FileName": {
                  "style": "form"
                },
                "Progressivo": {
                  "style": "form"
                },
                "DocumentoId": {
                  "style": "form"
                },
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      }
    },
    "/api/v{version}/{companyId}/FatturaElettronicaXml/export": {
      "post": {
        "tags": [
          "FatturaElettronicaXml"
        ],
        "summary": "Esporta uno o più documenti in una fattura XML.",
        "description": "Tutti i documenti devono riferirsi alla stessa <a href=\"#tag/Anagrafica\">Anagrafica</a>.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Opzioni di esportazione.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FatturaElettronicaExportOptions"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/FatturaElettronicaExportOptions"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/FatturaElettronicaExportOptions"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FatturaElettronicaExportResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      }
    },
    "/api/v{version}/{companyId}/FatturaElettronicaXml/import": {
      "post": {
        "tags": [
          "FatturaElettronicaXml"
        ],
        "summary": "Importa una fattura XML.",
        "description": "Viene creato un nuovo <a href=\"#tag/Documento\">Documento</a> corrispondente al contenuto XML.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "DataConsegnaSdi": {
                    "type": "string",
                    "description": "Data di consegna del Sistema di Interscambio (SdI).",
                    "format": "date-time",
                    "example": "2026-01-15"
                  },
                  "IdentificativoSdi": {
                    "type": "string",
                    "description": "Identificativo assegnato dal Sistema di Interscambio (SdI).",
                    "example": "1234567890"
                  },
                  "file": {
                    "type": "string",
                    "description": "Contenuto del file.",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "DataConsegnaSdi": {
                  "style": "form"
                },
                "IdentificativoSdi": {
                  "style": "form"
                },
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FatturaElettronicaImportResult"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      }
    },
    "/api/v{version}/{companyId}/FatturaElettronicaXml/{fileName}": {
      "get": {
        "tags": [
          "FatturaElettronicaXml"
        ],
        "summary": "Recupera una fattura XML per nome file.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fileName",
            "in": "path",
            "description": "Nome del file.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/FatturaElettronicaXml/stylesheet": {
      "post": {
        "tags": [
          "FatturaElettronicaXml"
        ],
        "summary": "Applica un foglio di stile CSS a una fattura XML esistente e restituisce il risultato.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Opzioni di corrispondenza e stile.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FatturaElettronicaXmlStyleSheetData"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/FatturaElettronicaXmlStyleSheetData"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/FatturaElettronicaXmlStyleSheetData"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      }
    },
    "/api/v{version}/{companyId}/FatturaElettronicaXml/archivebydaterange": {
      "post": {
        "tags": [
          "FatturaElettronicaXml"
        ],
        "summary": "Scarica un archivio ZIP di fatture XML, filtrate per intervallo di date.",
        "description": "Non è possibile scaricare più di 350 file alla volta.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Opzioni di download.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FatturaElettronicaXmlGetArchiveByDateRangeOptions"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/FatturaElettronicaXmlGetArchiveByDateRangeOptions"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/FatturaElettronicaXmlGetArchiveByDateRangeOptions"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "204": {
            "description": "No Content",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/zip": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      }
    },
    "/api/v{version}/{companyId}/FatturaElettronicaXml/archivebyfilename": {
      "post": {
        "tags": [
          "FatturaElettronicaXml"
        ],
        "summary": "Scarica un archivio ZIP di fatture XML, filtrate per nome file.",
        "description": "Non è possibile scaricare più di 350 file alla volta.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Opzioni di download.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FatturaElettronicaXmlGetArchiveByFileNameOptions"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/FatturaElettronicaXmlGetArchiveByFileNameOptions"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/FatturaElettronicaXmlGetArchiveByFileNameOptions"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "204": {
            "description": "No Content",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/zip": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      }
    },
    "/api/v{version}/{companyId}/FatturaElettronicaXml/{fileName}/attachments": {
      "get": {
        "tags": [
          "FatturaElettronicaXml"
        ],
        "summary": "Scarica i file allegati di una fattura XML.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fileName",
            "in": "path",
            "description": "Nome del file.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AllegatoDocumento"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/FatturaElettronicaXml/bulk": {
      "post": {
        "tags": [
          "FatturaElettronicaXml"
        ],
        "summary": "Carica in blocco fatture XML da un archivio ZIP.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "version",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "description": "Archivio ZIP contenente i file XML.",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. I file sono stati caricati con successo.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "FatturaElettronicaXml"
        ],
        "summary": "Scarica tutte le fatture XML come archivio ZIP.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "version",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'archivio ZIP.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. Nessun file disponibile.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/zip": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "FatturaElettronicaXml"
        ],
        "summary": "Elimina in blocco tutte le fatture XML dell'azienda.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "version",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successo. Tutte le fatture XML sono state eliminate.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/FatturaElettronicaXml": {
      "post": {
        "tags": [
          "FatturaElettronicaXml"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FatturaElettronicaXml"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/FatturaElettronicaXml"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/FatturaElettronicaXml"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FatturaElettronicaXml"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "FatturaElettronicaXml"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FatturaElettronicaXml"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/FatturaElettronicaXml/{id}": {
      "put": {
        "tags": [
          "FatturaElettronicaXml"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FatturaElettronicaXml"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/FatturaElettronicaXml"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/FatturaElettronicaXml"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FatturaElettronicaXml"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "FatturaElettronicaXml"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FatturaElettronicaXml"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "FatturaElettronicaXml"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FatturaElettronicaXml"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/FatturaElettronicaXml/new": {
      "get": {
        "tags": [
          "FatturaElettronicaXml"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FatturaElettronicaXml"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/FatturaElettronicaXmlTemplate": {
      "post": {
        "tags": [
          "FatturaElettronicaXmlTemplate"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FatturaElettronicaXmlTemplate"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/FatturaElettronicaXmlTemplate"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/FatturaElettronicaXmlTemplate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FatturaElettronicaXmlTemplate"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "FatturaElettronicaXmlTemplate"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FatturaElettronicaXmlTemplate"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/FatturaElettronicaXmlTemplate/{id}": {
      "put": {
        "tags": [
          "FatturaElettronicaXmlTemplate"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FatturaElettronicaXmlTemplate"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/FatturaElettronicaXmlTemplate"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/FatturaElettronicaXmlTemplate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FatturaElettronicaXmlTemplate"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "FatturaElettronicaXmlTemplate"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FatturaElettronicaXmlTemplate"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "FatturaElettronicaXmlTemplate"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FatturaElettronicaXmlTemplate"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/FatturaElettronicaXmlTemplate/new": {
      "get": {
        "tags": [
          "FatturaElettronicaXmlTemplate"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FatturaElettronicaXmlTemplate"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Giacenza/distinct": {
      "get": {
        "tags": [
          "Giacenza"
        ],
        "summary": "Restituisce una lista di elementi distinti.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Selector",
            "in": "query",
            "description": "Il campo usato per distinguere gli elementi.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "RagioneSociale1"
            },
            "example": "RagioneSociale1"
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi, a partire dal primo, da escludere dal risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi distinti.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DistinctPropertyGroup"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Giacenza": {
      "post": {
        "tags": [
          "Giacenza"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Giacenza"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Giacenza"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Giacenza"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Giacenza"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "Giacenza"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Giacenza"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Giacenza/{id}": {
      "put": {
        "tags": [
          "Giacenza"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Giacenza"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Giacenza"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Giacenza"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Giacenza"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "Giacenza"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Giacenza"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Giacenza"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Giacenza"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Giacenza/new": {
      "get": {
        "tags": [
          "Giacenza"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Giacenza"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/GiornaleMagazzino": {
      "post": {
        "tags": [
          "GiornaleMagazzino"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MovimentoMerceRiga"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MovimentoMerceRiga"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MovimentoMerceRiga"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MovimentoMerceRiga"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "GiornaleMagazzino"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MovimentoMerceRiga"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/GiornaleMagazzino/{id}": {
      "put": {
        "tags": [
          "GiornaleMagazzino"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MovimentoMerceRiga"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MovimentoMerceRiga"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MovimentoMerceRiga"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MovimentoMerceRiga"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "GiornaleMagazzino"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MovimentoMerceRiga"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "GiornaleMagazzino"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MovimentoMerceRiga"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/GiornaleMagazzino/new": {
      "get": {
        "tags": [
          "GiornaleMagazzino"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MovimentoMerceRiga"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/GruppoMerceologico": {
      "post": {
        "tags": [
          "GruppoMerceologico"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GruppoMerceologico"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GruppoMerceologico"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GruppoMerceologico"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GruppoMerceologico"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "GruppoMerceologico"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GruppoMerceologico"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/GruppoMerceologico/{id}": {
      "put": {
        "tags": [
          "GruppoMerceologico"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GruppoMerceologico"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GruppoMerceologico"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GruppoMerceologico"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GruppoMerceologico"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "GruppoMerceologico"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GruppoMerceologico"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "GruppoMerceologico"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GruppoMerceologico"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/GruppoMerceologico/new": {
      "get": {
        "tags": [
          "GruppoMerceologico"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GruppoMerceologico"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Indirizzo": {
      "post": {
        "tags": [
          "Indirizzo"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Indirizzo"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Indirizzo"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Indirizzo"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Indirizzo"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "Indirizzo"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Indirizzo"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Indirizzo/{id}": {
      "put": {
        "tags": [
          "Indirizzo"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Indirizzo"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Indirizzo"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Indirizzo"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Indirizzo"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "Indirizzo"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Indirizzo"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Indirizzo"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Indirizzo"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Indirizzo/new": {
      "get": {
        "tags": [
          "Indirizzo"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Indirizzo"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Listino": {
      "post": {
        "tags": [
          "Listino"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Listino"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Listino"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Listino"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Listino"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "Listino"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Listino"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Listino/{id}": {
      "put": {
        "tags": [
          "Listino"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Listino"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Listino"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Listino"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Listino"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "Listino"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Listino"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Listino"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Listino"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Listino/new": {
      "get": {
        "tags": [
          "Listino"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Listino"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Magazzino": {
      "post": {
        "tags": [
          "Magazzino"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Magazzino"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Magazzino"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Magazzino"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Magazzino"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "Magazzino"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Magazzino"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Magazzino/{id}": {
      "put": {
        "tags": [
          "Magazzino"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Magazzino"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Magazzino"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Magazzino"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Magazzino"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "Magazzino"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Magazzino"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Magazzino"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Magazzino"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Magazzino/new": {
      "get": {
        "tags": [
          "Magazzino"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Magazzino"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Marca": {
      "post": {
        "tags": [
          "Marca"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Marca"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Marca"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Marca"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Marca"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "Marca"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Marca"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Marca/{id}": {
      "put": {
        "tags": [
          "Marca"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Marca"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Marca"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Marca"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Marca"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "Marca"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Marca"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Marca"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Marca"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Marca/new": {
      "get": {
        "tags": [
          "Marca"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Marca"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/ModalitaPagamento/distinct": {
      "get": {
        "tags": [
          "ModalitaPagamento"
        ],
        "summary": "Restituisce una lista di elementi distinti.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Selector",
            "in": "query",
            "description": "Il campo usato per distinguere gli elementi.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "RagioneSociale1"
            },
            "example": "RagioneSociale1"
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi, a partire dal primo, da escludere dal risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi distinti.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DistinctPropertyGroup"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/ModalitaPagamento": {
      "post": {
        "tags": [
          "ModalitaPagamento"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ModalitaPagamento"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ModalitaPagamento"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ModalitaPagamento"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModalitaPagamento"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "ModalitaPagamento"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ModalitaPagamento"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/ModalitaPagamento/{id}": {
      "put": {
        "tags": [
          "ModalitaPagamento"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ModalitaPagamento"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ModalitaPagamento"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ModalitaPagamento"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModalitaPagamento"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "ModalitaPagamento"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModalitaPagamento"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "ModalitaPagamento"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModalitaPagamento"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/ModalitaPagamento/new": {
      "get": {
        "tags": [
          "ModalitaPagamento"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModalitaPagamento"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/ModelloContabile": {
      "post": {
        "tags": [
          "ModelloContabile"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ModelloContabile"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ModelloContabile"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ModelloContabile"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModelloContabile"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "ModelloContabile"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ModelloContabile"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/ModelloContabile/{id}": {
      "put": {
        "tags": [
          "ModelloContabile"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ModelloContabile"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ModelloContabile"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ModelloContabile"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModelloContabile"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "ModelloContabile"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModelloContabile"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "ModelloContabile"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModelloContabile"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/ModelloContabile/new": {
      "get": {
        "tags": [
          "ModelloContabile"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModelloContabile"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/MovimentoMerce": {
      "post": {
        "tags": [
          "MovimentoMerce"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MovimentoMerce"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MovimentoMerce"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MovimentoMerce"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MovimentoMerce"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "MovimentoMerce"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MovimentoMerce"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/MovimentoMerce/{id}": {
      "put": {
        "tags": [
          "MovimentoMerce"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MovimentoMerce"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MovimentoMerce"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MovimentoMerce"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MovimentoMerce"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "MovimentoMerce"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MovimentoMerce"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "MovimentoMerce"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MovimentoMerce"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/MovimentoMerce/new": {
      "get": {
        "tags": [
          "MovimentoMerce"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MovimentoMerce"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/tabelle/NaturaIva": {
      "get": {
        "tags": [
          "NaturaIva"
        ],
        "summary": "Restituisce il contenuto della tabella come lista di elementi.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "version",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NaturaIva"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NaturaIva"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NaturaIva"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Nazione/distinct": {
      "get": {
        "tags": [
          "Nazione"
        ],
        "summary": "Restituisce una lista di elementi distinti.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Selector",
            "in": "query",
            "description": "Il campo usato per distinguere gli elementi.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "RagioneSociale1"
            },
            "example": "RagioneSociale1"
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi, a partire dal primo, da escludere dal risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi distinti.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DistinctPropertyGroup"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Nazione": {
      "post": {
        "tags": [
          "Nazione"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Nazione"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Nazione"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Nazione"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Nazione"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "Nazione"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Nazione"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Nazione/{id}": {
      "put": {
        "tags": [
          "Nazione"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Nazione"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Nazione"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Nazione"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Nazione"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "Nazione"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Nazione"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Nazione"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Nazione"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Nazione/new": {
      "get": {
        "tags": [
          "Nazione"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Nazione"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Pagamento/distinct": {
      "get": {
        "tags": [
          "Pagamento"
        ],
        "summary": "Restituisce una lista di elementi distinti.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Selector",
            "in": "query",
            "description": "Il campo usato per distinguere gli elementi.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "RagioneSociale1"
            },
            "example": "RagioneSociale1"
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi, a partire dal primo, da escludere dal risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi distinti.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DistinctPropertyGroup"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Pagamento": {
      "post": {
        "tags": [
          "Pagamento"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Pagamento"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Pagamento"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Pagamento"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Pagamento"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "Pagamento"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Pagamento"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Pagamento/{id}": {
      "put": {
        "tags": [
          "Pagamento"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Pagamento"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Pagamento"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Pagamento"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Pagamento"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "Pagamento"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Pagamento"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Pagamento"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Pagamento"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Pagamento/new": {
      "get": {
        "tags": [
          "Pagamento"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Pagamento"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Preferenze": {
      "post": {
        "tags": [
          "Preferenze"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Preferenze"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Preferenze"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Preferenze"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Preferenze"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "Preferenze"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Preferenze"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Preferenze/{id}": {
      "put": {
        "tags": [
          "Preferenze"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Preferenze"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Preferenze"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Preferenze"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Preferenze"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "Preferenze"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Preferenze"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Preferenze"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Preferenze"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Preferenze/new": {
      "get": {
        "tags": [
          "Preferenze"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Preferenze"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Prestazione": {
      "post": {
        "tags": [
          "Prestazione"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Prestazione"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Prestazione"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Prestazione"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Prestazione"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "Prestazione"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Prestazione"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Prestazione/{id}": {
      "put": {
        "tags": [
          "Prestazione"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Prestazione"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Prestazione"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Prestazione"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Prestazione"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "Prestazione"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Prestazione"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Prestazione"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Prestazione"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Prestazione/new": {
      "get": {
        "tags": [
          "Prestazione"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Prestazione"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Prezzo": {
      "post": {
        "tags": [
          "Prezzo"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Prezzo"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Prezzo"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Prezzo"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Prezzo"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "Prezzo"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Prezzo"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Prezzo/{id}": {
      "put": {
        "tags": [
          "Prezzo"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Prezzo"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Prezzo"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Prezzo"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Prezzo"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "Prezzo"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Prezzo"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Prezzo"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Prezzo"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Prezzo/new": {
      "get": {
        "tags": [
          "Prezzo"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Prezzo"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Produttore": {
      "post": {
        "tags": [
          "Produttore"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Produttore"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Produttore"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Produttore"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Produttore"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "Produttore"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Produttore"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Produttore/{id}": {
      "put": {
        "tags": [
          "Produttore"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Produttore"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Produttore"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Produttore"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Produttore"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "Produttore"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Produttore"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Produttore"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Produttore"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Produttore/new": {
      "get": {
        "tags": [
          "Produttore"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Produttore"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/ProgressivoInvio": {
      "post": {
        "tags": [
          "ProgressivoInvio"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProgressivoInvio"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ProgressivoInvio"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ProgressivoInvio"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProgressivoInvio"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "ProgressivoInvio"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProgressivoInvio"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/ProgressivoInvio/{id}": {
      "put": {
        "tags": [
          "ProgressivoInvio"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProgressivoInvio"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ProgressivoInvio"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ProgressivoInvio"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProgressivoInvio"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "ProgressivoInvio"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProgressivoInvio"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "ProgressivoInvio"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProgressivoInvio"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/ProgressivoInvio/new": {
      "get": {
        "tags": [
          "ProgressivoInvio"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProgressivoInvio"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/RegistrazioneContabile/validate": {
      "post": {
        "tags": [
          "RegistrazioneContabile"
        ],
        "summary": "Valida le registrazioni contabili di un anno, cercando principalmente squilibri contabili.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "year",
            "in": "query",
            "description": "Anno contabile da validare.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce i risultati della validazione.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RegistrazioneContabileValidationResult"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RegistrazioneContabileValidationResult"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RegistrazioneContabileValidationResult"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore."
          }
        }
      }
    },
    "/api/v{version}/{companyId}/RegistrazioneContabile": {
      "post": {
        "tags": [
          "RegistrazioneContabile"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegistrazioneContabile"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RegistrazioneContabile"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RegistrazioneContabile"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegistrazioneContabile"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "RegistrazioneContabile"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RegistrazioneContabile"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/RegistrazioneContabile/{id}": {
      "put": {
        "tags": [
          "RegistrazioneContabile"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegistrazioneContabile"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RegistrazioneContabile"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RegistrazioneContabile"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegistrazioneContabile"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "RegistrazioneContabile"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegistrazioneContabile"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "RegistrazioneContabile"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegistrazioneContabile"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/RegistrazioneContabile/new": {
      "get": {
        "tags": [
          "RegistrazioneContabile"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegistrazioneContabile"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Reparto": {
      "post": {
        "tags": [
          "Reparto"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Reparto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Reparto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Reparto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Reparto"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "Reparto"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Reparto"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Reparto/{id}": {
      "put": {
        "tags": [
          "Reparto"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Reparto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Reparto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Reparto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Reparto"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "Reparto"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Reparto"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Reparto"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Reparto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Reparto/new": {
      "get": {
        "tags": [
          "Reparto"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Reparto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/RisorsaFinanziaria": {
      "post": {
        "tags": [
          "RisorsaFinanziaria"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RisorsaFinanziaria"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RisorsaFinanziaria"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RisorsaFinanziaria"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RisorsaFinanziaria"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "RisorsaFinanziaria"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RisorsaFinanziaria"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/RisorsaFinanziaria/{id}": {
      "put": {
        "tags": [
          "RisorsaFinanziaria"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RisorsaFinanziaria"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RisorsaFinanziaria"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RisorsaFinanziaria"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RisorsaFinanziaria"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "RisorsaFinanziaria"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RisorsaFinanziaria"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "RisorsaFinanziaria"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RisorsaFinanziaria"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/RisorsaFinanziaria/new": {
      "get": {
        "tags": [
          "RisorsaFinanziaria"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RisorsaFinanziaria"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Scadenza/new": {
      "get": {
        "tags": [
          "Scadenza"
        ],
        "summary": "Restituisce una nuova istanza di una scadenza del tipo specificato.",
        "description": "Richiede il parametro query `TipoScadenza` (int) che indica il tipo di scadenza da creare.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Scadenza"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Scadenza/distinct": {
      "get": {
        "tags": [
          "Scadenza"
        ],
        "summary": "Restituisce una lista di elementi distinti.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Selector",
            "in": "query",
            "description": "Il campo usato per distinguere gli elementi.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "RagioneSociale1"
            },
            "example": "RagioneSociale1"
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi, a partire dal primo, da escludere dal risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi distinti.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DistinctPropertyGroup"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Scadenza": {
      "post": {
        "tags": [
          "Scadenza"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Scadenza"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Scadenza"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Scadenza"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Scadenza"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "Scadenza"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Scadenza"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Scadenza/{id}": {
      "put": {
        "tags": [
          "Scadenza"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Scadenza"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Scadenza"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Scadenza"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Scadenza"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "Scadenza"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Scadenza"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Scadenza"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Scadenza"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Situazione/fatturatomensile": {
      "get": {
        "tags": [
          "Situazione"
        ],
        "summary": "Restituisce il fatturato mensile dell'azienda.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "version",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce i dati del fatturato mensile.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FatturatoMensile"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Situazione/creditodebitomensile": {
      "get": {
        "tags": [
          "Situazione"
        ],
        "summary": "Restituisce i saldi mensili di credito e debito dell'azienda.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "version",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce i dati dei saldi mensili.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CreditoDebitoMensile"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Spesa/distinct": {
      "get": {
        "tags": [
          "Spesa"
        ],
        "summary": "Restituisce una lista di elementi distinti.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Selector",
            "in": "query",
            "description": "Il campo usato per distinguere gli elementi.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "RagioneSociale1"
            },
            "example": "RagioneSociale1"
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi, a partire dal primo, da escludere dal risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi distinti.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DistinctPropertyGroup"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Spesa": {
      "post": {
        "tags": [
          "Spesa"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Spesa"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Spesa"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Spesa"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Spesa"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "Spesa"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Spesa"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Spesa/{id}": {
      "put": {
        "tags": [
          "Spesa"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Spesa"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Spesa"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Spesa"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Spesa"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "Spesa"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Spesa"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Spesa"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Spesa"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Spesa/new": {
      "get": {
        "tags": [
          "Spesa"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Spesa"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/SpesaDocumento/new": {
      "get": {
        "tags": [
          "SpesaDocumento"
        ],
        "summary": "Restituisce una nuova istanza di una spesa documento.",
        "description": "Parametro query opzionale: `DocumentoId` (int) per collegare la spesa a un documento specifico.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SpesaDocumento"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/SpesaDocumento": {
      "post": {
        "tags": [
          "SpesaDocumento"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SpesaDocumento"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SpesaDocumento"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SpesaDocumento"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SpesaDocumento"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "SpesaDocumento"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SpesaDocumento"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/SpesaDocumento/{id}": {
      "put": {
        "tags": [
          "SpesaDocumento"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SpesaDocumento"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SpesaDocumento"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SpesaDocumento"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SpesaDocumento"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "SpesaDocumento"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SpesaDocumento"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "SpesaDocumento"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SpesaDocumento"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Taglia": {
      "post": {
        "tags": [
          "Taglia"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Taglia"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Taglia"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Taglia"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Taglia"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "Taglia"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Taglia"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Taglia/{id}": {
      "put": {
        "tags": [
          "Taglia"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Taglia"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Taglia"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Taglia"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Taglia"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "Taglia"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Taglia"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Taglia"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Taglia"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Taglia/new": {
      "get": {
        "tags": [
          "Taglia"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Taglia"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Valuta": {
      "post": {
        "tags": [
          "Valuta"
        ],
        "summary": "Salva un nuovo elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Valuta"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Valuta"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Valuta"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creato. Restituisce l'elemento salvato con il Amica.BaseEntity.ConcurrencyToken aggiornato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Valuta"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "422": {
            "description": "La stessa Idempotency-Key è già stata usata per una richiesta con metodo, URL o corpo diversi."
          }
        }
      },
      "get": {
        "tags": [
          "Valuta"
        ],
        "summary": "Restituisce una lista di elementi.",
        "description": "\nLa risposta include due header con informazioni sui risultati.\n\n`X-Read-TotalCount` indica il numero di elementi che soddisfano il filtro impostato nella query;\n\n`X-Read-Count` indica il numero di elementi effettivamente contenuti nella risposta.\n\nI due header possono riportare valori diversi quando i parametri `Take` e `Skip` sono stati usati nelle opzioni di query.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Numero di elementi da escludere dall'inizio del risultato. Combinato con `Take`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Numero di elementi da includere nel risultato. Combinato con `Skip`, è utile per la paginazione.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "SkipTotalCount",
            "in": "query",
            "description": "Indica se l'header `X-Read-TotalCount` debba essere escluso dalla risposta. Impostare a `true` per prestazioni\nmigliori a scapito dell'accuratezza. Il valore predefinito è `false`.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Condizioni di ricerca. Elenco di espressioni separate da virgola. Ogni espressione è composta da nome del campo,\noperatore di confronto, valore ed eventualmente un connettore logico. Operatori validi: `$eq` (uguale), `$ne`\n(diverso), `$gt` (maggiore di), `$lt` (minore di), `$lte` (minore o uguale), `$gte` (maggiore o uguale), `$ct`\n(contiene), `$nct` (non contiene), `$sw` (inizia con), `$ew` (finisce con). Più espressioni possono essere\nconcatenate con un connettore logico `$and` o `$or` (`$and` può essere omesso). Le query annidate si esprimono\nracchiudendo le sotto-query tra parentesi quadre (`[]`). Nell'esempio vengono inclusi tutti gli elementi con\n`field1=\"hello\"` oppure `field2>10`.",
            "schema": {
              "type": "string",
              "example": "field1 $eq hello $or, field2 $gt 10"
            },
            "example": "field1 $eq hello $or, field2 $gt 10"
          },
          {
            "name": "Order",
            "in": "query",
            "description": "Opzioni di ordinamento. Un segno meno (trattino) prima del nome indica ordinamento discendente. Nell'esempio i\nrisultati sono ordinati prima per `field1` (discendente), poi per `field2`.",
            "schema": {
              "type": "string",
              "example": "-field1,field2"
            },
            "example": "-field1,field2"
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce la lista degli elementi corrispondenti ai criteri di ricerca.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Valuta"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Valuta/{id}": {
      "put": {
        "tags": [
          "Valuta"
        ],
        "summary": "Aggiorna un elemento esistente.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID univoco dell'elemento da aggiornare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOverride",
            "in": "query",
            "description": "Se applicare eventualmente l'override della validazione.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Chiave di idempotenza (opzionale). Inviando la stessa chiave su un retry si riottiene la risposta della prima richiesta senza rieseguire l'operazione: rende sicuri i retry automatici. Usa un valore univoco per operazione logica (es. un UUID). La risposta replicata riporta l'header `Idempotent-Replayed: true`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Istanza dell'elemento da salvare.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Valuta"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Valuta"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Valuta"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento aggiornato con un nuovo valore di Amica.BaseEntity.ConcurrencyToken.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Valuta"
                }
              }
            }
          },
          "422": {
            "description": "Conflitto. Restituisce il motivo del conflitto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore (di solito un problema di validazione).",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Idempotent-Replayed": {
                "description": "Presente e pari a `true` quando la risposta è la replica di una richiesta precedente con la stessa Idempotency-Key.",
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "409": {
            "description": "Conflitto: una richiesta con la stessa Idempotency-Key è ancora in elaborazione."
          }
        }
      },
      "delete": {
        "tags": [
          "Valuta"
        ],
        "summary": "Elimina un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da eliminare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento eliminato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Valuta"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Valuta"
        ],
        "summary": "Restituisce un elemento.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID dell'elemento da recuperare.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "Elenco separato da virgole di oggetti da espandere. Permette di recuperare gli oggetti correlati in un'unica\nchiamata. Ad esempio, per includere i beni e servizi associati a ciascun documento si aggiunge `expand=Rows`\nalla chiamata.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Rows"
            },
            "example": "Rows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successo. Restituisce l'elemento richiesto.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Valuta"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Restituisce il motivo dell'errore.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Non trovato. L'elemento non è stato trovato.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v{version}/{companyId}/Valuta/new": {
      "get": {
        "tags": [
          "Valuta"
        ],
        "summary": "Restituisce una nuova istanza di un oggetto. Dove necessario, i valori delle proprietà saranno coerenti con\nlo stato e la logica dell'applicazione (ad es., una nuova istanza di Amica.Documento avrà il\nAmica.Documento.Numero appropriato, basato sui documenti preesistenti di tipo compatibile).",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "Versione API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "ID univoco dell'azienda.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Valuta"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Troppe richieste: superato il limite di rate per il client.",
            "headers": {
              "RateLimit-Limit": {
                "description": "Numero massimo di richieste consentite al client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Remaining": {
                "description": "Richieste ancora disponibili per il client nella finestra corrente.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Reset": {
                "description": "Secondi al rinnovo dei permessi del client.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "RateLimit-Policy": {
                "description": "Policy di rate limiting applicata, nel formato `<limite>;w=<finestra in secondi>`.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Secondi da attendere prima di inviare una nuova richiesta.",
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AllegatoDocumento": {
        "type": "object",
        "properties": {
          "nome": {
            "type": "string",
            "description": "Nome dell'allegato.",
            "nullable": true,
            "example": "fattura_001.xml"
          },
          "descrizione": {
            "type": "string",
            "description": "Descrizione dell'allegato.",
            "nullable": true,
            "example": "Fattura elettronica n. 1 del 2025"
          },
          "formato": {
            "type": "string",
            "description": "Formato dell'allegato. Esempi validi sono \"PDF\", \"XML\", \"TXT\", \"DOC\", ecc.",
            "nullable": true,
            "example": "XML"
          },
          "dataDocumento": {
            "type": "string",
            "description": "Data dell'allegato.",
            "format": "date-time",
            "example": "2025-01-15"
          },
          "numeroDocumento": {
            "type": "string",
            "description": "Numero dell'allegato.",
            "nullable": true,
            "example": "001"
          },
          "allegato": {
            "type": "string",
            "description": "Rappresentazione binaria dell'allegato. Questo campo contiene l'allegato stesso.",
            "format": "byte",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Rappresentazione binaria, con metadati, di un allegato XML (\"fattura elettronica\")."
      },
      "Anagrafica": {
        "required": [
          "ragioneSociale1"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "modelloId": {
            "type": "integer",
            "description": "Identificativo univoco di `Modello`. Sempre null. Questa proprietà è usata solo dal client desktop Amica 20 per Windows ed è da considerarsi obsoleta.",
            "format": "int32",
            "nullable": true
          },
          "nazioneId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Anagrafica.Nazione (nazione).",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "nazione": {
            "$ref": "#/components/schemas/Nazione"
          },
          "areaGeograficaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Anagrafica.AreaGeografica (area geografica).",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "areaGeografica": {
            "$ref": "#/components/schemas/AreaGeografica"
          },
          "valutaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Anagrafica.Valuta (valuta).",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "valuta": {
            "$ref": "#/components/schemas/Valuta"
          },
          "indirizzoPredefinitoId": {
            "type": "integer",
            "description": "Identificativo univoco dell'Amica.Indirizzo (indirizzo) predefinito.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "indirizzi": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Indirizzo"
            },
            "description": "Elenco degli Amica.Indirizzo dell'anagrafica.",
            "nullable": true
          },
          "schedaCliente": {
            "$ref": "#/components/schemas/SchedaCliente"
          },
          "schedaFornitore": {
            "$ref": "#/components/schemas/SchedaFornitore"
          },
          "stato": {
            "type": "boolean",
            "description": "Indica se l'anagrafica è attiva o meno.",
            "example": true
          },
          "cliente": {
            "type": "boolean",
            "description": "Indica se l'anagrafica è un cliente.",
            "example": true
          },
          "fornitore": {
            "type": "boolean",
            "description": "Indica se l'anagrafica è un fornitore.",
            "example": false
          },
          "agente": {
            "type": "boolean",
            "description": "Indica se l'anagrafica opera come agente di vendita per conto dell'azienda.",
            "example": false
          },
          "vettore": {
            "type": "boolean",
            "description": "Indica se l'anagrafica opera come vettore.",
            "example": false
          },
          "capoArea": {
            "type": "boolean",
            "description": "Indica se l'anagrafica opera come capo area.",
            "example": false
          },
          "personaGiuridica": {
            "type": "boolean",
            "description": "Indica se l'anagrafica è una persona giuridica o meno. `true` indica una persona giuridica, `false` una persona fisica.",
            "example": true
          },
          "banca": {
            "$ref": "#/components/schemas/Banca"
          },
          "nominativo1": {
            "$ref": "#/components/schemas/AnagraficaNominativo1"
          },
          "nominativo2": {
            "$ref": "#/components/schemas/AnagraficaNominativo2"
          },
          "sedeLegale": {
            "$ref": "#/components/schemas/AnagraficaSedeLegale"
          },
          "codice": {
            "maxLength": 10,
            "minLength": 0,
            "type": "string",
            "description": "Codice assegnato all'anagrafica.",
            "nullable": true,
            "example": "C001"
          },
          "dataInserimento": {
            "type": "string",
            "description": "Data di primo inserimento.",
            "format": "date-time",
            "nullable": true,
            "example": "2024-01-15T00:00:00"
          },
          "ragioneSociale1": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "description": "Ragione sociale, oppure nome e cognome della persona fisica.",
            "example": "Acme S.r.l."
          },
          "ragioneSociale2": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "description": "Eventuale seconda riga della ragione sociale. Usata principalmente nelle stampe, quando si vuole suddividere la ragione sociale su due righe.",
            "nullable": true,
            "example": "Divisione Commerciale"
          },
          "eMail": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Indirizzo email.",
            "nullable": true,
            "example": "info@acme.it"
          },
          "sitoWeb": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Indirizzo web.",
            "nullable": true,
            "example": "https://www.acme.it"
          },
          "partitaIva": {
            "maxLength": 30,
            "minLength": 0,
            "type": "string",
            "description": "Partita IVA.",
            "nullable": true,
            "example": "IT01234567890"
          },
          "codiceFiscale": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Codice fiscale. Solitamente diverso dalla Amica.Anagrafica.PartitaIva.",
            "nullable": true,
            "example": "RSSMRA85M01H501Z"
          },
          "note": {
            "type": "string",
            "description": "Note.",
            "nullable": true,
            "example": "Cliente storico, pagamenti puntuali."
          },
          "noteImportanti": {
            "type": "string",
            "description": "Note rilevanti. I client ufficiali Amica le evidenziano alla creazione di un nuovo documento fiscale.",
            "nullable": true,
            "example": "Richiedere sempre ordine firmato."
          },
          "pec": {
            "maxLength": 120,
            "minLength": 0,
            "type": "string",
            "description": "Indirizzo Pec (posta elettronica certificata).",
            "nullable": true,
            "example": "acme@pec.it"
          },
          "codiceDestinatario": {
            "maxLength": 7,
            "minLength": 0,
            "type": "string",
            "description": "Codice destinatario per il sistema fiscale italiano. Usato per il recapito delle fatture elettroniche italiane.",
            "nullable": true,
            "example": "0000000"
          },
          "dichiarazioneIntento": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Numero di protocollo della dichiarazione d'intento.",
            "nullable": true,
            "example": "08060120240000000123"
          },
          "riferimentoAmministrazione": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Solitamente necessario quando si ha a che fare con enti della Pubblica Amministrazione italiana. Identifica univocamente l'ufficio di destinazione all'interno della PA.",
            "nullable": true,
            "example": "UFFICIO01"
          }
        },
        "additionalProperties": false,
        "description": "Anagrafica di cliente, fornitore, agente o vettore."
      },
      "AnagraficaNominativo1": {
        "type": "object",
        "properties": {
          "nome": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Nome del contatto.",
            "nullable": true,
            "example": "Mario Rossi"
          },
          "incarico": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "Ruolo del contatto all'interno dell'anagrafica.",
            "nullable": true,
            "example": "Responsabile acquisti"
          },
          "telefono1": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di telefono principale del contatto.",
            "nullable": true,
            "example": "+39 06 1234567"
          },
          "telefono2": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di telefono secondario del contatto.",
            "nullable": true,
            "example": "+39 06 7654321"
          },
          "fax": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di fax del contatto.",
            "nullable": true,
            "example": "+39 06 1234568"
          },
          "eMail": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Indirizzo email del contatto.",
            "nullable": true,
            "example": "mario.rossi@acme.it"
          },
          "note": {
            "type": "string",
            "description": "Note.",
            "nullable": true,
            "example": "Disponibile solo al mattino."
          }
        },
        "additionalProperties": false,
        "description": "Persona di contatto principale all'interno di un'anagrafica."
      },
      "AnagraficaNominativo2": {
        "type": "object",
        "properties": {
          "nome": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Nome del contatto.",
            "nullable": true,
            "example": "Anna Bianchi"
          },
          "incarico": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "Ruolo del contatto all'interno dell'anagrafica.",
            "nullable": true,
            "example": "Responsabile amministrazione"
          },
          "telefono1": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di telefono principale del contatto.",
            "nullable": true,
            "example": "+39 06 1234567"
          },
          "telefono2": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di telefono secondario del contatto.",
            "nullable": true,
            "example": "+39 06 7654321"
          },
          "fax": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di fax del contatto.",
            "nullable": true,
            "example": "+39 06 1234568"
          },
          "eMail": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Indirizzo email del contatto.",
            "nullable": true,
            "example": "anna.bianchi@acme.it"
          },
          "note": {
            "type": "string",
            "description": "Note.",
            "nullable": true,
            "example": "Riferimento per la contabilità."
          }
        },
        "additionalProperties": false,
        "description": "Persona di contatto secondaria all'interno di un'anagrafica."
      },
      "AnagraficaSedeLegale": {
        "required": [
          "indirizzo"
        ],
        "type": "object",
        "properties": {
          "indirizzo": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "description": "Indirizzo (via e numero civico).",
            "example": "Via Roma 1"
          },
          "località": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "Località, solitamente il nome di una città, paese o frazione.",
            "nullable": true,
            "example": "Roma"
          },
          "cap": {
            "maxLength": 8,
            "minLength": 0,
            "type": "string",
            "description": "CAP o codice di zona.",
            "nullable": true,
            "example": "00100"
          },
          "provincia": {
            "maxLength": 3,
            "minLength": 0,
            "type": "string",
            "description": "Provincia o area geografica.",
            "nullable": true,
            "example": "RM"
          },
          "telefono1": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di telefono principale.",
            "nullable": true,
            "example": "+39 06 1234567"
          },
          "telefono2": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di telefono secondario.",
            "nullable": true,
            "example": "+39 06 7654321"
          },
          "fax": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di fax.",
            "nullable": true,
            "example": "+39 06 1234568"
          }
        },
        "additionalProperties": false,
        "description": "Indirizzo principale di un'anagrafica."
      },
      "AreaGeografica": {
        "required": [
          "nome"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "nome": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "Nome dell'area. Può essere una regione, una provincia, un comune o qualsiasi altro riferimento rilevante per il caso d'uso.",
            "example": "Nord Italia"
          }
        },
        "additionalProperties": false,
        "description": "Area geografica (zona)."
      },
      "Articolo": {
        "required": [
          "codice",
          "nome"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "categoriaMerceologicaId": {
            "type": "integer",
            "description": "Identificativo univoco della Amica.Articolo.CategoriaMerceologica (categoria merceologica).",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "categoriaMerceologica": {
            "$ref": "#/components/schemas/CategoriaMerceologica"
          },
          "gruppoMerceologicoId": {
            "type": "integer",
            "description": "Identificativo univoco del Amica.Articolo.GruppoMerceologico (gruppo merceologico).",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "gruppoMerceologico": {
            "$ref": "#/components/schemas/GruppoMerceologico"
          },
          "causaleIvaId": {
            "type": "integer",
            "description": "Identificativo univoco della Amica.Articolo.CausaleIva (causale IVA).\nId univoco della <a href=\"#tag/CausaleIva\">causale IVA</a> predefinita per l'articolo.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "causaleIva": {
            "$ref": "#/components/schemas/CausaleIva"
          },
          "tagliaId": {
            "type": "integer",
            "description": "Identificativo univoco della Amica.Articolo.Taglia (taglia).",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "taglia": {
            "$ref": "#/components/schemas/Taglia"
          },
          "marcaId": {
            "type": "integer",
            "description": "Identificativo univoco della Amica.Articolo.Marca.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "marca": {
            "$ref": "#/components/schemas/Marca"
          },
          "produttoreId": {
            "type": "integer",
            "description": "Identificativo univoco del Amica.Articolo.Produttore (produttore).",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "produttore": {
            "$ref": "#/components/schemas/Produttore"
          },
          "repartoId": {
            "type": "integer",
            "description": "Identificativo univoco del Amica.Articolo.Reparto (reparto).",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "reparto": {
            "$ref": "#/components/schemas/Reparto"
          },
          "nome": {
            "maxLength": 254,
            "minLength": 0,
            "type": "string",
            "description": "Nome.",
            "example": "Cacciavite a croce"
          },
          "codice": {
            "maxLength": 30,
            "minLength": 0,
            "type": "string",
            "description": "Identificativo, o codice.",
            "example": "ART001"
          },
          "nomeBreve": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Nome breve.",
            "nullable": true,
            "example": "Cacciavite"
          },
          "codiceFornitore": {
            "maxLength": 30,
            "minLength": 0,
            "type": "string",
            "description": "Codice dell'articolo o prodotto presso il fornitore.",
            "nullable": true,
            "example": "FORN-789"
          },
          "codiceProduttore": {
            "maxLength": 30,
            "minLength": 0,
            "type": "string",
            "description": "Codice dell'articolo o prodotto presso il produttore.",
            "nullable": true,
            "example": "PROD-456"
          },
          "gestioneArticolo": {
            "enum": [
              "Standard",
              "TaglieColori",
              "NumeriSeriali",
              "Lotti"
            ],
            "type": "string",
            "description": "Modalità di gestione.",
            "example": "Standard"
          },
          "contestoArticolo": {
            "enum": [
              "Sempre",
              "Vendite",
              "Acquisti",
              "Mai"
            ],
            "type": "string",
            "description": "Contesto in cui viene utilizzato.",
            "example": "Sempre"
          },
          "barCode": {
            "maxLength": 128,
            "minLength": 0,
            "type": "string",
            "description": "Codice a barre.",
            "nullable": true,
            "example": "8001234567890"
          },
          "costoUltimo": {
            "type": "number",
            "description": "Ultimo prezzo di costo.",
            "format": "double",
            "example": 8.90
          },
          "costoMedio": {
            "type": "number",
            "description": "Prezzo di costo medio.",
            "format": "double",
            "example": 9.20
          },
          "unitàMisuraIntera": {
            "type": "boolean",
            "description": "Indica se l'unità di misura deve essere arrotondata all'intero più vicino.",
            "example": false
          },
          "articoloComposto": {
            "type": "boolean",
            "description": "Indica se è composto assemblando altri articoli.",
            "example": false
          },
          "stato": {
            "type": "boolean",
            "description": "Stato. `true` se attivo, `false` altrimenti.",
            "example": true
          },
          "dataInserimento": {
            "type": "string",
            "description": "Data di primo inserimento.",
            "format": "date-time",
            "nullable": true,
            "example": "2024-03-15T00:00:00"
          },
          "unitàMisuraMovimenti": {
            "type": "string",
            "description": "Unità di misura da utilizzare nei movimenti di magazzino.",
            "nullable": true,
            "example": "PZ"
          },
          "unitàMisuraInventario": {
            "type": "string",
            "description": "Unità di misura da utilizzare nelle elaborazioni di inventario.",
            "nullable": true,
            "example": "PZ"
          },
          "fattoreConversioneUnitàMisura": {
            "type": "number",
            "description": "Fattore di conversione tra unità di movimento e unità di inventario.",
            "format": "double",
            "example": 1.0
          },
          "note": {
            "type": "string",
            "description": "Note.",
            "nullable": true,
            "example": "Articolo soggetto a riordino automatico."
          },
          "mediaFile": {
            "$ref": "#/components/schemas/ArticoloMediaFile"
          },
          "contoRawVendita": {
            "type": "string",
            "description": "Conto da utilizzare nelle registrazioni contabili di vendita.",
            "nullable": true,
            "example": "40.05.001"
          },
          "contoRawAcquisto": {
            "type": "string",
            "description": "Conto da utilizzare nelle registrazioni contabili di acquisto.",
            "nullable": true,
            "example": "60.05.001"
          },
          "distintaBase": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Componente"
            },
            "description": "Distinta base.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Articolo di magazzino o prodotto."
      },
      "ArticoloMediaFile": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "data": {
            "type": "string",
            "description": "Rappresentazione in Base64 del contenuto di un file multimediale.",
            "nullable": true,
            "example": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg=="
          },
          "articoloId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Articolo.",
            "format": "int32",
            "example": 1
          },
          "fieldName": {
            "type": "string",
            "description": "Nome (tipo) dell'informazione. Solitamente 'immagine'.",
            "nullable": true,
            "example": "immagine"
          }
        },
        "additionalProperties": false,
        "description": "Rappresentazione di un file multimediale associato al prodotto o articolo."
      },
      "Azienda": {
        "required": [
          "nome"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "nome": {
            "minLength": 1,
            "type": "string",
            "description": "Ragione sociale, così come registrata all'attivazione della licenza Amica.",
            "example": "Acme S.r.l."
          },
          "licenseKey": {
            "type": "string",
            "description": "Chiave di licenza Amica.",
            "nullable": true,
            "example": "XXXX-XXXX-XXXX-XXXX"
          }
        },
        "additionalProperties": false,
        "description": "Dati dell'intestatario della licenza Amica."
      },
      "Banca": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "nome": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Nome.",
            "nullable": true,
            "example": "Intesa Sanpaolo"
          },
          "iban": {
            "maxLength": 34,
            "minLength": 0,
            "type": "string",
            "description": "Codice IBAN.",
            "nullable": true,
            "example": "IT60X0542811101000000123456"
          },
          "abi": {
            "maxLength": 10,
            "minLength": 0,
            "type": "string",
            "description": "Codice ABI.",
            "nullable": true,
            "example": "05428"
          },
          "cab": {
            "maxLength": 10,
            "minLength": 0,
            "type": "string",
            "description": "Codice CAB.",
            "nullable": true,
            "example": "11101"
          },
          "contoCorrente": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Numero di conto corrente.",
            "nullable": true,
            "example": "000000123456"
          },
          "bic": {
            "maxLength": 15,
            "minLength": 0,
            "type": "string",
            "description": "Codice BIC.",
            "nullable": true,
            "example": "BCITITMM"
          }
        },
        "additionalProperties": false,
        "description": "Banca."
      },
      "BancaDocumento": {
        "type": "object",
        "properties": {
          "nome": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Nome.",
            "nullable": true,
            "example": "Intesa Sanpaolo"
          },
          "iban": {
            "maxLength": 34,
            "minLength": 0,
            "type": "string",
            "description": "Codice IBAN.",
            "nullable": true,
            "example": "IT60X0542811101000000123456"
          },
          "abi": {
            "maxLength": 10,
            "minLength": 0,
            "type": "string",
            "description": "Codice ABI.",
            "nullable": true,
            "example": "05428"
          },
          "cab": {
            "maxLength": 10,
            "minLength": 0,
            "type": "string",
            "description": "Codice CAB.",
            "nullable": true,
            "example": "11101"
          },
          "contoCorrente": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Numero di conto corrente.",
            "nullable": true,
            "example": "000000123456"
          },
          "bic": {
            "maxLength": 15,
            "minLength": 0,
            "type": "string",
            "description": "Codice BIC.",
            "nullable": true,
            "example": "BCITITMM"
          }
        },
        "additionalProperties": false,
        "description": "La banca di un documento (fattura)."
      },
      "BeneServizio": {
        "required": [
          "descrizione"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "documentoId": {
            "type": "integer",
            "description": "Identificativo univoco del Amica.Documento (documento).",
            "format": "int32",
            "example": 1
          },
          "articoloId": {
            "type": "integer",
            "description": "Identificativo univoco dell'Amica.BeneServizio.Articolo (articolo o prodotto).",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "articolo": {
            "$ref": "#/components/schemas/Articolo"
          },
          "prestazioneId": {
            "type": "integer",
            "description": "Identificativo univoco della Amica.BeneServizio.Prestazione (prestazione).",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "prestazione": {
            "$ref": "#/components/schemas/Articolo"
          },
          "magazzinoId": {
            "type": "integer",
            "description": "Identificativo univoco del Amica.BeneServizio.Magazzino (magazzino). Obbligatorio quando viene usato Amica.BeneServizio.Codice.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "magazzino": {
            "$ref": "#/components/schemas/Magazzino"
          },
          "causaleIvaId": {
            "type": "integer",
            "description": "Identificativo univoco della Amica.BeneServizio.CausaleIva.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "causaleIva": {
            "$ref": "#/components/schemas/CausaleIva"
          },
          "listinoId": {
            "type": "integer",
            "description": "Identificativo univoco del Amica.BeneServizio.Listino (listino).",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "listino": {
            "$ref": "#/components/schemas/Listino"
          },
          "ordineId": {
            "type": "integer",
            "description": "Identificativo univoco del Amica.Documento (ordine).",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "beneServizioOrdineId": {
            "type": "integer",
            "description": "Identificativo univoco del Amica.BeneServizio (bene o servizio) all'interno dell'ordine referenziato da Amica.BeneServizio.OrdineId.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "tagliaId": {
            "type": "integer",
            "description": "Identificativo univoco della Amica.BeneServizio.Taglia (taglia).",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "taglia": {
            "$ref": "#/components/schemas/Taglia"
          },
          "ritenutaFiscale": {
            "type": "boolean",
            "description": "Indica se al bene o servizio deve essere applicata una ritenuta fiscale. `true` se deve essere applicata, `false` altrimenti.",
            "example": true
          },
          "posizione": {
            "type": "integer",
            "description": "Indice di riga all'interno del documento. Questa proprietà è utilizzata solo dal client desktop Amica 20 per Windows e deve essere considerata obsoleta.",
            "format": "int32",
            "example": 1
          },
          "codice": {
            "maxLength": 30,
            "minLength": 0,
            "type": "string",
            "description": "Codice del bene o servizio.",
            "nullable": true,
            "example": "ART001"
          },
          "descrizione": {
            "minLength": 1,
            "type": "string",
            "description": "Descrizione.",
            "example": "Cacciavite a croce"
          },
          "unitàMisura": {
            "maxLength": 15,
            "minLength": 0,
            "type": "string",
            "description": "Unità di misura.",
            "nullable": true,
            "example": "PZ"
          },
          "quantità": {
            "type": "number",
            "description": "Quantità movimentata.",
            "format": "double",
            "nullable": true,
            "example": 10
          },
          "quantitàEvasa": {
            "type": "number",
            "description": "Quantità dell'ordine evasa.\nQuesto valore viene aggiornato automaticamente quando viene emessa una fattura o un DDT che contiene un riferimento a un ordine ed è attivo <a href=\"https://gestionaleamica.com/Software/GestioneOrdiniPreventivi\">Ordini e Preventivi</a>.",
            "format": "double",
            "example": 4
          },
          "quantitàDaEvadere": {
            "type": "number",
            "description": "Quantità che resta da evadere.",
            "format": "double",
            "readOnly": true
          },
          "sconto1": {
            "type": "number",
            "description": "Primo sconto percentuale, applicato al prezzo del bene o servizio.",
            "format": "double",
            "nullable": true,
            "example": 5.0
          },
          "sconto2": {
            "type": "number",
            "description": "Secondo sconto percentuale, applicato dopo l'applicazione di Amica.BeneServizio.Sconto1",
            "format": "double",
            "nullable": true,
            "example": 3.0
          },
          "sconto3": {
            "type": "number",
            "description": "Terzo sconto percentuale, applicato dopo l'applicazione di Amica.BeneServizio.Sconto2",
            "format": "double",
            "nullable": true,
            "example": 2.0
          },
          "sconto4": {
            "type": "number",
            "description": "Quarto sconto percentuale, applicato dopo l'applicazione di Amica.BeneServizio.Sconto3",
            "format": "double",
            "nullable": true,
            "example": 1.0
          },
          "scontoIncondizionato": {
            "type": "number",
            "description": "Sconto incondizionato, in valuta, applicato al prezzo del bene o servizio.",
            "format": "double",
            "nullable": true,
            "example": 5.00
          },
          "provvigioneAgente": {
            "type": "number",
            "description": "Provvigione corrisposta all'agente, in percentuale.",
            "format": "double",
            "nullable": true,
            "example": 10.0
          },
          "provvigioneCapoArea": {
            "type": "number",
            "description": "Provvigione corrisposta al capo area, in percentuale.",
            "format": "double",
            "nullable": true,
            "example": 5.0
          },
          "prezzoId": {
            "type": "integer",
            "description": "Identificativo univoco del Amica.BeneServizio.Prezzo (prezzo).",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "prezzo": {
            "type": "number",
            "description": "Prezzo.",
            "format": "double",
            "nullable": true,
            "example": 12.50
          },
          "prezzoScontato": {
            "type": "number",
            "description": "Prezzo scontato, cioè al netto degli sconti percentuali indicati e dello sconto incondizionato.",
            "format": "double",
            "nullable": true,
            "example": 11.50
          },
          "prezzoIvato": {
            "type": "number",
            "description": "Prezzo comprensivo di IVA.",
            "format": "double",
            "nullable": true,
            "example": 14.03
          },
          "importo": {
            "type": "number",
            "description": "Importo, determinato come prodotto di Amica.BeneServizio.Quantità e Amica.BeneServizio.PrezzoScontato.",
            "format": "double",
            "nullable": true,
            "example": 115.00
          },
          "datiAggiuntivi": {
            "$ref": "#/components/schemas/DatiAggiuntivi"
          },
          "sconto": {
            "type": "string",
            "description": "Descrizione di tutti gli sconti combinati (es: \"10,5%+5€\").",
            "nullable": true,
            "readOnly": true,
            "example": "10,5%+5€"
          }
        },
        "additionalProperties": false,
        "description": "Bene o servizio fatturato."
      },
      "BeneServizioComputeData": {
        "type": "object",
        "properties": {
          "ivaEsclusa": {
            "type": "boolean",
            "description": "Indica se il calcolo debba essere effettuato a partire da Amica.BeneServizioComputeData.Prezzo o da Amica.BeneServizioComputeData.PrezzoIvato.",
            "example": true
          },
          "causaleIvaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.CausaleIva.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "listinoId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Listino.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "quantità": {
            "type": "number",
            "description": "Quantità.",
            "format": "double",
            "example": 10
          },
          "prezzo": {
            "type": "number",
            "description": "Prezzo IVA esclusa.",
            "format": "double",
            "example": 125.00
          },
          "prezzoIvato": {
            "type": "number",
            "description": "Prezzo IVA inclusa.",
            "format": "double",
            "example": 152.50
          },
          "sconto1": {
            "type": "number",
            "description": "Primo sconto percentuale, applicato al prezzo del bene o servizio.",
            "format": "double",
            "example": 5.0
          },
          "sconto2": {
            "type": "number",
            "description": "Secondo sconto percentuale, applicato dopo l'applicazione di Amica.BeneServizioComputeData.Sconto1",
            "format": "double",
            "example": 0.0
          },
          "sconto3": {
            "type": "number",
            "description": "Terzo sconto percentuale, applicato dopo l'applicazione di Amica.BeneServizioComputeData.Sconto2",
            "format": "double",
            "example": 0.0
          },
          "sconto4": {
            "type": "number",
            "description": "Quarto sconto percentuale, applicato dopo l'applicazione di Amica.BeneServizioComputeData.Sconto3",
            "format": "double",
            "example": 0.0
          },
          "scontoIncondizionato": {
            "type": "number",
            "description": "Sconto incondizionato, in valuta, applicato al prezzo del bene o servizio.",
            "format": "double",
            "example": 0.00
          }
        },
        "additionalProperties": false,
        "description": "Utilizzato dal metodo di calcolo M:Amica.BeneServizioService.Compute(Amica.BeneServizioComputeData,Amica.RequestSettings) di `BeneServizioService`."
      },
      "BeneServizioComputeResult": {
        "type": "object",
        "properties": {
          "prezzo": {
            "type": "number",
            "description": "Prezzo IVA esclusa.",
            "format": "double",
            "example": 125.00
          },
          "prezzoIvato": {
            "type": "number",
            "description": "Prezzo IVA inclusa.",
            "format": "double",
            "example": 152.50
          },
          "prezzoScontato": {
            "type": "number",
            "description": "Prezzo scontato, ovvero al netto degli sconti percentuali indicati e dello sconto incondizionato.",
            "format": "double",
            "example": 118.75
          },
          "importo": {
            "type": "number",
            "description": "Importo, determinato come prodotto tra Amica.BeneServizio.Quantità e Amica.BeneServizio.PrezzoScontato.",
            "format": "double",
            "nullable": true,
            "example": 1187.50
          }
        },
        "additionalProperties": false,
        "description": "Restituito dal metodo M:Amica.BeneServizioService.Compute(Amica.BeneServizioComputeData,Amica.RequestSettings) di `BeneServizioServizio`."
      },
      "CassaPrevidenziale": {
        "type": "object",
        "properties": {
          "codice": {
            "type": "string",
            "description": "Codice della voce.",
            "nullable": true,
            "example": "N1"
          },
          "descrizione": {
            "type": "string",
            "description": "Descrizione della voce.",
            "nullable": true,
            "example": "Escluse ex art. 15"
          }
        },
        "additionalProperties": false,
        "description": "Tabella \"Cassa Previdenziale\"."
      },
      "CastellettoIva": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "registrazioneContabileId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.CastellettoIva.RegistrazioneContabile (registrazione contabile).",
            "format": "int32",
            "example": 1
          },
          "registrazioneContabile": {
            "$ref": "#/components/schemas/RegistrazioneContabile"
          },
          "causaleIvaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.CastellettoIva.CausaleIva.",
            "format": "int32",
            "example": 1
          },
          "causaleIva": {
            "$ref": "#/components/schemas/CausaleIva"
          },
          "registroIvaId": {
            "type": "integer",
            "description": "Identificativo univoco di `RegistroIva`.",
            "format": "int32",
            "example": 1
          },
          "imponibile": {
            "type": "number",
            "description": "Imponibile.",
            "format": "double",
            "example": 1250.00
          },
          "imposta": {
            "type": "number",
            "description": "Imposta.",
            "format": "double",
            "example": 275.00
          },
          "detraibile": {
            "type": "number",
            "description": "Quota detraibile.",
            "format": "double",
            "example": 275.00
          },
          "indetraibile": {
            "type": "number",
            "description": "Quota non detraibile.",
            "format": "double",
            "example": 0.00
          },
          "totale": {
            "type": "number",
            "description": "Importo totale (imponibile + imposta).",
            "format": "double",
            "readOnly": true,
            "example": 1525.00
          }
        },
        "additionalProperties": false,
        "description": "Importo IVA a debito associato a una Amica.CastellettoIva.RegistrazioneContabile."
      },
      "CategoriaAnagrafica": {
        "required": [
          "nome"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "nome": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "Nome, o descrizione.",
            "example": "Cliente"
          }
        },
        "additionalProperties": false,
        "description": "Categoria anagrafica."
      },
      "CategoriaMerceologica": {
        "required": [
          "nome"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "nome": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "Nome o descrizione.",
            "example": "Calzature"
          }
        },
        "additionalProperties": false,
        "description": "Categoria merceologica."
      },
      "CausaleDocumento": {
        "required": [
          "nome"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "nome": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "Nome, o descrizione.",
            "example": "Vendita di merce"
          }
        },
        "additionalProperties": false,
        "description": "Causale documento."
      },
      "CausaleIva": {
        "required": [
          "codice",
          "nome"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "codice": {
            "maxLength": 5,
            "minLength": 0,
            "type": "string",
            "description": "Codice.",
            "example": "22"
          },
          "nome": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Nome, o descrizione.",
            "example": "IVA 22%"
          },
          "aliquota": {
            "type": "number",
            "description": "Aliquota applicabile.",
            "format": "double",
            "example": 22
          },
          "indeducibilità": {
            "type": "number",
            "description": "Quota di indeducibilità.",
            "format": "double",
            "example": 0.00
          },
          "intracomunitaria": {
            "type": "boolean",
            "description": "Indica se l'IVA è intracomunitaria.",
            "example": false
          },
          "nonImponibile": {
            "type": "boolean",
            "description": "Indica se l'IVA non deve essere considerata nella determinazione dell'imponibile.",
            "example": false
          },
          "natura": {
            "maxLength": 4,
            "minLength": 0,
            "type": "string",
            "description": "Natura dell'esenzione (codice), se applicabile (ad es. \"N1\").",
            "nullable": true,
            "example": "N1"
          },
          "splitPayment": {
            "type": "boolean",
            "description": "Indica se si applica lo split payment o meno.",
            "example": false
          },
          "fatturaElettronica": {
            "type": "boolean",
            "description": "Indica se l'IVA è stata creata automaticamente durante l'importazione di una fattura elettronica.",
            "example": false
          }
        },
        "additionalProperties": false,
        "description": "Causale IVA."
      },
      "CausaleMagazzino": {
        "required": [
          "codice",
          "nome"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "nome": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "Nome o descrizione.",
            "example": "Vendita al banco"
          },
          "codice": {
            "maxLength": 5,
            "minLength": 0,
            "type": "string",
            "description": "Codice o identificativo univoco.",
            "example": "VEND"
          },
          "movimentoDiCarico": {
            "type": "boolean",
            "description": "Indica se l'utilizzo causa la creazione di un movimento di carico.",
            "example": true
          },
          "tipoCausaleMagazzino": {
            "enum": [
              "Acquisto",
              "Vendita",
              "Movimento",
              "Produzione"
            ],
            "type": "string",
            "description": "Tipologia del movimento di magazzino.",
            "example": "Vendita"
          }
        },
        "additionalProperties": false,
        "description": "Causale di un movimento di magazzino."
      },
      "CodicePagamento": {
        "type": "object",
        "properties": {
          "codice": {
            "type": "string",
            "description": "Codice della voce.",
            "nullable": true,
            "example": "N1"
          },
          "descrizione": {
            "type": "string",
            "description": "Descrizione della voce.",
            "nullable": true,
            "example": "Escluse ex art. 15"
          }
        },
        "additionalProperties": false,
        "description": "Tabella \"Codice Pagamento\"."
      },
      "CollegaDocumentoData": {
        "type": "object",
        "properties": {
          "documento": {
            "$ref": "#/components/schemas/DocumentoCollegato"
          }
        },
        "additionalProperties": false,
        "description": "Documenti da referenziare nel documento."
      },
      "Componente": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "articoloId": {
            "type": "integer",
            "description": "Identificativo univoco dell'Amica.Componente.Articolo da comporre.",
            "format": "int32",
            "example": 1
          },
          "articolo": {
            "$ref": "#/components/schemas/Articolo"
          },
          "articoloComponenteId": {
            "type": "integer",
            "description": "Identificativo univoco del componente (distinta base).",
            "format": "int32",
            "example": 1
          },
          "articoloComponente": {
            "$ref": "#/components/schemas/Articolo"
          },
          "quantitaNecessaria": {
            "type": "number",
            "description": "Quantità necessaria per l'assemblaggio.",
            "format": "double",
            "example": 10
          }
        },
        "additionalProperties": false,
        "description": "Componente (distinta base). Può essere incluso in Amica.Articolo.DistintaBase."
      },
      "ContoContabile": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "bancaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Banca.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "sezione": {
            "enum": [
              "Attività",
              "Passività",
              "Costi",
              "Ricavi",
              "Ordine"
            ],
            "type": "string",
            "description": "Sezione di bilancio."
          },
          "tipo": {
            "enum": [
              "Contabile",
              "PartitarioClienti",
              "PartitarioFornitori",
              "Bancario"
            ],
            "type": "string",
            "description": "Tipo di conto."
          },
          "raw": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di conto, in formato grezzo. Sono supportati fino a cinque livelli, ciascuno espresso da un massimo di cinque caratteri allineati a destra e riempiti con spazi, ad es. \"  100   20\" (dieci caratteri in totale) esprime \"100.20\".",
            "nullable": true,
            "example": "  100   20"
          },
          "sottoconto": {
            "maxLength": 5,
            "minLength": 0,
            "type": "string",
            "description": "Ultimo quintetto del numero di conto (sottoconto). Per \"100.20\", il valore sarebbe \"20\".",
            "nullable": true,
            "example": "20"
          },
          "descrizione": {
            "maxLength": 80,
            "minLength": 0,
            "type": "string",
            "description": "Descrizione.",
            "nullable": true,
            "example": "Merci c/vendite"
          },
          "conto": {
            "type": "string",
            "description": "Numero di conto (ad es. \"100.20\"). Sono supportati fino a 5 livelli. Il valore è ricavato da Amica.ContoContabile.Raw.",
            "nullable": true,
            "readOnly": true,
            "example": "100.20"
          }
        },
        "additionalProperties": false,
        "description": "Conto contabile."
      },
      "ContoContabileValidationResult": {
        "type": "object",
        "properties": {
          "contoId": {
            "type": "integer",
            "description": "Identificativo univoco del Amica.ContoContabile.",
            "format": "int32",
            "example": 1
          },
          "conto": {
            "type": "string",
            "description": "Numero di conto (ad es. \"100.20\").",
            "nullable": true,
            "example": "100.20"
          },
          "sezione": {
            "enum": [
              "Attività",
              "Passività",
              "Costi",
              "Ricavi",
              "Ordine"
            ],
            "type": "string",
            "description": "Sezione dopo la correzione.",
            "nullable": true
          },
          "errori": {
            "type": "string",
            "description": "Errore di validazione.",
            "nullable": true,
            "example": "Sezione di bilancio non valida per il conto indicato."
          }
        },
        "additionalProperties": false,
        "description": "Contiene l'esito della validazione di un conto (Amica.ContoContabile)."
      },
      "CreditoDebitoMensile": {
        "type": "object",
        "properties": {
          "periodo": {
            "type": "string",
            "description": "Periodo preso in considerazione.",
            "format": "date-time",
            "example": "2026-03-01T00:00:00"
          },
          "credito": {
            "type": "number",
            "description": "Credito calcolato per il periodo.",
            "format": "double",
            "example": 12.50
          },
          "debito": {
            "type": "number",
            "description": "Debito calcolato per il periodo.",
            "format": "double",
            "example": 12.50
          },
          "saldo": {
            "type": "number",
            "description": "Credito meno debito (saldo).",
            "format": "double",
            "example": 0.00
          }
        },
        "additionalProperties": false,
        "description": "Saldo periodico (credito/debito mensile)."
      },
      "DatiAggiuntivi": {
        "type": "object",
        "properties": {
          "identificativo": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Numero seriale, o qualsiasi altro identificativo.",
            "nullable": true,
            "example": "SN-2024-0001"
          },
          "identificativoEsteso": {
            "type": "string",
            "description": "Identificativo esteso.",
            "nullable": true,
            "example": "SN-2024-0001-REV-A"
          },
          "data": {
            "type": "string",
            "description": "Data di scadenza, produzione, fine garanzia o altro.",
            "format": "date-time",
            "nullable": true,
            "example": "2025-12-31T00:00:00"
          },
          "colore": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Colore.",
            "nullable": true,
            "example": "Rosso"
          }
        },
        "additionalProperties": false,
        "description": "Dati aggiuntivi."
      },
      "DatiPA": {
        "type": "object",
        "properties": {
          "codiceCommessaConvenzionePA": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Identificativo del contratto o della convenzione assegnato dalla pubblica amministrazione.",
            "nullable": true,
            "example": "CONV-2026-001"
          },
          "codiceCup": {
            "maxLength": 15,
            "minLength": 0,
            "type": "string",
            "description": "Codice CUP assegnato dalla pubblica amministrazione.",
            "nullable": true,
            "example": "B12J26000000001"
          },
          "codiceCig": {
            "maxLength": 15,
            "minLength": 0,
            "type": "string",
            "description": "Codice CIG assegnato dalla pubblica amministrazione.",
            "nullable": true,
            "example": "1234567ABC"
          },
          "numeroOrdinePA": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Numero d'ordine della pubblica amministrazione.",
            "nullable": true,
            "example": "ORD-2026-099"
          },
          "dataOrdinePA": {
            "type": "string",
            "description": "Data dell'ordine della pubblica amministrazione.",
            "format": "date-time",
            "nullable": true,
            "example": "2026-01-10"
          }
        },
        "additionalProperties": false,
        "description": "Dati per la pubblica amministrazione."
      },
      "DatiSdi": {
        "type": "object",
        "properties": {
          "identificativoSdi": {
            "maxLength": 12,
            "minLength": 0,
            "type": "string",
            "description": "Numero identificativo assegnato dal Sistema di interscambio (Sdi).",
            "nullable": true,
            "example": "1234567890ab"
          },
          "statoSdi": {
            "enum": [
              "DocumentoPresoInCarico",
              "DocumentoInviato",
              "ServizioNonDisponibile",
              "UtenteNonAbilitato",
              "DocumentoConsegnato",
              "DocumentoNonConsegnato",
              "DocumentoScartato",
              "DocumentoAccettatoDalDestinatario",
              "DocumentoRifiutatoDalDestinatario",
              "DocumentoConImpossibilitàDiRecapito",
              "DecorrenzaTermini"
            ],
            "type": "string",
            "description": "Stato del Sistema di interscambio.",
            "nullable": true
          },
          "descrizioneStatoSdi": {
            "type": "string",
            "description": "Stato del documento così come riportato dal Sistema di interscambio.",
            "nullable": true,
            "example": "Consegnato al destinatario."
          },
          "dataConsegnaSdi": {
            "type": "string",
            "description": "Data di consegna così come riportata dal Sistema di interscambio.",
            "format": "date-time",
            "nullable": true,
            "example": "2026-01-16"
          }
        },
        "additionalProperties": false,
        "description": "Dati del Sistema di interscambio (Sdi)."
      },
      "DatiTrasporto": {
        "type": "object",
        "properties": {
          "colli": {
            "type": "integer",
            "description": "Numero di colli che compongono la spedizione.",
            "format": "int32",
            "nullable": true,
            "example": 10
          },
          "peso": {
            "type": "number",
            "description": "Peso totale della spedizione.",
            "format": "double",
            "nullable": true,
            "example": 125.5
          },
          "pesoUnitàMisura": {
            "maxLength": 15,
            "minLength": 0,
            "type": "string",
            "description": "Unità di misura applicata al `Peso` (es. \"KG\").",
            "nullable": true,
            "example": "KG"
          },
          "dataTrasporto": {
            "type": "string",
            "description": "Data di inizio del trasporto.",
            "format": "date-time",
            "nullable": true,
            "example": "2026-01-15"
          },
          "porto": {
            "enum": [
              "Franco",
              "Assegnato",
              "FrancoConAddebito"
            ],
            "type": "string",
            "description": "Porto: assegnato, franco, ecc.",
            "nullable": true
          },
          "mezzoDiTrasporto": {
            "enum": [
              "Mittente",
              "Destinatario",
              "Vettore"
            ],
            "type": "string",
            "description": "Mezzo di trasporto.",
            "nullable": true
          },
          "aspettoBeni": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "Aspetto esteriore dei beni trasportati.",
            "nullable": true,
            "example": "Scatole di cartone"
          },
          "autistaNome": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "description": "Nome dell'autista.",
            "nullable": true,
            "example": "Mario Rossi"
          },
          "autistaTarga": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Targa del veicolo che effettua il trasporto.",
            "nullable": true,
            "example": "AB123CD"
          },
          "autistaPatente": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Numero della patente dell'autista.",
            "nullable": true,
            "example": "U1234567A"
          }
        },
        "additionalProperties": false,
        "description": "Dati di trasporto."
      },
      "DdtImportData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Identificativo del documento da importare.",
            "nullable": true
          },
          "tipoImportazione": {
            "enum": [
              "Righe",
              "Totali",
              "AccorpaArticoli"
            ],
            "type": "string",
            "description": "Indica se importare i totali del documento o tutti i dati, e se gli articoli dello stesso tipo debbano essere accorpati."
          },
          "speseIncluse": {
            "type": "boolean",
            "description": "Indica se le spese del documento debbano essere incluse. Se si importano più documenti, solo l'ultimo avrà le proprie spese incluse.",
            "example": true
          }
        },
        "additionalProperties": false,
        "description": "Dati di importazione del DDT."
      },
      "DistinctPropertyGroup": {
        "type": "object",
        "properties": {
          "key": {
            "description": "Chiave di distinzione (es.: \"RagioneSociale1\").",
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DistinctPropertyGroup"
            },
            "description": "Valori distinti trovati per la chiave indicata.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Query distinct con raggruppamento."
      },
      "Documento": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "anagraficaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Documento.Anagrafica.",
            "format": "int32"
          },
          "anagrafica": {
            "$ref": "#/components/schemas/Anagrafica"
          },
          "causaleDocumentoId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Documento.CausaleDocumento.",
            "format": "int32",
            "nullable": true
          },
          "causaleDocumento": {
            "$ref": "#/components/schemas/CausaleDocumento"
          },
          "agenteId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Documento.Anagrafica dell'agente.",
            "format": "int32",
            "nullable": true
          },
          "agente": {
            "$ref": "#/components/schemas/Anagrafica"
          },
          "pagamentoId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Documento.Pagamento.",
            "format": "int32",
            "nullable": true
          },
          "pagamento": {
            "$ref": "#/components/schemas/Pagamento"
          },
          "vettoreId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Documento.Anagrafica del vettore.",
            "format": "int32",
            "nullable": true
          },
          "vettore": {
            "$ref": "#/components/schemas/Anagrafica"
          },
          "cassaPrevidenzialeCausaleIvaId": {
            "type": "integer",
            "description": "Identificativo univoco della causale IVA della cassa previdenziale.",
            "format": "int32",
            "nullable": true
          },
          "modelloId": {
            "type": "integer",
            "description": "Obsoleto. Non utilizzare.",
            "format": "int32",
            "nullable": true
          },
          "cassaPrevidenzialeCausaleIva": {
            "$ref": "#/components/schemas/CausaleIva"
          },
          "destinazioneId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Indirizzo di destinazione.",
            "format": "int32",
            "nullable": true
          },
          "destinazione": {
            "$ref": "#/components/schemas/Indirizzo"
          },
          "valutaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Documento.Valuta.",
            "format": "int32",
            "nullable": true
          },
          "valuta": {
            "$ref": "#/components/schemas/Valuta"
          },
          "causaleMagazzinoId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Documento.CausaleMagazzino.",
            "format": "int32",
            "nullable": true
          },
          "causaleMagazzino": {
            "$ref": "#/components/schemas/CausaleMagazzino"
          },
          "iva1CausaleIvaId": {
            "type": "integer",
            "description": "Identificativo univoco della prima causale IVA.",
            "format": "int32",
            "nullable": true
          },
          "iva1CausaleIva": {
            "$ref": "#/components/schemas/CausaleIva"
          },
          "iva2CausaleIvaId": {
            "type": "integer",
            "description": "Identificativo univoco della seconda causale IVA.",
            "format": "int32",
            "nullable": true
          },
          "iva2CausaleIva": {
            "$ref": "#/components/schemas/CausaleIva"
          },
          "iva3CausaleIvaId": {
            "type": "integer",
            "description": "Identificativo univoco della terza causale IVA.",
            "format": "int32",
            "nullable": true
          },
          "iva3CausaleIva": {
            "$ref": "#/components/schemas/CausaleIva"
          },
          "iva4CausaleIvaId": {
            "type": "integer",
            "description": "Identificativo univoco della quarta causale IVA.",
            "format": "int32",
            "nullable": true
          },
          "iva4CausaleIva": {
            "$ref": "#/components/schemas/CausaleIva"
          },
          "tipoDocumento": {
            "enum": [
              "Ddt",
              "FatturaAccompagnatoria",
              "FatturaAcconto",
              "FatturaDifferita",
              "FatturaProfessionista",
              "RicevutaFiscale",
              "NotaCredito",
              "NotaDebito",
              "Scontrino",
              "OrdineCliente",
              "Preventivo",
              "DdtFornitore",
              "FatturaAccompagnatoriaFornitore",
              "FatturaDifferitaFornitore",
              "FatturaProfessionistaFornitore",
              "NotaCreditoFornitore",
              "NotaDebitoFornitore",
              "PreventivoFornitore",
              "OrdineFornitore",
              "ResoCliente",
              "FatturaAccontoFornitore",
              "FatturaProForma",
              "IntegrazioneFatturaReverseChargeInterno",
              "IntegrazioneAcquistoServiziEstero",
              "IntegrazioneAcquistoBeniIntracomunitari",
              "IntegrazioneAcquistoBeniArt17",
              "AutofatturaRegolarizzazioneFatture",
              "AutofatturaSplafonamento",
              "EstrazioneBeniDepositoIva",
              "EstrazioneBeniDepositoIvaConVersamentoIva",
              "FatturaDifferitaArt21Comma4LetteraA",
              "FatturaDifferitaArt21Comma4LetteraB",
              "CessioniBeniAmmortizzabiliEPassaggiInterni",
              "FatturaAutoconsumoOCessioniGratuite",
              "IntegrazioneFatturaReverseChargeInternoFornitore",
              "IntegrazioneAcquistoServiziEsteroFornitore",
              "IntegrazioneAcquistoBeniIntracomunitariFornitore",
              "IntegrazioneAcquistoBeniArt17Fornitore",
              "AutofatturaRegolarizzazioneFattureFornitore",
              "AutofatturaSplafonamentoFornitore",
              "EstrazioneBeniDepositoIvaFornitore",
              "EstrazioneBeniDepositoIvaConVersamentoIvaFornitore",
              "FatturaDifferitaArt21Comma4LetteraAFornitore",
              "FatturaDifferitaArt21Comma4LetteraBFornitore",
              "CessioniBeniAmmortizzabiliEPassaggiInterniFornitore",
              "FatturaAutoconsumoOCessioniGratuiteFornitore",
              "AcquistoSanMarinoConIva",
              "ComunicazioneOmessaOIrregolareFatturazione",
              "ComunicazioneOmessaOIrregolareFatturazioneFornitore"
            ],
            "type": "string",
            "description": "Tipologia del documento."
          },
          "documentoFiscale": {
            "enum": [
              "Vendita",
              "Acquisto",
              "NonFiscale"
            ],
            "type": "string",
            "description": "Tipo di documento fiscale."
          },
          "destinazioneDiversa": {
            "type": "boolean",
            "description": "Indica se la destinazione della merce è diversa dall'indirizzo principale.",
            "example": false
          },
          "ivaEsclusa": {
            "type": "boolean",
            "description": "Indica se i prezzi inseriti sono da considerarsi al netto dell'IVA. Se `false`, l'IVA verrà scorporata in fase di elaborazione (app ufficiali).",
            "example": true
          },
          "ritenutaIncludeCassaPrevidenziale": {
            "type": "boolean",
            "description": "Indica se la ritenuta deve essere applicata anche all'importo della cassa previdenziale riportato nel documento.",
            "example": false
          },
          "classeDocumento": {
            "enum": [
              "Vendita",
              "Acquisto"
            ],
            "type": "string",
            "description": "Classe del documento."
          },
          "contatto": {
            "type": "integer",
            "description": "Persona di contatto preferita, Amica.AnagraficaNominativo1 oppure Amica.AnagraficaNominativo2.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "numeroParteTesto": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "La parte alfanumerica del numero del documento, se presente. Ad esempio, \"bis\" per il documento num. 99/bis.",
            "nullable": true,
            "example": "bis"
          },
          "numeroParteNumerica": {
            "maximum": 2147483647,
            "minimum": 0,
            "type": "integer",
            "description": "Il numero del documento, nella sua parte numerica. Ad esempio, 99 per il num. 99/bis.",
            "format": "int32",
            "example": 42
          },
          "data": {
            "type": "string",
            "description": "Data del documento.",
            "format": "date-time",
            "example": "2026-01-15"
          },
          "stato": {
            "enum": [
              "Bozza",
              "Fatturato",
              "Emesso",
              "FatturaAccontoScontataInFattura",
              "PreventivoChiuso",
              "OrdineEvaso",
              "OrdineParzialmenteEvaso",
              "OrdineAnnullato",
              "ResoAccreditato",
              "DdtNonFatturare"
            ],
            "type": "string",
            "description": "Lo stato corrente del documento. Ad esempio: Bozza, oppure Emesso."
          },
          "dataScadenzaPreventivo": {
            "type": "string",
            "description": "La data di scadenza, nel caso in cui il documento sia un preventivo.",
            "format": "date-time",
            "nullable": true,
            "example": "2026-02-15"
          },
          "dataInizioScadenze": {
            "type": "string",
            "description": "Data della prima scadenza di pagamento.",
            "format": "date-time",
            "nullable": true,
            "example": "2026-02-15"
          },
          "scontoPercentuale": {
            "type": "number",
            "description": "Sconto, in percentuale, da calcolare sull'intero importo del documento.",
            "format": "double",
            "example": 5.0
          },
          "scontoIncondizionatoImporto": {
            "type": "number",
            "description": "Sconto, in valuta, da applicare all'intero importo del documento.",
            "format": "double",
            "example": 50.00
          },
          "abbuonoImporto": {
            "type": "number",
            "description": "Importo dell'abbuono.",
            "format": "double",
            "example": 2.50
          },
          "ritenutaPercentuale": {
            "type": "number",
            "description": "Quota della ritenuta da applicare al documento.",
            "format": "double",
            "example": 20.0
          },
          "enasarcoPercentuale": {
            "type": "number",
            "description": "Contributo Enasarco da applicare al documento.",
            "format": "double",
            "example": 8.5
          },
          "enasarcoImporto": {
            "type": "number",
            "description": "Importo Enasarco.",
            "format": "double",
            "example": 85.00
          },
          "quotaRitenutaSuImponibile": {
            "type": "number",
            "description": "Quota dell'imponibile su cui applicare la ritenuta.",
            "format": "double",
            "example": 50.0
          },
          "cambio": {
            "type": "number",
            "description": "Tasso di cambio rispetto all'Euro, nel caso in cui la Amica.Documento.Valuta del documento non sia l'Euro.",
            "format": "double",
            "example": 1.0
          },
          "cassaPrevidenzialeNome": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Nome della cassa previdenziale applicata al documento.",
            "nullable": true,
            "example": "Cassa Forense"
          },
          "cassaPrevidenzialePercentuale": {
            "type": "number",
            "description": "Aliquota (percentuale) della cassa previdenziale da applicare al documento.",
            "format": "double",
            "example": 4.0
          },
          "note": {
            "type": "string",
            "description": "Note.",
            "nullable": true,
            "example": "Consegna prevista entro fine mese."
          },
          "scontoPagamentoPercentuale": {
            "type": "number",
            "description": "Sconto riconosciuto in base alla modalità di pagamento utilizzata (es: +5% in caso di rimessa diretta).",
            "format": "double",
            "example": 5.0
          },
          "iva1Imponibile": {
            "type": "number",
            "description": "Totale imponibile attribuibile a Amica.Documento.Iva1CausaleIva",
            "format": "double",
            "example": 1000.00
          },
          "iva2Imponibile": {
            "type": "number",
            "description": "Totale imponibile attribuibile a Amica.Documento.Iva2CausaleIva",
            "format": "double",
            "example": 500.00
          },
          "iva3Imponibile": {
            "type": "number",
            "description": "Totale imponibile attribuibile a Amica.Documento.Iva3CausaleIva",
            "format": "double",
            "example": 0.00
          },
          "iva4Imponibile": {
            "type": "number",
            "description": "Totale imponibile attribuibile a Amica.Documento.Iva4CausaleIva",
            "format": "double",
            "example": 0.00
          },
          "iva1ImponibileLordo": {
            "type": "number",
            "description": "Totale imponibile attribuibile a Amica.Documento.Iva1CausaleIva al lordo di eventuali sconti di fattura.",
            "format": "double",
            "example": 1050.00
          },
          "iva2ImponibileLordo": {
            "type": "number",
            "description": "Totale imponibile attribuibile a Amica.Documento.Iva2CausaleIva al lordo di eventuali sconti di fattura.",
            "format": "double",
            "example": 525.00
          },
          "iva3ImponibileLordo": {
            "type": "number",
            "description": "Totale imponibile attribuibile a Amica.Documento.Iva3CausaleIva al lordo di eventuali sconti di fattura.",
            "format": "double",
            "example": 0.00
          },
          "iva4ImponibileLordo": {
            "type": "number",
            "description": "Totale imponibile attribuibile a Amica.Documento.Iva4CausaleIva al lordo di eventuali sconti di fattura.",
            "format": "double",
            "example": 0.00
          },
          "iva1Imposta": {
            "type": "number",
            "description": "Totale imposta per Amica.Documento.Iva1CausaleIva",
            "format": "double",
            "example": 220.00
          },
          "iva2Imposta": {
            "type": "number",
            "description": "Totale imposta per Amica.Documento.Iva2CausaleIva",
            "format": "double",
            "example": 50.00
          },
          "iva3Imposta": {
            "type": "number",
            "description": "Totale imposta per Amica.Documento.Iva3CausaleIva",
            "format": "double",
            "example": 0.00
          },
          "iva4Imposta": {
            "type": "number",
            "description": "Totale imposta per Amica.Documento.Iva4CausaleIva",
            "format": "double",
            "example": 0.00
          },
          "totaleRitenuta": {
            "type": "number",
            "description": "Importo della ritenuta.",
            "format": "double",
            "example": 200.00
          },
          "totaleCassaPrevidenziale": {
            "type": "number",
            "description": "Importo della cassa previdenziale.",
            "format": "double",
            "example": 40.00
          },
          "totaleSpese": {
            "type": "number",
            "description": "Totale delle spese esenti e non esenti.",
            "format": "double",
            "example": 30.00
          },
          "totaleSpeseEsenti": {
            "type": "number",
            "description": "Totale delle spese esenti da IVA.",
            "format": "double",
            "example": 10.00
          },
          "totaleSpeseNonEsenti": {
            "type": "number",
            "description": "Totale delle spese non esenti da IVA.",
            "format": "double",
            "example": 20.00
          },
          "totaleMerce": {
            "type": "number",
            "description": "Importo della merce.",
            "format": "double",
            "example": 1500.00
          },
          "totaleMerceScontata": {
            "type": "number",
            "description": "Importo della merce scontata.",
            "format": "double",
            "example": 1425.00
          },
          "totaleImponibile": {
            "type": "number",
            "description": "Totale imponibile, considerando tutte le causali IVA coinvolte.",
            "format": "double",
            "example": 1500.00
          },
          "totaleImposta": {
            "type": "number",
            "description": "Imposta IVA.",
            "format": "double",
            "example": 270.00
          },
          "totaleEsente": {
            "type": "number",
            "description": "Importi esenti da IVA.",
            "format": "double",
            "example": 0.00
          },
          "totaleDocumento": {
            "type": "number",
            "description": "Importo totale del documento.",
            "format": "double",
            "example": 1770.00
          },
          "nettoAPagare": {
            "type": "number",
            "description": "Netto a pagare.",
            "format": "double",
            "example": 1770.00
          },
          "totaleSplitPayment": {
            "type": "number",
            "description": "Importo dello split payment.",
            "format": "double",
            "example": 0.00
          },
          "bollo": {
            "type": "number",
            "description": "Importo del bollo.",
            "format": "double",
            "example": 2.00
          },
          "xmlFileName": {
            "type": "string",
            "description": "Nome del file XML.",
            "nullable": true,
            "example": "IT01234567890_00042.xml"
          },
          "riferimentoAmministrazione": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Numero di riferimento dell'amministrazione.",
            "nullable": true,
            "example": "RIF-2026-042"
          },
          "banca": {
            "$ref": "#/components/schemas/BancaDocumento"
          },
          "datiTrasporto": {
            "$ref": "#/components/schemas/DatiTrasporto"
          },
          "datiSdi": {
            "$ref": "#/components/schemas/DatiSdi"
          },
          "datiPA": {
            "$ref": "#/components/schemas/DatiPA"
          },
          "righe": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BeneServizio"
            },
            "description": "Righe del documento.",
            "nullable": true
          },
          "speseDocumento": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SpesaDocumento"
            },
            "description": "Elenco delle spese.",
            "nullable": true
          },
          "scadenze": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Scadenza"
            },
            "description": "Elenco delle scadenze.",
            "nullable": true
          },
          "numero": {
            "type": "string",
            "description": "Numero completo del documento. Ad esempio, `99/bis`. Generato a partire da Amica.Documento.NumeroParteNumerica e Amica.Documento.NumeroParteTesto. Nota bene: proprietà valorizzata solo nel caso di un'istanza salvata sul backend.",
            "nullable": true,
            "example": "42/bis"
          },
          "mediaFile": {
            "$ref": "#/components/schemas/DocumentoMediaFile"
          },
          "allegato": {
            "type": "string",
            "description": "Obsoleto. Non utilizzare.",
            "nullable": true
          },
          "bonusFiscaleCausale": {
            "type": "string",
            "description": "Causale del bonus fiscale.",
            "nullable": true,
            "example": "Bonus ristrutturazione 50%"
          },
          "bonusFiscaleImporto": {
            "type": "number",
            "description": "Importo del bonus fiscale.",
            "format": "double",
            "example": 750.00
          },
          "bonusFiscalePercentuale": {
            "type": "number",
            "description": "Percentuale del bonus fiscale.",
            "format": "double",
            "example": 50.0
          },
          "progressivoInvio": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProgressivoInvio"
            },
            "description": "Numeri di invio (progressivi), così come restituiti dallo Sdi.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Un documento (fattura, documento di trasporto, ecc.)"
      },
      "DocumentoCollegato": {
        "type": "object",
        "properties": {
          "numero": {
            "type": "string",
            "description": "Numero del documento.",
            "nullable": true,
            "example": "2026/123"
          },
          "data": {
            "type": "string",
            "description": "Data del documento.",
            "format": "date-time",
            "example": "2026-01-15"
          }
        },
        "additionalProperties": false,
        "description": "Dati di riferimento del documento."
      },
      "DocumentoComputeData": {
        "type": "object",
        "properties": {
          "righe": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocumentoComputeDataBeneServizio"
            },
            "description": "Metadati delle righe del documento.",
            "nullable": true
          },
          "speseDocumento": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocumentoComputeDataSpesa"
            },
            "description": "Metadati dell'elenco delle spese.",
            "nullable": true
          },
          "scontoPercentuale": {
            "type": "number",
            "description": "Sconto, in percentuale, da calcolare sull'intero importo del documento.",
            "format": "double",
            "example": 5.0
          },
          "scontoPagamentoPercentuale": {
            "type": "number",
            "description": "Sconto riconosciuto in base alla modalità di pagamento utilizzata (es.: +5% in caso di rimessa diretta).",
            "format": "double",
            "example": 5.0
          },
          "scontoIncondizionatoImporto": {
            "type": "number",
            "description": "Sconto, in valuta, da applicare all'intero importo del documento.",
            "format": "double",
            "example": 10.00
          },
          "cassaPrevidenzialePercentuale": {
            "type": "number",
            "description": "Contributo cassa previdenziale (percentuale) da applicare al documento.",
            "format": "double",
            "example": 4.0
          },
          "cassaPrevidenzialeCausaleIvaId": {
            "type": "integer",
            "description": "Identificativo univoco della causale IVA della cassa previdenziale.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "ritenutaIncludeCassaPrevidenziale": {
            "type": "boolean",
            "description": "Indica se la ritenuta debba essere applicata all'importo della cassa previdenziale riportato nel documento.",
            "example": false
          },
          "quotaRitenutaSuImponibile": {
            "type": "number",
            "description": "Quota dell'imponibile su cui applicare la ritenuta.",
            "format": "double",
            "example": 100.0
          },
          "ritenutaPercentuale": {
            "type": "number",
            "description": "Quota di ritenuta da applicare al documento.",
            "format": "double",
            "example": 20.0
          },
          "enasarcoImporto": {
            "type": "number",
            "description": "Importo Enasarco.",
            "format": "double",
            "example": 0.00
          },
          "abbuonoImporto": {
            "type": "number",
            "description": "Importo dell'abbuono.",
            "format": "double",
            "example": 0.00
          },
          "bonusFiscalePercentuale": {
            "type": "number",
            "description": "Importo del bonus fiscale.",
            "format": "double",
            "example": 0.0
          }
        },
        "additionalProperties": false,
        "description": "Utilizzato dal metodo M:Amica.DocumentoService.Compute(Amica.DocumentoComputeData,Amica.RequestSettings,System.Boolean) di `DocumentoService`."
      },
      "DocumentoComputeDataBeneServizio": {
        "type": "object",
        "properties": {
          "ritenutaFiscale": {
            "type": "boolean",
            "description": "Indica se la ritenuta fiscale è applicabile o meno.",
            "example": false
          },
          "importo": {
            "type": "number",
            "description": "Importo.",
            "format": "double",
            "nullable": true,
            "example": 1250.00
          },
          "causaleIvaId": {
            "type": "integer",
            "description": "Identificativo univoco del codice IVA.",
            "format": "int32",
            "nullable": true,
            "example": 1
          }
        },
        "additionalProperties": false,
        "description": "Metadati della riga di documento."
      },
      "DocumentoComputeDataSpesa": {
        "type": "object",
        "properties": {
          "causaleIvaId": {
            "type": "integer",
            "description": "Identificativo univoco del codice IVA.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "importo": {
            "type": "number",
            "description": "Importo.",
            "format": "double",
            "example": 15.00
          }
        },
        "additionalProperties": false,
        "description": "Metadati della spesa di documento."
      },
      "DocumentoComputeResult": {
        "type": "object",
        "properties": {
          "totaleMerce": {
            "type": "number",
            "description": "Importo della merce.",
            "format": "double",
            "example": 1250.00
          },
          "totaleMerceScontata": {
            "type": "number",
            "description": "Importo della merce scontata.",
            "format": "double",
            "example": 1187.50
          },
          "totaleImponibile": {
            "type": "number",
            "description": "Totale imponibile, considerando tutte le causali IVA coinvolte.",
            "format": "double",
            "example": 1187.50
          },
          "totaleSpeseEsenti": {
            "type": "number",
            "description": "Totale delle spese esenti da IVA.",
            "format": "double",
            "example": 0.00
          },
          "totaleSpeseNonEsenti": {
            "type": "number",
            "description": "Totale delle spese non esenti da IVA.",
            "format": "double",
            "example": 15.00
          },
          "totaleSpese": {
            "type": "number",
            "description": "Totale delle spese esenti e non esenti.",
            "format": "double",
            "example": 15.00
          },
          "totaleRitenuta": {
            "type": "number",
            "description": "Importo della ritenuta di acconto.",
            "format": "double",
            "example": 0.00
          },
          "totaleCassaPrevidenziale": {
            "type": "number",
            "description": "Importo della cassa previdenziale.",
            "format": "double",
            "example": 0.00
          },
          "enasarcoImporto": {
            "type": "number",
            "description": "Importo Enasarco.",
            "format": "double",
            "example": 0.00
          },
          "totaleEsente": {
            "type": "number",
            "description": "Importi esenti da IVA.",
            "format": "double",
            "example": 0.00
          },
          "totaleImposta": {
            "type": "number",
            "description": "Imposta IVA.",
            "format": "double",
            "example": 264.55
          },
          "totaleSplitPayment": {
            "type": "number",
            "description": "Importo dello split payment.",
            "format": "double",
            "example": 0.00
          },
          "totaleAbbuoni": {
            "type": "number",
            "description": "Importo degli abbuoni.",
            "format": "double",
            "example": 0.00
          },
          "totaleDocumento": {
            "type": "number",
            "description": "Importo totale del documento.",
            "format": "double",
            "example": 1467.05
          },
          "bonusFiscaleImporto": {
            "type": "number",
            "description": "Importo del bonus fiscale.",
            "format": "double",
            "example": 0.00
          },
          "nettoAPagare": {
            "type": "number",
            "description": "Netto a pagare.",
            "format": "double",
            "example": 1467.05
          },
          "riepiloghiIva": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocumentoComputeResultRiepilogoIva"
            },
            "description": "Riepiloghi IVA.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Restituito dal metodo M:Amica.DocumentoService.Compute(Amica.DocumentoComputeData,Amica.RequestSettings,System.Boolean) di `DocumentoService`."
      },
      "DocumentoComputeResultRiepilogoIva": {
        "type": "object",
        "properties": {
          "imponibileLordo": {
            "type": "number",
            "description": "Imponibile al lordo di eventuali sconti di fattura.",
            "format": "double",
            "example": 1250.00
          },
          "imponibile": {
            "type": "number",
            "description": "Imponibile.",
            "format": "double",
            "example": 1187.50
          },
          "imposta": {
            "type": "number",
            "description": "Importo dell'imposta.",
            "format": "double",
            "example": 261.25
          },
          "aliquota": {
            "type": "number",
            "description": "Aliquota IVA (percentuale).",
            "format": "double",
            "example": 22.0
          },
          "causaleIvaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.CausaleIva.",
            "format": "int32",
            "example": 1
          },
          "causaleIvaCodice": {
            "type": "string",
            "description": "Codice IVA.",
            "nullable": true,
            "example": "22"
          },
          "causaleIvaNome": {
            "type": "string",
            "description": "Descrizione, o nome, del codice IVA.",
            "nullable": true,
            "example": "IVA 22%"
          }
        },
        "additionalProperties": false,
        "description": "Riepilogo IVA."
      },
      "DocumentoImportData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Identificativo del documento da importare.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Dati di importazione del documento."
      },
      "DocumentoMediaFile": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "data": {
            "type": "string",
            "description": "Rappresentazione in Base64 del contenuto di un file multimediale.",
            "nullable": true,
            "example": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg=="
          },
          "documentoId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Documento.",
            "format": "int32",
            "example": 1
          }
        },
        "additionalProperties": false,
        "description": "File multimediale del documento."
      },
      "FatturaElettronicaExportOptions": {
        "type": "object",
        "properties": {
          "documentoId": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Identificativi dei Amica.Documento da esportare.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Opzioni di esportazione della fattura elettronica."
      },
      "FatturaElettronicaExportResult": {
        "type": "object",
        "properties": {
          "fileName": {
            "type": "string",
            "description": "Nome del file.",
            "nullable": true,
            "example": "IT01234567890_00001.xml"
          },
          "valido": {
            "type": "boolean",
            "description": "Indica se la fattura elettronica (XML) generata ha superato il test di validazione secondo le specifiche del Sistema di Interscambio (SdI). Se `false`, vedi Amica.FatturaElettronicaExportResult.Errori per l'elenco degli errori di validazione.",
            "readOnly": true,
            "example": true
          },
          "errori": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Errori di validazione, se presenti.",
            "nullable": true
          },
          "xml": {
            "type": "string",
            "description": "Contenuto del file.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Esito della chiamata al metodo M:Amica.FatturaElettronicaXmlService.XmlExport(Amica.FatturaElettronicaExportOptions,Amica.RequestSettings) di `FatturaElettronicaXmlService`."
      },
      "FatturaElettronicaImportResult": {
        "type": "object",
        "properties": {
          "documentoId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Documento.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "messaggi": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Messaggi relativi alla procedura di importazione.",
            "nullable": true
          },
          "esito": {
            "type": "string",
            "description": "Esito dell'importazione (`OK`, `OK con messaggi`, `SCARTATO (DUPLICATO)`, ecc.)",
            "nullable": true,
            "example": "OK"
          },
          "isSuccess": {
            "type": "boolean",
            "description": "Indica se l'importazione è andata a buon fine.",
            "readOnly": true,
            "example": true
          }
        },
        "additionalProperties": false,
        "description": "Esito della chiamata al metodo M:Amica.FatturaElettronicaXmlService.XmlImport(Amica.FatturaElettronicaImportOptions,System.Byte[],System.String,Amica.RequestSettings) di `FatturaElettronicaXmlService`."
      },
      "FatturaElettronicaUploadOptions": {
        "type": "object",
        "properties": {
          "fileName": {
            "type": "string",
            "description": "Nome del file XML da caricare.",
            "nullable": true,
            "example": "IT01234567890_00001.xml"
          }
        },
        "additionalProperties": false,
        "description": "Opzioni di caricamento della fattura elettronica."
      },
      "FatturaElettronicaUploadResult": {
        "type": "object",
        "properties": {
          "messaggi": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Messaggi relativi alla procedura di caricamento.",
            "nullable": true
          },
          "esito": {
            "type": "string",
            "description": "Esito del caricamento.",
            "nullable": true,
            "example": "OK"
          },
          "isSuccess": {
            "type": "boolean",
            "description": "Indica se il caricamento è andato a buon fine.",
            "readOnly": true,
            "example": true
          }
        },
        "additionalProperties": false,
        "description": "Esito della chiamata al metodo M:Amica.FatturaElettronicaXmlService.SdiUpload(Amica.FatturaElettronicaUploadOptions,Amica.RequestSettings) di `FatturaElettronicaXmlService`."
      },
      "FatturaElettronicaXml": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "fileName": {
            "type": "string",
            "description": "Nome del file.",
            "nullable": true,
            "example": "IT01234567890_AB123.xml"
          },
          "xml": {
            "maxLength": 5242880,
            "minLength": 0,
            "type": "string",
            "description": "Contenuto del file.",
            "nullable": true,
            "example": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><p:FatturaElettronica ...>...</p:FatturaElettronica>"
          }
        },
        "additionalProperties": false,
        "description": "Contenuto della fattura elettronica (XML)."
      },
      "FatturaElettronicaXmlGetArchiveByDateRangeOptions": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string",
            "format": "date-time"
          },
          "to": {
            "type": "string",
            "format": "date-time"
          },
          "classeDocumento": {
            "enum": [
              "Vendita",
              "Acquisto"
            ],
            "type": "string",
            "description": "Classe del documento."
          }
        },
        "additionalProperties": false,
        "x-internal": true
      },
      "FatturaElettronicaXmlGetArchiveByFileNameOptions": {
        "type": "object",
        "properties": {
          "fileNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false,
        "x-internal": true
      },
      "FatturaElettronicaXmlStyleSheetData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.FatturaElettronicaXml. In alternativa, valorizzare Amica.FatturaElettronicaXmlStyleSheetData.FileName.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "fileName": {
            "type": "string",
            "description": "Nome del file XML. Se presente, ha la precedenza su Amica.FatturaElettronicaXmlStyleSheetData.Id.",
            "nullable": true,
            "example": "IT01234567890_00001.xml"
          },
          "styleSheet": {
            "enum": [
              "Standard",
              "AssoSoftware",
              "None"
            ],
            "type": "string",
            "description": "Foglio di stile da applicare."
          }
        },
        "additionalProperties": false,
        "description": "Opzioni per la chiamata al metodo M:Amica.FatturaElettronicaXmlService.ApplyStyleSheet(Amica.FatturaElettronicaXmlStyleSheetData,Amica.RequestSettings) di `FatturaElettronicaXmlService`."
      },
      "FatturaElettronicaXmlTemplate": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "soggettoEmittente": {
            "maxLength": 2,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "idTrasmittenteIdPaese": {
            "maxLength": 2,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "cedentePrestatoreIdPaese": {
            "maxLength": 2,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "progressivoInvio": {
            "maxLength": 10,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "alboProfessionale": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "provinciaAlbo": {
            "maxLength": 2,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "numeroIscrizioneAlbo": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "dataIscrizioneAlbo": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "regimeFiscale": {
            "maxLength": 4,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "sedeNazione": {
            "maxLength": 2,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "sedeNumeroCivico": {
            "maxLength": 8,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "stabileOrganizzazioneIndirizzo": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "stabileOrganizzazioneNumeroCivico": {
            "maxLength": 8,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "stabileOrganizzazioneCap": {
            "maxLength": 5,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "stabileOrganizzazioneComune": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "stabileOrganizzazioneProvincia": {
            "maxLength": 2,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "stabileOrganizzazioneNazione": {
            "maxLength": 2,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "reaNumero": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "reaUfficio": {
            "maxLength": 2,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "reaCapitaleSociale": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "reaSocioUnico": {
            "maxLength": 2,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "reaStatoLiquidazione": {
            "maxLength": 2,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "rappresentanteIdPaese": {
            "maxLength": 2,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "rappresentanteIdCodice": {
            "maxLength": 28,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "rappresentanteCodiceFiscale": {
            "maxLength": 16,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "rappresentanteDenominazione": {
            "maxLength": 80,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "rappresentanteNome": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "rappresentanteCognome": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "rappresentanteTitolo": {
            "maxLength": 10,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "rappresentanteCodEori": {
            "maxLength": 17,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "intermediarioIdPaese": {
            "maxLength": 2,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "intermediarioIdCodice": {
            "maxLength": 28,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "intermediarioCodiceFiscale": {
            "maxLength": 16,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "intermediarioDenominazione": {
            "maxLength": 80,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "intermediarioNome": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "intermediarioCognome": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "intermediarioTitolo": {
            "maxLength": 10,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "intermediarioCodEori": {
            "maxLength": 17,
            "minLength": 0,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Modello standard di fattura elettronica."
      },
      "FatturatoMensile": {
        "type": "object",
        "properties": {
          "periodo": {
            "type": "string",
            "description": "Periodo di riferimento.",
            "format": "date-time",
            "example": "2026-03-01T00:00:00"
          },
          "importo": {
            "type": "number",
            "description": "Importo per il periodo.",
            "format": "double",
            "example": 12.50
          }
        },
        "additionalProperties": false,
        "description": "Fatturato mensile."
      },
      "Giacenza": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "magazzinoId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Giacenza.Magazzino.",
            "format": "int32",
            "example": 1
          },
          "magazzino": {
            "$ref": "#/components/schemas/Magazzino"
          },
          "articoloId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Giacenza.Articolo.",
            "format": "int32",
            "example": 1
          },
          "articolo": {
            "$ref": "#/components/schemas/Articolo"
          },
          "quantitàInGiacenza": {
            "type": "number",
            "description": "Quantità in giacenza.",
            "format": "double",
            "example": 150.00
          },
          "quantitàImpegnata": {
            "type": "number",
            "description": "Quantità impegnata.",
            "format": "double",
            "example": 25.00
          },
          "quantitàOrdinata": {
            "type": "number",
            "description": "Quantità ordinata.",
            "format": "double",
            "example": 50.00
          },
          "scortaMinima": {
            "type": "number",
            "description": "Scorta minima.",
            "format": "double",
            "example": 10.00
          },
          "gestioneSottoscorta": {
            "type": "boolean",
            "description": "Indica se devono essere generati gli avvisi di sottoscorta.",
            "example": true
          },
          "dataUltimoCarico": {
            "type": "string",
            "description": "Data dell'ultimo carico.",
            "format": "date-time",
            "nullable": true,
            "example": "2026-05-20T00:00:00"
          },
          "dataUltimoScarico": {
            "type": "string",
            "description": "Data dell'ultimo scarico.",
            "format": "date-time",
            "nullable": true,
            "example": "2026-05-28T00:00:00"
          },
          "caricoQuantità": {
            "type": "number",
            "description": "Quantità totale caricata.",
            "format": "double",
            "example": 500.00
          },
          "caricoValore": {
            "type": "number",
            "description": "Valore totale caricato.",
            "format": "double",
            "example": 6250.00
          },
          "scaricoQuantità": {
            "type": "number",
            "description": "Quantità totale scaricata.",
            "format": "double",
            "example": 350.00
          },
          "scaricoValore": {
            "type": "number",
            "description": "Valore totale scaricato.",
            "format": "double",
            "example": 4375.00
          },
          "identificativo": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Numero di serie, o qualsiasi altro identificativo.",
            "nullable": true,
            "example": "SN-2026-00123"
          },
          "identificativoEsteso": {
            "type": "string",
            "description": "Identificativo esteso.",
            "nullable": true,
            "example": "LOTTO-A-2026"
          },
          "data": {
            "type": "string",
            "description": "Data di scadenza, produzione, fine garanzia o altro.",
            "format": "date-time",
            "nullable": true,
            "example": "2027-05-20T00:00:00"
          },
          "colore": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Colore.",
            "nullable": true,
            "example": "Rosso"
          }
        },
        "additionalProperties": false,
        "description": "Giacenza corrente (inventario)."
      },
      "GruppoMerceologico": {
        "required": [
          "nome"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "nome": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "Nome o descrizione.",
            "example": "Abbigliamento"
          }
        },
        "additionalProperties": false,
        "description": "Gruppo merceologico."
      },
      "ImpostazioniSdi": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "apiKeySdi": {
            "type": "string",
            "description": "Chiave di licenza del servizio di interscambio fatture.",
            "nullable": true,
            "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
          },
          "ultimoDownloadSdi": {
            "type": "string",
            "description": "Data e ora dell'ultimo aggiornamento ricevuto dal servizio di interscambio fatture (SdI).",
            "format": "date-time",
            "nullable": true,
            "example": "2026-01-15T08:30:00"
          },
          "includiPdfSdi": {
            "type": "boolean",
            "description": "Indica se allegare il PDF della fattura a ciascun XML inviato al sistema di interscambio fatture (SdI).",
            "example": true
          },
          "abbinaArticoliSdi": {
            "type": "boolean",
            "description": "Per le fatture di acquisto scaricate dal servizio di interscambio fatture (SdI), indica se si desidera tentare l'abbinamento degli articoli/prodotti della fattura con quelli presenti nei magazzini aziendali.",
            "example": true
          }
        },
        "additionalProperties": false,
        "description": "Impostazioni del servizio di interscambio fatture (SdI)."
      },
      "Indirizzo": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "anagraficaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Anagrafica.",
            "format": "int32",
            "example": 1
          },
          "ragioneSociale1": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "description": "Ragione sociale, oppure nome e cognome della persona fisica.",
            "nullable": true,
            "example": "Acme S.r.l."
          },
          "ragioneSociale2": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "description": "Eventuale seconda riga della ragione sociale.",
            "nullable": true,
            "example": "Divisione Logistica"
          },
          "via": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "description": "Indirizzo (via).",
            "nullable": true,
            "example": "Via Garibaldi 10"
          },
          "località": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "Località.",
            "nullable": true,
            "example": "Milano"
          },
          "cap": {
            "maxLength": 8,
            "minLength": 0,
            "type": "string",
            "description": "CAP o codice di avviamento postale.",
            "nullable": true,
            "example": "20121"
          },
          "provincia": {
            "maxLength": 3,
            "minLength": 0,
            "type": "string",
            "description": "Provincia, contea o nome dell'area.",
            "nullable": true,
            "example": "MI"
          },
          "telefono1": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di telefono principale.",
            "nullable": true,
            "example": "02 1234567"
          },
          "telefono2": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di telefono secondario.",
            "nullable": true,
            "example": "02 7654321"
          },
          "fax": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di fax.",
            "nullable": true,
            "example": "02 1234568"
          },
          "email": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Indirizzo email.",
            "nullable": true,
            "example": "sede@acme.it"
          },
          "stato": {
            "type": "boolean",
            "description": "Indica se l'indirizzo è attivo oppure no.",
            "example": true
          }
        },
        "additionalProperties": false,
        "description": "Indirizzo."
      },
      "Listino": {
        "required": [
          "nome"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "fornitoreId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Anagrafica (fornitore).",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "fornitore": {
            "$ref": "#/components/schemas/Anagrafica"
          },
          "valutaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Listino.Valuta (valuta).",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "valuta": {
            "$ref": "#/components/schemas/Valuta"
          },
          "nome": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "Nome del listino.",
            "example": "Listino vendite 2026"
          },
          "ivaInclusa": {
            "type": "boolean",
            "description": "Indica se i prezzi base sono IVA inclusa oppure no.",
            "example": true
          },
          "ricarico": {
            "type": "number",
            "description": "Ricarico da applicare ai prezzi base di tutte le righe del listino.",
            "format": "double",
            "example": 15.00
          },
          "dataCreazione": {
            "type": "string",
            "description": "Data di creazione.",
            "format": "date-time",
            "nullable": true,
            "example": "2026-01-15T00:00:00"
          },
          "validoDal": {
            "type": "string",
            "description": "Inizio validità del listino.",
            "format": "date-time",
            "nullable": true,
            "example": "2026-01-01T00:00:00"
          },
          "validoAl": {
            "type": "string",
            "description": "Fine validità del listino.",
            "format": "date-time",
            "nullable": true,
            "example": "2026-12-31T00:00:00"
          },
          "tipoListino": {
            "enum": [
              "Vendite",
              "Acquisti"
            ],
            "type": "string",
            "description": "Tipo di listino.",
            "example": "Vendite"
          },
          "calcoloPrezzi": {
            "enum": [
              "Manuale",
              "CostoUltimoPerListino",
              "CostoUltimoPerArticolo",
              "CostoMedioPerListino",
              "CostoMedioPerArticolo"
            ],
            "type": "string",
            "description": "Modalità di calcolo dei prezzi del listino.",
            "example": "Manuale"
          },
          "note": {
            "type": "string",
            "description": "Note.",
            "nullable": true,
            "example": "Listino riservato ai clienti rivenditori."
          },
          "righe": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Prezzo"
            },
            "description": "Righe del listino.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Listino."
      },
      "Magazzino": {
        "required": [
          "nome"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "nome": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "description": "Nome.",
            "example": "Magazzino centrale"
          },
          "indirizzo": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "description": "Indirizzo.",
            "nullable": true,
            "example": "Via Roma 10"
          },
          "località": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "Località.",
            "nullable": true,
            "example": "Bologna"
          },
          "cap": {
            "maxLength": 8,
            "minLength": 0,
            "type": "string",
            "description": "CAP o codice di zona.",
            "nullable": true,
            "example": "40121"
          },
          "provincia": {
            "maxLength": 3,
            "minLength": 0,
            "type": "string",
            "description": "Provincia o nome dell'area.",
            "nullable": true,
            "example": "BO"
          },
          "note": {
            "type": "string",
            "description": "Note.",
            "nullable": true,
            "example": "Magazzino principale per la sede operativa."
          }
        },
        "additionalProperties": false,
        "description": "Magazzino."
      },
      "Marca": {
        "required": [
          "nome"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "nome": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Nome.",
            "example": "Nike"
          }
        },
        "additionalProperties": false,
        "description": "Marca."
      },
      "ModalitaPagamento": {
        "required": [
          "nome"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "nome": {
            "maxLength": 30,
            "minLength": 0,
            "type": "string",
            "description": "Nome, o descrizione.",
            "example": "Bonifico bancario"
          },
          "codicePagamentoFE": {
            "maxLength": 4,
            "minLength": 0,
            "type": "string",
            "description": "Codice corrispondente per la fattura elettronica (es. \"MP01\").",
            "nullable": true,
            "example": "MP05"
          },
          "ricevutaBancaria": {
            "type": "boolean",
            "description": "Indica se è una ricevuta bancaria o meno.",
            "example": false
          }
        },
        "additionalProperties": false,
        "description": "Modalità di pagamento."
      },
      "ModelloContabile": {
        "required": [
          "codice",
          "nome"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "codice": {
            "maxLength": 10,
            "minLength": 0,
            "type": "string",
            "description": "Codice del modello.",
            "example": "FATT"
          },
          "nome": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Nome.",
            "example": "Fattura di vendita"
          },
          "stato": {
            "type": "boolean",
            "description": "Indica se il modello è attivo o meno.",
            "example": true
          },
          "registroIvaId": {
            "type": "integer",
            "description": "Identificativo univoco di `RegistroIva`.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "segnoIva": {
            "enum": [
              "Positivo",
              "Negativo"
            ],
            "type": "string",
            "description": "Positività o negatività dell'IVA."
          },
          "tipoOperazioneContabile": {
            "enum": [
              "Apertura",
              "Chiusura",
              "Normale"
            ],
            "type": "string",
            "description": "Tipo di operazione contabile."
          },
          "tipoRegistrazioneContabile": {
            "enum": [
              "Acquisto",
              "Vendita",
              "Contabile"
            ],
            "type": "string",
            "description": "Tipo di registrazione contabile."
          },
          "azionePartita": {
            "enum": [
              "Chiude",
              "Apre",
              "Ignora"
            ],
            "type": "string",
            "description": "Effetto sulla partita aperta."
          },
          "righe": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ModelloContabileRiga"
            },
            "description": "Righe del modello contabile.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Modello contabile."
      },
      "ModelloContabileRiga": {
        "required": [
          "contoRaw"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "modelloContabileId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.ModelloContabile.",
            "format": "int32",
            "example": 1
          },
          "causaleContabileId": {
            "type": "integer",
            "description": "Identificativo univoco di `CausaleContabile`.",
            "format": "int32",
            "example": 1
          },
          "contoRaw": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di conto, in formato grezzo. Sono supportati fino a cinque livelli, ciascuno espresso da un massimo di cinque caratteri allineati a destra e riempiti con spazi, ad es. \"  100   20\" (dieci caratteri in totale) esprime \"100.20\".",
            "example": "  100   20"
          },
          "importo": {
            "type": "number",
            "description": "Importo.",
            "format": "double",
            "example": 1250.00
          },
          "tipoImporto": {
            "enum": [
              "NettoAPagare",
              "TotaleImponibile",
              "TotaleImposta",
              "Ignora",
              "TotaleSpese",
              "ImpostaDetraibile",
              "ImpostaIndetraibile",
              "Enasarco",
              "RitenutaAcconto",
              "Abbuono"
            ],
            "type": "string",
            "description": "Cosa rappresenta Amica.ModelloContabileRiga.Importo."
          },
          "segnoContabile": {
            "enum": [
              "Dare",
              "Avere"
            ],
            "type": "string",
            "description": "Dare o avere."
          }
        },
        "additionalProperties": false,
        "description": "Riga di un Amica.ModelloContabile."
      },
      "MovimentoMerce": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "modalitaPagamentoId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.MovimentoMerce.ModalitaPagamento.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "modalitaPagamento": {
            "$ref": "#/components/schemas/ModalitaPagamento"
          },
          "causaleMagazzinoId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.MovimentoMerce.CausaleMagazzino.",
            "format": "int32",
            "example": 1
          },
          "causaleMagazzino": {
            "$ref": "#/components/schemas/CausaleMagazzino"
          },
          "anagraficaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.MovimentoMerce.Anagrafica.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "anagrafica": {
            "$ref": "#/components/schemas/Anagrafica"
          },
          "documentoId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Documento.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "ivaEsclusa": {
            "type": "boolean",
            "description": "Indica se i prezzi inseriti sono da considerarsi al netto dell'IVA. Se `false`, l'IVA verrà scorporata in fase di elaborazione (app ufficiali).",
            "example": true
          },
          "data": {
            "type": "string",
            "description": "Data del movimento.",
            "format": "date-time",
            "example": "2026-01-15"
          },
          "descrizione": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Descrizione.",
            "nullable": true,
            "example": "Carico merce da fornitore"
          },
          "documentoNumero": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Numero del documento di riferimento.",
            "nullable": true,
            "example": "DDT-2026-001"
          },
          "documentoData": {
            "type": "string",
            "description": "Data del documento di riferimento.",
            "format": "date-time",
            "nullable": true,
            "example": "2026-01-15"
          },
          "note": {
            "type": "string",
            "description": "Note.",
            "nullable": true,
            "example": "Merce ricevuta in buono stato."
          },
          "righe": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MovimentoMerceRiga"
            },
            "description": "Righe del movimento.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Movimento di magazzino."
      },
      "MovimentoMerceRiga": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "movimentoMerceId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.MovimentoMerce.",
            "format": "int32",
            "example": 1
          },
          "articoloId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.MovimentoMerceRiga.Articolo.",
            "format": "int32",
            "example": 1
          },
          "articolo": {
            "$ref": "#/components/schemas/Articolo"
          },
          "listinoId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Listino.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "magazzinoId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Magazzino.",
            "format": "int32",
            "example": 1
          },
          "prezzoId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.MovimentoMerceRiga.Prezzo.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "prezzo": {
            "$ref": "#/components/schemas/Prezzo"
          },
          "causaleIvaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.MovimentoMerceRiga.CausaleIva.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "causaleIva": {
            "$ref": "#/components/schemas/CausaleIva"
          },
          "tagliaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.MovimentoMerceRiga.Taglia.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "taglia": {
            "$ref": "#/components/schemas/Taglia"
          },
          "quantità": {
            "type": "number",
            "description": "Quantità movimentata.",
            "format": "double",
            "example": 10
          },
          "prezzoNetto": {
            "type": "number",
            "description": "Prezzo applicato, al netto dell'IVA.",
            "format": "double",
            "example": 9.90
          },
          "prezzoIvato": {
            "type": "number",
            "description": "Prezzo applicato, IVA inclusa.",
            "format": "double",
            "example": 12.08
          },
          "colore": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Colore.",
            "nullable": true,
            "example": "Rosso"
          },
          "identificativo": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Numero di serie o altro identificativo del prodotto.",
            "nullable": true,
            "example": "SN123456"
          },
          "identificativoEsteso": {
            "type": "string",
            "description": "Identificativo esteso del prodotto.",
            "nullable": true,
            "example": "SN123456-EXT"
          },
          "data": {
            "type": "string",
            "description": "Data di scadenza, produzione, fine garanzia o altro.",
            "format": "date-time",
            "nullable": true,
            "example": "2026-01-15"
          }
        },
        "additionalProperties": false,
        "description": "Riga di un movimento di magazzino."
      },
      "NaturaIva": {
        "type": "object",
        "properties": {
          "codice": {
            "type": "string",
            "description": "Codice della voce.",
            "nullable": true,
            "example": "N1"
          },
          "descrizione": {
            "type": "string",
            "description": "Descrizione della voce.",
            "nullable": true,
            "example": "Escluse ex art. 15"
          }
        },
        "additionalProperties": false,
        "description": "Tabella \"Natura Iva\"."
      },
      "Nazione": {
        "required": [
          "codice",
          "nome"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "nome": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "Nome.",
            "example": "Italia"
          },
          "codice": {
            "maxLength": 2,
            "minLength": 0,
            "type": "string",
            "description": "Un codice nazione ISO 3166-1 Alpha 2 valido.",
            "example": "IT"
          }
        },
        "additionalProperties": false,
        "description": "Nazione."
      },
      "OrdiniImportData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Identificativo del documento da importare.",
            "nullable": true
          },
          "soloRighe": {
            "type": "boolean",
            "description": "Importa solo le righe del documento.",
            "example": true
          },
          "includiRiferimento": {
            "type": "boolean",
            "description": "Aggiunge un riferimento al documento.",
            "example": false
          }
        },
        "additionalProperties": false,
        "description": "Dati di importazione dell'ordine."
      },
      "Pagamento": {
        "required": [
          "nome"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "modalitaPagamentoId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Pagamento.ModalitaPagamento.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "modalitaPagamento": {
            "$ref": "#/components/schemas/ModalitaPagamento"
          },
          "spesaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Pagamento.Spesa.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "spesa": {
            "$ref": "#/components/schemas/Spesa"
          },
          "risorsaFinanziariaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Pagamento.RisorsaFinanziaria.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "risorsaFinanziaria": {
            "$ref": "#/components/schemas/RisorsaFinanziaria"
          },
          "nome": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "description": "Nome, o descrizione.",
            "example": "Bonifico 30/60/90 giorni"
          },
          "calcoloPrimaRata": {
            "enum": [
              "Normale",
              "IvaInclusa",
              "SoloIva",
              "SpeseIncluse"
            ],
            "type": "string",
            "description": "Se e come l'IVA e le spese devono essere considerate nel calcolo della prima rata."
          },
          "decorrenzaPrimaRata": {
            "enum": [
              "DataDocumento",
              "FineMese",
              "DataIndicata"
            ],
            "type": "string",
            "description": "Da quando decorre il pagamento della prima rata."
          },
          "giorniAggiuntivi": {
            "type": "integer",
            "description": "Giorni extra da aggiungere ad ogni scadenza.",
            "format": "int32",
            "example": 5
          },
          "sconto": {
            "type": "number",
            "description": "Sconto riconosciuto per l'utilizzo del pagamento (percentuale).",
            "format": "double",
            "example": 2.0
          },
          "inizioScadenze": {
            "type": "integer",
            "description": "Periodicità della prima rata. Per le successive, impostare Amica.Pagamento.Periodicità.",
            "format": "int32",
            "example": 30
          },
          "periodicità": {
            "type": "integer",
            "description": "Periodicità delle rate successive alla prima. Per la prima rata, impostare Amica.Pagamento.InizioScadenze. Default impostato a 30.",
            "format": "int32",
            "example": 30
          },
          "fineMese": {
            "type": "boolean",
            "description": "Indica se le scadenze devono essere riportate a fine mese.",
            "example": false
          },
          "giorniEsatti": {
            "type": "boolean",
            "description": "Indica se il pagamento è utilizzato nel caso di 'Art. 62 prodotti alimentari (giorni esatti)'.",
            "example": false
          },
          "rate": {
            "type": "integer",
            "description": "Numero di rate.",
            "format": "int32",
            "example": 3
          },
          "note": {
            "type": "string",
            "description": "Note.",
            "nullable": true,
            "example": "Pagamento riservato ai clienti abituali"
          }
        },
        "additionalProperties": false,
        "description": "Pagamento."
      },
      "PeriodicInvoicingData": {
        "type": "object",
        "properties": {
          "da": {
            "type": "string",
            "description": "Data di inizio del periodo.",
            "format": "date-time",
            "example": "2026-01-01"
          },
          "a": {
            "type": "string",
            "description": "Data di fine del periodo.",
            "format": "date-time",
            "example": "2026-01-31"
          },
          "tipoImportazione": {
            "enum": [
              "Righe",
              "Totali",
              "AccorpaArticoli"
            ],
            "type": "string",
            "description": "Tipo di importazione."
          },
          "causaleDocumentoId": {
            "type": "integer",
            "description": "Identificativo univoco della Amica.CausaleDocumento del documento generato.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "dataDocumento": {
            "type": "string",
            "description": "Data del documento generato.",
            "format": "date-time",
            "example": "2026-01-31"
          },
          "tipoDocumento": {
            "enum": [
              "Ddt",
              "FatturaAccompagnatoria",
              "FatturaAcconto",
              "FatturaDifferita",
              "FatturaProfessionista",
              "RicevutaFiscale",
              "NotaCredito",
              "NotaDebito",
              "Scontrino",
              "OrdineCliente",
              "Preventivo",
              "DdtFornitore",
              "FatturaAccompagnatoriaFornitore",
              "FatturaDifferitaFornitore",
              "FatturaProfessionistaFornitore",
              "NotaCreditoFornitore",
              "NotaDebitoFornitore",
              "PreventivoFornitore",
              "OrdineFornitore",
              "ResoCliente",
              "FatturaAccontoFornitore",
              "FatturaProForma",
              "IntegrazioneFatturaReverseChargeInterno",
              "IntegrazioneAcquistoServiziEstero",
              "IntegrazioneAcquistoBeniIntracomunitari",
              "IntegrazioneAcquistoBeniArt17",
              "AutofatturaRegolarizzazioneFatture",
              "AutofatturaSplafonamento",
              "EstrazioneBeniDepositoIva",
              "EstrazioneBeniDepositoIvaConVersamentoIva",
              "FatturaDifferitaArt21Comma4LetteraA",
              "FatturaDifferitaArt21Comma4LetteraB",
              "CessioniBeniAmmortizzabiliEPassaggiInterni",
              "FatturaAutoconsumoOCessioniGratuite",
              "IntegrazioneFatturaReverseChargeInternoFornitore",
              "IntegrazioneAcquistoServiziEsteroFornitore",
              "IntegrazioneAcquistoBeniIntracomunitariFornitore",
              "IntegrazioneAcquistoBeniArt17Fornitore",
              "AutofatturaRegolarizzazioneFattureFornitore",
              "AutofatturaSplafonamentoFornitore",
              "EstrazioneBeniDepositoIvaFornitore",
              "EstrazioneBeniDepositoIvaConVersamentoIvaFornitore",
              "FatturaDifferitaArt21Comma4LetteraAFornitore",
              "FatturaDifferitaArt21Comma4LetteraBFornitore",
              "CessioniBeniAmmortizzabiliEPassaggiInterniFornitore",
              "FatturaAutoconsumoOCessioniGratuiteFornitore",
              "AcquistoSanMarinoConIva",
              "ComunicazioneOmessaOIrregolareFatturazione",
              "ComunicazioneOmessaOIrregolareFatturazioneFornitore"
            ],
            "type": "string",
            "description": "Tipo del documento generato."
          }
        },
        "additionalProperties": false,
        "description": "Dati di fatturazione periodica."
      },
      "Preferenze": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "ragioneSociale1": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "description": "Ragione sociale.",
            "nullable": true,
            "example": "La Mia Azienda S.r.l."
          },
          "ragioneSociale2": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "description": "Eventuale seconda riga della ragione sociale. Utile soprattutto in fase di stampa, quando si desidera spezzare una ragione sociale molto lunga su due righe distinte.",
            "nullable": true,
            "example": "Divisione Commerciale"
          },
          "partitaIva": {
            "type": "string",
            "description": "Partita IVA.",
            "nullable": true,
            "example": "IT01234567890"
          },
          "registroImprese": {
            "maxLength": 15,
            "minLength": 0,
            "type": "string",
            "description": "Numero di iscrizione al Registro Imprese.",
            "nullable": true,
            "example": "MI-1234567"
          },
          "codiceFiscale": {
            "type": "string",
            "description": "Codice fiscale.",
            "nullable": true,
            "example": "01234567890"
          },
          "codiceSia": {
            "maxLength": 10,
            "minLength": 0,
            "type": "string",
            "description": "Codice SIA.",
            "nullable": true,
            "example": "ABC12"
          },
          "codiceRea": {
            "maxLength": 10,
            "minLength": 0,
            "type": "string",
            "description": "Codice REA.",
            "nullable": true,
            "example": "MI-1234567"
          },
          "personaGiuridica": {
            "type": "boolean",
            "description": "Indica se l'organizzazione è una persona giuridica oppure no. `true` indica una persona giuridica, `false` indica una persona fisica.",
            "example": true
          },
          "dataNascita": {
            "type": "string",
            "description": "Data di nascita (persona fisica).",
            "format": "date-time",
            "nullable": true,
            "example": "1980-05-12"
          },
          "localitaNascita": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "Luogo di nascita (persona fisica).",
            "nullable": true,
            "example": "Milano"
          },
          "provinciaNascita": {
            "maxLength": 3,
            "minLength": 0,
            "type": "string",
            "description": "Provincia di nascita (persona fisica).",
            "nullable": true,
            "example": "MI"
          },
          "sesso": {
            "type": "string",
            "description": "Sesso (persona fisica).",
            "nullable": true,
            "example": "M"
          },
          "attivita": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "description": "Tipo di attività svolta dall'azienda o dalla persona fisica.",
            "nullable": true,
            "example": "Commercio al dettaglio"
          },
          "ivaEsclusa": {
            "type": "boolean",
            "description": "Indica se, in modo predefinito, i prezzi riportati sui documenti fiscali devono essere considerati al netto dell'IVA. Se `false`, l'IVA viene applicata ai prezzi quando possibile.",
            "example": false
          },
          "decimaliPrezzoUnitario": {
            "maximum": 5,
            "minimum": 1,
            "type": "integer",
            "description": "Numero di decimali ammessi nei prezzi unitari. Minimo 1, massimo 5.",
            "format": "int32",
            "example": 2
          },
          "causaleProduzioneComponentiId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.CausaleMagazzino\nIdentificativo univoco della Amica.CausaleMagazzino da usare nella produzione di componenti.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "causaleProduzioneCompostiId": {
            "type": "integer",
            "description": "Identificativo univoco della Amica.CausaleMagazzino da usare per gli articoli composti nella produzione di componenti.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "causaleMagazzinoVenditaId": {
            "type": "integer",
            "description": "Identificativo univoco della Amica.CausaleMagazzino da usare nei documenti di vendita.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "causaleMagazzinoAcquistoId": {
            "type": "integer",
            "description": "Identificativo univoco della Amica.CausaleMagazzino da usare nei documenti di acquisto.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "ricercaArticolo": {
            "$ref": "#/components/schemas/RicercaArticolo"
          },
          "dataSpeciale1": {
            "maxLength": 5,
            "minLength": 0,
            "type": "string",
            "description": "Eventuali scadenze che cadono in questa data verranno posticipate del numero di giorni indicato da Amica.Preferenze.GiorniExtraDataSpeciale1.",
            "nullable": true,
            "example": "25/12"
          },
          "dataSpeciale2": {
            "maxLength": 5,
            "minLength": 0,
            "type": "string",
            "description": "Eventuali scadenze che cadono in questa data verranno posticipate del numero di giorni indicato da Amica.Preferenze.GiorniExtraDataSpeciale2.",
            "nullable": true,
            "example": "15/08"
          },
          "giorniExtraDataSpeciale1": {
            "type": "integer",
            "description": "Numero di giorni da aggiungere a Amica.Preferenze.DataSpeciale1.",
            "format": "int32",
            "nullable": true,
            "example": 3
          },
          "giorniExtraDataSpeciale2": {
            "type": "integer",
            "description": "Numero di giorni da aggiungere a Amica.Preferenze.DataSpeciale1.",
            "format": "int32",
            "nullable": true,
            "example": 5
          },
          "pagatoManuale": {
            "type": "boolean",
            "description": "Indica se il pagamento delle scadenze viene gestito manualmente. Se `false`, lo stato del pagamento viene determinato in base alle registrazioni contabili (il modulo <a href=\"https://gestionaleamica.com/Software/ContabilitaOrdinaria\">Contabilità</a> deve essere attivo).",
            "example": false
          },
          "causaleMagazzinoMerciId": {
            "type": "integer",
            "description": "Identificativo della Amica.CausaleMagazzino predefinita nei movimenti merci.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "magazzinoMerciId": {
            "type": "integer",
            "description": "Identificativo del Amica.Magazzino predefinito nei movimenti merci.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "listinoMerciId": {
            "type": "integer",
            "description": "Identificativo del Amica.Listino predefinito nei movimenti merci.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "modalitaPagamentoMerciId": {
            "type": "integer",
            "description": "Identificativo della Amica.ModalitaPagamento predefinita nei movimenti merci.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "documentiCausaleIvaId": {
            "type": "integer",
            "description": "Identificativo della Amica.CausaleIva predefinita nei documenti fiscali.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "documentiMagazzinoId": {
            "type": "integer",
            "description": "Identificativo del Amica.Magazzino predefinito nei documenti fiscali.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "documentiListinoId": {
            "type": "integer",
            "description": "Amica.Preferenze.DocumentiListinoId predefinito nei documenti fiscali.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "eMail": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Email aziendale.",
            "nullable": true,
            "example": "info@lamiaazienda.it"
          },
          "sitoWeb": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Sito web aziendale.",
            "nullable": true,
            "example": "https://www.lamiaazienda.it"
          },
          "annoContabile": {
            "type": "integer",
            "description": "Anno contabile corrente (es. '2023').",
            "format": "int32",
            "nullable": true,
            "example": 2026
          },
          "unitàDiMisura": {
            "maxLength": 15,
            "minLength": 0,
            "type": "string",
            "description": "Unità di misura predefinita.",
            "nullable": true,
            "example": "PZ"
          },
          "causalePagamentoModelloCU": {
            "type": "string",
            "description": "Causale del modello CU (es. 'A').",
            "nullable": true,
            "example": "A"
          },
          "impostazioniSdi": {
            "$ref": "#/components/schemas/ImpostazioniSdi"
          },
          "tipoBilancio": {
            "enum": [
              "Analitico",
              "Sintentico"
            ],
            "type": "string",
            "description": "Tipo di bilancio predefinito: analitico o sintetico.",
            "example": "Analitico"
          },
          "periodoIva": {
            "enum": [
              "Mensile",
              "Trimestrale"
            ],
            "type": "string",
            "description": "Periodicità IVA: mensile o trimestrale.",
            "example": "Mensile"
          },
          "liquidazioneIva": {
            "enum": [
              "Competenza",
              "Cassa"
            ],
            "type": "string",
            "description": "Tipo di liquidazione IVA: per competenza o per cassa.",
            "example": "Competenza"
          },
          "modificaRegistrazioneContabileAllaEmissione": {
            "type": "boolean",
            "description": "Indica se si desidera modificare la registrazione contabile creata all'emissione di un documento. Si applica ad Amica20 WebApp e ad Amica 20 per Windows.",
            "example": false
          },
          "ottimizzaEmissioneOrdini": {
            "type": "boolean",
            "description": "Indica se l'ottimizzazione per l'emissione di documenti di grandi dimensioni è attiva oppure no. Si applica ad Amica20 per Windows.",
            "example": true
          },
          "aggiungiAnnoInCorsoAlNumeroDocumento": {
            "type": "boolean",
            "description": "Indica se si desidera aggiungere l'anno in corso al numero del documento (es. 1/2022). Si applica ad Amica 20 WebApp e ad Amica 20 per Windows.",
            "example": true
          },
          "consentiCambioManualeStatoDdt": {
            "type": "boolean",
            "description": "Indica se si desidera abilitare l'opzione di modifica dello stato dei DDT. Si applica ad Amica 20 WebApp e ad Amica 20 per Windows.",
            "example": false
          },
          "emailBody": {
            "maxLength": 1024,
            "minLength": 0,
            "type": "string",
            "description": "Testo del messaggio email inviato all'emissione di un documento. Il documento stesso viene allegato al messaggio. Si applica ad Amica 20 per Windows.",
            "nullable": true,
            "example": "In allegato il documento richiesto. Cordiali saluti."
          },
          "emailAutoSend": {
            "type": "boolean",
            "description": "Indica se inviare un'email all'emissione di un documento.",
            "example": false
          },
          "autoProduzione": {
            "type": "boolean",
            "description": "Indica se la produzione automatica dei composti è attiva.",
            "example": true
          },
          "codiceDestinatario": {
            "maxLength": 7,
            "minLength": 0,
            "type": "string",
            "description": "'Codice destinatario' per il sistema fiscale italiano. Utilizzato per il recapito delle fatture elettroniche italiane.",
            "nullable": true,
            "example": "0000000"
          },
          "pec": {
            "maxLength": 120,
            "minLength": 0,
            "type": "string",
            "description": "Indirizzo PEC italiano.",
            "nullable": true,
            "example": "azienda@pec.it"
          },
          "modelloVenditeNotaDebitoId": {
            "type": "integer",
            "description": "Amica.ModelloContabile predefinito per le note di debito emesse.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "modelloVenditeNotaCreditoId": {
            "type": "integer",
            "description": "Amica.ModelloContabile predefinito per le note di credito emesse.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "modelloVenditeRicevutaFiscaleId": {
            "type": "integer",
            "description": "Amica.ModelloContabile predefinito per le ricevute fiscali emesse.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "modelloVenditeFatturaProfessionistaId": {
            "type": "integer",
            "description": "Amica.ModelloContabile predefinito per le fatture professionisti emesse.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "modelloVenditeFatturaDifferitaId": {
            "type": "integer",
            "description": "Amica.ModelloContabile predefinito per le fatture differite emesse.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "modelloVenditeFatturaAccontoId": {
            "type": "integer",
            "description": "Amica.ModelloContabile predefinito per le fatture di acconto emesse.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "modelloAcquistiFatturaAccompagnatoriaId": {
            "type": "integer",
            "description": "Amica.ModelloContabile predefinito per le fatture accompagnatorie fornitori emesse.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "modelloVenditeFatturaAccompagnaoriaId": {
            "type": "integer",
            "description": "Amica.ModelloContabile predefinito per le fatture accompagnatorie emesse.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "modelloAcquistiNotaDebitoId": {
            "type": "integer",
            "description": "Amica.ModelloContabile predefinito per le note di debito fornitori emesse.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "modelloAcquistiNotaCreditoId": {
            "type": "integer",
            "description": "Amica.ModelloContabile predefinito per le note di credito emesse.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "modelloAcquistiFatturaProfessionistiId": {
            "type": "integer",
            "description": "Amica.ModelloContabile predefinito per le fatture professionisti fornitori emesse.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "modelloAcquistiFatturaDifferitaId": {
            "type": "integer",
            "description": "Amica.ModelloContabile predefinito per le fatture differite fornitori emesse.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "modelloAcquistiFatturaAccontoId": {
            "type": "integer",
            "description": "Amica.ModelloContabile predefinito per le fatture di acconto fornitori emesse.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "sedeLegale": {
            "$ref": "#/components/schemas/SedeLegale"
          },
          "sedeOperativa": {
            "$ref": "#/components/schemas/SedeOperativa"
          },
          "sedeAltra": {
            "$ref": "#/components/schemas/SedeAltra"
          }
        },
        "additionalProperties": false,
        "description": "Preferenze aziendali."
      },
      "Prestazione": {
        "required": [
          "codice",
          "nome"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "categoriaMerceologicaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Prestazione.CategoriaMerceologica.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "categoriaMerceologica": {
            "$ref": "#/components/schemas/CategoriaMerceologica"
          },
          "gruppoMerceologicoId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Prestazione.GruppoMerceologico.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "gruppoMerceologico": {
            "$ref": "#/components/schemas/GruppoMerceologico"
          },
          "causaleIvaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Prestazione.CausaleIva.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "causaleIva": {
            "$ref": "#/components/schemas/CausaleIva"
          },
          "nome": {
            "minLength": 1,
            "type": "string",
            "description": "Nome.",
            "example": "Consulenza tecnica"
          },
          "codice": {
            "maxLength": 30,
            "minLength": 0,
            "type": "string",
            "description": "Codice.",
            "example": "COD001"
          },
          "barCode": {
            "maxLength": 128,
            "minLength": 0,
            "type": "string",
            "description": "Codice a barre.",
            "nullable": true,
            "example": "8001234567890"
          },
          "stato": {
            "type": "boolean",
            "description": "Indica se è attiva o meno.",
            "example": true
          },
          "note": {
            "type": "string",
            "description": "Note.",
            "nullable": true,
            "example": "Prestazione soggetta a ritenuta d'acconto."
          }
        },
        "additionalProperties": false,
        "description": "Erogazione di una prestazione."
      },
      "Prezzo": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "listinoId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Listino.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "articoloId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Prezzo.Articolo. In alternativa, usare Amica.Prezzo.PrestazioneId.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "articolo": {
            "$ref": "#/components/schemas/Articolo"
          },
          "prestazioneId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Prezzo.Prestazione. In alternativa, usare Amica.Prezzo.ArticoloId.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "prestazione": {
            "$ref": "#/components/schemas/Articolo"
          },
          "importo": {
            "type": "number",
            "description": "Importo (prezzo).",
            "format": "double",
            "example": 12.50
          },
          "sconto1": {
            "type": "number",
            "description": "Primo sconto percentuale, applicato sul prezzo del bene o della prestazione.",
            "format": "double",
            "example": 10.00
          },
          "sconto2": {
            "type": "number",
            "description": "Secondo sconto percentuale, applicato a seguito dell'applicazione di Amica.Prezzo.Sconto1",
            "format": "double",
            "example": 5.00
          },
          "sconto3": {
            "type": "number",
            "description": "Terzo sconto percentuale, applicato a seguito dell'applicazione di Amica.Prezzo.Sconto2",
            "format": "double",
            "example": 0.00
          },
          "sconto4": {
            "type": "number",
            "description": "Quarto sconto percentuale, applicato a seguito dell'applicazione di Amica.Prezzo.Sconto3",
            "format": "double",
            "example": 0.00
          },
          "ricarico": {
            "type": "number",
            "description": "Ricarico (percentuale) da applicare sul costo del prodotto (o della prestazione). Se utilizzato, Amica.Prezzo.Importo viene ignorato.",
            "format": "double",
            "example": 20.00
          },
          "provvigioneAgente": {
            "type": "number",
            "description": "Provvigione corrisposta all'agente, in percentuale.",
            "format": "double",
            "nullable": true,
            "example": 5.00
          },
          "provvigioneCapoArea": {
            "type": "number",
            "description": "Provvigione corrisposta al capo area, in percentuale.",
            "format": "double",
            "nullable": true,
            "example": 2.50
          }
        },
        "additionalProperties": false,
        "description": "Prezzo di listino."
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": { }
      },
      "Produttore": {
        "required": [
          "nome"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "nome": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "description": "Nome.",
            "example": "Acme S.p.A."
          }
        },
        "additionalProperties": false,
        "description": "Produttore."
      },
      "ProgressivoInvio": {
        "required": [
          "progressivo"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "documentoId": {
            "type": "integer",
            "description": "Riferimento a Amica.Documento.",
            "format": "int32",
            "example": 1
          },
          "progressivo": {
            "maxLength": 10,
            "minLength": 0,
            "type": "string",
            "description": "Numero progressivo di invio al Sistema di Interscambio (SdI).",
            "example": "00001"
          }
        },
        "additionalProperties": false,
        "description": "Numero progressivo di invio al Sistema di Interscambio (SdI)."
      },
      "RegistrazioneContabile": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "data": {
            "type": "string",
            "description": "Data della registrazione contabile.",
            "format": "date-time",
            "example": "2026-01-15"
          },
          "dataCompetenza": {
            "type": "string",
            "description": "Data di competenza.",
            "format": "date-time",
            "nullable": true,
            "example": "2026-01-15"
          },
          "numero": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "description": "Numero della registrazione contabile.",
            "format": "int32",
            "example": 42
          },
          "tipoRegistrazione": {
            "enum": [
              "Acquisto",
              "Vendita",
              "Contabile"
            ],
            "type": "string",
            "description": "Tipo di registrazione."
          },
          "segnoIva": {
            "enum": [
              "Positivo",
              "Negativo"
            ],
            "type": "string",
            "description": "Positività o negatività dell'IVA."
          },
          "tipoOperazione": {
            "enum": [
              "Apertura",
              "Chiusura",
              "Normale"
            ],
            "type": "string",
            "description": "Tipo di operazione contabile."
          },
          "registroIvaId": {
            "type": "integer",
            "description": "Identificativo univoco di `RegistroIva`.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "anagraficaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Anagrafica.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "pagamentoId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Pagamento.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "documentoId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.RegistrazioneContabile.Documento.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "documento": {
            "$ref": "#/components/schemas/Documento"
          },
          "dataDocumento": {
            "type": "string",
            "description": "Data del documento di riferimento.",
            "format": "date-time",
            "nullable": true,
            "example": "2026-01-15"
          },
          "documentoNumeroParteTesto": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "La parte alfanumerica del numero documento, se presente (es. \"bis\").",
            "nullable": true,
            "example": "bis"
          },
          "documentoNumeroParteNumerica": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "description": "La parte numerica del numero documento (es. \"99\").",
            "format": "int32",
            "nullable": true,
            "example": 99
          },
          "documentoNumero": {
            "type": "string",
            "description": "Numero documento completo, es. \"99/bis\". Il documento deve essere già stato salvato sul backend.",
            "nullable": true,
            "example": "99/bis"
          },
          "protocollo": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "description": "Numero di protocollo.",
            "format": "int32",
            "nullable": true,
            "example": 42
          },
          "descrizione": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "description": "Descrizione.",
            "nullable": true,
            "example": "Fattura di acquisto materiali"
          },
          "note": {
            "type": "string",
            "description": "Note.",
            "nullable": true,
            "example": "Registrazione da verificare"
          },
          "righe": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RegistrazioneContabileRiga"
            },
            "description": "Righe della registrazione contabile.",
            "nullable": true
          },
          "castellettoIva": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CastellettoIva"
            },
            "description": "Importo IVA da versare.",
            "nullable": true
          },
          "scadenze": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Scadenza"
            },
            "description": "Scadenze.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Registrazione contabile."
      },
      "RegistrazioneContabileRiga": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "registrazioneContabileId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.RegistrazioneContabile.",
            "format": "int32",
            "example": 1
          },
          "scadenzaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Scadenza.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "causaleContabileId": {
            "type": "integer",
            "description": "Identificativo univoco di `CausaleContabile`.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "emissioneId": {
            "type": "integer",
            "description": "Identificativo del Amica.Documento di riferimento.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "tipoConto": {
            "enum": [
              "Contabile",
              "PartitarioClienti",
              "PartitarioFornitori",
              "Bancario"
            ],
            "type": "string",
            "description": "Tipo di conto (piano dei conti)."
          },
          "sezioneConto": {
            "enum": [
              "Attività",
              "Passività",
              "Costi",
              "Ricavi",
              "Ordine"
            ],
            "type": "string",
            "description": "Sezione del piano dei conti."
          },
          "partitaAnno": {
            "type": "integer",
            "description": "Anno della partita aperta.",
            "format": "int32",
            "example": 2026
          },
          "partitaNumero": {
            "type": "integer",
            "description": "Numero della partita aperta.",
            "format": "int32",
            "example": 42
          },
          "conto": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di conto (ad es. \"100.20\").",
            "nullable": true,
            "example": "100.20"
          },
          "contoRaw": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di conto, in formato grezzo (ad es. \"  100   20\").",
            "nullable": true,
            "example": "  100   20"
          },
          "descrizioneConto": {
            "maxLength": 121,
            "minLength": 0,
            "type": "string",
            "description": "Descrizione.",
            "nullable": true,
            "example": "Merci c/vendite"
          },
          "dare": {
            "type": "number",
            "description": "Importo in dare.",
            "format": "double",
            "example": 1250.00
          },
          "avere": {
            "type": "number",
            "description": "Importo in avere.",
            "format": "double",
            "example": 1250.00
          },
          "note": {
            "type": "string",
            "description": "Note.",
            "nullable": true,
            "example": "Registrazione fattura n. 42"
          }
        },
        "additionalProperties": false,
        "description": "Riga di registrazione contabile."
      },
      "RegistrazioneContabileValidationResult": {
        "type": "object",
        "properties": {
          "registrazioneId": {
            "type": "integer",
            "description": "Identificativo univoco della Amica.RegistrazioneContabile.",
            "format": "int32",
            "example": 1
          },
          "data": {
            "type": "string",
            "description": "Data della registrazione contabile.",
            "format": "date-time",
            "example": "2026-06-05"
          },
          "numero": {
            "type": "integer",
            "description": "Numero della registrazione contabile.",
            "format": "int32",
            "example": 42
          },
          "errori": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Errori di validazione; vuoto se non ne sono stati trovati.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contiene l'esito della validazione di una registrazione contabile (Amica.RegistrazioneContabile)."
      },
      "Reparto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "causaleIvaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Reparto.CausaleIva.",
            "format": "int32",
            "example": 1
          },
          "causaleIva": {
            "$ref": "#/components/schemas/CausaleIva"
          },
          "numero": {
            "type": "integer",
            "description": "Numero del reparto.",
            "format": "int32",
            "example": 1
          },
          "prezzo": {
            "type": "number",
            "description": "Prezzo associato al reparto.",
            "format": "double",
            "example": 9.90
          },
          "sconto": {
            "type": "number",
            "description": "Sconto riconosciuto all'utilizzo del reparto (percentuale).",
            "format": "double",
            "example": 10
          }
        },
        "additionalProperties": false,
        "description": "Reparto."
      },
      "ResoImportData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Identificativo del documento da importare.",
            "nullable": true
          },
          "soloRighe": {
            "type": "boolean",
            "description": "Importa solo le righe del documento.",
            "example": true
          }
        },
        "additionalProperties": false,
        "description": "Dati di importazione del reso."
      },
      "RicercaArticolo": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "venditeCampo1": {
            "type": "string",
            "description": "Campo di ricerca preferito per gli articoli in vendita.",
            "nullable": true,
            "example": "Codice"
          },
          "venditeCampo2": {
            "type": "string",
            "description": "Secondo campo di ricerca per gli articoli in vendita.",
            "nullable": true,
            "example": "Descrizione"
          },
          "venditeCampo3": {
            "type": "string",
            "description": "Terzo campo di ricerca per gli articoli in vendita.",
            "nullable": true,
            "example": "CodiceABarre"
          },
          "venditeCampo4": {
            "type": "string",
            "description": "Quarto campo di ricerca per gli articoli in vendita.",
            "nullable": true,
            "example": "CodiceFornitore"
          },
          "acquistiCampo1": {
            "type": "string",
            "description": "Campo di ricerca preferito per gli articoli in acquisto.",
            "nullable": true,
            "example": "Codice"
          },
          "acquistiCampo2": {
            "type": "string",
            "description": "Secondo campo di ricerca per gli articoli in acquisto.",
            "nullable": true,
            "example": "Descrizione"
          },
          "acquistiCampo3": {
            "type": "string",
            "description": "Terzo campo di ricerca per gli articoli in acquisto.",
            "nullable": true,
            "example": "CodiceABarre"
          },
          "acquistiCampo4": {
            "type": "string",
            "description": "Quarto campo di ricerca per gli articoli in acquisto.",
            "nullable": true,
            "example": "CodiceFornitore"
          }
        },
        "additionalProperties": false,
        "description": "Opzioni di ricerca degli articoli."
      },
      "RisorsaFinanziaria": {
        "required": [
          "nome"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "nome": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "description": "Nome o descrizione.",
            "example": "Conto Intesa Sanpaolo"
          },
          "indirizzo": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "description": "Indirizzo.",
            "nullable": true,
            "example": "Via Roma 1"
          },
          "località": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "description": "Città, comune o altra denominazione di località.",
            "nullable": true,
            "example": "Milano"
          },
          "cap": {
            "maxLength": 8,
            "minLength": 0,
            "type": "string",
            "description": "CAP o codice di zona.",
            "nullable": true,
            "example": "20121"
          },
          "provincia": {
            "maxLength": 3,
            "minLength": 0,
            "type": "string",
            "description": "Provincia o denominazione dell'area.",
            "nullable": true,
            "example": "MI"
          },
          "telefono1": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di telefono principale.",
            "nullable": true,
            "example": "02 1234567"
          },
          "telefono2": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di telefono secondario.",
            "nullable": true,
            "example": "02 7654321"
          },
          "fax": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di fax.",
            "nullable": true,
            "example": "02 1234568"
          },
          "contatto1Nome": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "description": "Nome del contatto.",
            "nullable": true,
            "example": "Mario Rossi"
          },
          "contatto1Incarico": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "Qualifica o ruolo del contatto.",
            "nullable": true,
            "example": "Direttore di filiale"
          },
          "contatto1Telefono1": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Telefono principale del contatto.",
            "nullable": true,
            "example": "02 1234567"
          },
          "contatto1Telefono2": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Telefono secondario del contatto.",
            "nullable": true,
            "example": "340 1234567"
          },
          "contatto1EMail": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Email del contatto.",
            "nullable": true,
            "example": "mario.rossi@example.com"
          },
          "contatto2Nome": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "description": "Nome del contatto secondario.",
            "nullable": true,
            "example": "Luigi Bianchi"
          },
          "contatto2Incarico": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "Qualifica o ruolo del contatto secondario.",
            "nullable": true,
            "example": "Responsabile clienti"
          },
          "contatto2Telefono1": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di telefono del contatto secondario.",
            "nullable": true,
            "example": "02 7654321"
          },
          "contatto2Telefono2": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di telefono alternativo del contatto secondario.",
            "nullable": true,
            "example": "340 7654321"
          },
          "contatto2EMail": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Email del contatto secondario.",
            "nullable": true,
            "example": "luigi.bianchi@example.com"
          },
          "codiceAbi": {
            "maxLength": 10,
            "minLength": 0,
            "type": "string",
            "description": "Codice ABI.",
            "nullable": true,
            "example": "05428"
          },
          "codiceCab": {
            "maxLength": 10,
            "minLength": 0,
            "type": "string",
            "description": "Codice CAB.",
            "nullable": true,
            "example": "11101"
          },
          "contoCorrente": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Numero di conto corrente.",
            "nullable": true,
            "example": "000000123456"
          },
          "codiceCin": {
            "maxLength": 1,
            "minLength": 0,
            "type": "string",
            "description": "Codice CIN.",
            "nullable": true,
            "example": "X"
          },
          "codiceCinEur": {
            "maxLength": 2,
            "minLength": 0,
            "type": "string",
            "description": "CIN EUR.",
            "nullable": true,
            "example": "60"
          },
          "codiceCinPaese": {
            "maxLength": 2,
            "minLength": 0,
            "type": "string",
            "description": "Codice CIN della nazione.",
            "nullable": true,
            "example": "IT"
          },
          "codiceSwift": {
            "maxLength": 15,
            "minLength": 0,
            "type": "string",
            "description": "Codice SWIFT.",
            "nullable": true,
            "example": "BCITITMM"
          },
          "codiceIban": {
            "maxLength": 34,
            "minLength": 0,
            "type": "string",
            "description": "Codice IBAN.",
            "nullable": true,
            "example": "IT60X0542811101000000123456"
          },
          "web": {
            "type": "string",
            "description": "Sito web.",
            "nullable": true,
            "example": "https://www.example.com"
          },
          "tipologia": {
            "enum": [
              "Banca",
              "Cassa",
              "CartaCredito",
              "Altro"
            ],
            "type": "string",
            "description": "Tipologia di risorsa finanziaria.",
            "example": "Banca"
          }
        },
        "additionalProperties": false,
        "description": "Risorsa finanziaria."
      },
      "Scadenza": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "registrazioneContabileId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Scadenza.RegistrazioneContabile.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "registrazioneContabile": {
            "$ref": "#/components/schemas/RegistrazioneContabile"
          },
          "anagraficaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Scadenza.Anagrafica.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "anagrafica": {
            "$ref": "#/components/schemas/Anagrafica"
          },
          "documentoId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Scadenza.Documento.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "documento": {
            "$ref": "#/components/schemas/Documento"
          },
          "modalitaPagamentoId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Scadenza.ModalitaPagamento.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "modalitaPagamento": {
            "$ref": "#/components/schemas/ModalitaPagamento"
          },
          "pagataManualmente": {
            "type": "boolean",
            "description": "Indica se la scadenza è stata impostata manualmente come 'pagata'.",
            "example": false
          },
          "pagata": {
            "type": "boolean",
            "description": "Indica se la scadenza è pagata.",
            "readOnly": true,
            "example": false
          },
          "data": {
            "type": "string",
            "description": "Data di scadenza.",
            "format": "date-time",
            "example": "2026-01-15"
          },
          "dataPagamento": {
            "type": "string",
            "description": "Data di pagamento.",
            "format": "date-time",
            "nullable": true,
            "example": "2026-01-15"
          },
          "dataDocumento": {
            "type": "string",
            "description": "Data del documento fiscale.",
            "format": "date-time",
            "nullable": true,
            "example": "2026-01-15"
          },
          "importo": {
            "type": "number",
            "description": "Importo della scadenza.",
            "format": "double",
            "example": 1250.00
          },
          "partitaAnno": {
            "type": "integer",
            "description": "Anno della partita aperta.",
            "format": "int32",
            "nullable": true,
            "example": 2026
          },
          "partitaNumero": {
            "type": "integer",
            "description": "Numero della partita aperta.",
            "format": "int32",
            "nullable": true,
            "example": 42
          },
          "note": {
            "type": "string",
            "description": "Note.",
            "nullable": true,
            "example": "Scadenza prorogata su accordo con il cliente"
          },
          "descrizione": {
            "type": "string",
            "description": "Descrizione.",
            "nullable": true,
            "example": "Prima rata fattura n. 99"
          },
          "documentoNumeroParteNumerica": {
            "type": "integer",
            "description": "Numero documento, la parte numerica (es. 99).",
            "format": "int32",
            "nullable": true,
            "example": 99
          },
          "documentoNumeroParteTesto": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "Numero documento, la parte alfanumerica (es. \"bis\")",
            "nullable": true,
            "example": "bis"
          },
          "documentoNumero": {
            "type": "string",
            "description": "Numero documento, es. \"99/bis\". Il documento deve essere già salvato sul sistema.",
            "nullable": true,
            "example": "99/bis"
          },
          "tipoScadenza": {
            "enum": [
              "IncassoCliente",
              "PagamentoCliente",
              "IncassoFornitore",
              "PagamentoFornitore"
            ],
            "type": "string",
            "description": "Tipo di scadenza."
          },
          "importoPagato": {
            "type": "number",
            "description": "L'importo già pagato della scadenza.",
            "format": "double",
            "example": 1250.00
          },
          "importoDaPagare": {
            "type": "number",
            "description": "Rimanenza che risulta ancora da pagare.",
            "format": "double",
            "readOnly": true,
            "example": 1250.00
          }
        },
        "additionalProperties": false,
        "description": "Scadenza di pagamento."
      },
      "SchedaCliente": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "anagraficaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Anagrafica.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "agenteId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Anagrafica dell'agente.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "agente": {
            "$ref": "#/components/schemas/Anagrafica"
          },
          "pagamentoId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.SchedaCliente.Pagamento.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "pagamento": {
            "$ref": "#/components/schemas/Pagamento"
          },
          "listinoId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.SchedaCliente.Listino.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "listino": {
            "$ref": "#/components/schemas/Listino"
          },
          "categoriaAnagraficaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.SchedaCliente.CategoriaAnagrafica.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "categoriaAnagrafica": {
            "$ref": "#/components/schemas/CategoriaAnagrafica"
          },
          "causaleIvaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.SchedaCliente.CausaleIva.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "causaleIva": {
            "$ref": "#/components/schemas/CausaleIva"
          },
          "fido": {
            "type": "number",
            "description": "Fido concesso al cliente.",
            "format": "double",
            "example": 5000.00
          },
          "sconto": {
            "type": "number",
            "description": "Sconto riservato al cliente (percentuale).",
            "format": "double",
            "example": 10.00
          },
          "fatturatoAnnoCorrente": {
            "type": "number",
            "description": "Fatturato realizzato nell'anno corrente.",
            "format": "double",
            "example": 1250.00
          },
          "numeroFattureAnnoCorrente": {
            "type": "integer",
            "description": "Numero di fatture emesse nell'anno corrente.",
            "format": "int32",
            "example": 12
          },
          "insolutiAnnoCorrente": {
            "type": "number",
            "description": "Importo insoluto nell'anno corrente.",
            "format": "double",
            "example": 1250.00
          },
          "numeroInsolutiAnnoCorrente": {
            "type": "integer",
            "description": "Numero di insoluti nell'anno corrente.",
            "format": "int32",
            "example": 2
          },
          "fatturatoAnnoPrecedente": {
            "type": "number",
            "description": "Fatturato realizzato nell'anno precedente.",
            "format": "double",
            "example": 1250.00
          },
          "numeroFattureAnnoPrecedente": {
            "type": "integer",
            "description": "Numero di fatture emesse nell'anno precedente.",
            "format": "int32",
            "example": 12
          },
          "insolutiAnnoPrecedente": {
            "type": "number",
            "description": "Importo insoluto nell'anno precedente.",
            "format": "double",
            "example": 1250.00
          },
          "numeroInsolutiAnnoPrecedente": {
            "type": "integer",
            "description": "Numero di insoluti verificatisi nell'anno precedente.",
            "format": "int32",
            "example": 2
          },
          "dataUltimaFattura": {
            "type": "string",
            "description": "Data dell'ultima fattura.",
            "format": "date-time",
            "nullable": true,
            "example": "2025-01-15"
          },
          "dataUltimoPagamento": {
            "type": "string",
            "description": "Data dell'ultimo pagamento.",
            "format": "date-time",
            "nullable": true,
            "example": "2025-01-15"
          },
          "dataUltimoInsoluto": {
            "type": "string",
            "description": "Data dell'ultimo insoluto.",
            "format": "date-time",
            "nullable": true,
            "example": "2025-01-15"
          },
          "contoRaw": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di conto, in formato grezzo (es. \"  100   20\"). Sono ammessi fino a cinque livelli.",
            "nullable": true,
            "example": "  100   20"
          },
          "conto": {
            "type": "string",
            "description": "Numero di conto, in formato leggibile (es. \"100.20\").",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Impostazioni e informazioni di vendita di un'Amica.Anagrafica."
      },
      "SchedaFornitore": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "anagraficaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Anagrafica.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "pagamentoId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.SchedaFornitore.Pagamento.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "pagamento": {
            "$ref": "#/components/schemas/Pagamento"
          },
          "listinoId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.SchedaFornitore.Listino.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "listino": {
            "$ref": "#/components/schemas/Listino"
          },
          "capoAreaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.SchedaFornitore.CapoArea.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "capoArea": {
            "$ref": "#/components/schemas/Anagrafica"
          },
          "categoriaAnagraficaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.SchedaFornitore.CategoriaAnagrafica.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "categoriaAnagrafica": {
            "$ref": "#/components/schemas/CategoriaAnagrafica"
          },
          "causaleIvaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.SchedaFornitore.CausaleIva.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "causaleIva": {
            "$ref": "#/components/schemas/CausaleIva"
          },
          "fatturatoAnnoCorrente": {
            "type": "number",
            "description": "Fatturato realizzato nell'anno corrente.",
            "format": "double",
            "example": 1250.00
          },
          "numeroFattureAnnoCorrente": {
            "type": "integer",
            "description": "Numero di fatture ricevute nell'anno corrente.",
            "format": "int32",
            "example": 12
          },
          "insolutiAnnoCorrente": {
            "type": "number",
            "description": "Importo insoluto nell'anno corrente.",
            "format": "double",
            "example": 1250.00
          },
          "numeroInsolutiAnnoCorrente": {
            "type": "integer",
            "description": "Numero di insoluti nell'anno corrente.",
            "format": "int32",
            "example": 2
          },
          "fatturatoAnnoPrecedente": {
            "type": "number",
            "description": "Fatturato realizzato nell'anno precedente.",
            "format": "double",
            "example": 1250.00
          },
          "numeroFattureAnnoPrecedente": {
            "type": "integer",
            "description": "Numero di fatture emesse nell'anno precedente.",
            "format": "int32",
            "example": 12
          },
          "insolutiAnnoPrecedente": {
            "type": "number",
            "description": "Importo insoluto nell'anno precedente.",
            "format": "double",
            "example": 1250.00
          },
          "numeroInsolutiAnnoPrecedente": {
            "type": "integer",
            "description": "Numero di insoluti verificatisi nell'anno precedente.",
            "format": "int32",
            "example": 2
          },
          "dataUltimaFattura": {
            "type": "string",
            "description": "Data dell'ultima fattura.",
            "format": "date-time",
            "nullable": true,
            "example": "2025-01-15"
          },
          "dataUltimoPagamento": {
            "type": "string",
            "description": "Data dell'ultimo pagamento.",
            "format": "date-time",
            "nullable": true,
            "example": "2025-01-15"
          },
          "dataUltimoInsoluto": {
            "type": "string",
            "description": "Data dell'ultimo insoluto.",
            "format": "date-time",
            "nullable": true,
            "example": "2025-01-15"
          },
          "contoRaw": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di conto, in formato grezzo (es. \"  100   20\"). Sono ammessi fino a cinque livelli.",
            "nullable": true,
            "example": "  100   20"
          },
          "conto": {
            "type": "string",
            "description": "Numero di conto, in formato leggibile (es. \"100.20\").",
            "nullable": true,
            "readOnly": true
          },
          "iscrizioneRuolo": {
            "maxLength": 12,
            "minLength": 0,
            "type": "string",
            "description": "Numero di iscrizione a ruolo.",
            "nullable": true,
            "example": "123456"
          },
          "enasarco": {
            "maxLength": 12,
            "minLength": 0,
            "type": "string",
            "description": "Numero di registrazione Enasarco.",
            "nullable": true,
            "example": "123456"
          }
        },
        "additionalProperties": false,
        "description": "Impostazioni e informazioni di acquisto di un'Amica.Anagrafica."
      },
      "SedeAltra": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "indirizzo": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "description": "Indirizzo.",
            "nullable": true,
            "example": "Via Napoli 5"
          },
          "località": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "Città, comune o altro nome di località.",
            "nullable": true,
            "example": "Napoli"
          },
          "cap": {
            "maxLength": 8,
            "minLength": 0,
            "type": "string",
            "description": "CAP o codice di zona.",
            "nullable": true,
            "example": "80100"
          },
          "provincia": {
            "maxLength": 3,
            "minLength": 0,
            "type": "string",
            "description": "Provincia o nome dell'area.",
            "nullable": true,
            "example": "NA"
          },
          "telefono1": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di telefono principale.",
            "nullable": true,
            "example": "081 1234567"
          },
          "telefono2": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di telefono secondario.",
            "nullable": true,
            "example": "081 7654321"
          },
          "fax": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di fax.",
            "nullable": true,
            "example": "081 1234568"
          }
        },
        "additionalProperties": false,
        "description": "Altra sede."
      },
      "SedeLegale": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "indirizzo": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "description": "Indirizzo.",
            "nullable": true,
            "example": "Via Roma 1"
          },
          "località": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "Città, comune o altro nome di località.",
            "nullable": true,
            "example": "Milano"
          },
          "cap": {
            "maxLength": 8,
            "minLength": 0,
            "type": "string",
            "description": "CAP o codice di zona.",
            "nullable": true,
            "example": "20100"
          },
          "provincia": {
            "maxLength": 3,
            "minLength": 0,
            "type": "string",
            "description": "Provincia o nome dell'area.",
            "nullable": true,
            "example": "MI"
          },
          "telefono1": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di telefono principale.",
            "nullable": true,
            "example": "02 1234567"
          },
          "telefono2": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di telefono secondario.",
            "nullable": true,
            "example": "02 7654321"
          },
          "fax": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di fax.",
            "nullable": true,
            "example": "02 1234568"
          }
        },
        "additionalProperties": false,
        "description": "Sede legale."
      },
      "SedeOperativa": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "indirizzo": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "description": "Indirizzo.",
            "nullable": true,
            "example": "Via Torino 10"
          },
          "località": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "Città, comune o altro nome di località.",
            "nullable": true,
            "example": "Torino"
          },
          "cap": {
            "maxLength": 8,
            "minLength": 0,
            "type": "string",
            "description": "CAP o codice di zona.",
            "nullable": true,
            "example": "10100"
          },
          "provincia": {
            "maxLength": 3,
            "minLength": 0,
            "type": "string",
            "description": "Provincia o nome dell'area.",
            "nullable": true,
            "example": "TO"
          },
          "telefono1": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di telefono principale.",
            "nullable": true,
            "example": "011 1234567"
          },
          "telefono2": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di telefono secondario.",
            "nullable": true,
            "example": "011 7654321"
          },
          "fax": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Numero di fax.",
            "nullable": true,
            "example": "011 1234568"
          }
        },
        "additionalProperties": false,
        "description": "Sede operativa."
      },
      "Spesa": {
        "required": [
          "nome"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "causaleIvaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Spesa.CausaleIva.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "causaleIva": {
            "$ref": "#/components/schemas/CausaleIva"
          },
          "nome": {
            "maxLength": 30,
            "minLength": 0,
            "type": "string",
            "description": "Nome.",
            "example": "Spese di trasporto"
          },
          "importo": {
            "type": "number",
            "description": "Importo.",
            "format": "double",
            "example": 12.50
          }
        },
        "additionalProperties": false,
        "description": "Spesa."
      },
      "SpesaDocumento": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "documentoId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.Documento.",
            "format": "int32",
            "example": 1
          },
          "spesaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.SpesaDocumento.Spesa.",
            "format": "int32",
            "example": 1
          },
          "spesa": {
            "$ref": "#/components/schemas/Spesa"
          },
          "causaleIvaId": {
            "type": "integer",
            "description": "Identificativo univoco di Amica.SpesaDocumento.CausaleIva.",
            "format": "int32",
            "example": 1
          },
          "causaleIva": {
            "$ref": "#/components/schemas/CausaleIva"
          },
          "importo": {
            "type": "number",
            "description": "Importo.",
            "format": "double",
            "example": 12.50
          },
          "pagamento": {
            "type": "boolean",
            "description": "Indica se è un pagamento o meno.",
            "example": false
          }
        },
        "additionalProperties": false,
        "description": "Spesa di documento."
      },
      "Taglia": {
        "required": [
          "nome"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "nome": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "Nome.",
            "example": "Taglia M"
          },
          "taglia1": {
            "maxLength": 5,
            "minLength": 0,
            "type": "string",
            "description": "Identificativo taglia #1 (es. 'XL').",
            "nullable": true,
            "example": "XL"
          },
          "taglia2": {
            "maxLength": 5,
            "minLength": 0,
            "type": "string",
            "description": "Identificativo taglia #2.",
            "nullable": true,
            "example": "L"
          },
          "taglia3": {
            "maxLength": 5,
            "minLength": 0,
            "type": "string",
            "description": "Identificativo taglia #3.",
            "nullable": true,
            "example": "M"
          },
          "taglia4": {
            "maxLength": 5,
            "minLength": 0,
            "type": "string",
            "description": "Identificativo taglia #4.",
            "nullable": true,
            "example": "S"
          },
          "taglia5": {
            "maxLength": 5,
            "minLength": 0,
            "type": "string",
            "description": "Identificativo taglia #5.",
            "nullable": true,
            "example": "XS"
          },
          "taglia6": {
            "maxLength": 5,
            "minLength": 0,
            "type": "string",
            "description": "Identificativo taglia #6.",
            "nullable": true,
            "example": "38"
          },
          "taglia7": {
            "maxLength": 5,
            "minLength": 0,
            "type": "string",
            "description": "Identificativo taglia #7.",
            "nullable": true,
            "example": "40"
          },
          "taglia8": {
            "maxLength": 5,
            "minLength": 0,
            "type": "string",
            "description": "Identificativo taglia #8.",
            "nullable": true,
            "example": "42"
          },
          "taglia9": {
            "maxLength": 5,
            "minLength": 0,
            "type": "string",
            "description": "Identificativo taglia #9.",
            "nullable": true,
            "example": "44"
          },
          "taglia10": {
            "maxLength": 5,
            "minLength": 0,
            "type": "string",
            "description": "Identificativo taglia #10.",
            "nullable": true,
            "example": "46"
          },
          "taglia11": {
            "maxLength": 5,
            "minLength": 0,
            "type": "string",
            "description": "Identificativo taglia #11.",
            "nullable": true,
            "example": "48"
          },
          "taglia12": {
            "maxLength": 5,
            "minLength": 0,
            "type": "string",
            "description": "Identificativo taglia #12.",
            "nullable": true,
            "example": "50"
          },
          "taglia13": {
            "maxLength": 5,
            "minLength": 0,
            "type": "string",
            "description": "Identificativo taglia #13.",
            "nullable": true,
            "example": "52"
          },
          "taglia14": {
            "maxLength": 5,
            "minLength": 0,
            "type": "string",
            "description": "Identificativo taglia #14.",
            "nullable": true,
            "example": "54"
          },
          "taglia15": {
            "maxLength": 5,
            "minLength": 0,
            "type": "string",
            "description": "Identificativo taglia #15.",
            "nullable": true,
            "example": "56"
          },
          "taglia16": {
            "maxLength": 5,
            "minLength": 0,
            "type": "string",
            "description": "Identificativo taglia #16.",
            "nullable": true,
            "example": "58"
          }
        },
        "additionalProperties": false,
        "description": "Taglia."
      },
      "Valuta": {
        "required": [
          "nome",
          "sigla"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Identificativo univoco.",
            "format": "int32",
            "example": 1
          },
          "concurrencyToken": {
            "type": "integer",
            "description": "Il token di concorrenza implementa il controllo di concorrenza ottimistica: a ogni operazione di aggiornamento o cancellazione il valore del token sul database viene confrontato con quello sull'entità. Se i valori coincidono, l'operazione viene eseguita; se differiscono, si assume che un altro utente abbia effettuato una scrittura nel frattempo e l'aggiornamento viene rifiutato.",
            "format": "int32",
            "example": 12345
          },
          "nome": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "Nome.",
            "example": "Euro"
          },
          "sigla": {
            "maxLength": 3,
            "minLength": 0,
            "type": "string",
            "description": "Sigla (es. \"EUR\").",
            "example": "EUR"
          },
          "cambio": {
            "type": "number",
            "description": "Tasso di cambio rispetto all'Euro.",
            "format": "double",
            "example": 1.00
          },
          "predefinita": {
            "type": "boolean",
            "description": "Indica se questa è la valuta predefinita o meno.",
            "example": true
          }
        },
        "additionalProperties": false,
        "description": "Valuta."
      }
    },
    "securitySchemes": {
      "oauth2": {
        "type": "oauth2",
        "description": "Autenticazione OAuth 2.0 con flusso **Authorization Code con PKCE**, consigliato per le applicazioni che operano per conto di un utente e unico flusso disponibile per le app pubblicate sul marketplace. Registra la tua applicazione sull'[App Store di Amica](https://apps.amica20.it) per ottenere le credenziali client. L'access token va inviato nell'header `Authorization: Bearer <token>`.",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://auth.amica20.it/connect/authorize",
            "tokenUrl": "https://auth.amica20.it/connect/token",
            "scopes": {
              "read": "Accesso in lettura alle risorse",
              "write": "Accesso in scrittura alle risorse",
              "comune": "Anagrafiche e tabelle di base comuni",
              "magazzino": "Articoli, listini, giacenze e movimenti di magazzino",
              "documenti": "Documenti commerciali (ordini, DDT, preventivi, fatture, note di credito, ...) e fatturazione elettronica",
              "contabilita": "Scadenze (altre risorse contabili in arrivo)"
            }
          }
        }
      },
      "oauth2ClientCredentials": {
        "type": "oauth2",
        "description": "Autenticazione OAuth 2.0 con flusso **Client Credentials**, per integrazioni server-to-server senza utente interattivo. Disponibile **solo per le app private**, non per quelle pubblicate sul marketplace. L'app è legata alla singola azienda dell'utente che la registra, di cui il token riceve automaticamente il contesto; per servire più aziende usa invece Authorization Code.",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "https://auth.amica20.it/connect/token",
            "scopes": {
              "read": "Accesso in lettura alle risorse",
              "write": "Accesso in scrittura alle risorse",
              "comune": "Anagrafiche e tabelle di base comuni",
              "magazzino": "Articoli, listini, giacenze e movimenti di magazzino",
              "documenti": "Documenti commerciali (ordini, DDT, preventivi, fatture, note di credito, ...) e fatturazione elettronica",
              "contabilita": "Scadenze (altre risorse contabili in arrivo)"
            }
          }
        }
      },
      "bearer": {
        "type": "http",
        "description": "Token JWT Bearer. Incolla qui un access token valido per provare gli endpoint dalla API Reference.",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "security": [
    {
      "oauth2": [ ]
    },
    {
      "oauth2ClientCredentials": [ ]
    },
    {
      "bearer": [ ]
    }
  ],
  "tags": [
    {
      "name": "Anagrafica",
      "description": "Gestisce le **anagrafiche** dell'azienda: clienti, fornitori, agenti e altri soggetti. Ogni anagrafica raccoglie i dati identificativi (ragione sociale, partita IVA, codice fiscale), gli indirizzi e le condizioni commerciali predefinite.\n\nIl tipo di anagrafica (cliente, fornitore, ...) è determinato dal parametro `TipoAnagrafica` usato in fase di creazione di una nuova istanza (`GET /new`). Richiede lo scope `comune`.\n"
    },
    {
      "name": "AreaGeografica"
    },
    {
      "name": "Articolo",
      "description": "Gestisce gli **articoli** di magazzino: prodotti e servizi con codice, descrizione, unità di misura, aliquota IVA e collegamenti a listini e giacenze.\n\nGli articoli sono il riferimento per le righe dei documenti commerciali e per i movimenti di magazzino. Richiede lo scope `magazzino`.\n"
    },
    {
      "name": "ArticoloMediaFile"
    },
    {
      "name": "Azienda"
    },
    {
      "name": "BeneServizio"
    },
    {
      "name": "CassaPrevidenziale"
    },
    {
      "name": "CastellettoIva"
    },
    {
      "name": "CategoriaAnagrafica"
    },
    {
      "name": "CategoriaMerceologica"
    },
    {
      "name": "CausaleDocumento"
    },
    {
      "name": "CausaleIva"
    },
    {
      "name": "CausaleMagazzino"
    },
    {
      "name": "CodicePagamento"
    },
    {
      "name": "ContoContabile"
    },
    {
      "name": "DistintaBase"
    },
    {
      "name": "Documento",
      "description": "Gestisce i **documenti commerciali**: fatture, note di credito, DDT, ordini, preventivi, proforma e resi.\n\nOltre alle operazioni CRUD, espone endpoint dedicati per l'**emissione** (`emit`), il **ricalcolo** dei totali (`compute`), l'**import** da DDT/ordini/preventivi/resi e la **fatturazione periodica**. Il tipo di documento è determinato dal parametro `TipoDocumento` in fase di creazione di una nuova istanza (`GET /new`). Richiede lo scope `documenti`.\n"
    },
    {
      "name": "DocumentoMediaFile"
    },
    {
      "name": "FatturaElettronicaXml",
      "description": "Gestisce le **fatture elettroniche** in formato XML FatturaPA: generazione, validazione, import/export e invio al Sistema di Interscambio (SdI).\n\nEspone endpoint per la conversione dei documenti in XML, il controllo di conformità, l'elaborazione in blocco (bulk) e la gestione dei file ricevuti. Richiede lo scope `contabilita`.\n"
    },
    {
      "name": "FatturaElettronicaXmlTemplate"
    },
    {
      "name": "Giacenza"
    },
    {
      "name": "GiornaleMagazzino"
    },
    {
      "name": "GruppoMerceologico"
    },
    {
      "name": "Indirizzo"
    },
    {
      "name": "Listino",
      "description": "Gestisce i **listini** prezzi: insiemi di prezzi applicati agli articoli, eventualmente differenziati per cliente, quantità o periodo di validità.\n\nIl tipo di listino è determinato dal parametro `TipoListino` in fase di creazione di una nuova istanza (`GET /new`). Richiede lo scope `magazzino`.\n"
    },
    {
      "name": "Magazzino"
    },
    {
      "name": "Marca"
    },
    {
      "name": "ModalitaPagamento"
    },
    {
      "name": "ModelloContabile"
    },
    {
      "name": "MovimentoMerce"
    },
    {
      "name": "NaturaIva"
    },
    {
      "name": "Nazione"
    },
    {
      "name": "Pagamento"
    },
    {
      "name": "Preferenze"
    },
    {
      "name": "Prestazione"
    },
    {
      "name": "Prezzo"
    },
    {
      "name": "Produttore"
    },
    {
      "name": "ProgressivoInvio"
    },
    {
      "name": "RegistrazioneContabile",
      "description": "Gestisce le **registrazioni contabili** in prima nota: movimenti di dare/avere sui conti, con causale, data registrazione e collegamento ai documenti di origine.\n\nÈ il cuore della contabilità generale e IVA dell'azienda. Richiede lo scope `contabilita`.\n"
    },
    {
      "name": "Reparto"
    },
    {
      "name": "RisorsaFinanziaria"
    },
    {
      "name": "Scadenza"
    },
    {
      "name": "Situazione"
    },
    {
      "name": "Spesa"
    },
    {
      "name": "SpesaDocumento"
    },
    {
      "name": "Taglia"
    },
    {
      "name": "Valuta"
    }
  ]
}