Saudi VAT on Stripe Digital Services in QuickBooks
Saudi Arabia taxes foreign digital services from the first consumer sale, with tax shown in riyals. How it works on Stripe and in QuickBooks.
A US software company sells a 49 USD monthly plan and a 199 USD team plan. In January it picks up its first customers in Saudi Arabia: 25 individuals, 6 companies that enter a Saudi VAT number at checkout, and 3 small studios that don't have one. Stripe Tax flags Saudi Arabia after the first consumer sale, on January 4. The founder adds the registration in Stripe on January 15 and assumes the job is done. It isn't. Under Saudi rules the registration takes effect from the date of that first sale, so the eleven days of invoices Stripe issued without tax are already a debt.
Saudi Arabia has no registration threshold for a foreign seller of digital services to consumers, and it gives you 30 days from the first sale to apply. Like the UAE, it leaves VAT-registered business customers to account for the tax themselves. Unlike the UAE, it adds rules that a Stripe setup doesn't handle on its own: invoices in Arabic, the tax shown in riyals at the Saudi Central Bank's rate, and a security deposit as a condition of registration.
This guide covers Saudi VAT on Stripe sales of digital services by a seller with no residence in the Kingdom: what the Zakat, Tax and Customs Authority (ZATCA) treats as an electronic service, registration from the first sale, the tax representative question, how the customer's VAT number decides who pays, the 15% rate and the invoice rules, the quarterly return, and how the VAT reaches QuickBooks. A worked example runs in dollars and riyals.
Acodei brings Stripe Tax amounts into QuickBooks automatically, so the Saudi VAT you collect is already sitting in a liability account when each return comes due. Start a free trial.
Which sales are in scope: electronic services consumed in Saudi Arabia
ZATCA's Implementing Regulations of the VAT Law list what counts as electronic services. The list "include[s], but [is] not limited to":
- supplies of software and software updates
- website supply and web hosting
- distance maintenance of programs and equipment
- images, text, e-books and "other digitised documents or files"
- music, films, games and programs on demand, and live streaming
- online magazines and advertising space on a website
A SaaS subscription, a stock asset library or a pre-recorded course fits comfortably.
Where the customer lives decides it. Outside the special case of a service used at a fixed spot (a hotel lobby or a Wi-Fi hot spot), the regulations say the customer "consumes and enjoys the service at the place where his usual place of residence is." They name four indicators a supplier may use to find it:
- the invoicing address
- the customer's bank account details
- the IP address used to receive the service
- the country code of the SIM card
Stripe works from a narrower set. Its customer location rules use the shipping address, then the billing address, then the payment method's billing details, then the IP address. For most subscriptions the billing address decides. If a real share of your Saudi revenue comes from customers billed elsewhere, raise it with your adviser rather than expecting Stripe to catch it.
Marketplaces change who the supplier is. If you sell through an app store or another platform that sets the terms and collects from the customer, ZATCA's regulations presume the platform bought the service from you and resold it in its own name. The guideline on the November 2024 amendments walks through each case. When both you and the platform are non-resident, your supply to the platform "is outside the scope of VAT," and the platform registers and charges the customer. This guide is about sales you make directly, through Stripe.
Who this guide is not for
Stripe's Saudi Arabia tax page lists your business location as "not supported." To collect Saudi VAT through Stripe, "you must be a remote seller without a physical presence in the country." A business resident in the Kingdom follows the domestic rules, including the SAR 375,000 mandatory threshold in ZATCA's VAT Guideline for Electronic Contracts.
Physical goods are out too. Stripe "doesn't calculate tax for products that don't use a digital product tax code" in Saudi Arabia, so every product you sell there needs one. Check your catalog before the first Saudi invoice, because a product with no tax code is the quiet way to under-collect.
Saudi VAT on Stripe: registered from the first sale, with 30 days to apply
The regulations put the rule in two sentences. A non-resident "who is not registered with the Authority but is obligated to pay Tax on Supplies made or received by that Person in the Kingdom must apply to the Authority for registration within thirty (30) days of the first Supply on which that Person was obligated to pay Tax." And that registration "takes effect from the date of the first Supply."
ZATCA's Guideline for Tax Invoicing and Records (Version 3, May 2026) restates it: non-residents must register "regardless of the value of the supplies." There is no amount to stay under.
Stripe's page agrees. Remote sellers of digital products to consumers in Saudi Arabia "must register for VAT purposes from the first sale," and the registration threshold is "1 transaction." Stripe also says sales to business customers "don't trigger any tax registration obligations because non-resident businesses aren't required to collect tax on these sales."
The monitoring setting is narrower than the UAE's. Stripe lists the transactions included in threshold monitoring for Saudi Arabia as "B2C sales of digital products." For the UAE it lists "Any taxable transaction." So a Saudi alert means a consumer sale happened, and a Saudi company with a VAT number won't set one off.
The gap between the first sale and the Stripe registration
The 30-day window to apply doesn't move the effective date. Stripe, meanwhile, only taxes from the point you add the registration: its registration settings offer "Start collecting immediately" or "Schedule tax collection" from a future effective date. Neither reaches back to invoices that already finalized.
Those earlier invoices carry a taxability reason of not_collecting, which Stripe's zero-tax guide explains as either no active registration or a nontaxable product tax code. Every Saudi not_collecting row dated on or after your first consumer sale is VAT you owe on the first return with nothing collected to cover it. The fix is to move fast. Apply to ZATCA the week the alert fires, and add the registration in Stripe the day the certificate arrives.
The tax representative and the security: optional on paper, required on one ZATCA page
Here ZATCA's own sources don't agree, and it's worth knowing before you fill in the application.
The regulations make a representative optional. "A Nonresident Taxable Person may appoint a Tax Representative residing in the Kingdom." That representative is jointly liable for your VAT, capped at double your average quarterly output tax. The 2026 invoicing guideline is written the same way: it gives the record-keeping rule for "a non-resident taxable person who has not appointed a representative."
ZATCA's tax agents and representatives page, updated in August 2026, says otherwise: "All Non-Resident taxable persons must have one Tax Representative." It points readers to the same article of the regulations.
Either way, two obligations follow you:
- Records in the Kingdom. A non-resident with no representative "must appoint a third party established in the Kingdom" to keep its invoices, books and records, per the invoicing guideline.
- A security. The regulations say "All Nonresident Taxpayers must provide a security" as "a precondition of VAT registration." ZATCA sets its value from your estimated average quarterly output tax, or double that "in the case of a Nonresident Taxable Person that does not appoint a tax representative."
For a small seller, the practical choice is between a representative's fee and a larger guarantee. Ask during registration which route ZATCA will accept for you. If your adviser builds the registration around the regulations' "may," keep a copy of the page that says "must" in the file, so the conversation is on record.
The Saudi VAT number decides who pays
For a sale to a Saudi business, the invoicing guideline sets the default. A taxable person resident in the Kingdom "must self-account for VAT in its tax return (using the reverse charge mechanism)" on services from a non-resident supplier, and "a non-resident supplier is not required to charge VAT on supplies made to a taxable customer in the Kingdom." Under the reverse charge, the customer reports the output tax and, where it can, the matching input tax.
On Stripe, the switch is the customer's tax ID. Stripe's tax ID list supports sa_vat (example format 123456789012345, 15 digits) and marks it Yes for impact in tax calculation: "Stripe Tax won't apply tax if this tax ID is provided." The itemized export records those lines as reverse_charge. That makes Saudi Arabia a reverse-charge country in Stripe, like the UAE and Egypt, where eg_tin is also marked Yes. Kenya is the opposite case: ke_pin is marked No, so Stripe keeps charging VAT. Our explainer on Stripe customer tax IDs covers how the impact column works across countries.
Stripe checks the format, not the registration
Stripe validates tax IDs against a government database only for Australian ABNs, EU VAT numbers and UK VAT numbers. A Saudi VAT number isn't on that list, and Stripe says Stripe Tax "applies the reverse charge or zero rate according to applicable laws when the tax ID has the required number format, regardless of the government verification result."
So a mistyped number, or one from a company that has deregistered, produces a VAT-free invoice and leaves the 15% with you. ZATCA runs a VAT Registration Verification e-service that "allows you to verify the registration of a business in Value Added Tax." Check each new Saudi number there when the customer adds it, keep the result, and correct the tax ID in Stripe before the next invoice finalizes.
A small Saudi business without a VAT number is a consumer for this purpose
The reverse charge rests on the customer being a taxable person. A Saudi studio below the SAR 375,000 threshold may not be registered, so it has no number to give you. Stripe charges it 15% like an individual, and that's the right result. Don't let a revenue report that sorts "B2B" by company name tell you otherwise.
Once you're registered, the B2B picture gets less tidy
The invoicing guideline adds a line that most Stripe setups miss. A non-resident "may be registered for VAT purposes on the basis that it makes other supplies that require registration," and in that case it "must issue a tax invoice in respect of that supply, and such tax invoice must include the customer's VAT registration number." Its worked example has a registered non-resident charging VAT itself on a supply to a VAT-registered Saudi factory, though that case involves goods bought and delivered inside the Kingdom.
The guideline doesn't say whether registration moves your B2B services out of the reverse charge. Stripe will keep reverse-charging every sa_vat customer. Settle your B2B position with an adviser before your first return, the way we suggested for Tanzania, where the statute raises a similar question.
The 15% rate, Arabic invoices, and tax shown in riyals
The rate. The standard rate is 15%. The invoicing guideline puts it plainly: a person subject to VAT "must apply tax at a rate of 15% (assuming the standard rate applies to those supplies) added to the final selling price." On a 49 USD plan priced tax-exclusive, that's 7.35 USD.
The invoice. Most of your Saudi consumer invoices will be simplified tax invoices, which the guideline allows for a natural person who isn't subject to tax "regardless of the value of the supplies." At a minimum it must show:
- the date of issue
- your name, address and Tax Identification Number
- what you supplied
- the consideration payable
- the tax payable, or a statement that the consideration includes tax
Three further rules sit on top of that list, and each one is a gap in a default Stripe invoice:
- Arabic. The guideline quotes the regulations: "all invoices must be issued in the Arabic language, in addition to any other language." Latin characters are accepted for proper names, and "USD" is accepted as a currency code. Stripe's list of invoice languages runs from Bulgarian to Vietnamese and doesn't include Arabic.
- Riyals. Your prices can be in any currency, but "the amount of tax charged must be stated in Saudi Riyals," converted "using the daily exchange rate determined by the Saudi Central Bank on the date the tax becomes due." A simplified invoice can instead state that the riyal consideration includes VAT at 15%, which still means showing riyals.
- Halalas. The VAT amount is rounded to the nearest halala, and "the rounded figures used must be the same figures used for the purposes of filing the VAT return."
Stripe's invoice settings let you add your Saudi registration as an account tax ID, so it appears in the PDF header. The Arabic and riyal requirements need another route, such as an invoicing tool that issues the Saudi invoice alongside the Stripe one. Agree the approach with your adviser before the first invoice goes out.
E-invoicing. ZATCA's FATOORAH rules are framed around residents. The guideline says "all taxable persons resident in the Kingdom, or any person issuing a tax invoice on behalf of a taxable person resident in the Kingdom, must issue the tax invoice electronically." It doesn't extend that sentence to non-residents. Watch ZATCA announcements for any change to who it covers.
The quarterly return and payment: due the last day of the following month
The regulations set the rhythm in three rules:
- Quarterly by default. The tax period is monthly only for taxpayers whose taxable supplies exceeded SAR 40,000,000 in the previous twelve months. "For all other Taxpayers, the standard Tax Period shall be three months." A small seller can apply for monthly periods.
- Due the last day of the next month. The return is due "no later than the last day in the month following the end of the Tax Period."
- Paid by the same date. Payment is due "at the latest by the last day of the month following the end of that Tax Period," to the Authority's designated bank account, quoting your Tax Identification Number and the period.
For a January to March quarter, the return and the payment are both due April 30. Send an international transfer a few days early. A return is required for every period, so a quarter with no Saudi sales is still a filing.
There's an exit, too. If at the end of any month a non-resident "has not made any Taxable Supplies in respect of which it is obligated to report Tax in the Kingdom in the most recent twelve-month period," it must deregister. If your Saudi customers churn, put a reminder in the calendar.
How Saudi VAT from Stripe reaches QuickBooks
For a US QuickBooks company, the workable Acodei tax method is usually the Tax Product. QuickBooks' Sales Tax Center doesn't let third parties create official tax rates for US companies, so the tax goes to a product line instead:
- In QuickBooks, create a non-inventory product such as "Sales Tax" and map it to a liability account.
- In Acodei's Stripe Tax settings, choose Tax Product and select that product.
- Each synced sale gets one line for its total Stripe Tax amount on the QuickBooks invoice or sales receipt.
It requires Stripe Tax enabled with Stripe Invoice or Stripe Checkout. You then file from Stripe's tax reports and pay from the liability account. A company whose QuickBooks file is outside the US can instead map each Stripe tax rate to a QuickBooks tax code.
On a 49 USD Saudi consumer invoice, that means 49 USD of revenue and a 7.35 USD tax line in the liability account. A reverse-charged sale to a registered company carries no Saudi tax, so nothing from it reaches the liability account.
Building the return from Stripe's export, not the liability balance
The Tax Product puts every Stripe Tax amount in one account, so Saudi VAT sits next to US sales tax and any other country's VAT. Build the return from Stripe's itemized tax export instead, filtered to Saudi Arabia for the quarter:
- Taxed rows give your standard-rated supplies and output tax.
reverse_chargerows list each business customer, with its VAT number in thecustomer_tax_idcolumn. Keep the verification result beside each one.not_collectingrows from your first consumer sale onward are the pre-registration gap. Add their VAT to the first return.
The currency. Stripe's tax reports documentation says that when your pricing currency differs from the filing currency, Stripe Tax "converts amounts using available exchange rates at the time of the transaction," and the exports carry filing_exchange_rate and filing_tax_amount columns. Our explainer on the Stripe Tax filing currency covers how they relate. ZATCA wants the Saudi Central Bank's rate on the date tax became due. Stripe's rates are its own, so ask your adviser whether the filing columns are acceptable or whether you recompute the riyal figures.
Your liability account holds dollars. When you pay the riyal amount, the dollars that leave your bank won't exactly match the dollars Stripe collected. The difference is an exchange gain or loss, not a tax correction. Our guide to why the Stripe tax report and QuickBooks don't match covers the other usual gaps.
Refunds. In QuickBooks, a refund issued without a line-level breakdown may not reduce the tax line. Refund Saudi invoices through a credit note when you can, which gives the sync the line-level tax breakdown it needs.
A worked example: one quarter, three kinds of Saudi customer
Back to the company from the top. Its first Saudi consumer sale was January 4, it applied to ZATCA on January 12, and it added the registration in Stripe on January 15. Its tax period is January to March, and every price is tax-exclusive. The riyal figures use an illustrative rate of 3.75 riyals to the dollar.
January 15 to March 31, with Stripe collecting:
| Customer | Count | Invoices | Sales (USD) | Saudi VAT charged by Stripe (USD) | Who accounts for it |
|---|---|---|---|---|---|
| Individuals, 49 USD plan | 25 | 75 | 3,675.00 | 551.25 | The company |
| Studios with no VAT number, 49 USD plan | 3 | 9 | 441.00 | 66.15 | The company |
| Registered companies, verified number, 199 USD plan | 6 | 18 | 3,582.00 | 0.00 | The customers, by reverse charge |
What Stripe collected. 617.40 USD of Saudi VAT, all of it in the QuickBooks liability account through the Tax Product line. The three studios were charged because they had no VAT number on file, which is correct.
The gap. Between January 4 and January 14, Stripe issued 8 consumer invoices at 49 USD with not_collecting: 392 USD of sales and 58.80 USD of VAT that ZATCA is owed and nobody paid. The company records it as an expense, not a reduction of the liability account, because Stripe never collected it. In QuickBooks it's a journal entry: debit a tax expense account, credit the same liability account the Tax Product feeds, so the full return amount clears together.
What goes on the return. 4,508 USD of standard-rated supplies (the 4,116 USD Stripe taxed plus the 392 USD gap) and 676.20 USD of output tax. In riyals, at the illustrative rate, that's 16,905 riyals of supplies and 2,535.75 riyals of tax. The company records the Saudi Central Bank's actual rate for each invoice date and recomputes from the export, because its adviser didn't accept Stripe's filing columns.
The deadline. The return and the payment are due April 30. The company sends the transfer a week early, clears 676.20 USD from the liability account when it settles, and books the difference between that and the dollars that actually left the bank as an exchange gain or loss. The April invoices go out correctly from day one.
Common mistakes with Stripe and Saudi VAT
- Waiting for a threshold. For a non-resident there isn't one. The first consumer sale starts the obligation, and the registration dates back to it.
- Treating the 30 days as a grace period. It's time to apply, not time free of tax. Invoices issued before the Stripe registration still owe 15%.
- Leaving products without a tax code. Stripe only calculates Saudi VAT on digital product tax codes.
- Trusting a VAT number because Stripe accepted it. Stripe checks the format and reverse-charges. ZATCA's verification service checks the registration.
- Sending an English-only, dollars-only invoice. Saudi invoices must be in Arabic as well, with the tax in riyals.
- Planning around the regulations' "may" without asking. ZATCA's own page says every non-resident needs a tax representative, and the security is larger without one.
- Filing on the 28th out of UAE habit. Saudi returns and payments are due on the last day of the month after the quarter.
Frequently asked questions
Do foreign SaaS companies have to register for VAT in Saudi Arabia for Stripe sales?
Yes, from the first sale to a Saudi consumer. ZATCA's regulations require a non-resident to apply within 30 days of the first supply on which it owes tax, and the registration takes effect from that supply's date. Stripe lists the threshold as one transaction. Selling only to Saudi companies with a valid VAT number doesn't trigger registration, because those customers self-account under the reverse charge.
What is the VAT rate on digital services in Saudi Arabia?
15%, the standard rate. ZATCA's invoicing guideline says a person subject to VAT must apply 15%, assuming the standard rate applies, added to the selling price. On a 49 USD subscription priced tax-exclusive, the VAT is 7.35 USD. Stripe calculates it only for products with a digital product tax code, so check each product's code before the first Saudi sale.
Does Stripe Tax charge Saudi VAT to business customers?
Not if the customer has a Saudi VAT number on file. Stripe treats sa_vat as affecting the calculation and applies the reverse charge when the number has the right 15-digit format. It doesn't check the number against ZATCA's records, so use ZATCA's VAT Registration Verification service yourself. A Saudi business with no VAT number is charged 15% like an individual.
When is the Saudi VAT return due?
By the last day of the month after each tax period, with payment due by the same date. Most small sellers have quarterly periods, because monthly periods apply only above SAR 40,000,000 of annual taxable supplies. A January to March quarter is due April 30. A non-resident that makes no Saudi taxable supplies for twelve months must deregister.
Where does Saudi VAT go in QuickBooks?
With Acodei's Tax Product method, each synced Stripe sale carries its Stripe Tax amount as one line on a non-inventory product mapped to a liability account. A 49 USD Saudi consumer invoice becomes 49 USD of revenue and 7.35 USD of tax liability. You build the return from Stripe's itemized export filtered to Saudi Arabia, convert to riyals, then pay from the liability account.
Acodei syncs Stripe Tax into QuickBooks automatically, so every Saudi return starts from a liability account that already holds what you collected. Start a free trial.
Automate your Stripe to QuickBooks sync
Save hours every month. Acodei automatically syncs your Stripe transactions, invoices, and payouts to QuickBooks Online.
14-day free trial · card required · cancel anytime
How Acodei handles this in your stack
Stripe QuickBooks Integration
See how Acodei syncs Stripe payments, fees, refunds, invoices, and payouts into QuickBooks Online automatically.
Or go straight to a capability
Advanced Product Mapping
Map Stripe products to QuickBooks with rule-based logic on product ID, price ID, metadata, and account. Set rule priority and extend mapping to refunds and fees.
Automated Invoice Sync
Bring Stripe invoices into QuickBooks and auto-apply payments and credit memos, with invoice numbering suffixes and quantity tracking to cut double-entry.
Multi-Currency Mastery
Sync Stripe transactions across currencies with automatic exchange rate handling and currency-specific customer records. Our team enables multicurrency on request, and zero-decimal currencies such as JPY are not supported.
Class Mapping
Map Stripe products to QuickBooks classes for scalable categorization and multi-entity reporting. Class tracking requires QuickBooks Online Plus or Advanced.
Historical Data Import
Backfill historical Stripe data into QuickBooks by month range. Preview volume and cost before syncing so reporting starts from a complete baseline.
How to Connect Stripe to QuickBooks Online
Connect Stripe to QuickBooks Online in minutes. Acodei links both accounts with secure OAuth and syncs payments, fees, refunds, and payouts automatically.
Reconcile Stripe Payments in QuickBooks
Reconcile Stripe in QuickBooks Online automatically. Acodei splits out fees, matches payouts to deposits, and keeps every charge audit-ready.
Related articles
Acodei Journal
Tanzanian VAT on Stripe Electronic Services in QuickBooks
Acodei Content Team
Tanzanian VAT on Stripe Electronic Services in QuickBooks
10/19/2026
Acodei Journal
New Zealand GST on Stripe Remote Services in QuickBooks
Acodei Content Team
New Zealand GST on Stripe Remote Services in QuickBooks
10/19/2026
Acodei Journal
Egyptian VAT on Stripe Digital Services in QuickBooks
Acodei Content Team
Egyptian VAT on Stripe Digital Services in QuickBooks
10/18/2026
Get more operational finance guides like this one
We will only send high-value product and finance content.