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

 

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

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

 

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

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