--- title: FAQs description: Frequently asked questions about Easy Invoice — Free vs Pro, PDF generation, currencies, taxes, GDPR, multisite, billing models, and gateway specifics. --- # Frequently asked questions ## Getting started ### Is Easy Invoice really free? Yes. The core plugin is GPLv2-or-later, lives on [WordPress.org](https://wordpress.org/plugins/easy-invoice/), and ships unlimited invoices, quotes, clients, PayPal, and a manual payment method out of the box. ### Do I need Easy Invoice Pro? Only if you need any of: Stripe / Square / Mollie / Authorize.Net / other Pro gateways, recurring billing, partial payments, deposit invoices, the Item Library, the Template Builder, custom permalinks, PDF watermarks, the client portal, or the GDPR exporter. Otherwise the free plugin handles unlimited basic invoicing. ### Does Pro work without Free? No. Easy Invoice Pro **requires the free plugin to be active**. Activating Pro without Free auto-deactivates Pro and shows an admin error. ## Versions & compatibility ### What WordPress / PHP versions are required? - WordPress **5.6+**. - PHP **7.4+** (the bundled Composer manifest is stricter at 7.2; we use the readme value for documentation). ### Does Easy Invoice support multisite? Yes — install network-wide and activate per site. Each site has its own settings, invoices, and license activation. ### Block editor / Gutenberg compatible? Yes for general WordPress pages. Easy Invoice itself doesn't ship Gutenberg blocks — use the [shortcodes](/shortcodes) inside any block that supports shortcodes. ## Money & numbers ### Can I bill in multiple currencies? Yes. Set a **default currency** under Settings → Currency, and override it per invoice/quote in the builder. ### Decimal precision and rounding? Configurable from `0`–`4` decimals (default `2`). All math uses standard PHP arithmetic — there's no banker's rounding or currency-specific handling. ### Can I auto-apply tax based on the client's country? The free plugin supports global tax + per-line taxable. **Pro's Additional Tax** module adds rule-based stacking (e.g. State + Federal). For full automatic tax (TaxJar / Avalara), use a separate WordPress plugin alongside Easy Invoice — it'll write its result into the invoice tax field. ### Year-restart numbering (e.g. INV-2026-0001)? Bake the year into the prefix manually each January and reset the next number to `1`. The free plugin doesn't auto-restart per year. ## PDFs ### Why is the PDF generated in the browser? Easy Invoice uses **client-side jsPDF + html2canvas** (`includes/Helpers/PdfHelper.php:78–86`) instead of server-side libraries (Dompdf, mPDF). Pros: no shared-host PHP memory issues, no font shipping, immediate rendering. Cons: very-long invoices (50+ line items) can be slow on weak machines. ### Can I attach the PDF to the invoice email? Pro Email Enhancements adds an "Attach invoice PDF" toggle per template. The free plugin sends the email with a link only. ### Can I add a watermark to the PDF? Pro PDF Enhancements adds watermarks ("PAID" / "DRAFT" / custom text), font selection, and per-template options. Settings → PDF Options. ## Stripe / SCA / 3-D Secure ### Does Stripe support SCA / 3-D Secure? Yes — Pro uses Stripe **Payment Intents**, which automatically trigger 3-D Secure when the issuer requires it. No extra config needed. ### What about Apple Pay / Google Pay? Stripe Payment Element supports both. They appear automatically on supported devices. ### Stripe shows up but redirects don't return to my invoice Check that your **site URL** matches across **WordPress** (Settings → General) and your **Stripe** dashboard. Mismatches send the redirect to the wrong host. ## Quotes ### Can the client e-sign the quote? There's no built-in e-signature field. Use a separate plugin (DocuSign, WP eSignature) for legally-binding signatures — embed its shortcode under the quote line items via a custom template or hook. ### Can I require approval before generating the invoice? The accepted-quote → invoice conversion is **manual** — the new invoice starts as draft so you can tweak before sending. There's no auto-conversion in the current build. ## Recurring billing ### Free vs Pro: which does what? - **Free**: one-shot invoices only. - **Pro**: recurring invoices (manual pay each cycle) **and** subscription invoices (auto-charge via Stripe / Mollie). ### Why do I sometimes see two invoices generated for the same template? Pro defines **two recurring subsystems** (`RecurringInvoices` extension + `RecurringInvoiceController`). Both are usually wired in production. If you see duplicates, disable one via custom code or contact support. ## Client portal ### Where do I put the portal pages? Create three regular WordPress pages and drop in the shortcodes: - `/client-area/login` → `[easy_invoice_login]` - `/client-area/profile` → `[easy_invoice_profile]` - `/client-area/invoices` → list (auto-rendered when logged in via Pro) See [Clients & portal](/clients). ### Can clients pay an invoice from the portal? Yes — the invoice list shows a **Pay now** button on every unpaid invoice; it routes to the configured gateway. ## GDPR & privacy ### Does Easy Invoice store credit-card data? No. All cards go through the gateway (Stripe / Square / etc.). Easy Invoice only stores the **transaction ID** and **last four digits** on the Payment record (when the gateway returns them). ### How do I export a client's data? Pro Privacy & Access registers the WordPress GDPR exporter — open Tools → Export Personal Data and enter the client's email. You'll get a JSON of their invoices, quotes, payments. ### Can I delete a client's data? Yes — the same Privacy & Access module registers the **eraser**. Tools → Erase Personal Data. **Note**: this removes personal fields but keeps invoice records (anonymised) for accounting compliance. ### Does Easy Invoice send anything to MatrixAddons / external servers? Only: - **License activation** to `https://store.mantrabrain.com/edd-sl-api/?` (license key + site URL only). - **Update checks** via the same endpoint. There is **no usage analytics or telemetry** beyond licensing. ## Gateways ### Can I use both PayPal and Stripe at once? Yes. Each enabled gateway becomes a row on the public invoice page; the client picks one. ### A gateway shows in settings but not on the public invoice Three causes: 1. The gateway is enabled but not configured (missing API key / credential). 2. The currency you chose isn't supported by that gateway. 3. The Pro license is expired (some gateways gate on active license). See [Troubleshooting](/troubleshooting#gateway-not-showing-on-public-invoice). ### Can I refund through Easy Invoice? Refunds are **two-step** by design: issue the refund in the gateway's own dashboard (Stripe / PayPal / etc.), then mark the matching Payment record as **Refunded** in Easy Invoice. The invoice's payment status recomputes automatically. ## Reports & exports ### How are reports generated? `Easy Invoice → Reports` queries `easy_invoice_payment` and `easy_invoice` posts and renders Chart.js charts client-side. No data is sent off-site. ### Can I export to QuickBooks / Xero? Pro CSV export creates a spreadsheet you can import into most accounting tools. There's no direct API integration; for that, write a custom hook against `easy_invoice_payment_completed`. ## Migrations ### Can I import from another invoicing plugin? There's no general-purpose import wizard. Migration paths in active use: - **From WP-Invoice / Sliced Invoices**: write a custom migration script using the source plugin's CPTs and Easy Invoice's `Invoice::save()` API. - **From CSV**: use **WP All Import** with a custom field map. The MatrixAddons team does paid migrations on the **Agency** plan. ### Can I move from Free → Pro without losing data? Yes. Activating Pro doesn't touch the free plugin's data — every invoice, quote, payment, and client stays exactly as-is. Pro just adds new menus and tabs. ## Where to go next - 🛠️ [Troubleshooting](/troubleshooting) — fixes for common issues. - 💎 [Pro features](/features) — full Pro catalog. - 💬 [Get support](/support) — how to reach us.