• Assemblage sandbox

➤ Introduction - précisions sur les fonctionnalités de la sandbox

La sandbox 89C3 API peut être utilisée de 2 manières :

  • Soit via le Try-it du portail 89C3-API (voir la rubrique "Comment tester l'API ?" > "Console Try-it").
  • Soit directement via votre application : c'est le mode assemblage décrit ci-après.

En assemblage sandbox, il y a 2 appels :

  • Le premier pour identifier/authentifier le client, puis récupérer le jeton d'autorisation (voir la rubrique "Vue d'ensemble" > "Récupérez votre jeton") ou le rafraîchir (voir la rubrique "Vue d'ensemble" > "Rafraîchissez votre jeton").
  • Le second pour faire l'appel à l'API "Information sur compte" (voir les cas d'usage "Obtenir la liste des comptes", "Transmettre la liste des comptes", "Obtenir les soldes", "Obtenir les transactions", "Obtenir les bénéficiaires de confiance" et ">Obtenir l'identité du client")

Votre application consommatrice de l'API "Information sur compte" en assemblage sandbox va devoir récupérer un jeton d'accès via sa clé d'authentification auprès de l'AS (Authentification Server).

Ainsi votre application pourra consommer les méthodes GET /accounts, PUT /consents, GET /accounts/{accountResourceId}/transactions, GET /accounts/{accountResourceId}/balances, GET /trusted-beneficiaries et GET /end-user-identity grâce à son jeton d’accès.

Les appels des méthodes de l'API pourront être enchaînés :

  • En exécutant la requête de récupération de la liste des comptes à vue GET /accounts dans un premier temps ;
  • Puis, en exécutant la requête de transmission des consentements donnés par le client PUT /consents;
  • Ensuite, en exécutant la requête de récupération du solde GET /accounts/{accountResourceId}/balances, en passant en paramètre le "resourceId" d'un des comptes récupérés du résultat de la première requête. Idem avec la requête de récupération de l'historique des transactions du compte GET /accounts/{accountResourceId}/transactions ;
  • Puis, en exécutant la requête de récupération de la liste des bénéficiaires de confiance du client GET /trusted-beneficiaries => cette méthode renvoie systématiquement une erreur car la notion de bénéficiaires n'est pas supportée par notre Système d'Information.
  • Enfin, en exécutant la requête de récupération de l'identité du client GET /end-user-identity

Les données utilisées pour faire les tests seront issues des persona (voir la rubrique "Comment tester l'API ?" > "Testez nos persona"), ce qui permettra de choisir des profils spécifiques selon les tests de façon à mieux appréhender les résultats obtenus.

En cas de nécessité, une pagination des résultats sera faite pour faciliter la lisibilité et des liens de navigation entre les différentes pages de résultats seront présents (voir les exemples présents dans les cas d'usage "Gérez le consentement" et "Obtenez les transactions"), ce qui implique que l'application consommatrice puisse gérer correctement cette pagination.

 

➤ Prérequis

Pour consommer nos API en sandbox, vous devez déclarer votre APP sur le portail 89c3 API (cf. menu "Mes applications") et nous transmettre les clés publiques de vos certificats QWAC et QEALC de test afin que nous puissions :

  • Déclarer votre APP comme application consommatrice de l'API ;
  • Intégrer vos clés publiques QWAC et QSEALC de test dans nos infrastructures ;
  • Récupérer et contrôler votre organizationId et votre rôle "AISP" dans notre registre des TPP ;
  • Utiliser votre URI de redirection (callback) qui sera appelée par l'ASPSP ;
    • si le client a autorisé la récupération de ses données par l'AISP ;
    • ou en cas de refus du consentement
    • ou si la cinématique ci-dessous est interrompue (par exemple : timeout sur les écrans)

Pour consommer nos API en live, vous devez déclarer votre APP

Rappel : en tant que TPP, vous devez être accrédité (ou en cours d'accréditation) par l'une des autorités compétentes nationales européennes (ACPR en France) pour le rôle d'agrégateur de compte ("AISP").

 

➤ Enchaînement des étapes pour tester l'accès à l'API AISP depuis votre APP

1ère étape : Faire la demande de jeton via la redirection

Cet appel vous permet de déclencher l’identification du client dans l’établissement qui détient ses comptes, prérequis à l’obtention d’un jeton d’accès pour cet établissement. Il s’agit de demander au client connecté de donner son contentement pour accéder à ses données pendant 90 jours

La description de la fonctionnalité est décrite dans la rubrique "Vue d'ensemble" > "Récupérez votre jeton".

NB : Le client pouvant domicilier ses comptes dans plusieurs banques du Groupe BPCE, il vous faudra un jeton différent pour accéder à chacune de nos banques si le client souhaite agréger ses comptes depuis chacune d’entre elles => cet appel et les appels suivants seront donc à répéter pour chacun des établissements concernés.

Afin de pouvoir interroger le bon backend, dans le parcours client, il est donc nécessaire que vous prévoyiez d’interroger le client au préalable sur son(ses) établissement(s) de rattachement.

Pour l’accès à l’assemblage sandbox, le point d’entrée dépend du code établissement : « www.<cdetab>.sandbox.api.89C3.com ».

Les seuls établissements bancaires utilisables en assemblage sandbox pour cette API sont les suivants (code établissement <cdetab> utilisé dans les URL) :

Code établissementNom de l'établissementNom abrégé
13807 B.P Grand Ouest BPGO
13807 CMM Grand Ouest CMMGO

Requête de redirection vers la page d'identification :

GET https://www.13807.sandbox.api.89C3.com/stet/psd2/oauth/authorize

Headers :

Content-Type:application/x-www-form-urlencoded; charset=utf-8

Params :

redirect_uri : https://myAPP.fr/Home/OAuth2Callback

client_id : PSDFR-ACPR-13807

response_type : code

scope : AISP

Remarques sur l'alimentation des champs :

client_id :

  • Si l'enregistrement du TPP a été réalisé au travers du processus de "GO Live" via notre portail 89c3 API (ancienne procédure)
    • numéro d’agrément donné par votre autorité compétente (PSDXX-YYYYYYYY-ZZZZZZZZ)
  • Ou si l'enregistrement du TPP a été réalisé via l'API register (procédure actuelle)
    • client_id retourné dans la réponse au POST /register

redirect_uri : URL de redirection prédéclarée dans votre application consommatrice
ET
à communiquer à l'ASPSP

  • lors de l'étape GO Assemblage (resp. GO Live en production) si le TPP a été enregistré par la procédure actuelle ;
  • à l'API register si le TPP s'est enregistré par la procédure automatisée.

 

2ème étape : La redirection vers les écrans

Cinématique nominale des enchaînements des écrans d'identification et d'authentification forte :

cinématique globale AISP

Déroulé de l'enchaînement des écrans d'identification et d'authentification forte :

1) Le client est redirigé vers un écran d'identification proposé par son établissement bancaire et dans lequel il saisira son identifiant de banque à distance.

AISP 1 1 Identification

L'identifiant de banque à distance du client est à saisir (voir la rubrique "Comment tester l'API ?" > "Tester nos personas" pour les jeux de données de l'établissement), exemple pour le persona "Marc" des Banques Populaires :

AISP 1 2 Identification

2) Le client est redirigé vers un écran d'authentification forte proposé par son établissement bancaire pour valider son identité.

AISP 2 1 MireAuthentBP

Le code SMS pour authentification est à saisir (voir la rubrique "Comment tester l'API ?" > "Testez nos personas" pour les jeux de données de l'établissement), exemple pour le persona "Marc" des Banques Populaires :

AISP 2 2 MireAuthentBP

La cinématique de cette étape dépend de la méthode d'authentification forte mise à disposition du client par l'établissement bancaire (SMS OTP, secur'pass, etc.).

Elle dépend aussi de l'équipement du client sur lequel tourne l'APP de l'AISP utilisée par le client (PC ou mobile/tablette). 

Dans certains cas, une notification peut être envoyée vers le client afin qu'il active son moyen d'authentification forte, et pour terminer cette étape.

 

3ème étape : Récupérer un jeton d'accès / access_token

Vous devez fournir votre certificat QWAC dans la requête POST /stet/psd2/oauth/token pour que l’infrastructure d’API de l’ASPSP puisse faire les vérifications liées à votre profil et vérifier votre identité.

Le certificat doit correspondre à celui-ci que le PSP a fourni :

  • lors de l’étape GO Assemblage (resp. GO Live en production) si le TPP a été enregistré par la procédure manuelle,
  • à l’API register si le TPP s’est enregistré par la procédure automatisée.

Cet appel permet à l'AISP de récupérer le jeton pour pouvoir accéder aux données à partir de l'URL de callback enregistrée par l'AISP dans son application consommatrice.

Exemple : https://bred.demoseo.turbosa.banquepopulaire.fr/Home/OAuth2Callback?code=NnZx1hqHY2CLkCFjiTwhJeflgNnCrB

Si le client vous a autorisé à récupérer ses données pour un établissement, vous trouverez dans la réponse à l’appel précédent, le code à utilisation unique qui permet de récupérer un access_token

Cet access_token est valable 1h et est un prérequis pour chaque accès à l'une des méthodes de l'API d'information sur compte. La description de la fonctionnalité et des champs de la requête est décrite dans le cas d'usage "Récupérer votre jeton".

Ce jeton est accompagné d’un refresh_token valable 90 jours que vous devez conserver. Lorsque votre access_token arrive à expiration, vous pouvez en redemander un nouveau en suivant la cinématique "Rafraîchir votre acces_token" ci-après. 

Au bout de 90 jours votre refresh_token arrive à expiration. Pour en récupérer un nouveau, vous devez reprendre la cinématique "Récupérer un jeton d'accès " et passer par une nouvelle étape d’authentification forte du client auprès de l'établissement bancaire. 

Requête:

POST https://www.13807.sandbox.api.89C3.com/stet/psd2/oauth/token

Headers :

Content-Type:application/x-www-form-urlencoded; charset=utf-8

Params :

redirect_uri:https://myAPP.fr/Home/OAuth2Callback

client_id:PSDFR-ACPR-13807

grant_type:authorization_code

code:NnZx1hqHY2CLkCFjiTwhJeflgNnCrB

Remarques sur l'alimentation des champs : 

client_id :

  • Si l'enregistrement du TPP a été réalisé au travers du processus de "GO Live" via notre portail 89c3 API (ancienne procédure)
    • numéro d’agrément donné par votre autorité compétente (PSDXX-YYYYYYYY-ZZZZZZZZ)
  • Ou si l'enregistrement du TPP a été réalisé via l'API register (procédure actuelle)
    • client_id retourné dans la réponse au POST /register

Code : récupéré dans l’url de callback

redirect_uri : URL de redirection prédéclarée dans votre application consommatrice

ET
à communiquer à l'ASPSP

  • lors de l'étape GO Assemblage (resp. GO Live en production) si le TPP a été enregistré par la procédure actuelle ;
  • à l'API register si le TPP s'est enregistré par la procédure automatisée.

!!! Il faut que la redirect_uri soit la même que pour la requête GET /authorize !!!

Réponse : 

"access_token": "KXZyspFBZ1R6NqWQdmsZhfdo1nbjK7MoI0Kr2rSi1mSCFNehAs6iLw",

"token_type": "Bearer", 

"expires_in": 3600, 

"scope": "aisp offline_access",  

"refresh_token": "KUZyspFBZ1R6NqWQdmsZhfdo1nbjK7MoD0Kr2rSi1mSCFNehAs6iLa"

}



4ème étape : Consommer les méthodes de l'API  

  • Obtenir la liste des comptes à vue et cartes à débit différé d'un client

Cet appel vous permet de lister les comptes du client connecté ou non.

La description de la fonctionnalité et des champs de la requête est décrite dans le cas d'usage "Lister les comptes". 

Exemple de requête de récupération de la liste des comptes en assemblage sandbox :

Requête :

GET https://www.13807.sandbox.api.89C3.com/stet/psd2/v1.4.2/accounts

Headers :

Authorization:Bearer KXZyspFBZ1R6NqWQdmsZhfdo1nbjK7MoI0Kr2rSi1mSCFNehAs6iLw

Signature : keyId=\"MZGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDCFENGw33yGihy92pDjZQhl0C36rPJj+CvfSC8+q28hxA161QFNUd13wuCTUcq0Qd2qsBe/2hFyc2DCJJg0h1L78+6Z4UMR7EOcpfdUE9Hf3m/hs+FUR45uBJeDK1HSFHD8bHKD6kv8FPGfJTotc+2xjJwoYi+1hqp1fIekaxsyQIDAQAB\",algorithm=\"rsa-sha256\",headers=\"(request-target) psu-ip-address psu-ip-port psu-http-method psu-date psu-user-agent psu-referer psu-accept psu-accept-charset psu-accept-encoding psu-accept-language digest\",signature=\"LbkxgICM48J6KdWNaF9qT7OWEorNlAwWNo6R+KkP7cP4TIGkk8wxcsGQXJ9ZnC+ZiA8mjL5S8WQyL41M7iPt+vJX4xh679gdGwmlKzn7E+ZtZ1I4qalRxcdLp4gBL7fll+C2lVBNJrViMJBezFK7AYVjnSWH7t1QxiMVg3CmoRM=\

X-request-id:id-1234567890111121 1

Psu-Ip-Address:192.168.0.1

Remarques sur l'alimentation des champs :

Authorization:Bearer => access_token récupéré pour le token

Psu-Ip-Address => permet de différencier les appels batch et les appels avec le client connecté : ce champ est à alimenter pour un client connecté

Réponse : 200 OK

Headers :

X-request-id:id-1234567890111121 1

Remarques sur l'alimentation des champs :

X-request-id: transmis en entrée

Body :

{
   "_links": {
      "last": {
         "href": "https://www.<cdetab>.sandbox.api.89C3.com/stet/psd2/v1.4.2/accounts?page=last"
      },
      "self": {
         "href": "https://www.<cdetab>.sandbox.api.89C3.com/stet/psd2/v1.4.2/accounts"
      },
      "first": {
         "href": "https://www.<cdetab>.sandbox.api.89C3.com/stet/psd2/v1.4.2/accounts"
      }
   },
   "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"
      }
   ]
}

