diff --git a/__tests__/requests/sge.spec.js b/__tests__/requests/sge.spec.js
index a19c6ddff6ac3127d588c5a6e35e206e6109a1de..6d5f1e6f9364ffd8a3cee5dcfb73398a4d2918aa 100644
--- a/__tests__/requests/sge.spec.js
+++ b/__tests__/requests/sge.spec.js
@@ -99,10 +99,6 @@ describe('Sge routes', () => {
         valueProcessors: [parseValue],
         explicitArray: false,
       })
-      console.log(
-        '🚀 ~ file: sge.spec.js ~ line 19 ~ it ~ parsedReply',
-        parsedReply.Envelope.Body.consulterDonneesTechniquesContractuelles
-      )
       const data =
         parsedReply.Envelope.Body.consulterDonneesTechniquesContractuelles
       expect(Object.keys(data).length).toEqual(3)
diff --git a/src/core/contractActivation.js b/src/core/contractActivation.js
index 30d65658f435fb2f2d51716e331334c6177d01d4..d12a855c4cbd2c1f33b514bb18390739fc56bb3f 100644
--- a/src/core/contractActivation.js
+++ b/src/core/contractActivation.js
@@ -1,7 +1,7 @@
 // @ts-check
 const { log, errors } = require('cozy-konnector-libs')
 const soapRequest = require('easy-soap-request')
-const { parseTags, parseValue } = require('../helpers/parsing')
+const { parseTags, parseValue, parseServiceId } = require('../helpers/parsing')
 const { commanderCollectePublicationMesures } = require('../requests/sge')
 const xml2js = require('xml2js')
 
@@ -43,7 +43,7 @@ async function activateContract(
       endDate
     ),
   }).catch(err => {
-    log('error', 'rechercherPointResponse')
+    log('error', 'commanderCollectePublicationMesures')
     log('error', err)
     throw errors.LOGIN_FAILED
   })
@@ -55,13 +55,7 @@ async function activateContract(
   })
 
   try {
-    // return parseUserPdl(parsedReply)
-    //TODO: Parse reply
-    console.log(
-      '🚀 ~ file: contractActivation.js ~ line 56 ~ parsedReply',
-      parsedReply
-    )
-    return 1
+    return parseServiceId(parsedReply)
   } catch (error) {
     log('error', 'Error while parsing user PDL: ' + error)
     throw errors.LOGIN_FAILED
diff --git a/src/helpers/parsing.js b/src/helpers/parsing.js
index ebda5c2964b8eaa76f430ac6978b6dab4322dcdb..ee1d5f1dcd5663e036f7dc4faccf48b2aa66943d 100644
--- a/src/helpers/parsing.js
+++ b/src/helpers/parsing.js
@@ -43,6 +43,19 @@ function parseContracts(result) {
   ]['servicesSouscritsMesures']['serviceSouscritMesures']
 }
 
+/**
+ * Return User contract start date
+ * @param {string} result
+ * @returns {number}
+ */
+function parseServiceId(result) {
+  log('info', 'Parsing serviceId')
+  const json = JSON.stringify(result)
+  return JSON.parse(json)['Envelope']['Body'][
+    'commanderCollectePublicationMesuresResponse'
+  ]['serviceSouscritId']
+}
+
 /**
  * Parsing SGE xml reply to get only mesure data
  * @param {string} result
@@ -110,4 +123,5 @@ module.exports = {
   parseUserPdl,
   parseContracts,
   parseContractStartDate,
+  parseServiceId,
 }
diff --git a/src/index.js b/src/index.js
index f348441da2aa098c789d86088e5588b3d76c5e8e..5a6023603a5fc626cb41fce8762c585d254685ac 100644
--- a/src/index.js
+++ b/src/index.js
@@ -33,7 +33,7 @@ const { verifyUserIdentity } = require('./core/verifyUserIdentity')
 const { activateContract } = require('./core/contractActivation')
 const { verifyContract } = require('./core/contractVerification')
 const { terminateContract } = require('./core/contractTermination')
-const { saveAccountData } = require('./requests/cozy')
+const { getAccount, saveAccountData } = require('./requests/cozy')
 
 moment.locale('fr') // set the language
 moment.tz.setDefault('Europe/Paris') // set the timezone
@@ -48,6 +48,7 @@ let startDailyDateString = startDailyDate.format('YYYY-MM-DD')
 const startLoadDate = moment().subtract(7, 'day')
 const endDate = moment()
 const endDateString = endDate.format('YYYY-MM-DD')
+const ACCOUNT_ID = 'default_account_id'
 
 module.exports = new BaseKonnector(start)
 module.exports = { getContractStartDate }
@@ -88,7 +89,7 @@ async function start(fields, cozyParameters) {
    */
   log('info', 'User Logging...')
 
