Search
Getting Started Invoice sending Invoice sending Consumer Invoicing Printing Email invoicing Invoice receiving Invoice receiving Scanning Detect Fraud reporting Integration tools Webhooks Reference implementations Maventa Connector Embeddable User Interface Peppol Peppol Network Document Exchange Invoice Response Self-billing support Invoicing formats Invoicing formats Validation Peppol BIS 3.0 Finvoice 3.0 Document types and type codes Preview Maventa JSON (table) Preview Maventa JSON (json schema) Account management Companies and Settings Department Company Users Billing Accounts receivable Accounts receivable Ropo Reminder & Collection Amili Kassavirta Amili Perintä

Document types and type codes

Every invoicing format uses type codes to identify what kind of document is being sent. Maventa processes these codes during import and export, and automatically converts between format-specific codes when converting documents from one format to another.

This page covers the most commonly used formats. Maventa supports additional formats beyond those listed here.

How document types work

Each format has its own way of indicating the document type:

Finvoice

Finvoice 1.3 supports invoice and credit note. Versions 2.0 and later add direct payment and cancel.

Type code Name Document type Version
INV01 Commercial Invoice invoice 1.3+
INV02 Credit Note credit_note 1.3+
INV02 + OriginCode=Cancel Cancellation Invoice cancel 2.0+
INV03 Interest Note invoice 1.3+
INV04 Internal Invoice invoice 1.3+
INV05 Collect Note invoice 1.3+
INV08 Reminder Invoice invoice 1.3+
INV09 Direct Payment direct_payment 2.0+

The Finvoice specification defines additional codes (INV06 Pro Forma Invoice, INV07 Self Billing, and various non-invoice codes like ORD01, TES01, PRI01) that Maventa does not support. Documents with these codes are identified as Finvoice but cannot be processed.

Default export codes: INV01 for invoices, INV02 for credit notes and cancellations, INV09 for direct payments.

Secure invoices (SEI codes)

Each INV code has a corresponding SEI (Secure E-Invoice) counterpart. Secure invoices are processed as the same document type as their INV equivalent, with an additional security classification flag.

INV code SEI equivalent Document type
INV01 (Commercial Invoice) SEI01 invoice
INV02 (Credit Note) SEI02 credit_note
INV03 (Interest Note) SEI03 invoice
INV04 (Internal Invoice) SEI04 invoice
INV05 (Collect Note) SEI05 invoice
INV08 (Reminder Invoice) SEI08 invoice
INV09 (Direct Payment) SEI09 direct_payment

SEI06 and SEI07 are defined in the Finvoice specification but are not supported, matching the fact that INV06 and INV07 are also not supported.

The security classification is preserved during conversion between Finvoice and TEAPPS. When converting to any other format, the security classification is lost and the document is treated as a standard invoice or credit note. See Secure invoice conversion behavior for details.

TEAPPS

TEAPPS 2.7.2 supports invoice and credit note. Version 3.0 adds direct payment and cancel.

Type code Name Document type Version
00 Commercial Invoice invoice 2.7.2+
00 (method_of_charge=01) Direct Payment Invoice direct_payment 3.0
01 Credit Note credit_note 2.7.2+
01 (method_of_charge=01) Cancellation Invoice cancel 3.0
02 Collecting Invoice invoice 2.7.2+
03 Transit Invoice invoice 2.7.2+
04 Credit Invoice credit_note 2.7.2+
05 Credit of Transit Invoice credit_note 2.7.2+
06 Interest Invoice invoice 2.7.2+
07 Credit of Interest Invoice credit_note 2.7.2+
08 Advance Notice invoice 2.7.2+
08 (method_of_charge=01) Direct Payment Advance Notice direct_payment 3.0
09 Reminder Invoice invoice 2.7.2+
20 Vehicle Invoice invoice 2.7.2+
60 Purchase Credit Note credit_note 2.7.2+
91 Travel Invoice invoice 2.7.2+
99 Test Invoice invoice 2.7.2+

Codes 30 (Debit Receipt), 31 (Credit Receipt), 32 (Warranty Receipt), 50 (Order), 51 (Order Confirmation), and 90 (Travel Plan) are defined in the TEAPPS specification but are not supported by Maventa.

Default export codes: 00 for invoices, 01 for credit notes.

TEAPPS does not have dedicated security invoice type codes. Instead, TEAPPS 3.0 carries security classification in a separate SECURITY_DETAILS element with a SECRECY_CLASS code and an optional SECRECY_DESCRIPTION. When a Finvoice secure invoice (SEI code) is converted to TEAPPS, the invoice type code is mapped to the standard TEAPPS equivalent and the SEI code is stored in SECRECY_CLASS. See Secure invoice conversion behavior for details.

