Bittrex, Binance, Bitfinex, Coinexchange.io, Coinhako, Coinpayments, Cryptopia, Exodus, Kucoin, Koinex, Ledger, Liqui, SimplexFX , Bithumb and Huobi all don't accept smart contracts. (Incomplete list).
What makes it particularly awkward is that some exchanges like Bitstamp, Coinmama and Lykke send withdrawals as smart contract payments.
Bitstamps has the following warning when you send Ethereum.
WARNING: Do not send funds directly to exchanges which do not support smart contract deposits. Either check with the destination exchange first or send your funds to your private wallet.
A lot of exchanges warn:
Deposits from contracts currently unsupported.
It avoids problems if you send smart contract payments to MEW or a personal wallet and then to an exchange.
It will reach the other exchange but cannot be processed by them. Some exchanges will manually recover it. Some exchanges will charge a fee for manual recovery and some exchanges won't recover it.
A lot of exchanges do not accept smart contracts. There are good reasons for this.With a NORMAL transaction the ETH is sent from the senders address via the blockchain to the receiver address.
With a SMART CONTRACT a 0 ETH transaction with instructions (code) is sent to the CONTRACT address. The contract address then executes a internal transaction (code) to the receiver address.
Smart contracts also don't have just a single way it can be coded - or by who. A smart contract is custom code.
Smart contracts can be vulnerable for exploits:
Smart contracts leave millions vulnerable Security Vulnerabilities in Smart Contracts Smart contract exploit trainingNORMAL transaction and how it appears on the block explorer
SMART CONTRACT transaction and how it appears on the block explorer
It avoids problems if you send smart contract payments to MEW or a personal wallet and then to an exchange.