Before processing any invoices, you must register your supplier on the Peppol network through Invopop. See the Peppol guide for full registration steps.
Workflow
- Template
- Code
Chargebee DK E-invoicing
Syncs with Chargebee and sends via Peppol to Danish customers, with automatic SEPA payment key handling.
Peppol participant ID
Since there is no automatic lookup, the Peppol Participant ID must be set on each Danish customer before any invoices are processed. Use Chargebee’s bulk operations to back-populate this field across all your Danish customers before going live.The metadata keys listed above follow the Chargebee metadata format (hyphens, no
cf_ prefix). If you prefer to use custom fields instead, replace hyphens with underscores and add the cf_ prefix. See Custom fields & metadata for details.SEPA payment key
The workflow includes one Denmark-specific step: Fixing bank-transfer details. If Chargebee sends acredit-transfer payment instruction on the invoice, this step automatically converts it to credit-transfer+sepa. Plain credit-transfer is not accepted in Denmark — the more specific SEPA variant is required. If the invoice has no payment instructions, the step is skipped. That’s the only difference from a standard Peppol workflow.
FAQ
What should we do if the customer doesn't belong to the Peppol network?
What should we do if the customer doesn't belong to the Peppol network?
In countries where Peppol is the standard but not mandatory, you may still need to issue an e-invoice when the recipient isn’t on the network. Both parties can agree on an alternative transfer method, but the invoice must still be EN16931 compliant.Recommended approach:
- Set up a separate workflow that generates the XML without the send-Peppol-document step
- Or reuse your existing workflow without the customer Peppol ID — the send step is automatically skipped
- Fetch the generated XML and deliver it through the agreed channel, typically email
How do I handle B2C invoices in Peppol?
How do I handle B2C invoices in Peppol?
B2C invoices typically lack the structured customer information required for Peppol delivery, and most consumers don’t have inboxes. Use a conditional workflow:
- Add an If/Else step that checks for a customer inbox using
count(customer.inboxes, true) > 0. - On the
falsebranch, generate a PDF and email it to the customer, then stop the flow.
How do I handle 'Receiver Not Found' errors?
How do I handle 'Receiver Not Found' errors?
If a job fails with
KO and receiver not found in the peppol network, treat it like an invalid email address — the recipient simply isn’t reachable on Peppol. Add the Lookup Participant ID step (ideally in a separate validation workflow run against customer data) so you catch missing IDs before generating the invoice.Should I set the `$regime` field when using Peppol?
Should I set the `$regime` field when using Peppol?
No. The regime is automatically derived from the supplier’s settings, which is the recommended approach for Peppol — leave it unset on the document.
Where do I find Peppol GOBL documentation?
Where do I find Peppol GOBL documentation?
See the
oasis-ubl-v2 addon and the Peppol app reference for required fields, supported document types, and Participant ID schemes.Participate in our community
Ask and answer questions about your Chargebee integration →