Skip to main content

Introduction

In this guide, you’ll learn how to connect Stripe with Invopop to automatically generate tax-compliant invoices and credit notes, from your Stripe dashboard. The Stripe integration consists of two components:
  1. An Invopop app within your Stripe dashboard
  2. An app in your Invopop console
When a Stripe invoice or credit note reaches the finalized status, our integration will automatically create a new job in your selected Invopop workflow.
stripe details

Track invoice status directly in your Stripe dashboard

The job will extract the invoice data from Stripe and execute the actions, such as converting it to any e-invoice format and submitting it to your local tax authority.
stripe job

View the job information

Setup

Before you begin, ensure you have an active Stripe account.
1

Install Invopop in Stripe

Navigate to the Invopop app in Stripe’s App Marketplace and click Install. Next, Stripe will prompt you to select the Stripe environment you’d like to connect to, you can start with test mode or sandbox and switch to live later.
stripe install

Install Invopop in Stripe

2

Connect Stripe to Invopop

After installation, you should be redirected to your Stripe dashboard and see the Invopop app in the right sidebar. Alternatively, just open the Invopop app in your Stripe dashboard.Click Connect Invopop. The next page will ask you to login to your Invopop account. If you’re new to Invopop, the connection process will guide you through creating your Invopop account and setting up your first workspace.
When connecting a test or sandbox environment in Stripe, select a sandbox workspace in Invopop. For live environments, select a live workspace.
stripe connect

Connect your Invopop account

3

Select a workspace

After connecting your Invopop account to Stripe, you’ll be redirected back to Stripe to choose the workspace where you want to process your invoices.
stripe select workspace

Choose your workspace

4

Configure your workflow

Select or create a workflow to process your invoices and credit notes.To use an existing workflow select it from the Stripe’s sidebar menu and click Save WorkflowTo create a new workflow click on Create New Workflow in the sidebar menu. You’ll be redirected to Invopop.Start from the basic template below, then add the steps your country requires — see Country workflows.This workflow syncs with Stripe, signs the invoice and generates a PDF.

Stripe - Basic PDF invoice workflow

Add to my workspace →
5

Show your tax ID on invoices

By default, Stripe does not display your tax ID on invoices. To enable it, go to Settings > Billing > Invoices. In the Invoice Tax Information section, enter your tax ID, set it as the default, and click Save.
stripe tax id

Show your tax ID on invoices

6

Verify your setup

  1. Navigate to Stripe app settings
  2. Confirm your workflow configuration is correct
stripe settings

Review your configuration

Country workflows

Each country needs its own steps between the Stripe import and the send. Two things are worth knowing before you pick one:
  • Your tax ID must reach the invoice. Stripe only attaches your account tax ID when you set it as the default (see Show your tax ID on invoices). Without it, country steps fail with errors such as supplier SIREN is required for B2B local invoices.
  • The regime comes from the supplier’s tax ID country. A workflow step for one country rejects invoices from another — see the FAQ on unexpected tax regime errors.
This workflow sends each invoice over the Peppol network, the route Belgian, Dutch and Nordic customers receive invoices on. It looks the customer’s participant ID up on the network at run time, and reshapes the parts of a Stripe invoice that Peppol validation rejects: negative line items become discounts, a missing purchase order code becomes NA, and card payment instructions get payment terms. Your supplier must be registered on Peppol first — see the Peppol guide.

Stripe - Peppol invoice workflow

Add to my workspace →
France routes each invoice on whether the customer is registered in the PPF directory. This workflow imports the Stripe invoice, adds the billing mode and VAT exemption codes France requires, then looks the customer up: registered customers get a Peppol France CIUS document recorded and forwarded to the PPF, and everyone else is recorded for e-reporting instead, then sent over Peppol if they have an inbox.
Registering your suppliers and reading the statuses France returns are covered in the Plateforme Agréée guides: registration, invoicing, reporting and statuses.
This workflow issues a VERI*FACTU invoice for each finalized Stripe sale: it adds the es-verifactu-v1 addon, signs the invoice, submits it to the AEAT and generates the PDF.

Stripe - VERI*FACTU invoice workflow

Add to my workspace →
Onboarding your suppliers is covered in the VERI*FACTU supplier registration guide, and the wider flow in the VERI*FACTU guide.

Filter imported invoices

By default, every finalized invoice and credit note is imported into Invopop. To restrict what gets imported, open the Stripe app settings and use the Filter Incoming Invoices section:
  • The Basic tab builds conditions on the customer country, customer email, or invoice total. All added conditions must match for an invoice to be imported.
  • The Advanced tab accepts a jq expression evaluated against the raw Stripe event payload, for example .data.object.customer_address.country == "DE".
The same filter can be edited from the Stripe app’s configuration page in the Invopop console. Filters apply to newly received invoices and to retries.

