Czasami chcemy sprawdzić, czy rachunek bankowy danego przedsiębiorcy znajduje się na białej liście. Dlaczego? Otóż od 1 stycznia roku 2020 jeśli zrobimy przelew na kwotę powyżej 15.000 zł (stan na 09.06.2023) na rachunek, który nie został zgłoszony na białej liście to ponosisz następujące konsekwencje:
- nie będziesz miał możliwości zaliczenia do kosztów uzyskania przychodu tej kwoty lub części tej kwoty, która została zapłacona na rachunek inny niż podany w wykazie
- będziesz ponosił ryzyko odpowiedzialności solidarnej ze swoim kontrahentem za zaległości podatkowe, jeśli nie zapłaci on należnego podatku VAT od transakcji
No dobrze, a jak szybko można sprawdzić czy rachunek jest na białej liście? Otóż możemy skorzystać z API. Np. na pasku adresu możemy wpisać adres URL w formacie:
https://wl-api.mf.gov.pl/api/check/nip/NUMER NIP/bank-account/NUMER KONTA
np.
https://wl-api.mf.gov.pl/api/check/nip/7740001454/bank-account/18105000861000002329397844
W rezultacie otrzymamy odpowiedź w formacie JSON (dane są wyświetlone w „stanie surowym” niektóre przeglądarki internetowe mogą te dane ładnie sformatować)

No więc uzbrojeni w tę wiedzę, możemy napisać proste formuły w Excelu, które usprawnią naszą pracę
UWAGA: Niestety, ale jest limit – 10 zapytań na dobę. Jeśli kilka razy pytamy się o tę samą parę NIP & nr konta bankowego to liczy się to jako jedno zapytanie. Tak więc ta porada przydaje się osobom, które korzystają z tej możliwości sporadycznie.

Wskazówka: Dla zakresu komórek do których będziesz wprowadzać numer NIP i Nr konta bankowego zmień format na tekstowy. Inaczej Excel zamieni nr konta bankowego na liczbę a Excel przechowuje liczby z dokładnością do 15 cyfr i z numeru 94 1240 6292 1978 0011 2638 6584 zrobi się 94 124 062 921 978 000 000 000 000.
W pierwszym kroku musimy zbudować adres URL. W tym celu można napisać taką oto formułę:
="https://wl-api.mf.gov.pl/api/check/nip/" & A2 & "/bank-account/" & B2
Jeśli wklejasz dane z Internetu to poszczególne segmenty numeru NIP lub nr konta bankowego mogą być oddzielone spacją bądź minusem. Dodatkowo nr konta może być poprzedzony kodem kraju, czyli PL. Dlatego warto usunąć z numeru NIP i nr konta bankowego niepożądane znaki za pomocą funkcji PODSTAW. Nasza formuła generująca adres URL wygląda następująco:
="https://wl-api.mf.gov.pl/api/check/nip/" & PODSTAW(PODSTAW(A2; " "; "");"-";"") & "/bank-account/" & PODSTAW(PODSTAW(PODSTAW(B2; "PL";""); " "; "");"-";"")
Jeśli chcesz, aby zamiast adresu URL który należałoby wkleić do przeglądarki pojawiło się wygodne hiperłącze, to możesz tę formułę opakować funkcją HIPERŁĄCZE.
=HIPERŁĄCZE("https://wl-api.mf.gov.pl/api/check/nip/" & PODSTAW(PODSTAW(A2; " "; "");"-";"") & "/bank-account/" & PODSTAW(PODSTAW(PODSTAW(B2; "PL";""); " "; "");"-";""); "Kliknij, aby sprawdzić")
Możemy również chcieć, aby w kolumnie C była wyświetlona zawartość strony czyli tekst w formacie JSON, który zwraca owe API. W tym celu można użyć funkcji WEBSERVICE:
=WEBSERVICE("https://wl-api.mf.gov.pl/api/check/nip/" & PODSTAW(PODSTAW(A2; " "; "");"-";"") & "/bank-account/" & PODSTAW(PODSTAW(PODSTAW(B2; "PL";""); " "; "");"-";""))

Jeśli w komórce C2 znajduje się ciąg znaków: accountAssigned":"TAK" to oznacza, że dany rachunek znajduje się na białej liście. W tym celu możemy skorzystać z funkcji ZNAJDŹ, którą opakujemy w funkcję JEŻELI.BŁĄD (jeśli funkcja ZNAJDŹ nie znajdzie w komórce poszukiwanego ciągu znaków to zwraca błąd #N/D!)
=JEŻELI.BŁĄD(JEŻELI(ZNAJDŹ("accountAssigned"":""TAK""";C2)>0; "Jest na białej liście"; "");"nie ma lub błędny adres URL lub przekroczony limit")