diff --git a/app/lib/dto/PeerDTO.ts b/app/lib/dto/PeerDTO.ts
index 9ddb9f5df272da171f7f02c311c052db07fe0947..ba38dd3c503b339c839d8bac8e2cb843a5349fa2 100644
--- a/app/lib/dto/PeerDTO.ts
+++ b/app/lib/dto/PeerDTO.ts
@@ -1,7 +1,7 @@
 import {DBPeer} from "../dal/sqliteDAL/PeerDAL"
 import {hashf} from "../common"
 import {CommonConstants} from "../common-libs/constants"
-import {Cloneable} from "./Cloneable";
+import {Cloneable} from "./Cloneable"
 
 export class PeerDTO implements Cloneable {
 
@@ -174,7 +174,7 @@ export class PeerDTO implements Cloneable {
 
   static fromJSONObject(obj:any) {
     return new PeerDTO(
-      obj.version,
+      parseInt(obj.version),
       obj.currency || "",
       obj.pubkey || obj.pub || obj.issuer || "",
       obj.blockstamp || obj.block,
diff --git a/test/integration/http_api.js b/test/integration/http_api.js
index fe8c810bb108fc0de4de201872b24fc8abeb7a95..1d31b2b820654195c456eeb2a1de714f89bf916f 100644
--- a/test/integration/http_api.js
+++ b/test/integration/http_api.js
@@ -6,6 +6,7 @@ const should    = require('should');
 const assert    = require('assert');
 const duniter     = require('../../index');
 const bma       = require('../../app/modules/bma').BmaDependency.duniter.methods.bma;
+const PeerDTO   = require('../../app/lib/dto/PeerDTO').PeerDTO
 const user      = require('./tools/user');
 const http      = require('./tools/http');
 const shutDownEngine  = require('./tools/shutDownEngine');
@@ -14,7 +15,7 @@ const ws        = require('ws');
 
 require('../../app/modules/prover/lib/constants').Constants.CORES_MAXIMUM_USE_IN_PARALLEL = 1
 
-let server, cat, toc
+let server, server2, cat, toc
 
 describe("HTTP API", function() {
 
@@ -43,6 +44,26 @@ describe("HTTP API", function() {
         }
       });
 
+    server2 = duniter(
+      '/bb12',
+      true,
+      {
+        ipv4: '127.0.0.1',
+        port: '7778',
+        currency: 'bb',
+        httpLogs: true,
+        sigQty: 1,
+        dt: 240,
+        dtReeval: 240,
+        udTime0: now,
+        medianTimeBlocks: 1,
+        udReevalTime0: now + 20000000,
+        pair: {
+          pub: 'DKpQPUL4ckzXYdnDRvCRKAm1gNvSdmAXnTrJZ7LvM5Qo',
+          sec: '64EYRvdPpTfLGGmaX5nijLXRqWXaVz8r1Z1GtaahXwVSJGQRn7tqkxLb288zwSYzELMEG5ZhXSBYSxsTsz1m9y8F'
+        }
+      });
+
     cat = user('cat', { pub: 'HgTTJLAQ5sqfknMq7yLPZbehtuLSsKj9CxWN7k8QvYJd', sec: '51w4fEShBk1jCMauWu4mLpmDVfHksKmWcygpxriqCEZizbtERA6de4STKRkQBpxmMUwsKXRjSzuQ8ECwmqN1u2DP'}, { server: server });
     toc = user('toc', { pub: 'DKpQPUL4ckzXYdnDRvCRKAm1gNvSdmAXnTrJZ7LvM5Qo', sec: '64EYRvdPpTfLGGmaX5nijLXRqWXaVz8r1Z1GtaahXwVSJGQRn7tqkxLb288zwSYzELMEG5ZhXSBYSxsTsz1m9y8F'}, { server: server });
 
@@ -51,17 +72,27 @@ describe("HTTP API", function() {
     let s = yield server.initWithDAL();
     let bmapi = yield bma(s);
     yield bmapi.openConnections();
+
+    let s2 = yield server2.initWithDAL();
+    let bmapi2 = yield bma(s2);
+    yield bmapi2.openConnections();
+
     yield cat.createIdentity();
     yield toc.createIdentity();
     yield toc.cert(cat);
     yield cat.cert(toc);
     yield cat.join();
     yield toc.join();
-    yield commit({ time: now });
-    yield commit({ time: now + 120 });
-    yield commit({ time: now + 120 * 2 });
-    yield commit({ time: now + 120 * 3 });
-    yield commit({ time: now + 120 * 4 });
+    const b0 = yield commit({ time: now });
+    const b1 = yield commit({ time: now + 120 });
+    yield server2.writeBlock(b0)
+    yield server2.writeBlock(b1)
+    const p1 = yield server.PeeringService.generateSelfPeer(server.conf, 0)
+    yield server2.PeeringService.generateSelfPeer(server2.conf, 0)
+    yield server2.writePeer(p1)
+    server2.writeBlock(yield commit({ time: now + 120 * 2 }))
+    server2.writeBlock(yield commit({ time: now + 120 * 3 }))
+    server2.writeBlock(yield commit({ time: now + 120 * 4 }))
   }));
 
   after(() => {
@@ -72,8 +103,11 @@ describe("HTTP API", function() {
 
   function makeBlockAndPost(theServer) {
     return function(options) {
-      return require('../../app/modules/prover').ProverDependency.duniter.methods.generateAndProveTheNext(theServer, null, null, options)
-        .then(postBlock(theServer));
+      return co(function*() {
+        const block = yield require('../../app/modules/prover').ProverDependency.duniter.methods.generateAndProveTheNext(theServer, null, null, options)
+        const res = yield postBlock(theServer)(block)
+        return JSON.parse(res)
+      })
     };
   }
 
@@ -212,8 +246,7 @@ describe("HTTP API", function() {
     });
 
     it('/block (number 5,6,7) should send a block', () => co(function*() {
-      let completed = false
-      yield commit({ time: now + 120 * 5 });
+      server2.writeBlock(yield commit({ time: now + 120 * 5 }))
       const client = new ws('ws://127.0.0.1:7777/ws/block');
       let resolve5, resolve6, resolve7
       const p5 = new Promise(res => resolve5 = res)
@@ -225,8 +258,8 @@ describe("HTTP API", function() {
         if (block.number === 6) resolve6(block)
         if (block.number === 7) resolve7(block)
       })
-      yield commit({ time: now + 120 * 6 });
-      yield commit({ time: now + 120 * 7 });
+      server2.writeBlock(yield commit({ time: now + 120 * 6 }))
+      server2.writeBlock(yield commit({ time: now + 120 * 7 }))
       const b5 = yield p5
       should(b5).have.property('number', 5);
       should(b5).have.property('dividend').equal(100)
@@ -254,6 +287,32 @@ describe("HTTP API", function() {
         client.ping();
       });
     });
+
+    it('/peer (number 5,6,7) should send a peer document', () => co(function*() {
+      const client = new ws('ws://127.0.0.1:7778/ws/peer');
+      let resolve5, resolve6, resolve7
+      const p5 = new Promise(res => resolve5 = res)
+      const p6 = new Promise(res => resolve6 = res)
+      server.getMainEndpoint = () => "BASIC_MERKLED_API localhost 7777"
+      const p1 = yield server.PeeringService.generateSelfPeer({
+        currency: server.conf.currency
+      }, 0)
+      client.on('message', function message(data) {
+        const peer = JSON.parse(data);
+        if (peer.block.match(/2-/)) {
+          server2.PeeringService.generateSelfPeer(server.conf, 0)
+          return resolve5(peer)
+        }
+        if (peer.block.match(/1-/) && peer.pubkey === 'DKpQPUL4ckzXYdnDRvCRKAm1gNvSdmAXnTrJZ7LvM5Qo') {
+          return resolve6(peer)
+        }
+      })
+      yield server2.writeRawPeer(PeerDTO.fromJSONObject(p1).getRawSigned())
+      const b5 = yield p5
+      should(b5).have.property('version', 10)
+      const b6 = yield p6
+      should(b6).have.property('version', 10)
+    }))
   });
 });