{"id":302421,"date":"2026-05-04T04:26:09","date_gmt":"2026-05-04T04:26:09","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/invoicing-integration-for-pennylane-and-for-woocommerce\/"},"modified":"2026-06-19T12:06:26","modified_gmt":"2026-06-19T12:06:26","slug":"invoicing-integration-for-pennylane-and-woocommerce","status":"publish","type":"plugin","link":"https:\/\/it.wordpress.org\/plugins\/invoicing-integration-for-pennylane-and-woocommerce\/","author":23342730,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.12","stable_tag":"1.0.12","tested":"7.0","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Invoicing Integration for Pennylane and WooCommerce","header_author":"Devikit","header_description":"WooCommerce integration with Pennylane accounting system for French businesses.","assets_banners_color":"","last_updated":"2026-06-19 12:06:26","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/invoicing-integration-for-pennylane-and-woocommerce\/","header_author_uri":"https:\/\/devikit.fr\/","rating":5,"author_block_rating":0,"active_installs":10,"downloads":479,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"devikit","date":"2026-05-04 04:25:41"},"1.0.1":{"tag":"1.0.1","author":"devikit","date":"2026-05-04 04:36:27"},"1.0.10":{"tag":"1.0.10","author":"devikit","date":"2026-05-27 07:42:14"},"1.0.11":{"tag":"1.0.11","author":"devikit","date":"2026-06-19 11:54:01"},"1.0.12":{"tag":"1.0.12","author":"devikit","date":"2026-06-19 12:06:26"},"1.0.2":{"tag":"1.0.2","author":"devikit","date":"2026-05-04 04:50:05"},"1.0.3":{"tag":"1.0.3","author":"devikit","date":"2026-05-07 08:31:50"},"1.0.4":{"tag":"1.0.4","author":"devikit","date":"2026-05-07 08:33:13"},"1.0.5":{"tag":"1.0.5","author":"devikit","date":"2026-05-07 08:37:01"},"1.0.6":{"tag":"1.0.6","author":"devikit","date":"2026-05-11 07:55:23"},"1.0.7":{"tag":"1.0.7","author":"devikit","date":"2026-05-11 08:45:34"},"1.0.8":{"tag":"1.0.8","author":"devikit","date":"2026-05-20 08:12:02"},"1.0.9":{"tag":"1.0.9","author":"devikit","date":"2026-05-25 09:19:30"}},"upgrade_notice":{"1.0.11":"<p>Adds Devikit Care promotion widgets and banner; Pro banner restyled.<\/p>","1.0.8":"<p>Compatibility update: tested with WordPress 7.0.<\/p>","1.0.7":"<p>Minor readme formatting fix.<\/p>","1.0.6":"<p>French translation quality improvements (typography and glossary).<\/p>","1.0.5":"<p>Minor readme formatting change.<\/p>","1.0.4":"<p>French translation typography and wording improvements.<\/p>","1.0.3":"<p>Readme update with demo video and PRO link styling.<\/p>","1.0.2":"<p>Adds plugin screenshots on WordPress.org.<\/p>","1.0.1":"<p>Minor fix for WordPress.org assets display.<\/p>","1.0.0":"<p>Initial release of the plugin.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3521912,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3521912,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon-512x512.png":{"filename":"icon-512x512.png","revision":3521912,"resolution":"512x512","location":"assets","locale":"","width":512,"height":512},"icon.svg":{"filename":"icon.svg","revision":3521912,"resolution":false,"location":"assets","locale":false}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.10","1.0.11","1.0.12","1.0.2","1.0.3","1.0.4","1.0.5","1.0.6","1.0.7","1.0.8","1.0.9"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3521917,"resolution":"1","location":"assets","locale":"","width":2560,"height":1426},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3521917,"resolution":"2","location":"assets","locale":"","width":2560,"height":1418},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3521917,"resolution":"3","location":"assets","locale":"","width":2560,"height":1428},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3521917,"resolution":"4","location":"assets","locale":"","width":2560,"height":1419},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3521917,"resolution":"5","location":"assets","locale":"","width":2560,"height":1418},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3521917,"resolution":"6","location":"assets","locale":"","width":2560,"height":1418},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3521917,"resolution":"7","location":"assets","locale":"","width":2560,"height":1424},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3521917,"resolution":"8","location":"assets","locale":"","width":584,"height":674}},"screenshots":{"1":"Plugin settings","2":"Plugin settings","3":"Plugin settings","4":"Plugin settings","5":"Plugin settings","6":"Plugin settings","7":"Plugin settings","8":"Plugin settings"}},"plugin_section":[262246],"plugin_tags":[2526,9085,12480,261792,286],"plugin_category":[45],"plugin_contributors":[245825],"plugin_business_model":[],"class_list":["post-302421","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-accounting","plugin_tags-france","plugin_tags-invoice","plugin_tags-pennylane","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-devikit","plugin_committers-devikit"],"banners":[],"icons":{"svg":"https:\/\/ps.w.org\/invoicing-integration-for-pennylane-and-woocommerce\/assets\/icon.svg?rev=3521912","icon":"https:\/\/ps.w.org\/invoicing-integration-for-pennylane-and-woocommerce\/assets\/icon.svg?rev=3521912","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/invoicing-integration-for-pennylane-and-woocommerce\/assets\/screenshot-1.png?rev=3521917","caption":"Plugin settings"},{"src":"https:\/\/ps.w.org\/invoicing-integration-for-pennylane-and-woocommerce\/assets\/screenshot-2.png?rev=3521917","caption":"Plugin settings"},{"src":"https:\/\/ps.w.org\/invoicing-integration-for-pennylane-and-woocommerce\/assets\/screenshot-3.png?rev=3521917","caption":"Plugin settings"},{"src":"https:\/\/ps.w.org\/invoicing-integration-for-pennylane-and-woocommerce\/assets\/screenshot-4.png?rev=3521917","caption":"Plugin settings"},{"src":"https:\/\/ps.w.org\/invoicing-integration-for-pennylane-and-woocommerce\/assets\/screenshot-5.png?rev=3521917","caption":"Plugin settings"},{"src":"https:\/\/ps.w.org\/invoicing-integration-for-pennylane-and-woocommerce\/assets\/screenshot-6.png?rev=3521917","caption":"Plugin settings"},{"src":"https:\/\/ps.w.org\/invoicing-integration-for-pennylane-and-woocommerce\/assets\/screenshot-7.png?rev=3521917","caption":"Plugin settings"},{"src":"https:\/\/ps.w.org\/invoicing-integration-for-pennylane-and-woocommerce\/assets\/screenshot-8.png?rev=3521917","caption":"Plugin settings"}],"raw_content":"<!--section=description-->\n<p><strong>Invoicing Integration for Pennylane and WooCommerce<\/strong> connects your WooCommerce store to the Pennylane accounting platform. Generate legally compliant French invoices directly from your orders and keep your accounting in sync.<\/p>\n\n<p>https:\/\/youtu.be\/AwNLYh5-blk<\/p>\n\n<h4>Key Features (FREE)<\/h4>\n\n<ul>\n<li><strong>Individual customer invoice per order<\/strong> \u2014 create a Pennylane invoice for each WooCommerce order.<\/li>\n<li><strong>Customer sync with SIRET and VAT number<\/strong> \u2014 B2B customers can provide their SIRET and intra-community VAT number at checkout.<\/li>\n<li><strong>Automatic VAT detection<\/strong> \u2014 automatically detects WooCommerce tax rates and maps them to Pennylane VAT codes (FR domestic, intra-EU crossborder, non-EU extracom).<\/li>\n<li><strong>Manual invoice creation from order screen<\/strong> \u2014 create invoices on demand from the WooCommerce order admin page.<\/li>\n<li><strong>Customer invoice PDF download from My Account<\/strong> \u2014 let customers download their invoice PDF directly from their account.<\/li>\n<li><strong>French-compliant invoicing (Loi Anti-Fraude TVA)<\/strong> \u2014 invoices meet French legal requirements for anti-fraud compliance.<\/li>\n<li><strong>API scope validation<\/strong> \u2014 test connection checks required Pennylane API permissions automatically.<\/li>\n<li><strong>Detailed logging<\/strong> \u2014 track all API communications for debugging.<\/li>\n<li><strong>HPOS Compatible<\/strong> \u2014 full support for WooCommerce High-Performance Order Storage.<\/li>\n<\/ul>\n\n<h4>PRO Features<\/h4>\n\n<p>Upgrade to the Pro version for additional capabilities:<\/p>\n\n<ul>\n<li><strong>Automatic invoice creation<\/strong> on order status change<\/li>\n<li><strong>Automatic payment reconciliation<\/strong> \u2014 mark invoices as paid in Pennylane<\/li>\n<li><strong>Email with PDF attachments<\/strong> \u2014 send Factur-X compliant invoices to customers<\/li>\n<li><strong>Bulk invoice generation<\/strong> \u2014 generate invoices for multiple orders at once<\/li>\n<li><strong>Bulk PDF download<\/strong> \u2014 download invoice PDFs for multiple orders<\/li>\n<li><strong>Product mapping<\/strong> \u2014 map WooCommerce products to Pennylane product catalog<\/li>\n<li><strong>Credit notes<\/strong> \u2014 create credit notes for refunded orders, linked to original invoice<\/li>\n<li><strong>Multi-language invoices<\/strong> \u2014 generate invoices in French, English, or German<\/li>\n<li><strong>Custom notes and legal footers<\/strong> \u2014 add French legal mentions to invoices<\/li>\n<li><strong>Priority email support<\/strong><\/li>\n<\/ul>\n\n<p><a href=\"https:\/\/devikit.fr\/produit\/pennylane-woocommerce-pro\/\"><strong>Get PRO Version<\/strong><\/a><\/p>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 5.8 or higher<\/li>\n<li>WooCommerce 5.0 or higher<\/li>\n<li>PHP 7.4 or higher<\/li>\n<li>Active Pennylane account with API access<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin relies on the Pennylane API, a third-party accounting service, to generate invoices and manage customer data.<\/p>\n\n<h4>What is Pennylane API?<\/h4>\n\n<p>Pennylane is a French online accounting platform that provides invoicing and accounting services for businesses. This plugin uses their official API to:\n*   Create and manage customers in your Pennylane account.\n*   Generate customer invoices (factures).\n*   Retrieve invoice data and PDF documents.\n*   Mark invoices as paid (PRO version).\n*   Sync product catalog data (PRO version).<\/p>\n\n<h4>What data is sent and when?<\/h4>\n\n<p>The plugin sends the following data to Pennylane API (https:\/\/app.pennylane.com\/api\/external\/v2\/) in these situations:<\/p>\n\n<p><strong>When you click \"Create Invoice\" or when automatic invoice generation is triggered (PRO version):<\/strong>\n*   Customer billing information: first name, last name, company name, SIRET number, VAT number, email, phone number, billing address (street, city, postal code, country).\n*   Order information: order items (product names, quantities, prices, VAT rates), shipping details, payment method, order date, order total.<\/p>\n\n<p><strong>When the plugin connects to Pennylane API (on settings page or when needed):<\/strong>\n*   Your Pennylane API Key (for authentication via Bearer token).\n*   Requests to retrieve your account information, customer data, and invoice status.<\/p>\n\n<p><strong>No data is sent automatically without your action.<\/strong> The plugin only communicates with Pennylane API when:\n*   You manually create an invoice from the order screen.\n*   You click \"Test Connection\" on the settings page.\n*   You download an invoice PDF.\n*   You enable automatic invoice generation in PRO version.<\/p>\n\n<h4>Service provider information<\/h4>\n\n<ul>\n<li><strong>Service name:<\/strong> Pennylane API<\/li>\n<li><strong>Service URL:<\/strong> <a href=\"https:\/\/www.pennylane.com\/\">https:\/\/www.pennylane.com\/<\/a><\/li>\n<li><strong>API documentation:<\/strong> <a href=\"https:\/\/pennylane.readme.io\/docs\/\">https:\/\/pennylane.readme.io\/docs\/<\/a><\/li>\n<li><strong>Terms of Service:<\/strong> <a href=\"https:\/\/www.pennylane.com\/fr\/conditions-generales\">https:\/\/www.pennylane.com\/fr\/conditions-generales<\/a><\/li>\n<li><strong>Privacy Policy:<\/strong> <a href=\"https:\/\/www.pennylane.com\/fr\/legal\/privacy\">https:\/\/www.pennylane.com\/fr\/legal\/privacy<\/a><\/li>\n<\/ul>\n\n<p>By using this plugin, you acknowledge that customer and order data will be transmitted to Pennylane for invoice generation purposes. You are responsible for ensuring compliance with applicable data protection laws (including GDPR) and informing your customers about this data processing.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>invoicing-integration-for-pennylane-and-woocommerce<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install the plugin through the WordPress Plugins screen.<\/li>\n<li>Activate the plugin through the \"Plugins\" screen in WordPress.<\/li>\n<li>Navigate to <strong>WooCommerce \u2192 Pennylane<\/strong> to configure the plugin.<\/li>\n<li>Enter your Pennylane API key and click \"Test Connection\" to verify.<\/li>\n<li>VAT rates are detected automatically from your WooCommerce tax settings.<\/li>\n<li>Start creating invoices from the order edit screen.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20find%20my%20pennylane%20api%20key%3F\"><h3>Where do I find my Pennylane API key?<\/h3><\/dt>\n<dd><p>Log in to your Pennylane account, go to <strong>Settings \u2192 Connectivity \u2192 Developers \u2192 Generate API token<\/strong>. Set the following permissions:<\/p>\n\n<ul>\n<li><strong>Customers<\/strong> \u2014 Read and Write<\/li>\n<li><strong>Customer Invoices<\/strong> \u2014 Read and Write<\/li>\n<li><strong>Products<\/strong> \u2014 Read<\/li>\n<\/ul><\/dd>\n<dt id=\"does%20this%20plugin%20create%20invoices%20automatically%3F\"><h3>Does this plugin create invoices automatically?<\/h3><\/dt>\n<dd><p>The free version supports manual invoice creation from the WooCommerce order screen. Automatic invoice creation is available in the <a href=\"https:\/\/devikit.fr\/produit\/pennylane-woocommerce-pro\/\">Pro version<\/a>.<\/p><\/dd>\n<dt id=\"which%20vat%20rates%20are%20supported%3F\"><h3>Which VAT rates are supported?<\/h3><\/dt>\n<dd><p>VAT rates are automatically detected from your WooCommerce tax configuration. The plugin supports all French domestic rates (20 %, 10 %, 5.5 %, 2.1 %, exempt), intra-EU cross-border rates, and non-EU (extracom) rates. For B2B customers within the EU who provide a VAT number, the reverse charge mechanism (crossborder 0 %) is applied automatically.<\/p><\/dd>\n<dt id=\"can%20my%20customers%20download%20their%20invoice%3F\"><h3>Can my customers download their invoice?<\/h3><\/dt>\n<dd><p>Yes. Once an invoice is created, customers can download the PDF from their My Account \u2192 Orders page.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20compatible%20with%20woocommerce%20hpos%3F\"><h3>Is the plugin compatible with WooCommerce HPOS?<\/h3><\/dt>\n<dd><p>Yes. The plugin fully supports WooCommerce High-Performance Order Storage (Custom Order Tables).<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20woocommerce%20blocks%3F\"><h3>Does this work with WooCommerce Blocks?<\/h3><\/dt>\n<dd><p>Yes, the plugin is compatible with both classic checkout and WooCommerce Blocks checkout for SIRET\/VAT fields.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20uninstall%20the%20plugin%3F\"><h3>What happens when I uninstall the plugin?<\/h3><\/dt>\n<dd><p>All plugin settings and transient data are removed from your database. Your invoices in Pennylane are not affected.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.12<\/h4>\n\n<ul>\n<li>Fix: update Care banner dismiss button labels to more natural French<\/li>\n<\/ul>\n\n<h4>1.0.11<\/h4>\n\n<ul>\n<li>Add: Devikit Care banner in WordPress admin with dismiss options<\/li>\n<li>Add: Devikit Care sidebar widget on plugin settings page<\/li>\n<li>Add: Devikit Care dashboard widget<\/li>\n<li>Fix: Pro upgrade banner restyled to match Care banner style<\/li>\n<\/ul>\n\n<h4>1.0.10<\/h4>\n\n<ul>\n<li>Fix: PRO upgrade banner styling for WordPress 7.0 admin refresh.<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Fix: SIRET and VAT number fields now save correctly in WP Admin user profile and synchronise with My Account edit address (bidirectional sync).<\/li>\n<li>Fix: SIRET and VAT number are now populated when selecting a customer or clicking \"Load billing address\" in admin order edit screen.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Tested up to WordPress 7.0.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Readme: fix PRO link markdown formatting.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>French (fr_FR): fix straight apostrophes \u2192 curly; apply glossary (\u00e9tat, obligatoire\/n\u00e9cessaire, jeton, cl\u00e9 de l'API, r\u00e9glages); translate scopes \u2192 droits d'acc\u00e8s.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Readme: remove demo video subsection heading; keep YouTube link.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>French (fr_FR): typographic fixes (narrow no-break spaces, guillemets); prefer \u201cextension\u201d for WordPress plugin wording in one string.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Readme: add demo video link; emphasize PRO upgrade call-to-action.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Add plugin screenshots to WordPress.org assets.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix: plugin icon and screenshots now correctly deployed to WordPress.org assets directory.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Manual invoice creation from WooCommerce order screen.<\/li>\n<li>Customer sync with SIRET and VAT number.<\/li>\n<li>Automatic VAT detection for French tax rates.<\/li>\n<li>Invoice PDF download from My Account.<\/li>\n<li>API scope validation on connection test.<\/li>\n<\/ul>","raw_excerpt":"Connect WooCommerce with Pennylane accounting for professional French invoicing with SIRET\/TVA support.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/302421","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=302421"}],"author":[{"embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/devikit"}],"wp:attachment":[{"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=302421"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=302421"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=302421"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=302421"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=302421"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=302421"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}