Peppol BIS 3.0

Peppol BIS 3.0 uses UNCL 1001 invoice type codes. The table below lists the most commonly used codes. The full code list is defined in the Peppol BIS 3.0 specification and evolves over time — some codes may have country-specific restrictions or conditions.

Type code Name Document type
380 Commercial Invoice invoice
381 Credit Note credit_note
383 Debit Note invoice
384 Corrected Invoice invoice
386 Prepayment Invoice invoice
389 Self-Billed Invoice self_billing_invoice
261 Self-Billed Credit Note self_billing_credit_note
326 Partial Invoice invoice
393 Factored Invoice invoice
396 Factored Credit Note credit_note

Default export codes: 380 for invoices, 381 for credit notes.

OIOUBL (Danish)

Both versions 2.02 and 2.1 support the same types.

Type code Name Document type
325 Proforma Invoice invoice
380 Commercial Invoice invoice
381 Credit Note credit_note
393 Factored Invoice invoice

Also supports application_response as a separate document type.

Default export codes: 380 for invoices, 381 for credit notes.

SI-UBL 2.0 (Dutch)

Type code Name Document type
380 Commercial Invoice invoice
381 Credit Note credit_note
384 Corrected Invoice invoice
389 Self-Billed Invoice invoice

Subtype preservation during format conversion

When Maventa converts a document from one format to another, the document type (invoice, credit note) is always preserved. However, the specific subtype (such as Reminder Invoice or Interest Note) is only preserved if the target format recognizes the same subtype. If the target format does not have a matching subtype, the type code falls back to the default for that document type.

A type code is a label that identifies the kind of document. The actual data that makes a document special (for example, factoring party details on a factored invoice, or overdue payment calculations on an interest invoice) is carried in the document content and is converted independently of the type code. Even when a type code falls back to a generic value, the relevant content fields are still mapped to the target format if that format supports them. See Content-level feature support for details on which features each format can carry in its payload.

Default fallback codes

Target format Invoice default Credit note default
Peppol BIS 3.0 380 (Commercial Invoice) 381 (Credit Note)
Finvoice INV01 (Commercial Invoice) INV02 (Credit Note)
TEAPPS 00 (Commercial Invoice) 01 (Credit Note)
OIOUBL 380 381
SI-UBL 380 381

Cross-format subtype compatibility

The following table shows which subtypes are shared between format families. A subtype is preserved during conversion only if both the source and target format define it.

The “Content” column indicates whether the document content associated with that subtype (such as factoring details or overdue payment data) can be carried in the target format’s payload, even when the type code itself falls back to a generic value.

Subtype Finvoice TEAPPS Peppol BIS 3.0 OIOUBL SI-UBL 2.0 Content carried by
Commercial Invoice INV01 00 380 380 380 All formats
Credit Note INV02 01 381 381 381 All formats
Interest Invoice INV03 06 Row-level details: Finvoice, TEAPPS. Header rate: most formats
Internal Invoice INV04 No specific content
Collect Note INV05 02 No specific content beyond overdue payment details
Reminder Invoice INV08 09 Penalty interest: UBL formats, Finvoice, TEAPPS
Direct Payment INV09 00/08 Finvoice, TEAPPS only
Corrected Invoice 384 384 No specific content
Prepayment Invoice 386 Prepaid amount: UBL formats, Finvoice, TEAPPS
Self-Billed Invoice 389 389 Party reversal: Peppol BIS 3.0 only
Factored Invoice 393 393 Payee/factoring data: most formats
Partial Invoice 326 No specific content

A dash (—) in the type code columns means the format does not have a dedicated type code for that subtype. When converting to a format that shows a dash, the type code falls back to the default (Commercial Invoice or Credit Note). However, the document content may still be converted if the target format supports the relevant payload fields.

Conversion examples

