Usługa emSzmal Banking API pozwala na bezpośrednią komunikację z serwisami bankowości internetowej za pośrednictwem zunifikowanego interfejsu webowego.
Zapytania do API przekazywane są przez protokół HTTP(s) w formacie JSON.
Format odpowiedzi (JSON lub XML) zależy od ustawień nagłówka Accept ("application/json" lub "application/xml") zapytania.
Dane przesyłane do / pobierane z usługi nie są utrwalane, ani w żaden sposób przetwarzane.
Cała transmisja danych jest szyfrowana z użyciem protokołu SSL/TLS.
Z usługi mogą korzystać użytkownicy z wykupioną i ważną (w okresie prawa do bezpłatnych aktualizacji) licencją na oprogramowanie emSzmal 3 PRO, z aktywnymi dodatkami "eCommerce" oraz "Biznes".
W przyszłości dostęp do niej może wymagać spełnienia także innych, dodatkowych warunków.
Metoda POST: /Common/SayHello
Opis: Metoda otwiera nową sesję użytkownika i zwraca "ciasteczko" z jej identyfikatorem.
Pamiętaj o przekazywaniu "ciasteczka" otrzymanego po zalogowaniu do usługi, w każdym kolejnym zapytaniu.
Uwaga: Sesja ważna jest tylko na jedno wołanie metody GetAccountsList lub GetAccountHistory.
Metoda POST: /Accounts/GetAccountsList
Opis: Metoda pobiera wszystkie rachunki użytkownika.
Czas odpowiedzi: 5-25s
Metoda POST: /Accounts/GetAccountHistory
Opis: Metoda pobiera historię operacji bankowych z zadanego okresu czasu.
Parametry metody: AccountNumber, DateSince, DateTo
Uwagi: Maksymalny, dopuszczalny zakres pomiędzy datami to 7 dni, wartość DateSince nie może być starsza niż miesiąc.
Czas odpowiedzi: 15s+
Metoda POST: /SessionManager/GetSecondPhaseAuthenticationData
Opis: Metoda pozwala pobrać informacje potrzebne do przeprowadzenia dodatkowej autentykacji (dotyczy wybranych banków).
W bankach stosujących tokeny oparte na zasadzie zapytanie-odpowiedź metoda ta pozwala pobrać treść zapytania. Odpowiedź należy przekazać za pomocą metody DoSecondPhaseAuthentication.
Możliwe typy autoryzacji: SMS, TOKEN, MOBILE_APP (wymaga potwierdzenia logowania w aplikacji mobilnej).
Uwaga: metodę należy wywołać z min. 10 sek. opóźnieniem, niezbędnym do przeprowadzenia pierwszego etapu logowania.
Metoda POST: /SessionManager/DoSecondPhaseAuthentication
Opis: Metoda pozwala dokonać dodatkowej autentykacji (dotyczy wybranych banków).
W bankach stosujących dwuetapowe logowanie pozwala na przekazanie jednorazowego hasła SMS lub aktualnego wskazania tokena.
Metoda POST: /Common/SayBye
Opis: Metoda kończy sesję użytkownika.
Uwaga: Zawsze zamykaj sesję po uzyskaniu odpowiedzi z metody GetAccountsList lub GetAccountHistory.
https://web.emszmal.pl/api (produkcyjny)
https://web.emszmal.pl/apidev (testowy)
{ "License": { "APIId": "emSzmal 3 PRO + eCommerce + Biznes xxx@xxx.pl 06.07.2016", "APIKey": "3B58041CCB7B356F6D5C94D8B01754B9" } }
{ "SessionId":"0d37bcd7-9ec1-4d28-95b9-b0cdc15f5254" }
{ "SessionId": "0d37bcd7-9ec1-4d28-95b9-b0cdc15f5254", "ProviderId": 0, "ProviderConfiguration": "", "Authentication": { "UserLogin": "LOGIN", "UserPassword": "HASŁO", "UserContext": "NAZWA PROFILU (tylko gdy pod loginem użytkownika jest ich więcej niż jeden)", "TokenValue": "" }, "License": { "APIId": "emSzmal 3 PRO + eCommerce + Biznes xxx@xxx.pl 06.07.2016", "APIKey": "3B58041CCB7B356F6D5C94D8B01754B9" } }
{ "Accounts": [ { "AccountNumber": "15114020040000300276195487", "AccountCurrency": "PLN", "AccountAvailableFunds": 50.5, "AccountBalance": 100.5 }, { "AccountNumber": "65114020040000341200653930", "AccountCurrency": "EUR", "AccountAvailableFunds": 75.56, "AccountBalance": 158.23 }, { "AccountNumber": "02114020040000760238012537", "AccountCurrency": "CHF", "AccountAvailableFunds": 0, "AccountBalance": 0 } ] }
{ "SessionId": "0d37bcd7-9ec1-4d28-95b9-b0cdc15f5254", "ProviderId": 0, "ProviderConfiguration": "", "Authentication": { "UserLogin": "LOGIN", "UserPassword": "HASŁO", "UserContext": "NAZWA PROFILU (tylko gdy pod loginem użytkownika jest ich więcej niż jeden)", "TokenValue": "" }, "License": { "APIId": "emSzmal 3 PRO + eCommerce + Biznes xxx@xxx.pl 06.07.2016", "APIKey": "3B58041CCB7B356F6D5C94D8B01754B9" }, "Data": { "AccountNumber": "15114020040000300276195487", "DateSince": "2016-07-01", "DateTo": "2016-07-02" } }
{ "Transactions": [ { "TransactionRefNumber": "7767", "TransactionOperationDate": "2016-07-01T00:00:00", "TransactionBookingDate": "2016-07-01T00:00:00", "TransactionAmount": -0.01, "TransactionBalance": 2.43, "TransactionType": "PRZELEW ZEWNĘTRZNY WYCHODZĄCY", "TransactionDescription": "XXX" }, { "TransactionRefNumber": "7768", "TransactionOperationDate": "2016-07-01T00:00:00", "TransactionBookingDate": "2016-07-01T00:00:00", "TransactionAmount": -0.01, "TransactionBalance": 2.42, "TransactionType": "PRZELEW ZEWNĘTRZNY WYCHODZĄCY", "TransactionDescription": "XXXYYYZZZ" }, { "TransactionRefNumber": "7769", "TransactionOperationDate": "2016-07-01T00:00:00", "TransactionBookingDate": "2016-07-01T00:00:00", "TransactionAmount": -100.01, "TransactionBalance": 899.04, "TransactionType": "PRZELEW ZEWNĘTRZNY WYCHODZĄCY", "TransactionDescription": "XXX\r\n71260414621844457350000001\r\nZ MB DO BNP PARIBAS FIRMOWY" } ] }
{ "SessionId": "0d37bcd7-9ec1-4d28-95b9-b0cdc15f5254", "ProviderId": 0, "ProviderConfiguration": "", "Authentication": { "UserLogin": "LOGIN", "UserPassword": "HASŁO", "UserContext": "NAZWA PROFILU (tylko gdy pod loginem użytkownika jest ich więcej niż jeden)", "TokenValue": "" }, "License": { "APIId": "emSzmal 3 PRO + eCommerce + Biznes xxx@xxx.pl 06.07.2016", "APIKey": "3B58041CCB7B356F6D5C94D8B01754B9" } }
{ AuthenticationMethod: "SMS", PreAuthenticationCode: "", AuthenticationCodeHint: "SMS nr X z dn. dd.MM.rrrr" }
{ "SessionId": "0d37bcd7-9ec1-4d28-95b9-b0cdc15f5254", "ProviderId": 0, "ProviderConfiguration": "", "Authentication": { "UserLogin": "LOGIN", "UserPassword": "HASŁO", "UserContext": "NAZWA PROFILU (tylko gdy pod loginem użytkownika jest ich więcej niż jeden)", "TokenValue": "" }, "License": { "APIId": "emSzmal 3 PRO + eCommerce + Biznes xxx@xxx.pl 06.07.2016", "APIKey": "3B58041CCB7B356F6D5C94D8B01754B9" }, "AuthenticationCode": "kod SMS lub wskaznie tokena" }
{ }
{ "SessionId": "0d37bcd7-9ec1-4d28-95b9-b0cdc15f5254", "License": { "APIId": "emSzmal 3 PRO + eCommerce + Biznes xxx@xxx.pl 06.07.2016", "APIKey": "3B58041CCB7B356F6D5C94D8B01754B9" } }
{ }
W przypadku wykrycia błędnej autentykacji użytkownika (przy logowania do serwisu banku) następuje automatyczne, czasowe zablokowanie licencji.
Aby zapoznać się z działaniem usługi poproś o udostępnienie testowego klucza licencji.
Listę obsługiwanych serwisów bankowych (parametr ProviderId) można uzyskać drogą emailową.
Przykładowy skrypt znajdziesz tutaj.
Nieoficjalny wrapper PHP - autor: Krystian Duma - link.
- aktualizacja obsługi wybranych serwisów bankowości internetowej