Formats
xTool supports several e-invoicing formats. Each document has one format; it determines validation rules and available conversions and transforms. See Document model, Format models (field reference), Validate and convert, and API Reference for Format endpoints.
Each format has a unique format code; a format model (in essence, the file as read by xTool), which can be represented as JSON; and file content in its native form — XML, PDF, IDoc or other types depending on the format.
flowchart TB
CODE["Unique format code"]
MODEL["Format model (JSON)"]
CONTENT["File content: XML, PDF"]
CODE --- MODEL
MODEL <-->|transformation| CONTENT
xTool formats (canonical hub)
xTool uses a shared internal field model. xtool.canonical.1_0 is the central hub for format conversion, PDF recognition, and AI extraction: source formats map into canonical, then canonical maps out to the target. Invoice vs credit note is expressed by document type (e.g. type_code 380 / 381), not by a separate hub format.
xtool.invoice.1_0 and xtool.credit_note.1_0 remain first-class working formats (stricter required fields, typed invoice / credit note). You can still create, store, send, and convert them; conversion between external standards goes through canonical.
flowchart LR
SRC["Source format"]
CAN["xtool.canonical.1_0"]
TGT["Target format"]
SRC --> CAN --> TGT
| Format code | Role |
|---|---|
xtool.canonical.1_0 |
Soft hub model (primary for convert / recognition) |
xtool.invoice.1_0 |
Typed invoice working format |
xtool.credit_note.1_0 |
Typed credit note working format |
Format table
| Format code | Document type | Representation | Typical channels |
|---|---|---|---|
| xtool.canonical.1_0 | Invoice or credit note (via type code) | Soft hub model (JSON) | Email, France; conversion hub |
| xtool.invoice.1_0, xtool.credit_note.1_0 | Invoice, Credit note | Typed internal model | Email, France |
| xrechnung.invoice.3_0.xml_ubl, .xml_ubl.extension, .xml_cii | Invoice | XML (UBL, CII) | Peppol (UBL), Email |
| xrechnung.credit_note.3_0.xml_ubl | Credit note | XML (UBL) | Peppol, Email |
| peppol_bis_billing.invoice.3_0.xml_ubl, .xml_cii | Invoice | XML (UBL, CII) | Peppol, Email, Slovakia |
| peppol_bis_billing.credit_note.3_0.xml_ubl | Credit note | XML (UBL) | Peppol, Email, Slovakia |
| peppol_bis_billing_france.invoice.3_0.xml_ubl, .credit_note.3_0.xml_ubl | Invoice, Credit note | XML (UBL) | France, Email |
| peppol_bis_self_billing.invoice.3_0.xml_ubl, .credit_note.3_0.xml_ubl | Invoice, Credit note | XML (UBL) | Peppol, Email, Slovakia |
| france_cius.invoice.1_0.xml_ubl.en16931 / .extended, .xml_cii.en16931 / .extended | Invoice | XML (UBL, CII) | France, Email |
| france_cius.credit_note.1_0.xml_ubl.en16931 / .extended | Credit note | XML (UBL) | France, Email |
| factur_x_zugferd.invoice.2_4 / 2_5.pdf_xml.* | Invoice | PDF + embedded XML | |
| factur_x_france.invoice.2_5.pdf_xml.* | Invoice | PDF + embedded XML | France, Email |
| ksef_fa.invoice.3_0.xml | Invoice | XML (FA(3)) | KSeF |
| sap.invoice.idoc, sap.credit_note.idoc | Invoice, Credit note | IDoc | |
| raw PDF | Invoice file | Email (visualisation / conversion) |
SFTP (outbound): A +format code in the file name on a Raw PDF triggers automatic PDF recognition, similar to manual conversion in the web app.
How format is used
- Documents — When you create or upload a document, you choose a format (or it is detected from XML). Validation and conversion use this format.
- API — The Format endpoints (validate model/XML, transform model↔XML, model→PDF, XML→model, XML→PDF, convert, detect XML) take or return a format code. See Validate and convert.
CSV import format (not a working format)
CSV is supported only as an import source for bringing invoice data into xTool — not as a document format you create, store, send, or convert via the Format API. After import, the document uses the internal xTool model. Column specification, file rules, and examples: CSV import format. How to import: Import documents.
Understanding field meanings (semantics)
To understand what each field means (invoice number, issue date, seller, buyer, line items, totals, etc.) and how to fill the form or API request body, see Format models (field reference). For a detailed section-by-section and field-by-field reference with JSON/XML examples, see Invoice model understanding. For examples, see Base invoice model example.
Choosing a format
- Peppol — Use a Peppol-supported format (e.g. Peppol BIS Billing, XRechnung UBL). See Peppol and Send via Peppol.
- Poland (KSeF) — FA(3) XML. See Connect to KSeF.
- France — France CIUS, Peppol BIS Billing France, or Factur-X France. See France e-invoicing.
- Public sector (e.g. Germany) — XRechnung and ZUGFeRD are commonly required.
Custom formats — we can implement a format to your requirements on request. Contact support.
Local requirements
Check your country or sector requirements for the mandatory e-invoicing format before choosing. Or contact us via support for advice.