Arabic Invoice Generator: ZATCA QR & UAE VAT PDF
Pricing
from $20.00 / 1,000 invoice generateds
Arabic Invoice Generator: ZATCA QR & UAE VAT PDF
Generate bilingual Arabic/English tax invoice PDFs from JSON. ZATCA-compliant QR code for Saudi Arabia (Phase 1), UAE VAT invoices, correct RTL and Arabic letter shaping, batch up to 500 per run.
Pricing
from $20.00 / 1,000 invoice generateds
Rating
0.0
(0)
Developer
yazeed
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
16 days ago
Last modified
Categories
Share
Arabic Invoice Generator: ZATCA QR & UAE VAT Invoice PDF API
Generate bilingual Arabic/English tax invoice PDFs from JSON, with a ZATCA-compliant QR code for Saudi Arabia and UAE VAT (TRN) support. Arabic letters render correctly connected, layouts are right-to-left, fonts are embedded. Send one invoice or 500 per run.
Built for developers, e-commerce stores, ERPs, no-code automations (Make, Zapier, n8n) and AI agents that need Saudi or UAE invoices without fighting Arabic PDF rendering.
What it does
- 🇸🇦 Saudi Arabia (ZATCA): simplified (B2C) and standard (B2B) tax invoices, 15% VAT, TLV-encoded QR code with all 5 required fields (seller name, VAT number, timestamp, total incl. VAT, VAT amount)
- 🇦🇪 UAE: tax invoices with TRN, 5% VAT, AED
- 🔤 Arabic done right: proper letter joining, RTL tables, Arabic + English side by side, embedded IBM Plex Sans Arabic font so the PDF looks identical everywhere
- 🧮 Exact VAT math: integer arithmetic (no floating-point cent errors), per-line discounts, per-line VAT rates (e.g. 0% exempt items)
- ✅ Validation: Saudi VAT number format (15 digits, starts and ends with 3), UAE TRN format, required B2B buyer details. Invalid invoices are reported and not charged
- 📦 Batch: up to 500 invoices per run, with a default seller so you don't repeat it
Input example
{"country": "SA","seller": {"nameAr": "شركة المثال للتجارة","nameEn": "Example Trading Co.","vatNumber": "310122393500003","crNumber": "1010010000","addressAr": "الرياض، طريق الملك فهد","addressEn": "King Fahd Rd, Riyadh"},"invoices": [{"invoiceNumber": "INV-1001","invoiceType": "simplified","issueDate": "2026-10-05T09:30:00Z","items": [{ "descriptionAr": "قهوة عربية", "descriptionEn": "Arabic coffee", "quantity": 2, "unitPrice": 25 },{ "descriptionAr": "تمر سكري", "descriptionEn": "Sukkari dates 1kg", "quantity": 1, "unitPrice": 60, "discount": 5 }],"notes": "شكراً لتعاملكم معنا"}]}
| Field | Required | Notes |
|---|---|---|
country | no | SA (default), AE, or OTHER. Can be set per invoice |
seller | yes* | nameAr/nameEn, vatNumber, crNumber, addressAr, addressEn. Can be overridden per invoice |
invoices[].invoiceNumber | yes | Your invoice number |
invoices[].invoiceType | no | simplified (B2C, default) or standard (B2B, requires buyer.name) |
invoices[].issueDate | no | ISO 8601. Defaults to now |
invoices[].buyer | B2B only | name/nameAr, vatNumber, address |
invoices[].items[] | yes | descriptionAr and/or descriptionEn, quantity, unitPrice, optional discount, vatRate |
invoices[].currency | no | Defaults to SAR / AED |
Output
Each invoice becomes a PDF in the run's key-value store, plus a dataset row:
{"invoiceNumber": "INV-1001","status": "ok","country": "SA","currency": "SAR","totals": { "net": "105.00", "vat": "15.75", "totalWithVat": "120.75" },"pdfUrl": "https://api.apify.com/v2/key-value-stores/.../records/invoice-INV-1001","zatcaQrBase64": "AR..."}
zatcaQrBase64 is the raw TLV payload, so you can also print the QR in your own receipts or POS.
Use it from code, automations, or AI agents
- API: call the Actor synchronously and get the dataset back in one request (see the API tab)
- Make / Zapier / n8n: use the Apify integration, map your order fields to
invoices - AI agents (Claude, ChatGPT, Cursor): available through the Apify MCP server, so an agent can generate a real Saudi or UAE invoice PDF as a tool call
Pricing
Pay per invoice generated. Invalid invoices are never charged. No subscription.
FAQ
Is this ZATCA compliant? It produces the generation-phase (Phase 1) requirements: the bilingual tax invoice layout and the 5-field TLV QR code. It does not perform Phase 2 (integration phase) cryptographic stamping or clearance/reporting with the Fatoora platform, because that requires your own taxpayer credentials from ZATCA onboarding. If your business is in a Phase 2 wave, use your e-invoicing provider for stamping.
Why do Arabic PDFs usually break? Most PDF libraries don't apply Arabic letter shaping or bidirectional text rules, so letters appear disconnected or reversed. This Actor renders through a full browser engine with an embedded Arabic font, so shaping and RTL are handled correctly.
Can I add my logo or change the design? Not yet. Open an issue with what you need.
Does it store my data? Data stays in your own Apify run storage, under your account's retention settings.
Not tax or legal advice. Verify invoice requirements with your tax advisor.