Skip to main content

SME accounts in PL banks:

Maxime avatar
Written by Maxime
Updated over 4 months ago

In order to have an access to SME accounts there are different context and configurations required - as described below. This is driven by how different ASPSPSs are handling SME accounts and what are the SCA portals related to different channels/brands.

The required business identifiers can be passed when a new consent is being created (POST Create a user consent)
"userBusinessContext": "Business"
"userIdentifiers":
{ "key": "value" }

Alternatively the identifiers may be persistently linked to a business users via POST Add or update a single context-specific identifier to a user.
endpoint: https://api.banqware.com/sandbox/user-resources/api/user/{userIdType}/{userId}/bank/{bankIdType}/{bankId}/identifier
request body:
{
"type": "string",
"value": "string"
}

ASPSP (Bank)

How to handle it using APIHub API

(using consent or business user context as described above)

How this is translated by APIHub into the request towards ASPSP

available SCA portals

PKO BP

"key" equals to "Alias"
"value" is the number specified on the bank website

1"isCompanyContext": true, 2"psuContextIdentifierType":"3", 3"psuContextIdentifierValue":"SomeAlias"

psuContextIdentifierValue → PSU alias may be validated

It can be required to activate PSD2 interface in IPKO/IPKO biznes

Pekao

isCompanyContext ignored

Pekao24 – individual clients, small companies
PekaoBinzes24 – companies

Santander

'true' (in most cases):

BNP

"key" equals to "NIP"
"value" is the SME NIP number

1"isCompanyContext": true, 2"psuContextIdentifierType":"N", 3"psuContextIdentifierValue":"12312312312"

psuContextIdentifierValue → Not validated yet.

Two systems, distinguished by the URL prefix

  • GOonline

  • Biznespl@net

Nest

isCompanyContext = True

Alior

isCompanyContext ignored

retail and SME have separate login systems on the SCA page

Millennium

isCompanyContext ignored

retail + SME share the same SCA page

mBank

isCompanyContext ignored

retail + SME share the same SCA page

CORPO:

https://open.api.mbank.pl/pl-retail/ ->

https://open.api.mbank.pl/pl-corpo/

ING

isCompanyContext ignored

retail and SME have separate login systems on the SCA page

Messages from banks

pko

Jeżeli pytanie dotyczy kont Małych i Średnich Przedsiębiorstw to są one dostępne poprzez API. Obsługiwane są poprzez kontekst korporacyjny.

Chciałbym jeszcze uściślić wartość pola:

" psuContextIdentifierValue":


Czy pole to może przyjąć dowolną wartość (string), czy też są dostępne wytyczne co do jego formy lub preferowane wartości?Czy podany alias ma być stały dla danego pracownika firmy? Czy jest ono w jakikolwiek sposób walidowane?Co w przypadku gdy dostęp ma tylko właściciel, czy do danego konta możemy stosować ciągle ten sam alias?

Oczywiście endpoint jest zależny od posiadanego konta. Jeżeli jest to inteligo to należy korzystać z odpowiadających endpointów.
Z punktu dalszej obsługi API nie ma różnic dla TPP. Jedynie ekrany dla klienta zawierają drobne różnice w kontekście firmowym.

W dokumentacji to pole ma tylko walidację czy występuje gdy CompanyContext=true, ale wydaje mi się że jest weryfikacja czy taki alias istnieje, a co za tym idzie nie zadziała dowolny string.

Co do pytania o jednego właściciela: Tak można wtedy korzystać z jednego aliasu bo powinien on być stały, ale trzeba pamiętać, że firma w każdej chwili może nadać uprawnienia dla kolejnego pracownika.

Na podstawie aliasu weryfikowane są ewentualne uprawnienia co dany pracownik może robić lub widzieć na rachunku.

pekao

Informacje o kontach MŚP zwracane są za pośrednictwem tych samych API co informacje o kontach klientów indywidualnych. W środowisku Sandbox z API zintegrowany jest tylko jeden interfejs bezpośredni (system Pekao24), gdzie udostępnione są dane testowe klientów indywidualnych. W środowisku produkcyjnym do API podpięte są dwa interfejsy bezpośrednie (Pekao24 oraz PekaoBiznes24). W Pekao24 są zarówno klienci indywidualni jak i MŚP a w PekaoBiznes24 są klienci korporacyjni i MŚP.

Adresy endpointów dla klientów MŚP są takie same jak dla klientów indywidualnych. Nagłówek ‘isCompanyContext’ w naszym API jest ignorowany. Rozróżnienie czy obsługiwany jest klient indywidualny czy firmowy odbywa się na etapie redirection. Do wyboru są dwa systemy do logowania:
Pekao24 – klienci indywidualni i małe firmy
PekaoBinzes24 – firmy

