Skip to content
All use cases

Compliance & Use Case

FTA Compliant

UAE Tax Invoices & E-Invoicing API

Generate bilingual Arabic/English UAE Tax Invoices (فاتورة ضريبية) straight from your ERP or billing engine. Full compliance with UAE Federal Tax Authority (FTA) requirements, 15-digit TRN validation, dynamic QR codes, and seamless conversion from Peppol PINT XML datasets into publication-grade PDFs.

From UAE XML E-Invoice Data to Publication-Grade PDF

Under UAE Ministry of Finance e-invoicing standards, businesses exchange invoices using the Peppol PINT format (UBL 2.1 XML syntax). While machines validate XML schemas through Accredited Service Providers (ASPs), customers, auditors, and tax authorities require a verified, human-readable visual invoice in AED.

01

Bilingual RTL Layout

Arabic and English labels mirrored side by side. Native Arabic font shaping (Cairo, Amiri) with zero ligature clippings or inverted currency codes.

02

Strict TRN & VAT Audit

15-digit Tax Registration Numbers (TRN) for supplier and customer, 5% standard VAT line-item breakdowns, and mandatory AED conversion totals.

03

Cryptographic QR Codes

Dynamic Base64 TLV or verification URL QR codes generated directly on the document canvas for instant FTA tax verification scanning.

The HTML / Headless Chrome Pitfall

  • Bidirectional (bidi) CSS glitches: Arabic text reverses digits, misaligns currency signs, and clips complex glyphs.
  • Missing schema contracts: Payloads with missing TRNs or invalid tax amounts silently render broken invoices.
  • Multi-page tables break: Invoices with 50+ lines lose column headers and split total summary blocks across margins.

With pdfs.build Engine

  • Native Typst typesetting: High-fidelity HarfBuzz text shaping with first-class Arabic font ligature support.
  • Schema-enforced compliance: Missing TRN or required tax fields fail fast with HTTP 422 JSON errors before rendering.
  • Synchronous rendering: get each invoice back in about 220ms (median) to email customers or archive to S3.

One API call: JSON/XML data to UAE Tax Invoice PDF

Pass your structured invoice parameters directly into the uae-tax-invoice template endpoint. Receive binary application/pdf in milliseconds:

POST /v2/organizations/{orgId}/templates/uae-tax-invoice/render
Response: application/pdf
// Node.js / TypeScript: Render UAE Tax Invoice
const res = await fetch("https://api.pdfs.build/v2/organizations/org_main/templates/uae-tax-invoice/render", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.PDFS_BUILD_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    data: {
      invoice_number: "TAX-2026-00481",
      issue_date: "2026-09-21",
      supply_date: "2026-09-20",
      currency: "AED",
      supplier: {
        name_en: "Al-Mansoor Logistics LLC",
        name_ar: "شركة المنصور للخدمات اللوجستية ش.ذ.م.م",
        trn: "100234567800003", // 15-digit FTA TRN
        address: "Business Bay, Dubai, UAE",
      },
      customer: {
        name_en: "Gulf Construction Partners",
        name_ar: "شركاء الخليج للإنشاءات",
        trn: "100876543200003",
        address: "Al Reem Island, Abu Dhabi, UAE",
      },
      items: [
        {
          description_en: "Fleet Freight Transport (Dubai to Abu Dhabi)",
          description_ar: "نقل بري بالشاحنات (دبي إلى أبوظبي)",
          quantity: 5,
          unit_price: 1200.00,
          vat_rate: 0.05, // 5% Standard VAT
          vat_amount: 300.00,
          total_aed: 6300.00,
        },
      ],
      totals: {
        subtotal: 6000.00,
        vat_total: 300.00,
        grand_total: 6300.00,
      },
    },
  }),
});

if (!res.ok) {
  const err = await res.json();
  throw new Error(`Invoice render failed: ${err.message}`);
}

const pdfBuffer = Buffer.from(await res.arrayBuffer());

Built for Complex UAE B2B Transactions

Enterprise invoices rarely fit onto a single page. When a shipment spans 40 items across customs duties, handling fees, and standard-rated supplies, the pdfs.build layout guarantees:

  • Bilingual column headers repeat. When items spill to page two or three, Arabic and English headers remain intact so auditors can track tax breakdowns line by line.
  • Tax totals block stays unified. Subtotal, 5% VAT breakdown, and Amount Due in AED never orphan onto separate pages.
  • Dynamic verification QR code placement. The QR code and FTA mandatory declaration anchor reliably beneath the summary block.

Explore Related Capabilities

Learn more about programmatic PDF generation with templates, browse our UAE Tax Invoice template gallery, or read our technical guide to generating PDFs from JSON data.

Need your customers to configure their own billing layouts? Embed our white-label document editor API directly inside your SaaS or ERP.

Automate UAE Tax Invoicing Today

50 free renders every month. Provision your first template and connect your ERP in 5 minutes.