Site hacked or down? We usually start the same or next working day.Get help now
Case studies / Payments and tax

Membership billing and EU VAT

Correct VAT invoices for every member, wherever they are

A UK-based B2B publisher was moving its paid membership off an unsupported plugin onto Restrict Content Pro. Its tax invoices are produced by Quaderno from Stripe, so every payment had to carry the right billing and tax details, including reverse charge for businesses with a valid VAT number.

Client
B2B publisher, United Kingdom
Platform
WordPress, Restrict Content Pro, Stripe, Quaderno
Engagement
Fixed-price integration
Services
Payments and tax integration
VAT numbers
Validated at checkout, with reverse charge applied
UK and EU
Scenarios tested with and without a tax ID
3 faults
Found outside the code, in account settings and data mapping

The problem

The publisher sells memberships to businesses in the UK and across Europe. Its old membership plugin was no longer supported, and its invoices come from Quaderno, which reads each payment in Stripe. For that to produce a correct VAT invoice, every payment needs the customer's billing details, company name, country and, for businesses, a valid VAT number so the reverse charge applies.

What we built

  • Billing and tax details captured at the Restrict Content Pro checkout and passed through to Stripe for Quaderno to use.
  • VAT number validation at checkout, so reverse charge only applies to genuine registered businesses.
  • A company field, and the tax percentage shown to the member before they pay.
  • The tax rate stored on each Stripe payment, so Quaderno shows VAT correctly even when no tax ID is given.
  • Invoice descriptions corrected so they describe the membership.

What testing uncovered

Several failures during testing turned out not to be in the code at all:

  • Quaderno was returning the wrong rates because the account had been set up as not registered for EU VAT MOSS.
  • Quaderno takes the invoice description from Stripe's description field, not from the customer's name, which explained the odd invoice text.
  • The last failing test was simply the Quaderno sandbox's document limit.

We also caught and fixed an early bug where a 20% rate was being added as a flat 20. Final tests across UK and EU scenarios, with and without tax IDs, all passed.

★★★★★

"Nirmal worked hard to understand what we were after and was able to complete the work to fit within our needs. We had some challenges along the way that he was able to resolve and kept me up-to-date with the progress."

MFMichael F.The client, via Codeable, February 2020

Results

  • Membership moved to a supported plugin, with billing that produces correct tax invoices.
  • Reverse charge applied only to validated businesses.
  • Three configuration problems outside the website found and explained, not worked around.

Client name and site withheld at our discretion. Details are taken from the project record.

Let’s Make It Happen

Request a quote
© Magnigeeks - All Right Reserved 2025
Free callGet a quote
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram