Getting Started
Minimum admin setup to make eInvoicing work end-to-end. This assumes the app is installed; managed sites already have the PEPPOL profile and code lists pre-seeded.
1. Verify the EDocument Profile
The PEPPOL profile is created automatically on install. Confirm via EDocument Profile → PEPPOL:
| Setting | Value |
|---|---|
| Identifier Namespace | urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 |
| Identifier Element Name | CustomizationID |
| Identifier Value | urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0 |
| Generator Path | edocument.edocument.profiles.peppol.generator.generate_peppol_xml |
| Parser / Validator / Preview / Detector / Matcher | corresponding …profiles.peppol.* paths |
Sales Invoice Settings on the profile control behaviour:
- EDocument generation on Save — generate EDocument on draft save (useful for testing)
- EDocument generation on Submit — production default; EDocument is created when the invoice is submitted
- Ignore Validation Error for EDocument generation — when set, the EDocument is created with a warning instead of blocking submission. Don't enable for production unless you have a workflow to fix and resubmit.
2. Code Lists
E-documents reference common codes — C62 for the UOM "One", ZZZ for mutually-agreed payment, etc. These come from international code lists mapped to ERPNext entities.
Standard code lists are imported automatically on install. To re-import or update, use Import Genericode in the Code List DocType:
| Code List | Maps to | Default value |
|---|---|---|
| UNTDID 4461 Payment Means | Payment Terms Template, Mode of Payment | ZZZ |
| UN/ECE Rec 20 Units of Measure | UOM | C62 |
| UNCL 5305 Tax Categories | Item Tax Template, Account, Tax Category, Sales Taxes and Charges Template | S |
| EAS Electronic Address Schemes | Company, Customer, Supplier | EM |
Code resolution goes most specific → most general: for VAT, the app looks at Item Tax Template first, then Income Account, then Tax Category, then Sales Taxes and Charges Template.
3. Electronic Address
PEPPOL requires both sender and receiver to have an electronic address. Set on Company, Customer, Supplier:
| Field | What it is |
|---|---|
| EDocument Profile | Default profile (PEPPOL) |
| Electronic Address Scheme | 0106 (KvK NL) · 0208 (Belgian VAT) · EM (email) · 9930 (VAT-DE) |
| Electronic Address | The identifier itself — KvK number, VAT number, or email address |
Fallback when not set: customer → Contact Email → Buyer Address Email ID; company → Seller Contact Email → Company Email.
4. Bank Details
To include bank details in the e-document:
- Create a Mode of Payment of type "Bank"
- Link the company's corresponding Account
- Create a Bank Account for that account with IBAN and BIC (SWIFT)
- Map a Common Code from UNTDID 4461 to the Mode of Payment — e.g. "Credit Transfer" →
30, "SEPA Credit Transfer" →58
The PEPPOL standard supports one payment means per invoice. Don't combine multiple Modes of Payment on the same invoice.
5. VAT scenarios
Most invoices use standard VAT (S) or zero-rated (Z, auto-detected for 0%). Special cases:
| Scenario | UNCL 5305 code | Setup |
|---|---|---|
| VAT Exempt (books, education, healthcare) | E |
Create Tax Category "VAT Exempt" mapped to E |
| Out of Scope (non-business) | O |
When any line uses O, VAT identifiers are omitted from the whole invoice per PEPPOL rules |
| Intra-Community supply (EU 0% VAT) | K |
App auto-adds VATEX-EU-IC exemption, ActualDeliveryDate, delivery country code (satisfies BR-IC-10/11/12) |
For item-specific tax treatment, map codes to Item / Item Tax Template / Account rather than Tax Category.
Next
- Sending an Invoice — outgoing flow
- Receiving Invoices — incoming flow
- Setting Up a Provider — connect to PEPPOL network