If you want help determining what rate to charge a customer, I built both JS and Python libraries that include functionality to:
- Determine rate based on
- phone number
- billing address
- self-declared location
- IP address
- Validate VAT IDs
- Fetch exchange rate info from the European Central Bank
It's also important to note that these new rules cover the sale of digital goods to CONSUMERS only, if you are (for example) a registered business in the UK and selling to a registered business in Germany, German VAT is not applied, and you do not have to pass it on (via VATMOSS) to the German government.
Yes, B2B sales between EU countries are handled using the reverse charge system, when the supply is where the customer belongs - subject to certain use and enjoyment provisions (e.g. If a UK business sells software to a German business for use in the German business's UK office it would be subject to UK VAT instead).
I also wrote up a bit about dealing with registering for VAT MOSS, generating invoices, etc.