# Tax Code Validation > Check the formal validity and structure of an Italian tax code (Codice Fiscale) and get a quality flag and code that describe the result. ## Endpoint `POST https://{host}:{port}/Egon/api/norm` Replace `{host}` and `{port}` with the address of your Egon instance. ## Headers | Field | Type | Required | Description | | --- | --- | --- | --- | | `token` | String | Yes | Authentication token sent in the `token` request header. | ## Request Country context, `taxfnx` function `2`, and tax code to check. | Field | Type | Required | Description | | --- | --- | --- | --- | | `par` | Object | Yes | Country context and tax-code validation function. | | `par.iso2` | String | No | Country code, ISO 3166-1 alpha-2. One of `iso2` or `iso3` is **required**. | | `par.iso3` | String | No | Country code, ISO 3166-1 alpha-3. One of `iso2` or `iso3` is **required**. | | `par.taxfnx` | String | Yes | Tax-code configuration function. `2` Formal check and validation. Default value: `2` | | `data` | Object | Yes | Input data to validate | | `data.tax_code` | Object | Yes | Italian tax code to validate | | `data.tax_code.cod_iso3` | String | No | Country code (ISO 3166-1 alpha-3) | | `data.tax_code.cod_type` | String | No | Type of code | | `data.tax_code.cod_description` | String | Yes | Italian tax code to check | ### Example request ```bash curl -X POST "https://{host}:{port}/Egon/api/norm" \ -H "token: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"par":{"iso3":"ITA","taxfnx":"2"},"data":{"tax_code":{"cod_iso3":"ITA","cod_type":"01110","cod_description":"RSSMRA93B19L781K"}}}' ``` ## Response Validated tax code, extraction verification quality indicator, and system status. | Field | Type | Required | Description | | --- | --- | --- | --- | | `data` | Object | No | Normalized and enriched validation output data | | `data.tax_code` | Object | No | Validated tax code details | | `data.tax_code.cod_description` | String | No | Italian tax code | | `quality` | Object | No | Validation quality indicators and score flags | | `quality.tax_code` | Object | No | Quality indicator result (see https://documentation.egon.com/docs/quality-indicators) | | `quality.tax_code.flag` | String | No | Quality flag | | `quality.tax_code.code` | Number | No | Quality result code | | `quality.tax_code.description` | String | No | Quality result description | | `system` | Object | No | Request processing status. | | `system.ret_code` | Number | No | Processing result code. 0 means no blocking error. | | `system.des_ret_code` | String | No | Human-readable processing result. | ### Example responses **HTTP 200: Valid response** Tax code verified and found formally valid. ```json { "data": { "tax_code": { "cod_description": "RSSMRA93B19L781K" } }, "quality": { "tax_code": { "flag": "0", "code": 0, "description": "Ok" } }, "system": { "ret_code": 0, "des_ret_code": "Ok" } } ``` **HTTP 200: Missing par** The request is missing the required par object. ```json { "system": { "ret_code": 1, "des_ret_code": "par not found" } } ``` **HTTP 200: Missing iso2 and iso3** Iso2 or Iso3 field is missing. ```json { "system": { "ret_code": 1, "des_ret_code": "iso2 or iso3 parameter not found" } } ``` **HTTP 200: Invalid iso2** The iso2 value is not valid. ```json { "system": { "ret_code": 1, "des_ret_code": "iso2 not found" } } ``` **HTTP 200: Invalid iso3** The iso3 value is not valid. ```json { "system": { "ret_code": 1, "des_ret_code": "iso3 not found" } } ``` **HTTP 200: Missing data** The request is missing the required data object. ```json { "system": { "ret_code": 1, "des_ret_code": "data not found" } } ``` **HTTP 200: Missing token** Provide the required authentication token in the token request header. ```json { "system": { "ret_code": 1, "des_ret_code": "token not found" } } ``` **HTTP 200: Invalid token** The supplied token is invalid, expired, or not authorized for this service. ```json { "system": { "ret_code": 1, "des_ret_code": "token not valid" } } ```