santander

Można agregować konta dla małych i średnich przedsiębiorstw przez nasze API. Jednak może to zrobić tylko klient, który jest właścicielem konta.

Wartość headera „isCompanyContext” w body domyślnie ustawiona jest na „false”.
Przy kontach firmowych (w większości przypadków) trzeba ustawić flagę na wartość „true”.
Kiedy należy tak zrobić można łatwo rozpoznać po tym, z której strony się klienci logują.
Jeżeli użyją strony:
· Santander internet : https://www.centrum24.pl/ ustawiamy flagę na „false” (domyślna wartość).
· iBiznes24: https://ibiznes24.pl/ ustawiamy flagę na „true”

BNP

w ramach API można odpytywać o wszystkie konta płatnicze, w tym zarówno klientów detalicznych jak i MŚP oraz korporacyjne.

Wartość domyślna „isCompanyContext” to false. Dodatkowo jeśli isCompanyContext=true, to wymagane jest podanie psuContextIdentifierType (wartość „N” – NIP lub „R” – Regon) i psuContextIdentifierValue (wartość NIP/Regon).

W przypadku klientów MŚP kluczowy jest system, z którego korzysta dany użytkownik. Jeżeli tym systemem jest GOonline, to należy zastosować prefiks goonline lub wysłać zapytanie bez prefiksu. Jeżeli to system BiznesPl@net, to należy zastosować prefiks biznesplanet.

Alior

Tak, zwracane jest to na etapie zgody dla danego klienta, można wybrać rachunki do których ma dostęp klient.

Millennium

API dla korporacyjnego (MŚP) endpointa działa. Trzeba się tylko uwierzytelnić milekodem z Milenet dla przedsiębiorstw.

Do kont MŚP jak i indywidualnych używane są takie same endpointy. Wartość flagi is CompanyContext jest wymagana, lecz jej wartość jest ignorowana

mBank

MŚP ze względu na wielkość przedsiębiorstwa zwracane są w Retail.

Podział na środowisko retail i corporate nie wynika z samej wielkości przedsiębiorstwa. Z reguły klienci detaliczni oraz małe i średnie firmy są klientami bankowości detalicznej mBanku, natomiast większe firmy są klientami bankowości korporacyjnej mBanku. To klient musi wiedzieć jakiej bankowości jest klientem.
Flaga ‘Company-Context’ nie jest walidowana przez nasze API, podział na systemy corporate i retail wynika tylko z osobnych enpointów dla tych systemów.

ING

Nasze API zwraca informacje o kontach dla klientów indywidualnych i klientów korporacyjnych, w tym dla MŚP.

Odpytywanie o dane klientów indywidualnych i MŚP wygląda zawsze tak samo.
Poniżej wymieniamy ważniejsze kroki, które trzeba podjąć w tej sprawie

  1. TPP wysyła prośbę o przydzielenie dostępu do danych poprzez /authorize

  2. Dostęp do danych jest nadawany przez PSU na formularzu zgody. Zanim formularz zgody zostanie wyświetlony PSU musi:

a. Wybrać segment bankowości w ramach, którego zgoda będzie udzielona
b. Zalogować się do wybranego segmentu bankowości elektronicznej
c. Dopiero wówczas pojawia się formularz zgody z opisem dostępu do danymi, o które aplikuje TPP

  1. Jak widać z powyższych punktów, w implementacji PolishAPI wykonanej przez ING, podczas występowania o zgodę , TPP nie musi wypełniać pola 'isCompanyContext' . ING ignoruje wartości wprowadzone do tego pola przez TPP. Wynika to z faktu, że ING wymaga od PSU samodzielnego podania, w ramach procesu udzielania zgody, w ramach jakiego segmentu ma działać TPP, który aplikuje o wydanie zgody.

  2. Po otrzymaniu zgody od PSU, ING generuje access token. Powiązanie zgody z access tokenem powoduje, że ING zawsze wie w ramach jakiego segmentu TPP może wysyłać zapytania o dane.

Nest bank

Tak, jest to poprawny endpoint również dla kont MŚP. Zgodnie z dokumentacją parametr isCompanyContext może przyjmować wartości true oraz false. W przypadku odpytania o MŚP parametr powinien przyjmować wartość true. Poza powyższym parametrem nie ma różnic między odpytaniem o konta klientów indywidualnych oraz firm.

Did this answer your question?