Transmettre la liste des comptes
Gérez et transmettez la liste des comptes à vue consentis par le PSU pour la consultation des soldes et/ou des transactions !
➤ Cas d'usage
Ce service permet d’enregistrer le consentement du client.
Ce consentement contient le détail des accès consentis par le client.
Quatre types d’accès peuvent être définis :
- "balances" => accès aux soldes d’un ou plusieurs comptes du client
- "transactions" => accès aux transactions d’un ou plusieurs comptes du client
- "psuIdentity" => accès aux données d’identité du client (nom et prénom)
- "trustedBeneficiaries" => accès à la liste des bénéficiaires de confiance du client : cette fonctionnalité n'est pas disponible (cf. "Limitations" du produit)
Un enregistrement du consentement est réalisé pour un client donné.
Chaque nouvel appel au service d'enregistrement du consentement pour un client donné, annulera et remplacera le consentement précédent le cas échéant.
Par ailleurs, à la demande du client, le consentement pourra être modifié ultérieurement par type d'opération : par exemple, le consentement pour l'accès à l'historique des transactions peut être révoqué alors que le consentement pour les soldes reste actif.
Le consentement est vérifié à chaque requête passée.
En résumé, ce service permet de transmettre les IBAN des comptes à vue pour lesquels le client vous a autorisé à consulter le détail des soldes et / ou des transactions ainsi que son identité.
➤ Prérequis
Vous pouvez récupérer la liste des comptes à vue du client après avoir appelé une première fois la requête GET /accounts : vous y trouverez l'IBAN associé à chaque compte à vue, c'est à dire tel que "accountId": {"iban":"" }.
Cependant si vous connaissez déjà le ou les IBAN des comptes à vue du client, vous pouvez nous les transmettre directement via la méthode PUT /consents. Dans ce cas, pour procéder à cette requête il est nécessaire de remplir les prérequis d’éligibilité et d'avoir récupéré le jeton d'accès OAUTH2 (voir la rubrique "Vue d'ensemble" > "Récupérez votre jeton").
➤ Requête
Requête "PUT /consents"
➤ Paramètres obligatoires ou facultatifs du body requis pour l'appel de ce service
balances : tableau obligatoire mais qui peut être vide : liste des comptes accessibles pour la fonctionnalité "soldes"
⇒ iban - obligatoire : Numéro de compte bancaire international (IBAN)
transactions : tableau obligatoire mais qui peut être vide : liste des comptes accessibles pour la fonctionnalité "transactions"
⇒ iban - obligatoire : Numéro de compte bancaire international (IBAN)
trustedBeneficiaries : obligatoire : valeur (true ou false) indiquant si l'accès à la liste des bénéficiaires de confiance est autorisé pour l'AISP par le client
psuIdentity : obligatoire : valeur (true ou false) indiquant si l'accès à l'identité du client(prénom, nom) est autorisé pour l'AISP par le client
Paramètre facultatif : PSU-IP-ADDRESS => à alimenter si le client est connecté
➤ Résultat retourné
Cet appel permet d’enregistrer les comptes à vue que le client vous a consentis.
Le client peut vous consentir 4 types d'accès :
"psuIdentity" ⇒ accès à l’identité du client (nom et prénom pour un client de type "particulier")
- L'identité du client est accessible via la méthode GET /end-user-identity uniquement si le client l'a consenti
- L'identité du client est accessible via la méthode GET /end-user-identity uniquement si le client l'a consenti
"transactions" ⇒ accès aux transactions d’un ou plusieurs comptes à vue et aux factures des cartes à débit différé qui s'y rattachent
- Les transactions des comptes à vue et les facturettes des cartes à débit différé qui s'y rattachent sont accessibles via la méthode GET /accounts et via la méthode GET /accounts/balances pour les comptes consentis uniquement
- Les transactions des comptes à vue et les facturettes des cartes à débit différé qui s'y rattachent sont accessibles via la méthode GET /accounts et via la méthode GET /accounts/balances pour les comptes consentis uniquement
"balances" ⇒ accès aux soldes d’un ou plusieurs comptes à vue et aux cartes à débit différé qui s'y rattachent :
- Les soldes des comptes à vue et les encours carte des cartes à débit différé qui s'y rattachent sont accessibles via la méthode GET /accounts et via la méthode GET /accounts/balances pour les comptes consentis uniquement
- Les soldes des comptes à vue et les encours carte des cartes à débit différé qui s'y rattachent sont accessibles via la méthode GET /accounts et via la méthode GET /accounts/balances pour les comptes consentis uniquement
- "trustedBeneficiaries" ⇒ accès à la liste des bénéficiaires de confiance
- Cette fonctionnalité n'est pas disponible
Il est possible d'appeler plusieurs fois la méthode PUT /consents si le client a modifié son consentement : chaque nouvel appel de la méthode PUT /consents annule et remplace les consentements précédents.
Le consentement du client est vérifié à chaque requête passée pour les méthodes GET /accounts, GET /accounts/balances et GET /accounts/transactions.
Lorsqu'un compte à vue est consenti pour l'accès "balances" :
- Les cartes à débit différés sont récupérables via la méthode GET /accounts
- Les encours de ces cartes sont récupérables via la méthode GET /accounts ou via la méthode GET /accounts/balances.
Lorsqu'un compte à vue est consenti pour l'accès "transactions" :
- Les cartes à débit différés sont récupérables via la méthode GET /accounts
- Les facturettes de ces cartes sont récupérables via la méthode GET /accounts/balances.
Si vous ne transmettez aucun compte via la méthode PUT /consents alors que des comptes avaient été consentis via le dernier appel à cette méthode, dans ce cas cela signifie que le client a révoqué tous les comptes consentis
Si aucun compte à vue n'est consenti ou si le client a révoqué tous les comptes consentis, la méthode GET /accounts vous permet de récupérer la liste de tous les comptes à vue mais l'accès au soldes et transactions des comptes à vue et l'accès aux cartes à débit différé et à leurs encours et facturettes n'est pas/plus possible.
➤ Exemple
Requête
PUT /stet/psd2/v1.4.2/consents/
Un exemple plus complet de requête est fourni dans la rubrique "Comment tester l'API ?" > "Assemblage sandbox".
Voir aussi la spécification de place STET V1.4.2.17 / Part III / section 6.2 / page 7
Résultat
Status code : 201
Le service consentement renvoie un code "201 - Created" lors de l'enregistrement du consentement
Le service consentement renvoie un code "403 - Forbidden" en cas d'échec de l'enregistrement
Body
{ "transactions": [ |
(cas du persona Marc - D0999990I0)
Remarque :
- le champ "currency" a été ajouté au niveau de l'"AccountIdentification"
➤ Codes erreurs
Voici la liste de descriptions des codes erreurs de ce service. Il y a une annotation rouge pour ceux étant définis CFONB.
Erreur | Description de l'erreur |
---|---|
AC01 (CFONB) | IncorrectAccountNumber : l'IBAN est incorrect ou inconnu |
AC04 (CFONB) | ClosedAccountNumber : le compte est clos |
AC06 (CFONB) | BlockedAccount : le compte est bloqué / fait l'objet d'une opposition |
BE05 (CFONB) | UnrecognisedInitiatingParty : l'AISP est inconnu |
BADS | BadScope : l'appel au service a été fait avec un jeton CBPII (AISP attendu) |
ENDE | EntriesDatesError : une ou des dates sont erronées |
IPGN | InvalidPageNumber : le numéro de page est invalide |
INTE | InternalError : il y a une erreur interne de traitement |
INTS | InternalServerError : il y a une erreur interne de communication avec le SI |
NGAC | NotGrantedAccount : le compte n'est pas consenti |
NIMP | NotImplemented : le mauvais verbe est appelé (GET attendu) |
TQMR | TooManyRequest : le nombre de requêtes possibles a été dépassé |
RENF | ReferenceNotFound : la référence de la transaction est inexistante |
IPSU | InvalidPSU : Numéro d'abonné non référencé ou abonnement banque à distance résilié |
FF01 | Format du corps de la requête (Body) incorrect (Body vide, donnée obligatoire manquante)² |
NAAC | NotAvailableAccounts : absence de comptes éligibles |
CDNA | CardNotAvailable : la carte à débit différé n'est pas ou plus accessible |
➤ Tests d'acceptance
Ces cas de tests ont pour objectif de vous permettre d'effectuer un minimum de tests pour prendre en main cette API et y accéder depuis votre application.
Description du test | Jeu de données et Résultat attendu |
---|---|
Enregistrement de données de consentement d'un client | Persona : Marc - D0999990I0 Prérequis : scope OAuth2 = aisp IBANs : FR7613807008043001965405158 FR7613807008043001965405255 FR7613807008043001965405352 Résultat : réponse HTTP 201 => OK, consentement enregistré |
Enregistrement de données de consentement d'un client | Persona : Adam - D0999994I0 Prérequis : scope OAuth2 = aisp IBANs : FR7613807008063031966574122 FR7613807008063031966574219 Résultat : réponse HTTP 201 => OK, consentement enregistré |
Passage d'une requête HTTP avec un jeton d'accès non autorisé pour la ressource (scope erroné) | Persona : Marc - D0999990I0 Prérequis : scope OAuth2 <> aisp IBANs : FR7613807008043001965405158 FR7613807008043001965405255 FR7613807008043001965405352 Résultat : réponse HTTP 403 => accès à la ressource refusé message d'erreur : BADS |
Passage d'une requête HTTP POST | Persona : Marc - D0999990I0 Prérequis : scope OAuth2 = aisp IBANs : FR7613807008043001965405158 FR7613807008043001965405255 FR7613807008043001965405352 Résultat : réponse HTTP 405 => méthode non autorisée |