Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

mkarnicki's avatar

Spark+Braintree: Collecting billing address for European VAT

Hi guys. If you own Laravel Spark (I don't, looking into purchasing) and perhaps have a moment to take a look at it's code, could you help me understand the following limitation:

Note: European VAT collection is only supported when using the Stripe billing provider.

I'm in Poland, Stripe is not available here, hence I went with Braintree.

I would like to understand if the above mentioned is a limitation of Spark (which I could add myself), Laravel Cashier, or a limitation of Braintree itself?

Thanks!

0 likes
2 replies
Cronix's avatar

Seems to be a braintree limitation.

Taxes. Unless otherwise stated, all fees are quoted exclusive of any applicable value added tax (VAT). For the sake of clarity, the Braintree Services are in scope of the exemption from VAT of Art. 135 (1)(d) of the EU VAT Directive 2006/112/EC.

It is your responsibility to determine what, if any, taxes apply to the payments you make or receive, and it is your responsibility to collect, report and remit the correct tax to the appropriate tax authority. PayPal is not responsible for determining whether taxes apply to your transaction, or for collecting, reporting or remitting any taxes arising from any transaction.

https://www.braintreepayments.com/legal/policy-updates

It looks like braintree can integrate with taxamo for vat calculation. I use Spark w/Stripe myself, so haven't needed to attempt integration, so I can't say how easy/difficult it would be to integrate with Spark.

https://www.taxamo.com/support/getting_started/braintree_integration/

mkarnicki's avatar

Hey, thanks for the reply @Cronix . Your Taxamo (which isn't clear on pricing) suggestion brought me to explore this further and I found Quaderno and Chargebee. This makes me think though... if these guys can charge tax on top of the subscription/plan rate, either there's a way to update subscription price with each "charge" (to add VAT for instance) OR they create multiple plans for each countries in the background (which would be crazy, but better than handling this on your own).

I will explore Braintree API further to understand how they might do it, as there's no problem do calculate VAT myself with this package.

For the record, your first citation refers to fees of the Braintree Services.

The second quote is on point though, explaining I should determine the taxes myself.

But because Spark can collect VAT with Stripe, I infer it could also do it for Braintree, the difference is that instead of simply providing a "vat_rate" field, Spark would have to calculate the total charge for Braintree, so I wouldn't necessarily call this a Braintree limitation, if I can fix this in Spark/Cashier.

Have a great day!

Please or to participate in this conversation.