EU VAT MOSS for LearnDash courses

If you want to follow the EU VAT MOSS requirements, one option is to use something called a Merchant of Record. MoR companies will not only take care of billing the right amount of tax based on buyer’s country, but they will also file the collected taxes on your behalf. Naturally, they take a larger cut of the revenue to provide this service compared with payment platforms that do not, but this should not be an issue if you are selling a digital product like an online course.

There are a couple of good options for people outside the US – LemonSqueezy and Paddle.

Note: I am aware of other MoR providers, but do note that the two options I have mentioned tend to work well for people all over the world. I sometimes wonder if some of the other MoR providers are biased against companies which are created outside Western countries, but I don't want to turn this article into a rant :-)

I have used both, and I prefer LemonSqueezy (LS) because Paddle caters primarily to software businesses while LS is quite well suited for selling both software and online courses.

How to integrate LemonSqueezy with LearnDash

Here are the basic steps

User must login before purchase

You must ask the user to first login to your WordPress website before you display the checkout URL. This ensures that they have registered with your website, which they need to do to be able to access the course.

Change to checkout URL after user logs in

Once the user logs in, the button will change to show the checkout URL.

In the case of LS, you need to append the user’s WordPress ID and the course ID to the URL. You can do this by writing some custom PHP code.

After user completes checkout, automatically enroll them into LearnDash course

You can configure webhooks inside LemonSqueezy so that it sends all the data associated with a purchase to a specific URL.

Once LS sends this information to the webhook URL you have configured, you can automatically enroll them into your LearnDash course using a tool like Zoho Flow (or you can also use plugins like WP Webhooks for the same purpose).

Once they complete purchase, the user will see the progress bar instead of the payment button and will have full access to the course material.