- Developer newsUpdates to the API
- IntroductionAbout the Companies V1 API
- Company searchSearch for a company by name or number
- Cache searchSearch for a company globally
- Lite ProfileBasic company verification details
- Enhanced ProfileCompany profiles with representatives and shareholders
- Filing searchOrder registry extracts and filings
- UBO VerifyFind the ultimate beneficial owners via corporate ownership structure
- About testingInformation about the Kyckr test environment
- Supported jurisdictionsJurisdictions and regional codes
- Response codesExtra information in the responseCodeField
- FAQsFrequently asked questions about the V1 API
March 2025
Italian company identifier changed from codice fiscale to REA
Overview
This update changes how Italian company identifiers are structured in API responses, transitioning from using Codice Fiscale (a non-unique national identifier for companies) to using provincial registry numbers (REA - Repertorio Economico Amministrativo). For developers following best practices by using the search response data for subsequent API calls, this change should be transparent and require no code modifications. However, systems that directly store or process company identifiers will need to be updated to handle the new format.
⚠️ Important note on codice fiscale
The codice fiscale is not unique and may be shared by related companies. For this reason, all profile purchases (Lite and Enhanced) should use the REA identifier from the search response's codeField
. The REA number provides a unique identifier for each company. Lite and Enhanced orders using the Codice Fiscale may fail, and filing searches are not supported.
Italy company identifiers
Type Code | Format | Length | Pattern | Description | Example | Notes |
---|---|---|---|---|---|---|
IT_REA_CD | 2 letters + digits | 2 + variable | [A-Z]{2}\d+ | Trade register number (REA). Consists of province code followed by registration number | NA0091712 | Each Italian province has its own Chamber of Commerce (CCIA) that maintains a register. The province code (e.g. NA=Naples) is followed by a unique registration number within that CCIA's jurisdiction |
IT_VAT_CD | IT + 11 digits | 13 | IT\d{11} | European VAT number | IT12345678912 | Italian VAT numbers always start with IT prefix followed by 11 digits |
IT_TAX_CD | 16 characters | 16 | For companies: \d{11} | Tax identification code (Codice Fiscale) | For company: 12345678901 | For companies: 11 digits |
Key changes
- Search Response: Modified the
codeField
to use the REA number (IT_REA_CD) - Lite Profile: Updated company identifier fields to reflect the REA identification system
- Enhanced Profile: Adjusted identifier structure to maintain consistency with search and lite profile changes
- API Calls: Updated all API endpoints to use the new REA identifier format
Technical details
Search methods
The Company Search API supports three methods for searching Italian companies:
- Name Search: Search by company name
- REA: Search using the REA number (IT_REA_CD)
- Codice Fiscale: Search using the national tax number (IT_TAX_CD) - may return multiple entity matches
Response field changes
V1 API
The search response fields have been updated to support the new REA identification system:
codeField
: Now contains the REA (IT_REA_CD) formatregistrationNumberField
: Now contains the REA (IT_REA_CD) formatregistrationAuthorityCodeField
: Contains the province code (e.g., "MI")otherIdentifiers
: [Future] For Lite and Enhanced only, new array containing standardized secondary identifiers with their type codes
Example responses
Search response
Before:
{
"companiesField": [{
"codeField": "12345678901",
"companyIDField": "123456",
"nameField": "ACME Trading S.R.L.",
"registrationAuthorityField": "MILANO",
"registrationAuthorityCodeField": "MI"
}]
}
After:
{
"companiesField": [{
"codeField": "MI123456",
"companyIDField": "MI123456",
"nameField": "ACME Trading S.R.L.",
"registrationAuthorityField": "MILANO",
"registrationAuthorityCodeField": "MI",
"registrationNumberField": "MI123456"
}]
}
Lite Profile
Before:
{
"companyProfileField": {
"codeField": "12345678901",
"registrationNumberField": "123456",
"nameField": "ACME Trading S.R.L.",
"registrationAuthorityField": "MILANO"
}
}
After:
{
"companyProfileField": {
"codeField": "MI123456",
"nameField": "ACME Trading S.R.L.",
"registrationAuthorityField": "MILANO",
"registrationNumberField": "MI123456",
"otherIdentifiers": [
{ "type": "IT_TAX_CD", "value": "12345678901" }
]
}
}
Enhanced Profile
Before:
{
"companyProfileField": {
"codeField": "12345678901",
"registrationNumberField": "MI123456"
}
}
After:
{
"companyProfileField": {
"codeField": "MI123456",
"registrationNumberField": "MI123456",
"otherIdentifiers": [
{ "type": "IT_TAX_CD", "value": "12345678901" }
]
}
}
API call examples
When making subsequent API calls, use the data from the search response:
- Use the
codeField
value as the company identifier in the URL - Use the
registrationAuthorityCodeField
value as theRegAuth
query parameter
For example, given this search response:
{
"companiesField": [{
"codeField": "MI123456",
"registrationAuthorityCodeField": "MI",
"registrationNumberField": "MI123456"
}]
}
You would construct subsequent API calls using these values:
codeField
("MI123456") becomes the company identifier in the URLregistrationAuthorityCodeField
("MI") becomes theRegAuth
parameter
Lite Profile
Lite Profile ordering changes from IT_TAX_CD to IT_REA_CD
Before:
https://rest.kyckr.com/lite/profile/IT/12345678901?RegAuth=MI
After:
https://rest.kyckr.com/lite/profile/IT/MI123456?RegAuth=MI
Enhanced Profile
Enhanced Profile ordering changes from IT_TAX_CD to IT_REA_CD
Before:
https://rest.kyckr.com/core/company/profile/IT/12345678901?RegAuth=MI
After:
https://rest.kyckr.com/core/company/profile/IT/MI123456?RegAuth=MI
Filings Search
Filing Search changes from IT_TAX_CD to IT_REA_CD
Before:
https://rest.kyckr.com/core/filing/search/IT/12345678901?RegAuth=MI
After:
https://rest.kyckr.com/core/filing/search/IT/MI123456?RegAuth=MI
Migration guide
⚠️ Required updates
- Update search result processing to expect REA identifiers in the
codeField
- Modify systems that store company identifiers
- Update API calls:
- Use the REA identifier from the search response's
codeField
for ALL profile purchases - Include the
RegAuth
parameter (while optional for Italian companies, this is recommended practice) - IMPORTANT: Do not use Codice Fiscale for profile purchases as it may not uniquely identify a company
- Use the REA identifier from the search response's
- [Future] Update identifier handling:
- Use the future
otherIdentifiers
array to access standardized identifiers - Use the appropriate type codes (IT_REA_CD, IT_VAT_CD, IT_TAX_CD) to identify different identifier types
- Note: The REA number is the primary identifier, with fiscal code and VAT number to be provided in the
otherIdentifiers
array
- Use the future
⚠️ Impact assessment
- This change primarily affects systems that:
- Store Italian company identifiers
- Make direct API calls without using search response data
- Rely on Codice Fiscale as primary identifiers
- Use Codice Fiscale for search - this may return multiple entity matches
- Use Codice Fiscale for profile purchases (must be updated to use REA numbers)
- Systems already using search response data to make subsequent API calls should require minimal changes
Italian province code reference
The following is a complete map of Italian province codes used in the REA number format. Each province has its own Chamber of Commerce (CCIA) that maintains a register of companies within its jurisdiction:
Province | Code | Province | Code | Province | Code |
---|---|---|---|---|---|
Agrigento | AG | Alessandria | AL | Ancona | AN |
Aosta | AO | Arezzo | AR | Ascoli Piceno | AP |
Asti | AT | Avellino | AV | Bari | BA |
Barletta-Andria-Trani | BT | Belluno | BL | Benevento | BN |
Bergamo | BG | Biella | BI | Bologna | BO |
Bolzano | BZ | Brescia | BS | Brindisi | BR |
Cagliari | CA | Caltanissetta | CL | Campobasso | CB |
Caserta | CE | Catania | CT | Catanzaro | CZ |
Chieti | CH | Como | CO | Cosenza | CS |
Cremona | CR | Crotone | KR | Cuneo | CN |
Enna | EN | Fermo | FM | Ferrara | FE |
Firenze | FI | Foggia | FG | Forlì-Cesena | FC |
Frosinone | FR | Genova | GE | Gorizia | GO |
Grosseto | GR | Imperia | IM | Isernia | IS |
La Spezia | SP | L'Aquila | AQ | Latina | LT |
Lecce | LE | Lecco | LC | Livorno | LI |
Lodi | LO | Lucca | LU | Macerata | MC |
Mantova | MN | Massa-Carrara | MS | Matera | MT |
Messina | ME | Milano | MI | Modena | MO |
Monza e Brianza | MB | Napoli | NA | Novara | NO |
Nuoro | NU | Oristano | OR | Padova | PD |
Palermo | PA | Parma | PR | Pavia | PV |
Perugia | PG | Pesaro e Urbino | PU | Pescara | PE |
Piacenza | PC | Pisa | PI | Pistoia | PT |
Pordenone | PN | Potenza | PZ | Prato | PO |
Ragusa | RG | Ravenna | RA | Reggio Calabria | RC |
Reggio Emilia | RE | Rieti | RI | Rimini | RN |
Roma | RM | Rovigo | RO | Salerno | SA |
Sassari | SS | Savona | SV | Siena | SI |
Siracusa | SR | Sondrio | SO | Taranto | TA |
Teramo | TE | Terni | TR | Torino | TO |
Trapani | TP | Trento | TN | Treviso | TV |
Trieste | TS | Udine | UD | Varese | VA |
Venezia | VE | Verbano-Cusio-Ossola | VB | Vercelli | VC |
Verona | VR | Vibo Valentia | VV | Vicenza | VI |
Viterbo | VT | Viterbo | VT | Viterbo | VT |