WordPress & WooCommerce

    Installation Guide

    Complete technical guide for installing and configuring SendPol for WordPress and WooCommerce. Integrate your webshop with the Peppol network in a few steps.

    Video Guide

    Watch How to Setup SendPol for WordPress/WooCommerce

    Learn how to install and configure the SendPol plugin for WordPress/WooCommerce in just a few minutes.

    What is SendPol?

    SendPol for WooCommerce is a WordPress plugin that automatically integrates your WooCommerce store with the Peppol network. It transforms your order processing by automatically converting completed orders into UBL (Universal Business Language) invoices and sending them via Peppol without manual intervention.

    Key Features

    • Complete WooCommerce integration: Automatically recognize and convert orders to invoices
    • UBL (Universal Business Language) invoices: Compatible with governments and business customers
    • Automatic sending via Peppol: Standardized & legally valid
    • B2B ready: Perfect for businesses selling to other companies or government entities
    • EU compliance: Ready for Peppol e-invoicing requirements (mandatory from 2026 in many EU countries)

    Why Choose SendPol?

    From 2026, Peppol e-invoicing will become mandatory in more and more European countries, especially for businesses and government contracts. With SendPol, you're ready for compliance without complex setups or high development costs.

    Test mode

    Start in test mode

    By default, every new webshop is in test mode. Documents are validated and visible in your SendPol dashboard, but they are not forwarded to the Peppol network. This lets you safely test your workflow before any invoice goes live.

    When you are ready for production, switch off test mode in your webshop settings under MyAccount.

    Go to my webshops

    Installation

    Prerequisites

    • WordPress 5.9 or higher
    • WooCommerce plugin installed and activated
    • PHP 7.4 or higher
    • SendPol account (register at www.sendpol.com)

    Method 1: Installation via WordPress Plugin Store (Recommended)

    The SendPol plugin is available in the official WordPress plugin store

    1

    Go to your WordPress admin dashboard

    2

    Navigate to Plugins > Add New

    3

    Search for 'SendPol for WooCommerce'

    4

    Click 'Install Now' on the SendPol plugin

    5

    Click 'Activate' after installation

    6

    You should see 'SendPol' in your WordPress admin menu

    Method 2: Manual Installation

    Alternative: Upload the plugin file manually

    1

    Download the SendPol for WooCommerce plugin

    2

    Go to your WordPress admin dashboard

    3

    Navigate to Plugins > Add New > Upload Plugin

    4

    Select the plugin ZIP file and click 'Install Now'

    5

    Click 'Activate Plugin' after installation

    6

    You should see 'SendPol' in your WordPress admin menu

    Initial Setup

    Getting Your API Credentials

    1

    Register with SendPol

    Visit www.sendpol.com and create an account or log in to your existing account.

    2

    Find Your API Key in the SendPol Dashboard

    API Base URL: https://api.sendpol.com

    To find your API Key:

    • Go to www.sendpol.com and log in with your account
    • On the left side of the dashboard, select "Webshops"
    • Click on the key icon (🔑) to view your API key
    • Copy this key and keep it safe
    SendPol Dashboard - Webshops management with API key

    First-Time Configuration

    When you first access the plugin, you'll see an onboarding screen

    SendPol Plugin Configuration
    1

    Click on "SendPol" in your WordPress admin menu

    2

    Enter the API Base URL: https://api.sendpol.com

    3

    Enter your SendPol API key

    4

    Click "Activate SendPol" - the plugin will automatically test your connection

    Configuration

    Using the Plugin

    Automatic Invoice Processing

    Once configured, the plugin works automatically

    1

    Order Completion

    When a WooCommerce order is marked as "Completed" or "Processing", the plugin automatically generates a UBL invoice and sends it via Peppol to the customer.

    2

    Order Validation

    The plugin validates orders before sending, checks for required customer information, verifies VAT numbers if provided, and ensures all necessary data is present.

    3

    Status Tracking

    Monitor invoice status in the SendPol dashboard, view delivery confirmations, and track any processing errors.

    Manual Actions

    Resending Invoices

    • From Order Edit Page: Go to WooCommerce > Orders, edit the specific order, look for the "SendPol - Order Status" metabox and click "Resend".
    • From SendPol Dashboard: Navigate to SendPol > Document Statuses, find the relevant document and use available actions to reprocess.

    Bulk Actions

    Process multiple orders at once: Go to WooCommerce > Orders, select multiple orders, choose SendPol bulk actions from the dropdown and apply the action.

    Credit notes & refunds

    SendPol fully supports both full and partial refunds via credit notes.

    • Full and partial refunds both generate credit notes automatically.
    • Credit notes are sent to the Peppol network just like invoices.
    • Manual credit note sending is available via the order action menu ("SendPol: Send credit note").
    • Per-refund tracking: each refund is tracked separately.
    • Cancelled order credit notes can be automated (see the "Automatic credit note on cancellation" setting).

    Automatic retry system

    When an invoice fails to send, the plugin schedules automatic retries.

    • The retry system uses exponential backoff (retries at increasing intervals).
    • Maximum retry attempts are enforced.
    • Retry status is visible per order in the SendPol order metabox.
    • Old retry records are cleaned up automatically.
    • Manual retry is always available from the order page.

    Dashboard Overview

    SendPol Dashboard

    The SendPol dashboard provides a real-time overview of your Peppol integration with recent shipments, document statuses, connection status, and logs.

    Statistics (Stats tab)

    The dashboard stats tab shows:

    • Documents sent this month and total (lifetime)
    • Total API calls
    • SendPol subscription tier and API usage limit
    • Peppol connection status
    • Documents uploaded to Peppol
    • Documents ready for upload
    • Documents failed: validation error
    • Documents failed: recipient not on Peppol
    • Documents failed: recipient is not a company

    Recent Documents tab

    • In the Recent Documents tab you can filter by status, document type, document number, and date range.
    • Per document: document number, type (invoice / credit note), customer name, total amount, created date, and a status badge.
    • Actions per document: Send to SendPol, Send via Peppol, Retry and Reset — plus Upgrade plan / Complete KYC when a document is blocked.
    • Download UBL/XML button per document.

    Order management

    SendPol column in the orders list

    The WooCommerce orders list has an extra "SendPol" column showing:

    • Color-coded status badge
    • Remote document ID
    • A quick visual overview without opening individual orders
    • Works with both classic orders and HPOS (High-Performance Order Storage).

    Order metabox "SendPol – Order Status"

    On the order edit page, the "SendPol – Order Status" metabox shows:

    • Current status with badge
    • Remote document ID
    • Last sync timestamp
    • Last attempt timestamp
    • Validation errors (if any)
    • Manual VAT number entry (a VAT number can be added or edited directly on the order)
    • Action buttons: Resend, Delete and Resend, Send credit note, Refresh status, Debug payload

    Bulk actions

    Two bulk actions are available in the orders list:

    • SendPol: Resend — resend the selected orders to SendPol.
    • SendPol: Delete and Resend — delete the existing remote document first, then resend (useful when a document is stuck).

    Debug payload

    From the order metabox, the "Debug payload" button shows the full JSON payload that would be sent to the SendPol API. Useful for troubleshooting invoice content issues.

    Compatibility

    WooCommerce Blocks support

    The VAT number field works in both the classic WooCommerce checkout and the new WooCommerce Blocks checkout. No additional configuration needed.

    HPOS support

    The plugin fully supports WooCommerce High-Performance Order Storage (HPOS). All features (order column, metabox, bulk actions) work with HPOS enabled.

    Developers & filters

    For developers, the plugin exposes admin tools and PHP filters.

    VAT detection test

    In the advanced settings there is a tool to test VAT detection on a specific order ID. It shows which meta key was used to find the VAT number, all VAT-related meta keys present on the order, and whether a VAT number was detected.

    PHP filters

    The plugin exposes the following filters, among others:

    • sendpol_wc_api_base_urloverride the API base URL programmatically.
    • sendpol_wc_external_invoiceprovide a custom external UBL invoice for an order (return a UBL XML string, or null to let SendPol generate one).
    • sendpol_wc_auto_refresh_order_statusdisable auto-refresh of order status in the order edit metabox.
    • sendpol_wc_show_api_base_urlhide the API base URL field in settings (e.g. for managed installs).
    // Override the API base URL programmatically
    add_filter('sendpol_wc_api_base_url', function ($url) {
        return 'https://staging.api.sendpol.com';
    });
    
    // Provide a custom external UBL invoice for an order
    add_filter('sendpol_wc_external_invoice', function ($invoice, $order) {
        // Return a UBL XML string, or null to let SendPol generate one
        return null;
    }, 10, 2);
    
    // Disable auto-refresh of order status in the order edit metabox
    add_filter('sendpol_wc_auto_refresh_order_status', '__return_false');
    
    // Hide the API base URL field in settings (e.g. for managed installs)
    add_filter('sendpol_wc_show_api_base_url', '__return_false');

    Troubleshooting

    FAQ

    Plugin Screenshots

    Configuration & Onboarding

    Simple setup with API configuration and automatic connection to Peppol

    SendPol Plugin Configuration

    Dashboard & Statistics

    Real-time overview of your Peppol connection and sent documents

    SendPol Plugin Dashboard

    Quick Start

    Get started quickly with SendPol for WordPress

    1

    Register with SendPol

    Create an account at sendpol.com and get your API key

    2

    Install the Plugin

    Download and activate the SendPol plugin in your WordPress dashboard

    3

    Configure API

    Enter your API key and test the connection to the Peppol network

    Need help?

    Our support team is ready to help you with your SendPol integration