diff --git a/lbrynet/daemon/Daemon.py b/lbrynet/daemon/Daemon.py
index e287c282a..4333e0e46 100644
--- a/lbrynet/daemon/Daemon.py
+++ b/lbrynet/daemon/Daemon.py
@@ -1042,7 +1042,7 @@ class Daemon(AuthJSONRPCServer):
 
         Returns:
             If sending to an address:
-            (dict) true if payment successfully scheduled
+            (dict) Dictionary containing the transaction information
             {
                 "hex": (str) raw transaction,
                 "inputs": (list) inputs(dict) used for the transaction,
@@ -1163,14 +1163,16 @@ class Daemon(AuthJSONRPCServer):
 
     @requires("wallet")
     @defer.inlineCallbacks
-    def jsonrpc_account_balance(self, address=None, include_unconfirmed=False):
+    def jsonrpc_account_balance(self, account_id=None, address=None, include_unconfirmed=False):
         """
         Return the balance of an account
 
         Usage:
-            account_balance [<address> | --address=<address>] [--include_unconfirmed]
+            account_balance [<account_id>] [<address> | --address=<address>] [--include_unconfirmed]
 
         Options:
+            --account=<account_id>  : (str) If provided only the balance for this
+                                      account will be given
             --address=<address>     : (str) If provided only the balance for this
                                       address will be given
             --include_unconfirmed   : (bool) Include unconfirmed
@@ -1180,7 +1182,11 @@ class Daemon(AuthJSONRPCServer):
         """
         if address is not None:
             raise NotImplementedError("Limiting by address needs to be re-implemented in new wallet.")
-        dewies = yield self.default_account.get_balance(
+        if account_id is not None:
+            account = self.get_account_or_error('account', account_id)
+        else:
+            account = self.default_account
+        dewies = yield account.get_balance(
             0 if include_unconfirmed else 6
         )
         return Decimal(dewies) / COIN
@@ -1227,6 +1233,7 @@ class Daemon(AuthJSONRPCServer):
         self.default_wallet.save()
 
         result = account.to_dict()
+        result['id'] = account.id
         result['status'] = 'added'
         result.pop('certificates', None)
         result['is_default'] = self.default_wallet.accounts[0] == account
@@ -1262,6 +1269,7 @@ class Daemon(AuthJSONRPCServer):
         self.default_wallet.save()
 
         result = account.to_dict()
+        result['id'] = account.id
         result['status'] = 'created'
         result.pop('certificates', None)
         result['is_default'] = self.default_wallet.accounts[0] == account
@@ -1286,6 +1294,7 @@ class Daemon(AuthJSONRPCServer):
         self.default_wallet.accounts.remove(account)
         self.default_wallet.save()
         result = account.to_dict()
+        result['id'] = account.id
         result['status'] = 'removed'
         result.pop('certificates', None)
         return result
@@ -1346,6 +1355,7 @@ class Daemon(AuthJSONRPCServer):
             self.default_wallet.save()
 
         result = account.to_dict()
+        result['id'] = account.id
         result.pop('certificates', None)
         result['is_default'] = self.default_wallet.accounts[0] == account
         return result
diff --git a/tests/integration/wallet/test_commands.py b/tests/integration/wallet/test_commands.py
index 9ece51943..364e1c044 100644
--- a/tests/integration/wallet/test_commands.py
+++ b/tests/integration/wallet/test_commands.py
@@ -80,9 +80,13 @@ class FakeAnalytics:
     def send_claim_action(self, action):
         pass
 
+    def send_credits_sent(self):
+        pass
+
 
 class CommandTestCase(IntegrationTestCase):
 
+    timeout = 180
     WALLET_MANAGER = LbryWalletManager
 
     async def setUp(self):
@@ -298,6 +302,32 @@ class EpicAdventuresOfChris45(CommandTestCase):
         response = yield self.out(self.daemon.jsonrpc_resolve(uri='lbry://@spam/hovercraft'))
         self.assertNotIn('claim', response['lbry://@spam/hovercraft'])
 
+        # After abandoning he just waits for his LBCs to be returned to his account
+        yield self.d_generate(5)
+        result = yield self.daemon.jsonrpc_account_balance()
+        self.assertEqual(result, Decimal('8.9693585'))
+
+        # Amidst all this Chris45 receives a call from his friend Ramsey54
+        # who says that it is of utmost urgency that Chris45 transfer him
+        # 1 LBC to which Chris45 readily obliges
+        ramsey_account_id = (yield self.daemon.jsonrpc_account_create("Ramsey54"))['id']
+        ramsey_account = self.daemon.get_account_or_error('', ramsey_account_id)
+        ramsey_address = yield ramsey_account.receiving.get_or_create_usable_address()
+        result = yield self.out(self.daemon.jsonrpc_wallet_send(1, ramsey_address))
+        self.assertIn("txid", result)
+        yield self.d_confirm_tx(result['txid'])
+
+        # Chris45 then eagerly waits for 6 confirmations to check his balance and then calls Ramsey54 to verify whether
+        # he received it or not
+        yield self.d_generate(5)
+        result = yield self.daemon.jsonrpc_account_balance()
+        # Chris45's balance was correct
+        self.assertEqual(result, Decimal('7.9692345'))
+
+        # Ramsey54 too assured him that he had received the 1 LBC and thanks him
+        result = yield self.daemon.jsonrpc_account_balance(ramsey_account_id)
+        self.assertEqual(result, Decimal('1.0'))
+
 
 class AccountManagement(CommandTestCase):