See Why have both txn.sender() and txn.asset_sender() in PyTEAL? - #2 by jannotti
In short:
- the receiver for an Algo payment transaction is
Receiver
- the receiver for an ASA transfer is
AssetReceiver
- the sender is always
Sender
, except for ASA clawback/revoke transactions (Algorand Standard Assets (ASAs) - Algorand Developer Portal)