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

  • "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

  • "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

  • "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".

book picto 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

{
"balances": [
{
"iban": "FR7613807008043001965405158"
},
{
"iban": "FR7613807008043001965405255"
},
{
"iban": "FR7613807008043001965405352"
}
],

"transactions": [
{
"iban": "FR7613807008043001965405158"
},
{
"iban": "FR7613807008043001965405255"
},
{
"iban": "FR7613807008043001965405352"
}
],
"trustedBeneficiaries": true,
"psuIdentity": true
}

(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.

ErreurDescription 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 testJeu 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