A new Laravel package to handle payments and subscriptions with Paddle

December 03, 2019

Yesterday we've released a new package to use the Paddle.com API and webhooks in a Laravel app. Paddle is not just a payment provider like Stripe, they actually take care of handling taxes around the world which is a big deal when running a SaaS. Besides the regular VAT you have to handle in the EU, there is also a phenomenon called digital services tax. Norway was one of the first countries to introduce such tax rules back in 2011 and an increasing amount of countries and states are introducing comparable rules. Quaderno has a great overview of the rules around the world. To sum it up: the rules are different in each region and it can be an administrative nightmare to confirm to these rules.

As you might know we are working on a SaaS to monitor and run health checks on Laravel applications. It's called Upserver.online and this project was the main reason to dive into these international tax rules. We've previously used Mollie to handle payments (with great success!) so we started working with the new laravel/cashier-mollie package to handle the subscriptions and payments.

When we found out about the complexity of the digital tax rules we decided to switch to Paddle. Not only do they handle payments, they are actually the service provider to customers. They sell your product or service on your behalf (this is called Merchant of Record (MOR)). Subscriptions, invoicing, taxes, fraud detection, they all have it.

The package provides a fluent interface for the Paddle.com API and it can handle incoming webhooks, it uses events and listeners for maximum flexibility. It also comes with a Blade directive so you can use Paddle in your front-end app. Check out the package documentation to get started and let me know on Twitter what you think about Paddle and the package.