(cas du persona Tech-N Co - D0999993I0 pour lequel aucun consentement n’a été donné via la méthode PUT /consents)

{
   "_links": {
      "last": {
         "href": "https://www.<cdetab>.sandbox.api.89C3.com/stet/psd2/v1.4.2/accounts?page=last"
      },
      "self": {
         "href": "https://www.<cdetab>.sandbox.api.89C3.com/stet/psd2/v1.4.2/accounts"
      },
      "first": {
         "href": "https://www.<cdetab>.sandbox.api.89C3.com/stet/psd2/v1.4.2/accounts"
      },
      "endUserIdentity": {
         "href": "https://www.<cdetab>.sandbox.api.89C3.com/stet/psd2/v1.4.2/end-user-identity"
      }
   },
   "accounts": [
      {
         "cashAccountType": "CACC",
         "accountId": {
            "iban": "FR7613807008043001965405158",
            "currency": "EUR"
         },
         "resourceId": "038-CPT30019654051",
         "product": "COMPTE CHEQUE",
         "balances": [
            {
               "balanceType": "VALU",
               "name": "Solde en Valeur",
               "balanceAmount": {
                  "amount": "4321.95",
                  "currency": "EUR"
               },
               "referenceDate": "2020-06-12"
            },
            {
               "balanceType": "CLBD",
               "name": "Solde Comptable",
               "balanceAmount": {
                  "amount": "4179.95",
                  "currency": "EUR"
               },
               "referenceDate": "2020-06-11"
            },
            {
               "balanceType": "OTHR",
               "name": "Solde TP",
               "balanceAmount": {
                  "amount": "4348.95",
                  "currency": "EUR"
               }
            }
         ],
         "_links": {
            "balances": {
               "templated": false,
               "href": "https://www.<cdetab>.sandbox.api.89C3.com/stet/psd2/v1.4.2/accounts/038-CPT30019654051/balances"
            },
            "transactions": {
               "templated": false,
               "href": "https://www.<cdetab>.sandbox.api.89C3.com/stet/psd2/v1.4.2/accounts/038-CPT30019654051/transactions"
            }
         },
         "usage": "PRIV",
         "psuStatus": "Account Holder",
         "name": "Compte perso",
         "bicFi": "CCBPFRPPNAN",
         "details": "COMPTE CHEQUE"
      },
      {
         "cashAccountType": "CACC",
         "accountId": {
            "iban": "FR7613807008043001965405255",
            "currency": "EUR"
         },
         "resourceId": "038-CPT30019654052",
         "product": "COMPTE CHEQUE",
         "balances": [
            {
               "balanceType": "VALU",
               "name": "Solde en Valeur",
               "balanceAmount": {
                  "amount": "459.56",
                  "currency": "EUR"
               },
               "referenceDate": "2020-06-12"
            },
            {
               "balanceType": "CLBD",
               "name": "Solde Comptable",
               "balanceAmount": {
                  "amount": "459.56",
                  "currency": "EUR"
               },
               "referenceDate": "2020-06-11"
            },
            {
               "balanceType": "OTHR",
               "name": "Solde TP",
               "balanceAmount": {
                  "amount": "459.56",
                  "currency": "EUR"
               }
            }
         ],
         "_links": {
            "balances": {
               "templated": false,
               "href": "https://www.<cdetab>.sandbox.api.89C3.com/stet/psd2/v1.4.2/accounts/038-CPT30019654052/balances"
            },
            "transactions": {
               "templated": false,
               "href": "https://www.<cdetab>.sandbox.api.89C3.com/stet/psd2/v1.4.2/accounts/038-CPT30019654052/transactions"
            }
         },
         "usage": "PRIV",
         "psuStatus": "Account Holder",
         "name": "Retrait et Cheques",
         "bicFi": "CCBPFRPPNAN",
         "details": "COMPTE CHEQUE"
      },
      {
         "cashAccountType": "CACC",
         "accountId": {
            "iban": "FR7613807008043001965405352",
            "currency": "EUR"
         },
         "resourceId": "038-CPT30019654053",
         "product": "COMPTE CHEQUE",
         "balances": [
            {
               "balanceType": "VALU",
               "name": "Solde en Valeur",
               "balanceAmount": {
                  "amount": "2165.5",
                  "currency": "EUR"
               },
               "referenceDate": "2020-06-12"
            },
            {
               "balanceType": "CLBD",
               "name": "Solde Comptable",
               "balanceAmount": {
                  "amount": "2165.5",
                  "currency": "EUR"
               },
               "referenceDate": "2020-06-11"
            },
            {
               "balanceType": "OTHR",
               "name": "Solde TP",
               "balanceAmount": {
                  "amount": "2165.5",
                  "currency": "EUR"
               }
            }
         ],
         "_links": {
            "balances": {
               "templated": false,
               "href": "https://www.<cdetab>.sandbox.api.89C3.com/stet/psd2/v1.4.2/accounts/038-CPT30019654053/balances"
            },
            "transactions": {
               "templated": false,
               "href": "https://www.<cdetab>.sandbox.api.89C3.com/stet/psd2/v1.4.2/accounts/038-CPT30019654053/transactions"
            }
         },
         "usage": "PRIV",
         "psuStatus": "Account Holder",
         "name": "Compte mensualités",
         "bicFi": "CCBPFRPPNAN",
         "details": "COMPTE CHEQUE"
      }
   ]
}



  • Transmettre la liste des comptes à vue consentis par le client pour la consultation des soldes et/ou des transactions

