A CFD, or a Contract for Difference, is an agreement between two parties to exchange the differential between the opening and the closing prices of a contract at the moment of the contract closure, with this differential multiplied by the number of units of the asset specified in the contract.
A CFD is a derivative linked to the underlying asset price. It does not involve physical asset delivery. When you trade in forex online, you do not buy or sell real assets. If you open EURUSD long, you do not physically buy euros and sell dollars. You trade CFDs. You make a deal that, at the moment you close the deal, you will receive or pay the differential between the opening and the closing prices multiplied by the number of units.