skills/payments-checkout/invoice-generation-automation/SKILL.md
Generate professional invoices automatically with custom branding, payment terms, line item details, tax breakdowns, and integration with accounting systems
npx skillsauth add finsilabs/awesome-ecommerce-skills invoice-generation-automationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Automated invoice generation turns every completed order into a professional, branded PDF invoice without manual effort. For B2B ecommerce, invoices are legal documents required for the customer's procurement and accounting workflows. In many countries — particularly within the EU — specific invoice formats are legally mandated with sequential numbering, VAT numbers, and mandatory fields. All major platforms support invoice automation through apps and plugins, often requiring zero custom code.
| Platform | Recommended Tool | Notes | |----------|-----------------|-------| | Shopify | Order Printer Pro or Sufio (Shopify App Store) | Shopify has no native invoice PDF; Order Printer Pro is the most widely used free option; Sufio adds EU VAT compliance, accounting sync, and automated sending | | WooCommerce | WooCommerce PDF Invoices & Packing Slips (free) or WooCommerce Germanized (EU compliance) | The free plugin handles standard invoice PDFs; Germanized adds legally compliant German/EU invoice formats | | BigCommerce | Order Confirmation PDF (built-in) + Sufio or Invoice Ninja via API | BigCommerce sends a default order confirmation; Sufio adds branded PDFs with full EU VAT support | | Stripe-based stores | Stripe Invoicing (built-in) | Stripe generates, sends, and tracks payment of invoices automatically; ideal for B2B and subscription billing | | Custom / Headless | Stripe Invoicing API or Docspring / PDFMonkey for custom PDF generation | Stripe Invoicing handles the full lifecycle including dunning; PDF APIs handle custom designs |
Option A: Order Printer Pro (free, basic)
Option B: Sufio (recommended for B2B and EU VAT compliance)
Option A: WooCommerce PDF Invoices & Packing Slips (free)
Option B: WooCommerce Germanized (EU VAT legal compliance)
Sync to accounting:
Option A: Stripe Invoicing (recommended for B2B)
Stripe Invoicing handles the complete lifecycle — creation, PDF generation, customer emailing, payment tracking, and dunning for unpaid invoices:
// Create and send an invoice via Stripe Invoicing
const invoice = await stripe.invoices.create({
customer: stripeCustomerId,
collection_method: 'send_invoice',
days_until_due: 30,
metadata: { order_id: orderId },
custom_fields: [
{ name: 'PO Number', value: poNumber },
{ name: 'Your VAT Number', value: buyerVatNumber },
],
footer: 'Thank you for your business.',
});
// Add line items
for (const item of order.lineItems) {
await stripe.invoiceItems.create({
customer: stripeCustomerId,
invoice: invoice.id,
amount: Math.round(item.total * 100), // cents
currency: 'usd',
description: item.description,
tax_rates: [stripeTaxRateId], // if using Stripe Tax
});
}
// Finalize and send — Stripe generates PDF and emails it automatically
await stripe.invoices.finalizeInvoice(invoice.id);
await stripe.invoices.sendInvoice(invoice.id);
The customer receives a Stripe-hosted invoice page where they can pay by card, bank transfer, or other methods. Stripe handles dunning (unpaid invoice reminders) automatically via Billing → Settings → Invoice reminders.
Option B: PDF generation service (for custom branding)
If you need full design control over the PDF, use PDFMonkey or Docspring:
// Generate a branded PDF using PDFMonkey
const response = await fetch('https://api.pdfmonkey.io/api/v1/documents', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.PDFMONKEY_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
document: {
document_template_id: process.env.INVOICE_TEMPLATE_ID,
status: 'pending',
payload: {
invoice_number: invoiceNumber,
issue_date: new Date().toISOString().split('T')[0],
due_date: dueDateString,
seller: { name: 'Your Company', address: sellerAddress, vat_number: sellerVat },
buyer: { name: customer.company_name, address: billingAddress, vat_number: buyerVat },
line_items: lineItems,
subtotal: order.subtotal,
tax_amount: order.taxAmount,
total: order.total,
},
},
}),
});
const { document } = await response.json();
// Poll for document.status === 'success', then retrieve document.download_url
EU VAT invoices require these mandatory fields (check each is present in your template):
Sufio and WooCommerce Germanized both handle these requirements automatically.
| Problem | Solution | |---------|----------| | Invoice numbers are not sequential (gaps after failed orders) | Use apps like Sufio or WooCommerce PDF Invoices which maintain their own sequential counter independent of order status | | Duplicate invoices for the same order | All recommended apps handle idempotency — they check whether an invoice already exists for the order before creating a new one | | EU VAT invoice missing mandatory fields | Use Sufio (Shopify/BigCommerce), WooCommerce Germanized (WooCommerce), or Stripe Invoicing with custom_fields for the VAT numbers | | PDF too large for email attachment | Invoice apps use efficient PDF rendering; issues typically occur with large image assets in the template — compress your logo | | QuickBooks/Xero sync fails silently | Check the integration logs in your invoice app; most apps have a retry mechanism and will alert you on sync failures | | Customer replies to invoice email but gets no response | Configure invoice delivery from a monitored [email protected] address, not a noreply@ address |
tools
Let shoppers save products to a wishlist, share it with friends, and get notified when saved items come back in stock or drop in price
development
Build a themeable storefront with design tokens and CSS custom properties that supports white-labeling, multi-brand variants, and dark mode
development
Speed up product discovery with instant search suggestions, fuzzy typo matching, and category-aware results powered by Algolia or Elasticsearch
development
Build a mobile-first storefront with thumb-friendly navigation, sticky add-to-cart buttons, and touch-optimized components for high mobile conversion