-  if (await isFirstStart(this.getAccountData())) {
+  if (await isFirstStart(await getAccount('default_account_id'))) {
     const user = await verifyUserIdentity(fields, baseUrl, apiAuthKey, sgeLogin)
 
     let consent = await createBoConsent(
@@ -127,15 +128,18 @@ async function start(fields, cozyParameters) {
     }
     consent = await updateBoConsent(consent, serviceId)
     // Save bo id into account
-    const accountData = await this.getAccountData()
-    await saveAccountData(this.accountId, { ...accountData, boId: consent.id })
+    const accountData = await getAccount(ACCOUNT_ID)
+    await saveAccountData(this.accountId, {
+      ...accountData.data,
+      consentId: consent.id,
+    })
   } else {
     // AlternateStart
-    //TODO: getboid from account ?
-    const accountData = await this.getAccountData()
-    const userConsent = await getBoConsent(accountData.data.boId)
+    const accountData = await getAccount(ACCOUNT_ID)
+    const userConsent = await getBoConsent(accountData.data.consentId)
     const user = await verifyUserIdentity(fields, baseUrl, apiAuthKey, sgeLogin)
     if (user.name !== userConsent.name || !user) {
+      log('error', `Invalid or not found consent for user`)
       await deleteBoConsent()
       if (userConsent.serviceId) {
         await terminateContract(
@@ -481,8 +485,17 @@ async function agregateMonthAndYearData(data) {
 /**
  * @returns {boolean}
  */
-async function isFirstStart(account) {
-  if (account.data && account.data.boId) {
+function isFirstStart(account) {
+  console.log(
+    '🚀 ~ file: index.js ~ line 490 ~ isFirstStart ~ account.data',
+    account.data
+  )
+  console.log(
+    '🚀 ~ file: index.js ~ line 490 ~ isFirstStart ~ account.data',
+    account.data.consentId
+  )
+
+  if (account.data && account.data.consentId) {
     log('info', 'Konnector not first start')
     return false
   }
diff --git a/src/requests/bo.js b/src/requests/bo.js
index 55c02101c3b01e86774da0921c3895eb4a701f9e..88fb3fc98cd4fb7ae8e44646677eaabac52c57e0 100644
--- a/src/requests/bo.js
+++ b/src/requests/bo.js
@@ -13,6 +13,7 @@ function createBoConsent(pointId, name, address, postalCode, inseeCode) {
   //TODO: Implement
   log('info', `Query createBoConsent`)
   return {
+    id: 1,
     pointId,
     name,
     address,
diff --git a/src/requests/cozy.js b/src/requests/cozy.js
index a02ebcbc5cf708c137cb5b26d88865edd78909b0..511a7ab92a7614ca278605e1c8957e3f2bb23607 100644
--- a/src/requests/cozy.js
+++ b/src/requests/cozy.js
@@ -3,15 +3,21 @@ const cozyClient = require('cozy-konnector-libs/dist/libs/cozyclient')
 
 async function saveAccountData(accountId, accountData) {
   log('info', `saveAccountData: ${accountId}`)
-  const accounts = await cozyClient.data.findAll('io.cozy.accounts')
 
-  //TODO: refactor with usageof cozy-libs. Not working during implementation
-  const account = accounts.filter(account => account._id === accountId)
+  let account = await getAccount(accountId)
 
-  return updateOrCreate(
-    [{ ...account[0], data: accountData }],
+  account = await updateOrCreate(
+    [{ ...account, data: accountData }],
     'io.cozy.accounts'
   )
+  return account
+}
+
+async function getAccount(accountId) {
+  log('info', `getAccount: ${accountId}`)
+  //TODO: refactor with usageof cozy-libs. Not working during implementation
+  const accounts = await cozyClient.data.findAll('io.cozy.accounts')
+  return accounts.filter(account => account._id === accountId)[0]
 }
 
-module.exports = { saveAccountData }
+module.exports = { getAccount, saveAccountData }
diff --git a/src/requests/sge.js b/src/requests/sge.js
index 22669bdcb1f4fe6dc9b1b083da64cb6f8b213fbe..30b2b87634661f5ca83f47f31bd23b8416e98fcf 100644
--- a/src/requests/sge.js
+++ b/src/requests/sge.js
@@ -133,7 +133,6 @@ function rechercherPoint(appLogin, name, postalCode, inseeCode, address) {
     'info',
     `Query rechercherPoint - postal code / insee code: ${postalCode} / ${inseeCode}`
   )
-  //TODO: handle address
   return `<?xml version='1.0' encoding='utf-8'?>
   <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
      xmlns:v2="http://www.enedis.fr/sge/b2b/services/rechercherpoint/v2.0"
@@ -246,7 +245,7 @@ function commanderCollectePublicationMesures(
  * @param {string} appLogin
  * @param {string} contractId
  * @param {string} pointId
- * @param {string} serviceSouscritId
+ * @param {number} serviceSouscritId
  * @returns {*}
  */
 function commanderArretServiceSouscritMesures(