Receiving ETH payments

As someone more familiar with bitcoin than ethereum I’d like to ask what would be the best way to accept ETH payments with infura?

With bitcoin I can do following and my question is if it makes sense also with ETH / infura or what needs to be done in a different way?

  1. Generate a new address from seed using BIP44 m/44’/60’/0’/0
  2. let the customer send ETH to this address
  3. periodically ask Infura for the address balance
  4. confirm payment if the amount matches

Will the merchant be able to use the seed to collect all the incoming payments and send them to a single address for example? How would they do it, using Metamask, MyEtherWallet or Trezor?

Question 2: How would this be different with ERC-20 tokens?

  • Imagine you generate a few addresses (as above)

  • customers pay USDT, each customer / payment to a new address

  • Now do the addresses only have USDT and no ETH?

  • is ETH in each wallet needed to pay for gas to send it from there? Or could you pay the gas from the “shared” HD wallet?

  • can the merchant make a single transaction collecting all the balances from all the addresses and send it somewhere else?