Obtenir la liste des comptes
Obtenir la liste des comptes à vue et des cartes à débit différé
➤ Cas d'usage
Ce service permet de récupérer la liste des comptes à vue et cartes à débit différé du client (*).
Chaque compte ou carte est retourné avec les liens permettant de consulter les soldes ou les encours ainsi que les transactions associées à celui-ci.
Le resourceId fourni pour chaque compte et carte servira de paramètre pour les requêtes de récupération de soldes et de transactions.
Une pagination de la liste renvoyée peut être faite si le nombre de comptes ou cartes est élevé, dans ce cas des liens donnant accès à la première page, la précédente, la suivante et la dernière page faciliteront la consultation des résultats.
Les accès à cette méthode sont limités à 4 accès batch maximum par jour calendaire, pour un client donné, hors pagination.
En résumé, ce service permet :
- de lister tous les comptes à vue et cartes à débit différé adossées à ces derniers ;
- de récupérer les soldes des comptes à vue
- de récupérer les encours des cartes à débit différé (*)
- de récupérer l'URI pour la méthode "GET /end-user-identity"
- de récupérer les URI pour les méthodes "GET /accounts/balances" et "GET /accounts/transactions"
(*) Cette API ne remonte que les cartes à débit différée actives et qui ont servi (présence de facturette CB sur le compte support de la carte) au moins une fois dans les deux derniers mois.
➤ Prérequis
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érer votre jeton").
➤ Requête
Requête "GET /accounts"
Voir aussi la spécification de place STET V1.4.2.17 / Part II / section 4.2 / page 27
➤ Paramètres obligatoires ou facultatifs du body requis pour l'appel de ce service
Paramètre facultatif : PSU-IP-ADDRESS => à alimenter si le client est connecté.
➤ Résultat retourné
Si vous n'avez pas transmis de compte consenti par le client via la méthode PUT/consents ou que tous les comptes consentis ont été révoqués suite au dernier appel à la méthode PUT /consents :
- Cet appel vous permet
de récupérer la liste de tous les comptes du client sans leurs soldes, sans les URI pour les méthodes GET /accounts/balances, GET /accounts/transactions et GET /end-user-identity
Si avez transmis au moins un compte consenti par le client via la méthode PUT /consents et que tous les comptes consentis n'ont pas été révoqués suite au dernier appel à la méthode PUT /consents.
- Cet appel vous permet
de récupérer la liste de tous les comptes consentis du client avec :
leurs soldes si le compte fait partie de la liste "balances" transmise via la méthode PUT /consents
l'URI pour la méthode GET /accounts/balances si le compte fait partie de la liste "balances" transmise via la méthode PUT /consents
l'URI pour la méthode GET /accounts/transactions si le compte fait partie de la liste "transactions" transmise via la méthode PUT /consents
de récupérer la liste de toutes les cartes à débit différé (*) adossées aux comptes consentis (y compris s'il s'agit d'un compte joint) avec :
leurs encours si la carte à débit différée est adossée à un compte à vue qui fait partie de la liste "balances" transmise via la méthode PUT /consents
l'URI pour la méthode GET /accounts/balances si la carte à débit différé est adossées à un compte à vue qui fait partie de la liste "balances" transmise via la méthode PUT /consents
l'URI pour la méthode GET /accounts/transactions si la carte à débit différé est adossée à un compte à vue qui fait partie de la liste "transactions" transmise via la méthode PUT /consents
de récupérer l'URI pour la méthode "GET /end-user-identity" si la rubrique "psuIdentity" a été alimentée avec la valeur TRUE via la méthode PUT /consents
Cet appel ne vous permet pas
de récupérer les comptes à vue et les cartes à débit différés pour les comptes à vue non consentis
Une pagination de la liste renvoyée peut être faite si le nombre de comptes à vue ou de cartes à débit différé est élevé, dans ce cas des liens de navigation donnant accès à la première page, la précédente, la suivante et la dernière page faciliteront la consultation des résultats.
Un lien sera également présent pour revenir à la page obtenue juste après exécution de la requête.
Vos accès à cette méthode sont limités à 4 accès batch maximum par jour calendaire, pour un client donné (modulo la pagination éventuelle). En revanche, lorsque c'est le client connecté qui interroge directement ses comptes à vue, le nombre d'accès n'est pas limité.
La propriété "psuStatus" prend la valeur "Account Co-Holder" dès lors que le client n'est pas le seul titulaire du compte
(*) L'API AISP des Banques Populaires, Banque de Savoie et Banque Palatine ne remonte que les cartes à débit différée actives et qui ont servi (présence de facturette CB sur le compte support de la carte) au moins une fois dans les deux derniers mois : les cartes à débit différé actives qui n'ont pas d'encours carte dans le mois courant ni dans le mois précédent ne sont pas remontées par la requête "GET /accounts".
➤ Exemple sans consentement donné via PUT /consents
Requête
GET /stet/psd2/v1.4.2/accounts/
Résultat
Status code : 200
Body
{ "_links": { "last": { }, "self": { }, "first": { }, "endUserIdentity": { } }, "accounts": [ { "cashAccountType": "CACC", "accountId": { "iban": "FR7613807008043001965409135" "currency": "EUR", }, "resourceId": "038-CPT30019654091", "product": "COMPTE COURANT", "_links": {}, "usage": "ORGA", "psuStatus": "Account Holder", "name": "Tech-N Co", "bicFi": "CCBPFRPPNAN", "details": "COMPTE COURANT" } ] } |
Remarques :
- Le champ "currency" a été déplacé au niveau de l'"accountId".
➤ Exemple avec consentement donné via PUT /consents et restitution carte à débit différé
Requête
GET /stet/psd2/v1.4.2/accounts/
Résultat
Status code : 200
Body
{ "_links": { "last": { "href": "https://www.rs-sandbox.api.89c3.com/stet/psd2/v1.4.2/accounts?page=last" }, "self": { "href": "https://www.rs-sandbox.api.89c3.com/stet/psd2/v1.4.2/accounts" }, "first": { "href": "https://www.rs-sandbox.api.89c3.com/stet/psd2/v1.4.2/accounts" }, "endUserIdentity": { "href": "https://www.rs-sandbox.api.89c3.com/stet/psd2/v1.4.2/end-user-identity" } }, "accounts": [ { "cashAccountType": "CACC", "accountId": { "iban": "FR7613807008063031966574122", "currency": "EUR" }, "resourceId": "038-CPT30319665741", "product": "COMPTE CHEQUE", "balances": [ { "balanceType": "VALU", "name": "Solde en Valeur", "balanceAmount": { "amount": "0", "currency": "EUR" }, "referenceDate": "2020-06-05" }, { "balanceType": "CLBD", "name": "Solde Comptable", "balanceAmount": { "amount": "0", "currency": "EUR" }, "referenceDate": "2020-06-04" }, { "balanceType": "OTHR", "name": "Solde TP", "balanceAmount": { "amount": "0", "currency": "EUR" } } ], "_links": { "balances": { "templated": false, "href": "https://www.rs-sandbox.api.89c3.com/stet/psd2/v1.4.2/accounts/038-CPT30319665741/balances" }, "transactions": { "templated": false, "href": "https://www.rs-sandbox.api.89c3.com/stet/psd2/v1.4.2/accounts/038-CPT30319665741/transactions" } }, "usage": "PRIV", "psuStatus": "Account Holder", "name": "BARDE ADAM", "bicFi": "CCBPFRPPNAN", "details": "COMPTE CHEQUE" }, { "cashAccountType": "CACC", "accountId": { "iban": "FR7613807008063031966574219", "currency": "EUR" }, "resourceId": "038-CPT30319665742", "product": "COMPTE COURANT", "balances": [ { "balanceType": "VALU", "name": "Solde en Valeur", "balanceAmount": { "amount": "-2894.05", "currency": "EUR" }, "referenceDate": "2020-06-05" }, { "balanceType": "CLBD", "name": "Solde Comptable", "balanceAmount": { "amount": "-2894.05", "currency": "EUR" }, "referenceDate": "2020-06-04" }, { "balanceType": "OTHR", "name": "Solde TP", "balanceAmount": { "amount": "-2894.05", "currency": "EUR" } } ], "_links": { "balances": { "templated": false, "href": "https://www.rs-sandbox.api.89c3.com/stet/psd2/v1.4.2/accounts/038-CPT30319665742/balances" }, "transactions": { "templated": false, "href": "https://www.rs-sandbox.api.89c3.com/stet/psd2/v1.4.2/accounts/038-CPT30319665742/transactions" } }, "usage": "ORGA", "psuStatus": "Account Holder", "name": "SARL UNI PICCOLO", "bicFi": "CCBPFRPPNAN", "details": "COMPTE COURANT" }, { "cashAccountType": "CARD", "accountId": { "other": { "identification": "C01WcBfYTK70wJJ5LpsMI3EGQ==", "schemeName": "CPAN", "issuer": "13807" }, "currency": "EUR" }, "resourceId": "038-GFCC01WcBfYTK70wJJ5LpsMI3EGQ", "product": "Visa Classic", "balances": [ { "balanceType": "OTHR", "name": "Encours", "balanceAmount": { "amount": "0", "currency": "EUR" }, "referenceDate": "2020-06-30" }, { "balanceType": "OTHR", "name": "Dernier encours prélevé", "balanceAmount": { "amount": "78.65", "currency": "EUR" }, "referenceDate": "2020-05-31" } ], "_links": { "balances": { "templated": false, "href": "https://www.rs-sandbox.api.89c3.com/stet/psd2/v1.4.2/accounts/038-GFCC01WcBfYTK70wJJ5LpsMI3EGQ/balances" }, "transactions": { "templated": false, "href": "https://www.rs-sandbox.api.89c3.com/stet/psd2/v1.4.2/accounts/038-GFCC01WcBfYTK70wJJ5LpsMI3EGQ/transactions" } }, "usage": "PRIV", "psuStatus": "Account Holder", "name": "M ADAM BARDE XX9351", "linkedAccount": "038-CPT30319665741", "bicFi": "CCBPFRPPNAN", "details": "CB VISA FACELIA DEBIT DIFFERE" }, { "cashAccountType": "CARD", "accountId": { "other": { "identification": "C01mS9kXqK80z5X19/E7WmZjw==", "schemeName": "CPAN", "issuer": "13807" }, "currency": "EUR" }, "resourceId": "038-GFCC01mS9kXqK80z5X19_E7WmZjw", "product": "Visa Classic", "balances": [ { "balanceType": "OTHR", "name": "Encours", "balanceAmount": { "amount": "0", "currency": "EUR" }, "referenceDate": "2020-06-30" }, { "balanceType": "OTHR", "name": "Dernier encours prélevé", "balanceAmount": { "amount": "156.27", "currency": "EUR" }, "referenceDate": "2020-05-31" } ], "_links": { "balances": { "templated": false, "href": "https://www.rs-sandbox.api.89c3.com/stet/psd2/v1.4.2/accounts/038-GFCC01mS9kXqK80z5X19_E7WmZjw/balances" }, "transactions": { "templated": false, "href": "https://www.rs-sandbox.api.89c3.com/stet/psd2/v1.4.2/accounts/038-GFCC01mS9kXqK80z5X19_E7WmZjw/transactions" } }, "usage": "PRIV", "psuStatus": "Account Holder", "name": "M ADAM BARDE XX4620", "linkedAccount": "038-CPT30319665741", "bicFi": "CCBPFRPPNAN", "details": "VISA INTERNATIONALE DB DIFFERE" } ] } |
(Cas du persona Adam - D0999994I0)
Remarques :
- Le champ “connectedPsu” a été supprimé et remplacé par le links"endUserIdentity"
➤ Exemple de pagination
Requête
GET /stet/psd2/v1.4.2/accounts?page=1
Résultat
Status code : 200
Body
"accounts": [ { "cashAccountType": "CACC", "accountId": { "iban": "FR7613807008043099888880699", "currency": "EUR" }, "resourceId": "038-CPT30998888806", "product": "COMPTE CHEQUE", "balances": [ { "balanceType": "VALU", "name": "Solde en Valeur", "balanceAmount": { "amount": "6.78", "currency": "EUR" }, "referenceDate": "2020-06-05" }, { "balanceType": "CLBD", "name": "Solde Comptable", "balanceAmount": { "amount": "6.78", "currency": "EUR" }, "referenceDate": "2020-06-04" }, { "balanceType": "OTHR", "name": "Solde TP", "balanceAmount": { "amount": "6.78", "currency": "EUR" } } ], "_links": { "balances": { "templated": false, "href": "https://www.rs-sandbox.api.89c3.com/stet/psd2/v1.4.2/accounts/038-CPT30998888806/balances" }, "transactions": { "templated": false, "href": "https://www.rs-sandbox.api.89c3.com/stet/psd2/v1.4.2/accounts/038-CPT30998888806/transactions" } }, "usage": "PRIV", "psuStatus": "Nominee", "name": "Compte mensualités", "bicFi": "CCBPFRPPNAN", "details": "COMPTE CHEQUE" }, { "cashAccountType": "CACC", "accountId": { "iban": "FR7613807008043099888880799", "currency": "EUR" }, "resourceId": "038-CPT30998888807", "product": "COMPTE CHEQUE", "balances": [ { "balanceType": "VALU", "name": "Solde en Valeur", "balanceAmount": { "amount": "7.6", "currency": "EUR" }, "referenceDate": "2020-06-05" }, { "balanceType": "CLBD", "name": "Solde Comptable", "balanceAmount": { "amount": "7.6", "currency": "EUR" }, "referenceDate": "2020-06-04" }, { "balanceType": "OTHR", "name": "Solde TP", "balanceAmount": { "amount": "7.6", "currency": "EUR" } } ], "_links": { "balances": { "templated": false, "href": "https://www.rs-sandbox.api.89c3.com/stet/psd2/v1.4.2/accounts/038-CPT30998888807/balances" }, "transactions": { "templated": false, "href": "https://www.rs-sandbox.api.89c3.com/stet/psd2/v1.4.2/accounts/038-CPT30998888807/transactions" } }, "usage": "PRIV", "psuStatus": "Successor On Death", "name": "Compte perso", "bicFi": "CCBPFRPPNAN", "details": "COMPTE CHEQUE" }, { "cashAccountType": "CACC", "accountId": { "iban": "FR7613807008043099888880899", "currency": "EUR" }, "resourceId": "038-CPT30998888808", "product": "COMPTE CHEQUE", "balances": [ { "balanceType": "VALU", "name": "Solde en Valeur", "balanceAmount": { "amount": "8.8", "currency": "EUR" }, "referenceDate": "2020-06-05" }, { "balanceType": "CLBD", "name": "Solde Comptable", "balanceAmount": { "amount": "8.8", "currency": "EUR" }, "referenceDate": "2020-06-04" }, { "balanceType": "OTHR", "name": "Solde TP", "balanceAmount": { "amount": "8.8", "currency": "EUR" } } ], "_links": { "balances": { "templated": false, "href": "https://www.rs-sandbox.api.89c3.com/stet/psd2/v1.4.2/accounts/038-CPT30998888808/balances" }, "transactions": { "templated": false, "href": "https://www.rs-sandbox.api.89c3.com/stet/psd2/v1.4.2/accounts/038-CPT30998888808/transactions" } }, "usage": "PRIV", "psuStatus": "Trustee", "name": "Retrait et Cheques", "bicFi": "CCBPFRPPNAN", "details": "COMPTE CHEQUE 8" }, { "cashAccountType": "CACC", "accountId": { "iban": "FR7613807008043099888880999", "currency": "EUR" }, "resourceId": "038-CPT30998888809", "product": "COMPTE CHEQUE", "balances": [ { "balanceType": "VALU", "name": "Solde en Valeur", "balanceAmount": { "amount": "9.9", "currency": "EUR" }, "referenceDate": "2020-06-05" }, { "balanceType": "CLBD", "name": "Solde Comptable", "balanceAmount": { "amount": "9.9", "currency": "EUR" }, "referenceDate": "2020-06-04" }, { "balanceType": "OTHR", "name": "Solde TP", "balanceAmount": { "amount": "9.9", "currency": "EUR" } } ], "_links": { "balances": { "templated": false, "href": "https://www.rs-sandbox.api.89c3.com/stet/psd2/v1.4.2/accounts/038-CPT30998888809/balances" }, "transactions": { "templated": false, "href": "https://www.rs-sandbox.api.89c3.com/stet/psd2/v1.4.2/accounts/038-CPT30998888809/transactions" } }, "usage": "PRIV", "psuStatus": "Trustee", "name": "Retrait et Cheques", "bicFi": "CCBPFRPPNAN", "details": "COMPTE CHEQUE 9" }, { "cashAccountType": "CACC", "accountId": { "iban": "FR7613807008043099888881099", "currency": "EUR" }, "resourceId": "038-CPT30998888810", "product": "COMPTE CHEQUE", "balances": [ { "balanceType": "VALU", "name": "Solde en Valeur", "balanceAmount": { "amount": "10.10", "currency": "EUR" }, "referenceDate": "2020-06-05" }, { "balanceType": "CLBD", "name": "Solde Comptable", "balanceAmount": { "amount": "10.10", "currency": "EUR" }, "referenceDate": "2020-06-04" }, { "balanceType": "OTHR", "name": "Solde TP", "balanceAmount": { "amount": "10.10", "currency": "EUR" } } ], "_links": { "balances": { "templated": false, "href": "https://www.rs-sandbox.api.89c3.com/stet/psd2/v1.4.2/accounts/038-CPT30998888810/balances" }, "transactions": { "templated": false, "href": "https://www.rs-sandbox.api.89c3.com/stet/psd2/v1.4.2/accounts/038-CPT30998888810/transactions" } }, "usage": "PRIV", "psuStatus": "Trustee", "name": "Retrait et Cheques", "bicFi": "CCBPFRPPNAN", "details": "COMPTE CHEQUE 10" } ], "_links": { "next": { "href": "https://www.rs-sandbox.api.89c3.com/stet/psd2/v1.4.2/accounts?page=3" }, "last": { "href": "https://www.rs-sandbox.api.89c3.com/stet/psd2/v1.4.2/accounts?page=last" }, "prev": { "href": "https://www.rs-sandbox.api.89c3.com/stet/psd2/v1.4.2/accounts" }, "self": { "href": "https://www.rs-sandbox.api.89c3.com/stet/psd2/v1.4.2/accounts?page=2" }, "first": { "href": "https://www.rs-sandbox.api.89c3.com/stet/psd2/v1.4.2/accounts" }, "endUserIdentity": { "href": "https://www.rs-sandbox.api.89c3.com/stet/psd2/v1.4.2/end-user-identity" } } } |
Un exemple plus complet de requête est fourni dans la rubrique "Comment tester l'API ?" > "Assemblage sandbox".
➤ 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 : le numéro de compte 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) |
INTE | InternalError : il y a une erreur interne de traitement |
INTS | InternalServerError : il y a une erreur interne de communication avec le SI |
IPGN | InvalidPageNumber : le numéro de page est invalide |
NAAC | No avalaible accounts : absence de comptes éligibles ou consentis |
NGAC | NotGrantedAccount : le compte n'est pas consenti |
NIMP | NotImplemented : le mauvais verbe est appelé (GET attendu) |
TMRQ | TooManyRequest : le nombre de requêtes possibles a été dépassé |
IPSU | InvalidPSU : Numéro d'abonné non référencé ou abonnement banque à distance résilié |
➤ 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 |
---|---|
Récupération de tous les comptes d'un client (au moins 2 doivent être présents au niveau de l'ASPSP) => Vérification des liens présents dans le résultat de la requête (lien self, soldes et transactions) | Persona : Alix - D0999992I0 Prérequis : scope OAuth2 = aisp Résultat : réponse HTTP 200 => OK restitution de trois comptes de paiement et trois cartes à débit différée |
Récupération de plusieurs comptes liés au client et vérification que l'ASPSP gère correctement le mécanisme de pagination => Vérification des liens optionnels premier, précédent, suivant, dernier. | Persona : Marc - D0999990I0 Prérequis : scope OAuth2 = aisp Résultat : réponse HTTP 200 => OK restitution de ses trois comptes sur la même page |
Récupération de plusieurs comptes et cartes liés au client et vérification que l'ASPSP gère correctement le mécanisme de pagination => Vérification des liens optionnels premier, précédent, suivant, dernier. | Persona : Adam - D0999994I0 Prérequis : scope OAuth2 = aisp Résultat : réponse HTTP 200 => OK restitution de deux comptes et de deux cartes à débit différé |
Requête HTTP avec un jeton d'accès non autorisé pour la ressource (scope erroné) | Persona : Marc - D0999990I0 Prérequis : scope OAuth2 <> aisp Résultat : réponse HTTP403 => accès à la ressource refusé message d'erreur : BADS |
Passage d'une requête HTTP POST | Persona : Marc - D0999990I0 Prérequis : scope OAuth2 = aisp Résultat : réponse HTTP405 => méthode non autorisée |