diff --git a/README.md b/README.md
index 007fd7c..ebc19d0 100644
--- a/README.md
+++ b/README.md
@@ -30,12 +30,13 @@ A report performed with [Slither](https://github.com/crytic/slither) is availabl
Here a summary of the main documentation
-| Document | Link/Files |
-| ----------------------- | ---------------------------------------- |
-| Specification | [doc/specification](./doc/specification) |
-| Technical documentation | [doc/technical](./doc/technical) |
-| Toolchain | [doc/TOOLCHAIN.md](./doc/TOOLCHAIN.md) |
-| Surya report | [doc/surya](./doc/surya/) |
+| Document | Link/Files |
+| ----------------------- | ------------------------------------------------------ |
+| Specification | [doc/specification](./doc/specification) |
+| Technical documentation | [doc/technical](./doc/technical) |
+| Solidity API (docgen) | [doc/solidityAPI/index.md](./doc/solidityAPI/index.md) |
+| Toolchain | [doc/TOOLCHAIN.md](./doc/TOOLCHAIN.md) |
+| Surya report | [doc/surya](./doc/surya/) |
## Foundry
diff --git a/doc/accessControl/access-control.drawio b/doc/accessControl/access-control.drawio
deleted file mode 100644
index e200a74..0000000
--- a/doc/accessControl/access-control.drawio
+++ /dev/null
@@ -1 +0,0 @@
-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
\ No newline at end of file
diff --git a/doc/schema/IncomeVault b/doc/schema/IncomeVault
index b686bc2..33dca70 100644
--- a/doc/schema/IncomeVault
+++ b/doc/schema/IncomeVault
@@ -1 +1 @@
-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
\ No newline at end of file
+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
\ No newline at end of file
diff --git a/doc/schema/drawio/Debt-Global.drawio.png b/doc/schema/drawio/Debt-Global.drawio.png
deleted file mode 100644
index f7c469e..0000000
Binary files a/doc/schema/drawio/Debt-Global.drawio.png and /dev/null differ
diff --git a/doc/schema/drawio/Debt-Segragated Deposit.drawio.png b/doc/schema/drawio/Debt-Segragated Deposit.drawio.png
deleted file mode 100644
index 5ea8b79..0000000
Binary files a/doc/schema/drawio/Debt-Segragated Deposit.drawio.png and /dev/null differ
diff --git a/doc/schema/drawio/IncomeVault-Segragated Deposit.drawio.png b/doc/schema/drawio/IncomeVault-Segragated Deposit.drawio.png
new file mode 100644
index 0000000..799606d
Binary files /dev/null and b/doc/schema/drawio/IncomeVault-Segragated Deposit.drawio.png differ
diff --git a/doc/solidityAPI/index.md b/doc/solidityAPI/index.md
new file mode 100644
index 0000000..5f44c71
--- /dev/null
+++ b/doc/solidityAPI/index.md
@@ -0,0 +1,337 @@
+# Solidity API
+
+## IncomeVault
+
+### constructor
+
+```solidity
+constructor(address forwarderIrrevocable) public
+```
+
+### initialize
+
+```solidity
+function initialize(address admin, contract IERC20 ERC20TokenPayment_, contract ICMTATSnapshot cmtat_token, contract IRuleEngine ruleEngine_, contract IAuthorizationEngine authorizationEngineIrrevocable) public
+```
+
+@notice
+initialize the proxy contract
+The calls to this function will revert if the contract was deployed without a proxy
+
+#### Parameters
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| admin | address | Address of the contract (Access Control) |
+| ERC20TokenPayment_ | contract IERC20 | ERC20 token to perform the payment |
+| cmtat_token | contract ICMTATSnapshot | |
+| ruleEngine_ | contract IRuleEngine | |
+| authorizationEngineIrrevocable | contract IAuthorizationEngine | |
+
+### __IncomeVault_init
+
+```solidity
+function __IncomeVault_init(address admin, contract IERC20 ERC20TokenPayment_, contract ICMTATSnapshot cmtat_token, contract IRuleEngine ruleEngine_, contract IAuthorizationEngine authorizationEngineIrrevocable) internal
+```
+
+_calls the different initialize functions from the different modules_
+
+### _msgSender
+
+```solidity
+function _msgSender() internal view returns (address sender)
+```
+
+_This surcharge is not necessary if you do not use the MetaTxModule_
+
+### _msgData
+
+```solidity
+function _msgData() internal view returns (bytes)
+```
+
+_This surcharge is not necessary if you do not use the MetaTxModule_
+
+### _contextSuffixLength
+
+```solidity
+function _contextSuffixLength() internal view returns (uint256)
+```
+
+## IncomeVaultInternal
+
+### CMTAT_TOKEN
+
+```solidity
+contract ICMTATSnapshot CMTAT_TOKEN
+```
+
+### ERC20TokenPayment
+
+```solidity
+contract IERC20 ERC20TokenPayment
+```
+
+### claimedDividend
+
+```solidity
+mapping(address => mapping(uint256 => bool)) claimedDividend
+```
+
+### segragatedDividend
+
+```solidity
+mapping(uint256 => uint256) segragatedDividend
+```
+
+### segragatedClaim
+
+```solidity
+mapping(uint256 => bool) segragatedClaim
+```
+
+### _computeDividendBatch
+
+```solidity
+function _computeDividendBatch(uint256 time, address[] tokenHolders, uint256[] tokenHoldersBalance, uint256 tokenTotalSupply) internal view returns (uint256[] tokenHolderDividend)
+```
+
+#### Parameters
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| time | uint256 | dividend time |
+| tokenHolders | address[] | addresses to compute dividend |
+| tokenHoldersBalance | uint256[] | the sender balance |
+| tokenTotalSupply | uint256 | the total supply |
+
+### _computeDividend
+
+```solidity
+function _computeDividend(uint256 time, uint256 senderBalance, uint256 tokenTotalSupply) internal view returns (uint256 tokenHolderDividend)
+```
+
+#### Parameters
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| time | uint256 | dividend time |
+| senderBalance | uint256 | token holder balance |
+| tokenTotalSupply | uint256 | the total supply |
+
+### _transferDividend
+
+```solidity
+function _transferDividend(uint256 time, address tokenHolder, uint256 tokenHolderDividend) internal
+```
+
+#### Parameters
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| time | uint256 | dividend time |
+| tokenHolder | address | addresses to send the dividends |
+| tokenHolderDividend | uint256 | the computed dividends |
+
+## IncomeVaultInvariantStorage
+
+### INCOME_VAULT_OPERATOR_ROLE
+
+```solidity
+bytes32 INCOME_VAULT_OPERATOR_ROLE
+```
+
+### INCOME_VAULT_DEPOSIT_ROLE
+
+```solidity
+bytes32 INCOME_VAULT_DEPOSIT_ROLE
+```
+
+### INCOME_VAULT_DISTRIBUTE_ROLE
+
+```solidity
+bytes32 INCOME_VAULT_DISTRIBUTE_ROLE
+```
+
+### INCOME_VAULT_WITHDRAW_ROLE
+
+```solidity
+bytes32 INCOME_VAULT_WITHDRAW_ROLE
+```
+
+### IncomeVault_claimNotActivated
+
+```solidity
+error IncomeVault_claimNotActivated()
+```
+
+### IncomeVault_dividendAlreadyClaimed
+
+```solidity
+error IncomeVault_dividendAlreadyClaimed()
+```
+
+### IncomeVault_noDividendToClaim
+
+```solidity
+error IncomeVault_noDividendToClaim()
+```
+
+### IncomeVault_AdminWithAddressZeroNotAllowed
+
+```solidity
+error IncomeVault_AdminWithAddressZeroNotAllowed()
+```
+
+### IncomeVault_TokenPaymentWithAddressZeroNotAllowed
+
+```solidity
+error IncomeVault_TokenPaymentWithAddressZeroNotAllowed()
+```
+
+### IncomeVault_CMTATWithAddressZeroNotAllowed
+
+```solidity
+error IncomeVault_CMTATWithAddressZeroNotAllowed()
+```
+
+### IncomeVault_FailApproval
+
+```solidity
+error IncomeVault_FailApproval()
+```
+
+### IncomeVault_noAmountSend
+
+```solidity
+error IncomeVault_noAmountSend()
+```
+
+### IncomeVault_notEnoughAmount
+
+```solidity
+error IncomeVault_notEnoughAmount()
+```
+
+### newDeposit
+
+```solidity
+event newDeposit(uint256 time, address sender, uint256 dividend)
+```
+
+### DividendClaimed
+
+```solidity
+event DividendClaimed(uint256 time, address sender, uint256 dividend)
+```
+
+## IncomeVaultOpen
+
+### claimDividend
+
+```solidity
+function claimDividend(uint256 time) public
+```
+
+claim your payment
+
+#### Parameters
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| time | uint256 | provide the date where you want to receive your payment |
+
+### claimDividendBatch
+
+```solidity
+function claimDividendBatch(uint256[] times) public
+```
+
+claim your payment
+
+_Don't check if the dividends have been already claimed before external call to CMTAT._
+
+#### Parameters
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| times | uint256[] | provide the dates where you want to receive your payment |
+
+## IncomeVaultRestricted
+
+### deposit
+
+```solidity
+function deposit(uint256 time, uint256 amount) public
+```
+
+deposit an amount to pay the dividends.
+
+#### Parameters
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| time | uint256 | provide the date where you want to perform a deposit |
+| amount | uint256 | the amount to deposit |
+
+### withdraw
+
+```solidity
+function withdraw(uint256 time, uint256 amount, address withdrawAddress) public
+```
+
+withdraw a certain amount at a specified time.
+
+#### Parameters
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| time | uint256 | provide the date where you want to perform a deposit |
+| amount | uint256 | the amount to withdraw |
+| withdrawAddress | address | address to receive `amount`of tokens |
+
+### withdrawAll
+
+```solidity
+function withdrawAll(uint256 amount, address withdrawAddress) public
+```
+
+withdraw all tokens from ERC20TokenPayment contracts deposited
+
+#### Parameters
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| amount | uint256 | the amount to withdraw |
+| withdrawAddress | address | address to receive `amount`of tokens |
+
+### distributeDividend
+
+```solidity
+function distributeDividend(address[] addresses, uint256 time) public
+```
+
+deposit an amount to pay the dividends.
+
+#### Parameters
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| addresses | address[] | compute and transfer dividend for these holders |
+| time | uint256 | dividend time |
+
+### setStatusClaim
+
+```solidity
+function setStatusClaim(uint256 time, bool status) public
+```
+
+set the status to open or close the claims for a given time
+
+#### Parameters
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| time | uint256 | target time |
+| status | bool | boolean (true or false) |
+
diff --git a/doc/specification.md b/doc/specification.md
index 4a85b0e..56de04d 100644
--- a/doc/specification.md
+++ b/doc/specification.md
@@ -16,7 +16,7 @@
Each deposit is segregated in its time value. A `time` is the dividends distribution date (Unix Timestamp) to the token holders.
-![Debt-Segragated Deposit.drawio](../doc/schema/drawio/Debt-Segragated Deposit.drawio.png)
+![IncomeVault-Segragated Deposit.drawio](../doc/schema/drawio/IncomeVault-Segragated Deposit.drawio.png)
### ValidationModule