With netTcpBinding, supporting DTC transactions accross the network is fairly trivial. Your clients won't even be aware that they're propagating a transaction for the service to enlist in as the WCF stack hides all this.
Doing it across the internet however is a huge difference, and you will be forced to expose your service across HTTPS and configure WS-Atomic Transaction support on your endpoints.
If you can avoid exposing the endpoint on the internet then that would be easier.
A better solution IMO than this would be to provide a non-transactional endpoint for Deposits and then a separate service where the client can request the deposit they just made.
Then the client can just call the Deposit operation again if they can't find their deposit. To support this model you would need to make sure your service could not process the same deposit more than once.
A further alternative (though more elaborate) is you expose a "callback service" on the client which the service can call with a acknowledgement. The minimum number of one way calls you require to guarantee delivery in this manner is 3:
- Client calls service with deposit. If it doesn't receive an acknowledgement within x then it calls again.
- Service receives deposit and then sends acknowledgement via callback to the client. If it doesn't receive confirmation of ack within x it send again.
- Client receives ack and then sends confirmation.