Mon–Sat 10am–8pm  |  Response within 2 hrs

UK SaaS Billing for Pakistani Founders: VAT, Stripe, and the Compliance Mistakes That Cost You

Running a SaaS product through a UK LTD looks simple enough on paper. You’ve got a registered company, a Stripe account, customers paying in pounds or euros. What could go wrong? But if you’re a Pakistani founder – or an NRP sitting outside the UK – the billing side gets messy in ways most people don’t warn you about.

The mistakes don’t announce themselves. Stripe doesn’t freeze your account the day you misconfigure a tax field. HMRC doesn’t email you the week you forget to validate a VAT number. What happens instead is quiet accumulation – zero-rated invoices with no VIES records behind them, subscriptions running with taxRate: null for months, Pakistani bank cards failing silently with no retry logic catching them. And then one day it’s not quiet anymore.

This is the part most billing guides skip – the specific, technical, founder-in-Pakistan reality of running a UK LTD SaaS.


The Complexity of SaaS Billing for UK LTDs

Most billing content assumes you’re a UK-based founder with a UK address, a UK bank account, and mostly domestic customers. That’s not you. You’re probably managing the company remotely, your customer base spans multiple countries, and your payment processor – almost certainly Stripe – needs configuration that won’t happen on its own.

The gap between “set it up and assume it’s working” and “set it up correctly” is exactly where compliance debt starts building.

Why Pakistani Founders Are at Higher Risk

HMRC doesn’t treat all UK LTDs the same way. When directors are based offshore – particularly in countries like Pakistan – the company is statistically more likely to receive inquiries, account reviews, and requests to verify VAT compliance. It’s pattern recognition on HMRC’s end, not personal. But for you, it’s very real.

That means average compliance isn’t enough. Founders who get through with loose setups are usually the ones HMRC has no reason to look at twice. If you’re an offshore director of a UK LTD, over-compliance isn’t paranoia – it’s just smart risk management.

Then there’s the payment layer. Pakistani customers using local bank cards often run into failed transactions, fraud filter triggers, or outright blocks from UK processors. These customers wanted to pay. Your billing system effectively turned them away.

Key Problem Areas: VAT, Stripe Setup, and Recurring Billing

Three things tend to break for Pakistani-led UK SaaS businesses. VAT treatment – wrong rates, wrong application, sometimes no application at all. Stripe configuration – assuming the platform handles tax logic when it doesn’t. And recurring billing failures – failed payments that disappear without a trace unless you’ve built something to catch them.

All three are fixable. None of them fix themselves.


Understanding VAT Treatment (B2B vs. B2C)

VAT rules shift depending on who your customer is and where they’re located. Get it wrong and you’ve been under-collecting or incorrectly zero-rating invoices, and that liability sits with you – not your customer.

The UK Consumer Rule: Charging 20% VAT

If you’re selling to individual consumers in the UK – personal cards, no VAT number, no business registration – you must charge 20% VAT. For digital services, there’s no minimum revenue threshold. From the first transaction, you’re required to collect and remit it.

This catches a lot of founders off guard, especially those from markets where VAT only kicks in above a certain turnover. In the UK, for B2C digital sales, it starts immediately.

The Reverse Charge Mechanism for EU B2B Customers

Selling to an EU business with a valid VAT number? You don’t charge VAT on the invoice. The customer accounts for it themselves through the reverse charge mechanism. Your invoice needs to explicitly state “VAT: Reverse Charge” – not a blank field, not just zero, the actual words.

The critical point: the burden of proof is entirely on you. If a customer gives you an invalid VAT number and you haven’t verified it, HMRC can hold you responsible for the VAT that should have been collected. More on how to verify – and document it properly – in the next section.

The EU OSS Scheme for B2C Sales

Selling to individual consumers across multiple EU countries would normally mean registering for VAT in each country separately. The Non-Union One Stop Shop (OSS) scheme exists precisely to avoid that – you register in one EU member state, file quarterly, and cover all your EU B2C sales through a single consolidated return.

As a UK LTD post-Brexit, you fall under the Non-Union OSS rather than the Union scheme. Active registration is required, but it’s far simpler than managing returns across 27 jurisdictions.

VAT treatment by customer type:

  • UK B2C – Charge 20% UK VAT, remit to HMRC
  • EU B2C – Charge local VAT rate, file via Non-Union OSS
  • EU B2B with valid VAT number – Zero-rate, reverse charge, verify via VIES
  • EU B2B without valid VAT number – Treat as B2C, charge local VAT rate
  • Rest of world – Generally outside scope; take specific advice for individual countries

Stripe Setup Realities: What Isn’t Automatic

Stripe is excellent infrastructure. It is not a compliance system. Assuming otherwise is how founders end up with months of unvalidated tax collection sitting in their transaction history.

Solving the { taxRate: null } Field Issue

This is one of the most quietly damaging technical issues in UK SaaS setups, and most guides don’t mention it. When you create a subscription or invoice in Stripe without explicitly assigning a tax rate, the taxRate field defaults to null. That means no tax is being collected – not zero-rated, not exempt, just absent.

Think of it as compliance debt. Every month your subscriptions run with taxRate: null, you’re accruing 20% VAT liability that you haven’t collected and haven’t remitted. It compounds quietly. By the time anyone looks closely, the number can be significant.

Stripe does not read your VAT registration and apply the correct rate automatically. It can’t distinguish between a UK B2C customer and an EU B2B customer unless you configure it to do so. Either enable Stripe Tax and configure it properly for your customer types, or manually assign tax rates per customer and subscription. If you’ve been live for a while without checking this – audit your existing subscriptions now, not later.

Manual VAT Validation via VIES

VIES is the EU’s VAT validation system. Your customer gives you a VAT number, you go to the VIES portal, enter the country code and number, and it confirms whether the number is currently active.