Source format Source code Target format Result code What happens
Finvoice INV01 Commercial Invoice Peppol BIS 3.0 380 Preserved
Finvoice INV02 Credit Note Peppol BIS 3.0 381 Preserved
Finvoice INV03 Interest Note Peppol BIS 3.0 380 Type code falls back to Commercial Invoice. Header-level penalty interest rate is carried in PaymentTerms. Row-level overdue payment details are lost.
Finvoice INV05 Collect Note Peppol BIS 3.0 380 Type code falls back to Commercial Invoice. Overdue payment details on rows are lost.
Finvoice INV08 Reminder Invoice Peppol BIS 3.0 380 Type code falls back to Commercial Invoice. Penalty interest data is carried in PaymentTerms.
Finvoice INV03 Interest Note TEAPPS 06 Preserved. Row-level overdue payment details are also preserved.
Finvoice INV08 Reminder Invoice TEAPPS 09 Preserved
OIOUBL 393 Factored Invoice Finvoice INV01 Type code falls back to Commercial Invoice. Factoring party details and bank accounts are mapped to FactoringAgreementDetails.
Peppol BIS 393 Factored Invoice Finvoice INV01 Type code falls back to Commercial Invoice. Payee party data is mapped to FactoringAgreementDetails.
Peppol BIS 384 Corrected Invoice Finvoice INV01 Type code falls back to Commercial Invoice
Peppol BIS 386 Prepayment Invoice Finvoice INV01 Type code falls back to Commercial Invoice. Prepaid amount is preserved.
Peppol BIS 393 Factored Invoice OIOUBL 393 Preserved. Payee party data is also preserved.
TEAPPS 09 Reminder Invoice Peppol BIS 3.0 380 Type code falls back to Commercial Invoice. Penalty interest data is carried in PaymentTerms.
TEAPPS 06 Interest Invoice Peppol BIS 3.0 380 Type code falls back to Commercial Invoice. Header-level interest rate is carried. Row-level overdue payment details are lost.
TEAPPS 06 Interest Invoice Finvoice INV03 Preserved. Row-level overdue payment details are also preserved.
Finvoice SEI05 Secure Collect Note Finvoice SEI05 Preserved (same format family)
Finvoice SEI05 Secure Collect Note TEAPPS 3.0 02 + security metadata Security classification preserved as metadata
Finvoice SEI05 Secure Collect Note Peppol BIS 3.0 380 Security classification and subtype both lost

Secure invoice conversion behavior

Finvoice secure invoices (SEI codes) carry a security classification that indicates the document requires special handling. This classification is a feature specific to the Finnish invoicing ecosystem and is only fully supported in Finvoice and TEAPPS formats.

Finvoice to Finvoice: The SEI code is passed through as-is. A document sent as SEI05 (Secure Collect Note) is delivered as SEI05.

Finvoice to TEAPPS: The security classification is preserved as separate metadata. The invoice type code is mapped to the corresponding non-secure TEAPPS equivalent (for example, SEI05 maps to TEAPPS code 02, which is the Collecting Invoice). The security information travels alongside the document so it can be restored if the document is later converted back to Finvoice.

TEAPPS to Finvoice: If the TEAPPS document carries security metadata, the converter restores the SEI code in the Finvoice output. For example, a TEAPPS document with code 02 and a stored security code of SEI05 is exported as Finvoice SEI05.

Finvoice or TEAPPS to any other format: The security classification is lost. The document is converted using the underlying invoice subtype only (for example, SEI05 becomes a standard Commercial Invoice with code 380 in Peppol BIS 3.0). There is no mechanism to carry the security classification in UBL or other non-Finnish formats.

Conversion Type code result Security classification
Finvoice SEI → Finvoice SEI code preserved Preserved
Finvoice SEI → TEAPPS 3.0 Mapped to TEAPPS equivalent Preserved as metadata
TEAPPS (with security) → Finvoice SEI code restored Restored
Finvoice SEI → Peppol BIS 3.0 Falls back to 380/381 Lost
Finvoice SEI → any other format Falls back to default Lost

Content-level feature support

The type code tells the recipient what kind of document it is, but the actual data that makes a document special is carried in the document content. For example, a factored invoice contains factoring party details and bank accounts in its payload. When converting between formats, Maventa maps this content independently of the type code. Even if the target format does not have a dedicated type code for “factored invoice”, the factoring data is still converted if the target format has the relevant fields.

The following tables show which formats can carry specific content features in their payload. This is separate from whether the format has a dedicated type code for that feature.

Factoring and payee party

Factoring information identifies a third party (the factor) who receives payment on behalf of the seller. This data includes the factoring party name, address, bank accounts, and agreement details.

Format Support level
Finvoice Full: FactoringAgreementDetails with party name, address, identifier, agreement ID, type code, bank accounts
TEAPPS Full: FACTORING_INFORMATION with agreement number, factoring type, endorsement clause
Peppol BIS 3.0 PayeeParty with name, identifiers, legal entity
OIOUBL, SI-UBL PayeeParty (inherited from UBL base)

Overdue payment and interest calculation details

Interest invoices and collect notes typically carry per-row details about the original overdue invoices: original invoice number, dates, amounts, interest rate, interest period, and calculated interest charges.

Format Support level
Finvoice Full row-level: RowOverDuePaymentDetails with original invoice ID, dates, amounts, interest rate, interest period, paid/unpaid amounts, collection charges
TEAPPS Full row-level: INFORMATION_OF_OVERDUE_PAYMENTS with interest charges, interest period, interest rate, collection surcharges, original invoice references
All UBL formats Not supported. Row-level overdue payment details are lost during conversion to these formats.

