SendPol Stripe App

    Installation Guide

    Send Stripe invoices directly to the Peppol network with the SendPol Stripe App. Choose between manual or fully automatic processing via webhooks.

    What is the SendPol Stripe App?

    The SendPol Stripe App enables you to send invoices from Stripe directly via the Peppol network for e-invoicing compliance. You can choose between manual processing via the Stripe App, or fully automatic processing via webhooks.

    Features

    • Manual or automatic: Choose the method that fits your workflow
    • Status tracking: View the processing status of sent invoices (Created, Ready to send, Sent via Peppol)
    • UBL download: Download the generated UBL invoice
    • Seamless integration: Works directly from the Stripe Dashboard

    See SendPol in Action

    See how easy the integration is

    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

    Requirements

    • A SendPol account with active subscription
    • A Stripe account with invoices
    • A webshop created in SendPol with API key

    Method 1: Manual processing

    Via the SendPol Stripe App

    With the SendPol Stripe App you can manually send invoices to Peppol. This is ideal if you want to control which invoices are sent.

    1Find and install the SendPol app

    In your Stripe Dashboard, open the App Marketplace and search for "peppol". Open the "SendPol – Peppol e-Invoicing Integration" listing and click "Install app".

    Find and install the SendPol app
    Find and install the SendPol app

    2Copy your API key from SendPol

    Log in to SendPol and go to My Account → Webshops. Open the webshop you want to connect and copy its API key — you'll paste it into Stripe in the next step.

    Copy your API key from SendPol
    Copy your API key from SendPol

    3Connect SendPol in Stripe

    Back in Stripe, open the SendPol panel, paste your API key and click "Connect". SendPol confirms the connection with a "Connected" badge.

    Connect SendPol in Stripe

    4Check your settings and test mode

    In the SendPol settings panel you can toggle test mode on or off. In test mode invoices are processed but not delivered over Peppol — switch it off (and complete KYC) to go live. From here you can also update your key or disconnect.

    Check your settings and test mode

    5Send an invoice via Peppol

    Open any Stripe invoice. The SendPol panel shows whether it's ready to send; click "Send via Peppol" to submit it to the network.

    Send an invoice via Peppol

    6Confirm delivery and download the UBL

    Once delivered, the panel shows "Sent via Peppol" with the sync time. You can download the generated UBL or open the document in SendPol.

    Confirm delivery and download the UBL

    Method 2: Automatic processing

    Via Stripe Webhooks

    With webhooks, invoices are automatically sent to Peppol as soon as they are created or paid in Stripe. This is the most efficient method for businesses with many invoices.

    Benefits

    • Fully automatic - no manual action required
    • Works even when you're not logged into Stripe
    • Ideal for high volumes
    • One-time configuration

    Generate your Webhook URL

    Select your webshop to generate the unique webhook URL. You'll use this URL in Stripe to set up automatic processing.

    Log in to generate your webhook URL

    Log in

    1. Go to Stripe Webhooks

    Log in to your Stripe Dashboard and go to Developers → Webhooks. Click 'Add endpoint' to add a new webhook.

    Stripe Webhooks Overview

    2. Create a new webhook

    Click 'Add endpoint' to create a new webhook endpoint.

    Create Webhook

    3. Select events

    Select the events for which you want to receive webhooks. For automatic invoice processing, select 'invoice.paid' or 'invoice.finalized'.

    Select Webhook Events

    4. Choose webhook type

    Select the webhook type. Choose a standard webhook endpoint.

    Choose Webhook Type

    5. Enter the SendPol URL

    Paste the webhook URL you generated above. This URL contains your API key and ensures that invoices are automatically forwarded to SendPol.

    Enter Webhook URL

    Add an OIN for a customer

    For Dutch (semi-)government customers you can provide an OIN via the customer's metadata in Stripe. SendPol reads this field and uses the OIN as the Peppol identifier (scheme 0190) for that customer.

    1. In Stripe, go to Customers and select the relevant customer.
    2. Next to Metadata, click the pencil icon to edit.
    3. Add a key oin with the 20-digit OIN number as its value.
    4. Save. SendPol automatically uses this OIN for that customer's next invoices to Peppol.
    Metadata key:oin
    Stripe customer metadata with the oin key

    Add a registration number (KvK/KBO) for a customer

    For business customers you can provide the national company registration number via the customer's metadata in Stripe — KvK (NL, 8 digits), KBO (BE, 10 digits), SIREN (FR, 9 digits), matricule (LU) or Handelsregister number (DE). SendPol places it on the e-invoice as the registration number (BT-30) and uses it as an extra key to find the customer on Peppol when the VAT number returns nothing. It is separate from the VAT number.

    1. In Stripe, go to Customers and select the relevant customer.
    2. Next to Metadata, click the pencil icon to edit.
    3. Add a key company_registration_number with the customer's registration number as its value (the number for the customer's country).
    4. Save. SendPol automatically uses this number for that customer's next invoices.
    Metadata key:company_registration_number

    Troubleshooting

    API key is not accepted

    Check that you have copied the correct API key from your SendPol account. Make sure there are no extra spaces.

    Invoice cannot be sent

    Check that the invoice contains all required fields, including a valid VAT number of the recipient.

    Status remains on 'Ready to send via Peppol (check your settings)'

    This may be related to test mode still being enabled, or the KYC procedure not being completed yet.

    API key works but invoices are not being sent

    Your webshop may be set to inactive. Check the status of your webshop in your SendPol account.

    Webhook is not receiving events

    Check in Stripe Dashboard → Developers → Webhooks if the webhook is correctly configured and if there are no errors. Make sure the webhook URL exactly matches the generated URL.

    Frequently Asked Questions

    Ready to get started?

    Install the SendPol Stripe App and start sending invoices via Peppol right away - manually or fully automatically.