Documentatie testare API-uri PSD2

 

 

1. Descriere functionalitati produs PSD2-CECAPI

Dupa logarea pe portal, utilizatorii inregistrati au acces la produsul  PSD2-CECAPI

Acest produs include API-urile necesare dezvoltarii aplicatiilor TPP cu functionalitati de tip AIS/PIS:

  • PSD2 API-Consent: contine operatiile necesare preluarii consimtamantului clientului pentru accesarea conturilor deschise la CEC Bank;
  • OauthAIS: contine operatiile necesare autentificarii Oauth2 pentru accesare conturi (generare cod de acces , token de acces );
  • PSD2 API-Accounts: contine operatiile necesare dezvoltarii functionalitatilor AIS (se extrag date despre conturi cu limitarile specificate in consimtamantul clientului);
  • PSD2 API-Payments: contine operatiile necesare dezvoltarii functionalitatilor PIS (se pot initia tranzactii pentru care se solicita autorizarea  clientului) si PIIS (se poate confirma disponibilitatea unei anumite sume in cont in baza unui acord valid de consultare cont).
  • OauthPIS: contine operatiile necesare autentificarii Oauth2 pentru autorizare plata (generare cod de acces , token de acces );

Pentru a accesa/testa API-urile de mai sus, aplicatia TPP trebuie sa subscrie la utilizarea acestora. La apelarea operatiilor din API-uri, sunt necesari parametrii de autentificare aplicatie: Client Id si Client Secret. De asemenea, apelarea API-urilor: PSD2 API-Consent, PSD2 API-Accounts, PSD2 API-Payments este  permisa  numai daca se completeaza parametrul de header Tpp-Signature-Certificate al fiecarui apel cu certificatul EIDAS al TPP de  forma 

-----BEGIN  CERTIFICATE-----

MIID5DCCAsygAwIBAgIDUFNEMA0GCSqGSIb3DQEBBQUAMIGIMSEwHwYJKoZIhvcN

…………………………………………….

U5dUhcNTrqX1M9b6AsiaqBDK+eGATXOZpKYrXhOpUqCJm/drFPGiuw==

-----END CERTIFICATE----- 

   2. Descrierea fluxului pentru obtinere date conturi client

 

3.Transmitere solicitare pentru preluare acord accesare conturi client: creare consent.

       Se apeleaza operatia POST /v1/consents din API-ul PSD2 API-consent. In Header se completeaza obligatoriu:X-Request-ID, X-IBM-Client-Id ,TPP-Redirect-URI si Tpp-Signature-Certificate. In Body nu trebuie transmise informatii. Continutul consentului va fi stabilit de catre client dupa autentificarea in sistemul  bancii, in interfata de autorizare consent expusa de catre banca.

In structura de raspuns, se primeste identificatorul resursei de tip consent nou creata “consentId”, precum si link-ul “startAuthorisation” unde trebuie redirectat clientul pentru autentificare in sistemul bancii si preluarea acordului de consultare date conturi.

Inainte de utilizare, link-ul “startAuthorisation” trebuie completat de catre aplicatia TPP cu valoarea  parametrului code_challenge (PKCE challenge according to cryptographic RFC 7636 - https://tools.ietf.org/html/rfc7636  used to prevent code injection attacks, code_challenge_method= "S256")

4. Autentificarea clientului in sistemul bancii

Aplicatia TPP-ului redirecteaza clientul la adresa specificata in href-ul “startAuthorisation”, unde se deschide fereastra de logare in platforma de autentificare.

Clientul se poate loga folosind  numele de utilizator din aplicatia de Internet Banking-CEC Online si codul generat de dispozitivul de generare coduri sau de aplicatia eToken.

 

5. Preluare acord client pentru consultare date conturi

Dupa logarea cu succes si identificarea clientului logat, apare fereastra de preluare acord pentru accesarea conturilor de catre aplicatia TPP.  In functie de permisiunile acordate de catre client pentru fiecare cont de plati din lista, aplicatia TPP-ului va putea vizualiza ibanurile conturilor si va avea acces la vizualizarea soldurilor, respectiv a listei de tranzactii.

Daca se apasa “Nu sunt de acord!’ , la adresa de redirect a aplicatiei TPP-ului se transmite “error=acces_denied”

6. Generare cod acces pentru aplicatie

In urma permiterii accesului la conturi de catre client, la adresa de redirect furnizata de aplicatia TPP, se transmite codul de acces pentru aplicatie (“code”).

7. Obtinere token de acces in vederea consultarii conturilor

Utilizand codul de acces de mai sus, aplicatia TPP  va apela metoda POST /oauth2/token din API-ul OAuthAIS, in scopul “AIS”, pentru valoarea “consentId” corespunzatoare codului de acces furnizat la pasul anterior. Obligatoriu se va completa parametrul code_verifier cu valoarea pereche code_challenge continuta in codul de acces 9valoarea code_challenge completata de aplicatia TPP in link-ul “startAuthorisation”.

 

In raspunsul operatiei POST /oauth2/token, se gaseste valoarea access token necesara apelurilor API-urilor PSD2 API-Accounts,i PSD2 API-Consent si operatiei POST /v1/funds-confirmations din PSD2 API-Payments. Se precizeaza si valoarea refresh_token, cu o perioada de valabilitate corespunzatoare valabilitatii consentului  (max.90 zile), care poate fi utilizata pentru generarea unui nou acces_token  (se utilizeaza acceeasi operatiei POST /oauth2/token, dar cu grant_type=refresh_token).

8. Obtinerea datelor despre conturi

Se apeleaza operatia GET /v1/accounts, transmitand in atributul de header “Authorization”, acces tokenul de tip Bearer, precum si valoarea consentId.

 Ulterior, se pot testa celelalte operatii din API-ul PSD2 API-Accounts, pentru obtinere solduri sau lista de tranzactii. Informatiile vor fi furnizate in limitele acordului furnizat de client pentru accesarea conturilor.