Penalty interest rate

A header-level interest rate that applies to late payments. This is a simpler field than the row-level overdue payment details above.

Format Support level
Finvoice PaymentOverDueFinePercent, PaymentOverDueFineFreeText
TEAPPS PAYMENT_OVERDUE_FINE with interest rate and free text
Peppol BIS 3.0, OIOUBL, SI-UBL PenaltySurchargePercent and PenaltyPeriod in PaymentTerms

Prepaid amount

The amount already paid before the invoice is issued, used for advance payments and prepayment invoices.

Format Support level
Peppol BIS 3.0, OIOUBL, SI-UBL Full: PrepaidAmount in LegalMonetaryTotal plus PrepaidPayment details (ID, amount, date)
Finvoice 3.0 InvoicePaidAmount (sum only, no detailed references)
TEAPPS ADVANCE_PAYMENT (sum only)

Direct payment

Direct payment (suoramaksu) is a Finnish payment method where the invoice amount is collected directly from the payer’s bank account. This is a concept specific to the Finnish invoicing ecosystem.

Format Support level
Finvoice Full: OriginCode field, DirectDebitInfo with debited account details, dedicated document type
TEAPPS Full: METHOD_OF_CHARGE field, dedicated document type
All other formats Not supported. Direct payment data is lost during conversion.

Self-billing

Self-billing is when the buyer creates the invoice on behalf of the seller. Beyond the type code, this requires reversing the party roles (the buyer becomes the accounting supplier).

Format Support level
Peppol BIS 3.0 Full: dedicated document types with party endpoint reversal in mappings
SI-UBL 2.0 Type code support (389) but no party reversal logic
All other formats Not supported

Construction invoice specifics

Construction invoices (type codes 875, 876, 877) are distinguished only by their type code. No format has construction-specific payload fields such as completion percentage or site details. The only related structural element is the standard contract reference field, which is available in most formats.

Back to top

AI Chat Support 24/7

  • Get help via AI chat available 24/7 whenever it suits you
  • Chat extensively uses Maventa support pages, websites, and blogs in its answers
  • If you need assistance that the AI cannot provide, you can also ask a customer service agent to join the conversation
  • Support requests processed Monday to Friday
Cancel Open chat

Got feedback?

Did you not find what you were looking for? Or was something explained unclearly? Or just want to share your thoughts? We are happy to hear your feedback!

Note: This form is not a way to get support, this is only for feedback for the documentation website. If you need support, please contact Maventa support.

Integration Guide Services & Reach API Specification Changelogs Integration guide Getting Started Invoice sending Consumer Invoicing Printing Email invoicing Invoice receiving Scanning Detect Fraud reporting Webhooks Reference implementations Maventa Connector Embeddable User Interface Peppol Network Document Exchange Invoice Response Self-billing support Invoicing formats Validation Peppol BIS 3.0 Finvoice 3.0 Document types and type codes Maventa JSON (table) Maventa JSON (json schema) Companies and Settings Department Company Users Billing Accounts receivable Ropo Reminder & Collection Amili Kassavirta Amili Perintä Services and reach Maventa services and reach e-invoicing in Finland Mass Printing Service e-invoicing in Sweden e-invoicing in Norway e-invoicing in Denmark e-invoicing in the Netherlands e-invoicing in Belgium e-invoicing in Germany e-invoicing in Estonia e-invoicing in Latvia e-invoicing in Poland e-invoicing in Italy e-invoicing in France e-invoicing in Spain Api specification API overview Getting Started Common & authentication API Invoices API Documents API Companies & settings API Lookups API Detect API Validator API Receivables API Billing API Scanning API B2CFI API B2CNO API B2CSE API Partner API Getting Started API Methods Overview Account Configuration API Methods Invoice Sending API Methods Invoice Receiving API Methods B2C Norway API Methods B2C Finland API Methods Other API Methods Changelogs Product changelog Developer Changelog
Clear Send

Enter your credentials to Maventa testing environment, to authenticate and try things out with the Swagger UI. This will fetch a Bearer token using OAuth2 with the endpoint POST https://ax-stage.maventa.com/oauth2/token. The token is stored in your browser's session storage (cleared when you close the tab) and used in Swagger calls done from this documentation website. The token is valid for 1 hour.

Never use your production credentials here. This is only for testing the Maventa test environment in the Swagger UI.
Reset All None
eui global company lookup document:receive document:send invoice:receive invoice:send company:read company:write validate receivables:assignments analysis billing:reports partner:invoice_delivery_actions partner:lookups partner:takeovers partner:lyanthe_scan_service fi_bank_message:send fi_bank_message:receive
Cancel Sign In