diff --git a/src/CentrifugeRouter.sol b/src/CentrifugeRouter.sol
index b961c886..42d05456 100644
--- a/src/CentrifugeRouter.sol
+++ b/src/CentrifugeRouter.sol
@@ -220,6 +220,11 @@ contract CentrifugeRouter is Auth, ICentrifugeRouter {
         IERC7540Vault(vault).claimCancelRedeemRequest(REQUEST_ID, receiver, controller);
     }
 
+    /// @inheritdoc ICentrifugeRouter
+    function distributeInterest(address vault, address controller) external payable protected {
+        interestDistributor.distribute(vault, controller);
+    }
+
     /// @inheritdoc ICentrifugeRouter
     function distributeInterest(address vault, address controller, uint256 topUpAmount) external payable protected {
         _pay(topUpAmount);
diff --git a/src/interfaces/ICentrifugeRouter.sol b/src/interfaces/ICentrifugeRouter.sol
index d32f9eb4..d8ba4196 100644
--- a/src/interfaces/ICentrifugeRouter.sol
+++ b/src/interfaces/ICentrifugeRouter.sol
@@ -154,6 +154,12 @@ interface ICentrifugeRouter is IRecoverable {
     /// @param  controller Check  IERC7540CancelRedeem.claimCancelRedeemRequest.controller
     function claimCancelRedeemRequest(address vault, address receiver, address controller) external payable;
 
+    /// @notice TODO
+    /// @dev    This method is to be used when the pending interest is 0, since no redemption request is required then.
+    ///         If pending is non-zero, then the overloaded distributeInterest() method with the `topUpAmount` parameter
+    ///         should be used, to pay for the requestRedeem call to Centrifuge.
+    function distributeInterest(address vault, address controller) external payable;
+
     /// @notice TODO
     function distributeInterest(address vault, address controller, uint256 topUpAmount) external payable;