Même principe de passage du jeton d'accès qu'au paragraphe "Obtenir la liste des comptes à vue et cartes à débit différé d'un client" ci-dessus.

Un exemple est donné dans le cas d'usage "Gérer le consentement".

Requête :

PUT https://www.13807.sandbox.api.89C3.com/stet/psd2/v1.4.2/consents

Headers :

Content-Type : application/json

Authorization : Bearer KXZyspFBZ1R6NqWQdmsZhfdo1nbjK7MoI0Kr2rSi1mSCFNehAs6iLw

Signature : keyId=\"MZGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDCFENGw33yGihy92pDjZQhl0C36rPJj+CvfSC8+q28hxA161QFNUd13wuCTUcq0Qd2qsBe/2hFyc2DCJJg0h1L78+6Z4UMR7EOcpfdUE9Hf3m/hs+FUR45uBJeDK1HSFHD8bHKD6kv8FPGfJTotc+2xjJwoYi+1hqp1fIekaxsyQIDAQAB\",algorithm=\"rsa-sha256\",headers=\"(request-target) psu-ip-address psu-ip-port psu-http-method psu-date psu-user-agent psu-referer psu-accept psu-accept-charset psu-accept-encoding psu-accept-language digest\",signature=\"LbkxgICM48J6KdWNaF9qT7OWEorNlAwWNo6R+KkP7cP4TIGkk8wxcsGQXJ9ZnC+ZiA8mjL5S8WQyL41M7iPt+vJX4xh679gdGwmlKzn7E+ZtZ1I4qalRxcdLp4gBL7fll+C2lVBNJrViMJBezFK7AYVjnSWH7t1QxiMVg3CmoRM=\