Stripe doesn’t do this. It can’t. It’s a manual step in your billing or onboarding flow.

Here’s the practical tip most billing guides skip: screenshot the VIES confirmation screen for every B2B client and attach it to their record in your CRM. Date, VAT number, result, saved. That paper trail is your defense if HMRC ever questions a zero-rated invoice. Without it, you have no proof the number was valid when you invoiced – and “they told me it was valid” is not a position you want to be arguing from.

Tools like Quaderno can automate parts of this process, but building the documentation habit is on you.

Essential Actions: Enabling Stripe Tax and 3D Secure

Stripe Tax helps automate rate calculation based on customer location and product type. It still requires active configuration – it won’t just work because you toggled it on – but it gives you a much safer baseline than running with no tax logic at all.

3D Secure (3DS) is the other one. It adds a bank verification step to card payments, which reduces chargebacks. There’s a trade-off worth being honest about: 3DS will typically reduce checkout conversion by around 5-10%. That’s real friction. But the alternative – a chargeback rate crossing the 1% threshold – puts your entire Stripe account at risk. For most founders that’s not a close call. The conversion drop is the cost of keeping the account alive.


Combating Involuntary Churn and Chargebacks

Not all revenue loss looks like cancellations. A lot of it is invisible – failed payments with no retry logic, customers who never knew their card declined, subscriptions that lapsed without triggering any alert. This is involuntary churn. It’s often larger than intentional churn, and unlike intentional churn, most of it is recoverable.

Why 15-30% of Churn is Involuntary

Industry data consistently puts involuntary churn at 15-30% of total churn across SaaS businesses. For founders with Pakistani or international customer bases, it tends to run higher. Pakistani bank cards face extra friction from foreign transaction blocks, currency mismatch flags, and conservative fraud filters on UK payment processors.

These aren’t customers who decided to leave. They’re customers your billing system failed to keep. That’s a different problem and it has a different solution.

Implementing Smart Retries and Dunning Emails

Smart retries mean attempting to charge a failed card again – not at the same time every day, but spaced strategically based on patterns about when retries are most likely to succeed. Stripe has a built-in smart retry feature. If it’s not enabled, turn it on now.

Dunning emails are where most founders stop short. A standard “Payment Failed” email works for some customers. For Pakistani cardholders facing international transaction blocks, it doesn’t. Consider writing a different first email – something closer to a “Bank Restriction Alert” that explains what likely happened and gives the customer a simple template they can send to their bank to whitelist the recurring charge. This turns a billing problem into a customer support moment, and it recovers customers a generic dunning sequence would lose.

A sequence of 3-4 emails over 7-10 days, with the second and third getting progressively more direct, recovers a meaningful slice of revenue that would otherwise disappear without a trace.

Reducing Chargebacks: Recognition, Cancellation, and Reminders

A chargeback happens when a customer disputes a charge with their bank instead of contacting you directly. For UK LTDs on Stripe, sustaining a chargeback rate above 1% triggers account review – and extended time above that threshold can end with account termination.

Three things keep chargebacks down consistently. Make your business name clear on bank statements – confusing descriptors are one of the most common dispute triggers, and most founders never actually check what theirs shows. Make cancellation easy, because customers who can’t figure out how to cancel will often dispute the charge instead of asking for help. And send renewal reminders 3-5 days before billing – customers who see it coming are far less likely to dispute it than customers who see an unexpected charge and reach for their bank app.


Your 60-Minute Compliance Checklist

If you haven’t audited your setup recently, here’s where to start:

  • Open your Stripe Dashboard – search for any active subscription or invoice and check whether taxRate is null or assigned. More than a handful sitting at null means you have a configuration issue to fix.
  • Toggle on Smart Retries – Stripe Dashboard > Settings > Subscriptions and emails > Smart Retries.
  • Check your bank statement descriptor – Stripe Dashboard > Settings > Public business information. Search your own business name and see what actually shows up. Fix it if it’s unclear.
  • Run your last 5 EU B2B customers through VIES and screenshot the results.
  • Check whether Non-Union OSS registration is on your radar – if you have any EU B2C customers, you need a plan here.

None of these take long. All of them matter.


FAQs

Do I need to charge VAT to UK customers?

Yes. For digital services sold to UK consumers, 20% VAT applies from the first sale. There’s no minimum threshold before it kicks in.

Does Stripe handle VAT automatically?

No – Stripe doesn’t apply or validate VAT on its own. You need to enable Stripe Tax and configure it for your customer types, or manually assign tax rates to each subscription yourself.

What is the reverse charge and when does it apply?

It applies to B2B sales where your EU customer has a valid VAT number. You zero-rate the invoice, the customer handles VAT on their own return, and your invoice must explicitly reference the reverse charge mechanism – not just leave the tax field blank.

How do I handle EU B2C sales without registering in every EU country?

Register under the Non-Union OSS scheme in one EU member state. A single quarterly return covers all your EU B2C sales.

Why are my Pakistani customers’ payments failing?

Pakistani bank cards frequently trigger international transaction blocks or fraud filters on UK processors. Smart retries recover some of these. A dunning email that gives customers a bank whitelist template recovers more.

What happens if I don’t verify a customer’s VAT number?

If the number is invalid and you zero-rated the invoice without VIES verification, HMRC can hold you liable for the uncollected VAT. Verify every EU B2B VAT number, screenshot the result, and keep it on file.


One question worth sitting with before you move on: when did you last manually check a customer’s VAT number in VIES?

If you can’t remember – or if the answer is never – that’s probably the most useful thing to fix today. Everything else on this list matters too, but that one has a paper trail attached to it, and paper trails are exactly what you want when HMRC comes looking.

Open in your AI

Choose which AI assistant to use