diff --git a/src/TransactionService.js b/src/TransactionService.js
index cfe1328990d3327f6fb1acb7d9105290817990a3..53e5cd5688e154cdf882557d0d654aa93c1f8c36 100644
--- a/src/TransactionService.js
+++ b/src/TransactionService.js
@@ -27,13 +27,19 @@ export class TransactionService {
         this.uri = uri || "/api";
     }
 
-    _PrepareTransaction(retrieveRequest) {
+    _PrepareTransaction(retrieveRequests) {
 
+        if (!(Array.isArray(retrieveRequests))) {
+            retrieveRequests = [retrieveRequests];
+        }
         const client = new api.v1.EntityTransactionServiceClient(this.uri, null, null);
-        var transactionRequest = new api.v1.TransactionRequest();
-        transactionRequest.setRetrieveRequest(retrieveRequest);
         var request = new api.v1.MultiTransactionRequest();
-        request.addRequests(transactionRequest);
+        var transactionRequest;
+        for (let retrieveRequest of retrieveRequests) {
+            transactionRequest = new api.v1.TransactionRequest();
+            transactionRequest.setRetrieveRequest(retrieveRequest);
+            request.addRequests(transactionRequest);
+        }
 
         const headers = {};
         return (res_cb, err_cb) => {
@@ -66,9 +72,12 @@ export class TransactionService {
         return query_request;
     }
 
-    async retrieve(id) {
-        const retrieveRequest = this._CreateRetrieveRequest(id);
-        return new Promise(this._PrepareTransaction(retrieveRequest));
+    async retrieve(ids) {
+        if (!(Array.isArray(ids))) {
+            ids = [ids]
+        }
+        const retrieveRequests = ids.map(id => this._CreateRetrieveRequest(id));
+        return new Promise(this._PrepareTransaction(retrieveRequests));
     }
 
     async executeQuery(query) {