X-request-id:id-1234567890111121 2

Psu-Ip-Address : 192.168.0.1 

Remarques sur l'alimentation des champs :

Authorization:Bearer => access_token récupéré pour le token

Psu-Ip-Address => permet de différencier les appels batch et les appels avec le client connecté : ce champ est à alimenter pour un client connecté

Body (avec un IBAN de l’abonné) :

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

Réponse :

               Headers :

X-request-id:id-1234567890111121 2

Remarques sur l'alimentation des champs :

X-request-id: transmis en entrée

Pas de body mais un « 201 – Created »

  

  • Obtenir les soldes d'un compte à vue ou les encours des cartes à débit différé adossées à ce dernier

Même principe de passage du jeton d'accès qu'au paragraphe "Obtenir la liste des comptes à vue et cartes à débit différé d'un client" ci-dessus.

La description de la méthode et un exemple sont donnés dans le cas d'usage "Obtenir les soldes".

  

  • Obtenir les transactions d'un compte à vue ou les facturettes des cartes à débit différé adossées à ce dernier

Même principe de passage du jeton d'accès qu'au paragraphe "Obtenir la liste des comptes à vue et cartes à débit différé d'un client" ci-dessus.

La description de la méthode et un exemple sont donnés dans le cas d'usage "Obtenir les transactions".

  

  • Obtenir la liste des bénéficiaires de confiance d'un client => ce service sera disponible au dernier trimestre 2019.

