For USPS purposes they are essentially the same.
An envelope is what we all think - something that contains a letter.
A "flat" means essentially that - it is flat. As compared to a package.
Don't confuse "Flat" with "Flat Rate".
One refers to the packaging, the other (Flat Rate) to the cost of shipping (and maybe the packing).