I'd like to know if is possible to terminate a connection from peripheral or only can Gap central do it ?
Either side can cleanly terminate a connection. You can use the CyBle_GapDisconnect API method to do so. In the latest v3.30 BLE stack component, there is also a new CyBle_GapDisconnectWithReason method where you can provide a custom reason code, if desired. (The standard code is 0x13, indicating local connection closure.)