Même principe de passage du jeton d'accès qu'au paragraphe "Obtenir la liste des comptes à vue et cartes à débit différé d'un PSU" ci-dessus.

La description de la méthode et un exemple seront donnés dans le cas d'usage "Obtenir les bénéficiaires de confiance=> ce service n'est pas implémenté.

  

  • Obtenir l'identité du client

Même principe de passage du jeton d'accès qu'au paragraphe "Obtenir la liste des comptes à vue et cartes à débit différé d'un client" ci-dessus.

La description de la méthode et un exemple seront donnés dans le cas d'usage "Obtenir l'identité du client".

  

  • Rafraîchir le jeton d'accès avec le refresh_token 

Requête:

POST https://www.13807.sandbox.api.89C3.com/stet/psd2/oauth/token

Headers :

Content-Type:application/x-www-form-urlencoded; charset=utf-8

Données dans le body de la requête POST

client_id:PSDFR-ACPR-13807

grant_type:refresh_token

refresh_token:KUZyspFBZ1R6NqWQdmsZhfdo1nbjK7MoD0Kr2rSi1mSCFNehAs6iLa

Remarques sur l'alimentation des champs : 

client_id

  • Si l'enregistrement du TPP a été réalisé au travers du processus de "GO Live" via notre portail 89c3 API (ancienne procédure)
    • numéro d’agrément donné par votre autorité compétente (PSDXX-YYYYYYYY-ZZZZZZZZ)
  • Ou si l'enregistrement du TPP a été réalisé via l'API register (procédure actuelle)
    • client_id retourné dans la réponse au POST /register

Réponse : 

"access_token": "4s2Bt3MRL7nlPUZcRTPe5Tjs0v8p7ZOXOyEKs1juYesj9pPaU7hXFA",

"token_type": "Bearer", 

"expires_in": 3600, 

"scope": "aisp offline_access",  

"refresh_token": "KUZyspFBZ1R6NqWQdmsZhfdo1nbjK7MoD0Kr2rSi1mSCFNehAs6iLa"

}