ERROR send and transfer are only available for objects of type address payable , not address

You need to mark the request.recipient as payable payable(request.recipient).transfer(request.value); From the docs page Solidity v0.8.0 Breaking Changes: The global variables tx.origin and msg.sender have the type address instead of address payable. One can convert them into address payable by using an explicit conversion, i.e., payable(tx.origin) or payable(msg.sender).