API KRS/REGON/CEIDG
Poniższa dokumentacja oraz dostępne w niej metody mają zastosowanie przy korzystaniu z klasy API_KRS/REGON/CEIDG
.
Wstęp
Wszystkie wywołania do API są standardowymi wywołaniami HTTP. API dostępne jest pod adresem https://api.transparentdata.pl/
Każde wywołanie API dokonywane jest metodą GET
.
Uwierzytelnianie
Aby mieć dostęp do poszczególnych zasobów danych, API Transparent Data wymaga uwierzytelnienia. Uwierzytelnienie jest realizowane za pomocą standardowych mechanizmów HTTP Basic Auth.
Każdy użytkownik dostaje swój indywidualny adres url, pod którym dostępne są wszystkie adresy wymienione poniżej.
Jeżeli nie jesteś jeszcze naszym Klientem, a interesuje Cię dostęp do API, opisz nam swoje potrzeby biznesowe w formularzu kontaktowym poprzez stronę https://transparentdata.pl/kontakt/
Przykład uwierzytelniania:
curl --user login:pass https://api.transparentdata.pl/key/
Autoryzowanie loginem i hasłem
Każdemu użytkownik otrzymuje zestaw parametrów wymaganych do uruchomienia usługi:
Nazwa | Opis |
---|---|
key |
Unikalny klucz, który jest fragmentem adresu url |
user |
Nazwa użytkownika |
pass |
Hasło wymagane do uwierzytelnienia |
Powyższy zestaw parametrów jest wystarczający, aby w łatwy sposób rozpocząć pobieranie danych z bazy Transparent Data. Wszystkie wywołania API działają z SSL.
Działanie API można sprawdzić również w przeglądarce internetowej przez wywołanie adresu zbudowanego według wzorca: https://user:pass@api.transparentdata.pl/key/
Autoryzowanie mechanizmem JWT
W ramach integracji użytkownik może skorzystać z autoryzacji JWT. W tym przypadku zostaną mu udostępnione następujące parametry:
Nazwa | Opis |
---|---|
key |
Unikalny klucz, który jest fragmentem adresu url |
secret_key |
Unikalny ciąg znaków, służący do podpisywania wywołań do API |
Szczegółowy opis JWT jest dostępny https://en.wikipedia.org/wiki/JSON_Web_Token
Przygotowanie struktury do podpisania
Struktura header
{
"alg" : "HS256",
"typ" : "JWT"
}
Wymagane elementy payload
Nazwa | Opis |
---|---|
exp |
Timestamp, po którym token traci ważność |
iat |
Timestamp, zawierający datę, w której token został utworzony |
{
"exp" : "1558523523",
"iat" : "1558523503"
}
W ramach payload można także przekazać dodatkowe parametry, które zostaną przekazane do metody w niezmienionej postaci. Przykładowa struktura takiego zapytania może wyglądać następująco:
{
"exp" : "1558523523",
"iat" : "1558523503",
"nip" : "123123123"
}
Wyliczenie signature
W PHP może wyglądać następująco:
$signature = hash_hmac('sha256', base64_encode($header) . '.' . base64_encode($payload), $secretKey, true);
Utworzenie tokenu
$token = base64_encode($header) . '.' . base64_encode($payload) . '.' . base64_encode($signature);
Przykładowy token wygląda następująco:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb2dnZWRJbkFzIjoiYWRtaW4iLCJpYXQiOjE0MjI3Nzk2Mzh9.gzSraSYS8EXBxLN_oWnFSRgCzcmJmMjLiuyu5CSpyHI
Podpisywanie wywołania
Podczas wywołania, API Transparent Data sprawdza czy dodany został nagłówek
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb2dnZWRJbkFzIjoiYWRtaW4iLCJpYXQiOjE0MjI3Nzk2Mzh9.gzSraSYS8EXBxLN_oWnFSRgCzcmJmMjLiuyu5CSpyHI
Jeżeli nagłówek został dodany, to sprawdzana jest sygnatura i czasy generowania, tak aby zweryfikować poprawność tokenu. Jeśli wszystko przebiegło poprawnie, wybrana metoda zostanie wywołana.
Przykładowe generowanie tokenu w PHP
$secretKey = 'abc';
$header = json_encode(['alg' => 'HS256', 'typ' => 'JWT']);
$payload = json_encode(['exp' => time() + 60, 'iat' => time()]); // czas ważności 60 sek
$signature = hash_hmac('sha256', base64_encode($header) . '.' . base64_encode($payload), $secretKey, true);
$token = base64_encode($header) . '.' . base64_encode($payload) . '.' . base64_encode($signature);
echo $token;
Wymagane parametry
Przykład wykorzystania API
curl --user login:pass https://api.transparentdata.pl/key/krsData?number=0000487824
Każde wywołanie ma kilka wymaganych parametrów:
user
- nazwa użytkownikakey
- unikalny klucz dla danego użytkownikapass
- hasło wymagane do uwierzytelnieniamethod
- nazwa metody, którą chcemy wywołać - lista dostępnychnumber
- numer KRS, NIP lub REGON podmiotu
Dostępne zasoby
Wyszukiwanie
KRS
krsData
curl --user login:pass https://api.transparentdata.pl/key/krsData?number=0000023302
{
"name": "KGHM POLSKA MIEDŹ SPÓŁKA AKCYJNA",
"legal_form": "SPÓŁKA AKCYJNA",
"krs": "0000023302",
"nip": "6920000013",
"regon": "390021764",
"status": "aktywna",
"address":
{
"street": "ul. MARII SKŁODOWSKIEJ-CURIE",
"number": "48",
"local": "---",
"post": "LUBIN",
"city": "LUBIN",
"county": "LUBIŃSKI",
"region": "DOLNOŚLĄSKIE",
"country": "POLSKA",
"postcode": "00-000"
},
"equity": "2000000000",
"stock":
{
"quantity": "200000000",
"value": "10.00"
},
"incorporation": "1991-09-10",
"created_at": "2001-06-29",
"last_registry_update": "2016-10-27",
"removed_at": null,
"pkd": "0729Z",
"representation": "1. DO SKŁADANIA OŚWIADCZEŃ W IMIENIU SPÓŁKI WYMAGANE JEST WSPÓŁDZIAŁANIE DWÓCH
CZŁONKÓW ZARZĄDU ALBO JEDNEGO CZŁONKA ZARZĄDU ŁĄCZNIE Z PROKURENTEM.
2. JEŻELI ZARZĄD JEST JEDNOOSOBOWY, DO SKŁADANIA OŚWIADCZEŃ W IMIENIU SPÓŁKI
UPRAWNIONY JEST JEDEN CZŁONEK ZARZĄDU.",
"representation_body": "ZARZĄD",
"supervisory_authority": null,
"suspension_date": "2010-01-01",
"resumption_date": "2011-12-15",
"in_bankruptcy": false,
"liquidation_start": null,
"liquidation_end": null,
"liquidation_representation": null,
"court":
{
"name": "SĄD REJONOWY DLA WROCŁAWIA-FABRYCZNEJ WE WROCŁAWIU, IX WYDZIAŁ GOSPODARCZY KRAJOWEGO REJESTRU SĄDOWEGO",
"ident": "WR.IX NS-REJ.KRS/23224/16/694"
},
"www": "KGHM.COM",
"email": null,
"relation":
[
{
"name": "ANNA NOWAK",
"first_name": "ANNA",
"last_name": "NOWAK",
"relation": "board_member",
"relation_extra_info": "I WICEPREZES ZARZĄDU",
"ident":
{
"name": "pesel",
"value": "xxxxxxxxxxxx"
}
},
{
"name": "KRZYSZTOF NOWACKI",
"first_name": "KRZYSZTOF",
"last_name": "NOWACKI",
"relation": "board_member",
"relation_extra_info": "PREZES ZARZĄDU",
"ident":
{
"name": "pesel",
"value": "xxxxxxxxxxxx"
}
},
...
]
}
Metoda zwraca zasób z dostępnymi danymi z KRS
Parametry
Nazwa | Czy wymagany | Opis |
---|---|---|
number |
Tak | Numer KRS podmiotu, może być wcześniej wyszukany za pomocą searchByName |
Zwracane pola:
name
- pełna nazwa podmiotulegal_form
- forma prawna podmiotukrs
- numer krs podmiotu, w przypadku braku numeru w bazienull
nip
- numer nip podmiotu, w przypadku braku numeru w bazienull
regon
- numer regon podmiotu, w przypadku braku numeru w bazienull
status
- status podmiotu (wykreslona
,aktywna
,likwidacja
,likwidacja_upadlosciowa
)address
- klucz zawierający dane adresowestreet
- ulicanumber
- numer ulicylocal
- numer lokalu firmypost
- właściwy urząd pocztowycity
- miastocounty
- powiatregion
- województwocountry
- kraj rejestracjipostcode
- Kod pocztowy
equity
- kapitał zakładowystock
- informacje na temat akcji spółki, dostępne tylko dla SA i SKAquantity
- liczba wyemitowanych akcjivalue
- wartość pojedyńczej akcji
incorporation
- data założenia podmiotucreated_at
- data pierwszego wpisu do KRSlast_registry_update
- data ostatniej aktualizacji podmiotu w KRSremoved_at
- data wykreślenia z KRSpkd
- kod wiodącego PKD zgodnego z Polska Klasyfikacja Działalności 2007representation
- sposób reprezentacji podmioturepresentation_body
- nazwa organu reprezentującego podmiotsupervisory_authority
- nazwa organu sprawującego kontrolęsuspension_date
- data zawieszenia działalnościresumption_date
- data wznowienia działalnościin_bankruptcy
- informacja czy podmiot jest w stanie upadłościliquidation_start
- data rozpoczęcia upadłości/likwidacjiliquidation_end
- data zakończenia procesu upadłości/likwidacjiliquidation_representation
- sposób reprezentacji podczas updałości/likwidacjicourt
- informacje na temat sądu gospodarczegoname
- nazwa sąduident
- sygnatura akt
www
- adres strony WWW podanej w odpisie KRSemail
- adres email podany w odpisie KRSrelation
- lista osób i podmiotów powiązanych z bieżacym podmiotem na podstawie odpisów KRSname
- pełna nazwafirst_name
- imię w przypadku osób lub puste w przypadku firmlast_name
- nazwisko w przypadku osób lub puste w przypadku firmrelation
- sposób reprezentacji, przyjmuje wartości takie jak:board_member
,shareholder
,supervisory_board_member
,proxy
relation_extra_info
- opisowy sposób reprezentacji relacjiident
- struktura zawierająca informacje na temat unikalnego identyfikatora podmiotuname
- rodzaj identyfikatora, może byćpesel
,regon
,krs
,nip
lubstring
gdy nie ma żadnego przypisanegovalue
- wartość identyfikatora
getCeidg()
Przykładowa opdowiedź API:
{
"first_name": "DOMINIK",
"last_name": "CZAJKOWSKI",
"name": "RS DOMINIK CZAJKOWSKI",
"nip": "6262985804",
"regon": "365357080",
"main_address": {
"street": "ul. Księdza Franciszka Nawrota",
"number": "11",
"local": "11",
"post": "Bytom",
"city": "",
"county": "Bytom",
"region": "ŚLĄSKIE"
},
"post_address": {
"street": "ul. Księdza Franciszka Nawrota",
"number": "11",
"local": "11",
"post": "Bytom",
"city": "",
"county": "Bytom",
"region": "ŚLĄSKIE"
},
"begin_date": "2016-09-20",
"www": null,
"email": null,
"phone": null
}
Metoda zwraca zasób z podstawowymi danymi o podmiocie z CEIDG.
Przyjmowana forma parametru number
: string
Parametr może przyjmować wartości takie jak:
- Numer NIP
Zwracane pola:
first_name
- imię osoby prowadzącej działaność gospodarcząlast_name
- nazwisko osoby prowadzącej działalność gospodarcząname
- nazwa firmynip
- numer nip podmiotu, w przypadku braku numeru w bazienull
regon
- numer regon podmiotu, w przypadku braku numeru w bazienull
main_address
- adres prowadzenia działalności gospodarczejstreet
- ulicanumber
- numer ulicylocal
- numer lokalu firmypost
- właściwy urząd pocztowycity
- miastocounty
- powiatregion
- województwo
main_address
- adres korespondencyjnystreet
- ulicanumber
- numer ulicylocal
- numer lokalu firmypost
- właściwy urząd pocztowycity
- miastocounty
- powiatregion
- województwo
begin_date
- data rozpoczęcia działalnościwww
- adres strony wwwemail
- adres poczty elektronicznejphone
- numer telefonu
getRegon()
Przykładowa opdowiedź API:
{
"name": "KGHM POLSKA MIEDŹ SPÓŁKA AKCYJNA",
"first_name": null,
"last_name": null,
"nip": "6920000013",
"regon": "390021764",
"pesel": null,
"legal_form_code1": "1",
"legal_form_code2": "116",
"ownership_code": "235",
"date_creation": "1991-09-13",
"date_hang": null,
"date_resume": null,
"date_termination": null,
"teryt_code_city": "0954142",
"teryt_code_post": "0954142",
"teryt_code_street": "20068",
"address": [
{
"street": "ul. Marii Skłodowskiej-Curie",
"number": "48",
"postcode": "59-301",
"city": "Lubin",
"post": "Lubin",
"county": "lubiński",
"region": "DOLNOŚLĄSKIE",
"country": "PL"
}
],
"registry_type": "REJESTR PRZEDSIĘBIORCÓW",
"registry_number": "xxxxxxxxxxxx",
"www": null,
"email": "xxxxxxxxxxxx",
"phone": "xxxxxxxxxxxx",
"fax": "xxxxxxxxxxxx"
}
Metoda zwraca zasób z podstawowymi danymi o podmiocie z REGON.
Przyjmowana forma parametru number
: string
Parametr może przyjmować wartości takie jak:
- Numer REGON
Zwracane pola:
name
- nazwa firmyfirst_name
- imię osoby. Informacja dostępna w zależności od rodzaju działalnościlast_name
- nazwisko osoby. Informacja dostępna w zależności od rodzaju działalnościpesel
- numer pesel osobylegal_form_code1
- kod podstawowej formy prawnej, więcej informacjilegal_form_code2
- kod szczególnej formy prawnej,więcej informacjiownership_code
- kod formy własnościnip
- numer nip podmiotu, w przypadku braku numeru w bazienull
regon
- numer regon podmiotu, w przypadku braku numeru w bazienull
date_creation
- data utworzenia w bazie REGONdate_hang
- data zawieszenia działalnościdate_resume
- data wznowienia działalnościdate_termination
- data zakończenia działalnościteryt_code_city
- kod TERYT miejscowości, więcej informacjiteryt_code_post
- kod TERYT poczty, więcej informacjiteryt_code_street
- kod TERYT ulicy, więcej informacjiaddress
- adres rejetrowystreet
- ulicanumber
- numer ulicylocal
- numer lokalu firmypostcode
- kod pocztowycity
- miastopost
- właściwy urząd pocztowycounty
- powiatregion
- województwocountry
- kraj
registry_type
- rodzaj rejestru w którym widnieje podmiotregistry_number
- numer w rejestrzewww
- adres strony wwwemail
- adres poczty elektronicznejphone
- numer telefonufax
- numer faxu