Monitor invoice processing

After setup, finalized Stripe invoices are imported into Invopop automatically and saved to the Sales folder. Use the steps below to verify status, review details, retry processing, and import historical invoices.
1

Check invoice status in Stripe

Open the invoice in Stripe and check the Invopop panel in the right sidebar to confirm whether processing succeeded. The panel shows the document’s state, the timestamp it was signed at, the files generated by the workflow, and an activity list with every processing attempt.
stripe invoice status

Invoice processed successfully in Stripe

2

Check invoice status in Invopop

In the Invopop console, go to Sales and open the invoice to view its status. To review the underlying processing job, go to Workflows > History and open the job details.
stripe job details

Job details in Invopop

3

Troubleshoot import errors

If an invoice fails, it is usually one of these cases:
  1. The invoice was not imported into Invopop because converting from Stripe to Invopop failed. Update the data in Stripe and click Retry in the Invopop panel.
stripe retry invoice

Retry invoice

  1. The document was already signed in Invopop, so it can no longer be retried from Stripe. The panel shows a Document is signed notice instead of the Retry button — follow its Modify invoice from Invopop link to fix the document in the console.
stripe signed document notice

Signed documents can't be retried from Stripe

4

Get notified of failures

Add a notification action in your workflow’s Error Handling section—Slack, email, or webhook—so you’re alerted when an import fails.
If you need help tailoring a workflow to your use case, contact us at support@invopop.com.

Reading documents and events

The Stripe app includes a dashboard, embedded in the Invopop console, with a Documents tab and an Events tab. A document is an invoice or credit note received from Stripe; each document can have any number of associated events, one for every processing attempt.

Documents tab

The Documents tab shows one row per Stripe document. Columns show the invoice code, supplier country, type, number of events (click it to open the Events tab filtered to that document), customer name, customer email, total, status (the latest attempt’s outcome), silo entry ID, Stripe ID, payload (downloads the invoice payload fetched live from Stripe), and document ID. Rows can be filtered by invoice code (prefix), status (multi-select), and type.

Events tab

The Events tab shows one row per processing attempt, with the invoice code, source, event ID, event type, status, job ID, and document ID. Rows can be filtered by document ID and status. Each event has one of the following sources: Statuses apply to each attempt and, as the latest outcome, to the document: The same attempts appear in the invoice’s activity list in the Stripe sidebar.

FAQ

Yes, you can, at any time select a different workflow to sync your Stripe invoices. You can do this both from Stripe or Invopop.Option 1: From Stripe
  1. Go to Stripe app settings
  2. Select a different workflow
  3. Click Save changes
stripe change workflow

Select a different workflow in Stripe

Option 2: Through Invopop
  1. Navigate to the Apps section in your Invopop console
  2. Locate the Stripe app settings
  3. Select your new workflow
stripe change workflow

Select a different workflow in Invopop

You can switch the Stripe connection to a different workspace by disconnecting and reconnecting the app.
  1. Go to Stripe app settings
  2. Click the Disconnect button
  3. Reconnect the app and select your new workspace
Stripe does not include a dedicated Purchase Order field on invoices. Add it as a custom field named PO Number.You can add the custom field in any of these places:
  • The specific invoice
  • The subscription
  • An invoice template
Yes. Open the invoice in Stripe and click Process this invoice in the Invopop panel (right sidebar).Note: The invoice issue date will be set to the sync date (today), as required by tax agencies. The operation date remains the original date of the transaction.
stripe import historic invoices

Import historic invoices

Yes. You can import on payment instead of on finalization. Update the invoice import trigger in either Stripe or Invopop:Option 1: In Stripe
  1. Go to Stripe app settings
  2. In “Invoice Import Trigger”, select “When Paid” (instead of “When Finalized”).
  3. Click Save Changes.
stripe import trigger

Update invoice import trigger in Stripe

Option 2: In Invopop
  1. Go to Configuration > Apps > Stripe > Configure.
  2. Click Update Settings.
  3. In “Invoice import trigger”, select “When Paid” (instead of “When Finalized”).
  4. Click Save.
stripe import trigger

Update invoice import trigger

Note: This applies to invoices from now on; it does not change past imports.
This error means the invoice’s tax regime does not match the one expected by the workflow step. For example, VERI*FACTU requires a Spanish regime and KSeF requires a Polish regime. The regime is automatically determined by the supplier’s tax ID country.The most common cause is that the supplier’s tax ID is missing from the invoice. To fix this, make sure you have completed Step 5 of the setup: go to Settings > Billing > Invoices, enter your tax ID, and set it as the default. Stripe does not automatically include your account tax ID on invoices.Once the tax ID is set as default, it will appear on new invoices and the error should disappear.

Participate in our community

Ask and answer questions about Stripe integration →