Consumer E-Invoicing (B2CFI)
Consumer e-invoicing in Finland allows sending e-invoices to consumers' personal online banking and direct payments to those not using online banking services. Using this service requires a Finnish business ID (y-tunnus).
The invoicer must activate consumer e-invoicing separately by sending billing notifications (SI-messages) to banks, informing consumers about the possibility of receiving e-invoices from the invoicer. Consumers indicate their wish to receive e-invoices with a recipient notification (RI-message). The reception proposal (RP-message) is used when the invoicer wants to propose consumer e-invoicing to the consumer.
Consumer E-Invoicing Process
-
Creation and Sending of SI-Messages
- SI-messages are created and sent from the invoicer's ERP system to Maventa. Each bank requires a separate SI-message. (List of banks)
-
Forwarding by Maventa
- Maventa forwards SI-messages to the operator bank (DABAFIHH).
-
Distribution by the Operator Bank
- The operator bank forwards SI-messages to each bank.
-
Banks' Reception and Registration
- Banks receive SI-messages and record that the invoicer is ready to send consumer e-invoices via Maventa. The invoicer can then be found in the invoicer register in online banking.
-
Establishment of Agreement
- An agreement between the invoicer and consumer forms when the consumer informs the bank of their wish to receive e-invoices from the invoicer, providing the identifier requested in the SI-message (e.g., reference number).
-
RI-Message Notification
- The bank sends an RI-message to the operator bank to notify that the consumer wants to receive e-invoices.
-
Forwarding of RI-Message
- The operator bank forwards the RI-message to Maventa.
-
Data Upload and Registration
- The invoicer's ERP downloads the RI-messages from Maventa and saves consumer details into the customer registry.
The invoicer is now ready to send consumer e-invoices to this consumer. Please check the requirements for consumer e-invoices.
Step-by-Step Guide to Implementing Consumer E-Invoicing FI
First, create a Maventa account for your company, which can be opened via the interface or through https://secure.maventa.com.
- SOAP:
register_with_password
+authorize_companies
- REST:
POST /v1/companies
+POST /v1/companies/authorizations
During account registration, use the authorization method above to open the bank network connection required for consumer e-invoicing. It may take several days to open the bank network, depending on Danske Bank's workload. Only after the bank network is open can the sending of consumer invoicing messages begin.
New Customer Sending Consumer E-Invoices
Create an ADD type (new billing notification) SI-message, which is sent via API using the message_send
method. There is a page where you can create different billing notification messages. Here's a link to the notification service application guide with detailed message descriptions. RP-messages can also be sent using the same method. Note: If SI-messages are sent via the interface, the events may be billed to the client company. For this reason, we recommend always sending SI-messages via the interface.
The message_status
method can be used to poll the status of the SI-message. Note: It may take several days (3-5) for the SI-message to move between the operator and the bank.
When a consumer selects the company as their invoicer, an RI-message returns. The incoming RI-messages are first listed with the ri_message_list
method, followed by loading the messages individually using the ri_message_show
method. Note: If RI-messages are retrieved via the interface, the events may be billed to the client company. For this reason, we recommend always retrieving RI-messages via the interface.
Customer Already Using Consumer E-Invoicing with Another Operator
Create CHANGE type SI-messages to transfer the agreement from the old operator to Maventa. A CHANGE message is created based on the existing ADD message. The CHANGE message is sent via the old connection, i.e., through the old operator to the banks. The new operator/agent is given as DABAFIHH with the CHANGE message.
If the ERP system also changes, ensure that the customer can transfer RI-messages (or at least their information) from the old system to the new one. When the agreement transfers from the old operator to Maventa via a CHANGE message, the agreements of RI-messages are transferred to the new operator, but the files themselves are not. The new operator will only see the new RI-message files made by consumers after the agreement is transferred.
If desired, you can also send the exact same CHANGE message from the Maventa account to all banks to keep the files stored on the Maventa account for potential future changes. (Note: This does not replace the sending of CHANGE messages via the old operator or bank as described in step 1.)
New RI-messages will then arrive in the customer's Maventa account and can be downloaded via the API using the same methods as in the previous case (see step 3 "New Customer Sending Consumer E-Invoices").
XML Requirements for Consumer E-Invoicing or Direct Payments
-
The billing topic code is a mandatory detail for consumer e-invoices:
- Finvoice: Use
EpiPaymentInstructionID
. - TEAPPSXML: Use
HEADER / PAYMENT_INSTRUCTION_IDENTIFIER
.
Invoice Type Codes
- Finvoice: The element is
InvoiceTypeCode
.- Use
INV01
for consumer e-invoices. - Use
INV09
for direct payments.
- Use
- TeappsXML: The element is
HEADER / INVOICE_TYPE
.- Use
00
for consumer e-invoices. - Use
08
for direct payments.
- Use
Additional Requirements
- Consumer e-invoices do not have a Finnish business ID (y-tunnus).
- Use the same billing account information (IBAN) provided in the SI-message when sending consumer e-invoices to avoid bank-side failures.
- Ensure consumers have sufficient time to pay the invoice; the due date should be at least three days after the invoice is sent.
- Maventa does not send automatic notifications for direct payments. Handle direct payment notifications manually. For large volumes, consider using our batch printing service for sending direct payment notifications.
- Finvoice: Use
Billing Notification (SI-Message or SenderInfo) FI
A billing notification (SI-message) is a declaration by the billing company to banks (and consumers) indicating readiness to send consumer e-invoices and direct payments. It functions as a consumer e-invoicing agreement between the billing company and the bank.
To send a new billing notification, an SI-message with the type ADD (MessageActionCode) should be sent using the message_send
method to each bank the billing company wishes to use for consumer e-invoicing. Note: If SI-messages are sent through the interface, the transactions may be billed to the client company. Therefore, it is recommended to always send SI-messages through the interface.
You can check the status of the sent SI-message using the message_status
method. The status of an SI-message becomes OK once it's forwarded to the operator bank. Messages can take 1-4 banking days to travel between banks, so error notifications might arrive up to a week later. Once things are in order, new RI-messages will start arriving.
If an SI-message encounters an error on the bank's side, you can identify the errors by listing them with the error_message_list
method and viewing them using the error_message_show
method.
If there is a need to change or add information to the SI-message, changes can be made by sending an SI-message with the type CHANGE (e.g., when bank account information changes or the service provider changes).
An SI-message can be removed by sending an SI-message of type DELETE. This action also removes all associated recipient notifications (RI-messages).
Implementation guidelines and tools for creating SI-messages are available on the Financial Sector website.
Tips for SI-Message Content
Billing Topic
In consumer e-invoicing, the SI-message and consumer e-invoice are linked by the billing topic code (PaymentInstructionIdentifier), which is a unique identifier reported in the SI-message. This code is used to identify the reason for payment. A billing company may have multiple SI-messages for different billing topics. When sending consumer e-invoices, the same billing topic must be included in the invoice XML.
- Finvoice: Specify the billing topic in the optional
EpiPaymentInstructionID
field. - TEAPPSXML: Use the
HEADER / PAYMENT_INSTRUCTION_IDENTIFIER
element.
To make the billing topic visible to consumers in online banks or payment services, define it in the SellerInvoiceTypeText
element and provide translations for all language codes (FI, SE, EN).
Example XML snippet:
<SellerInvoiceDetails>
<PaymentInstructionIdentifier> Vuokra </PaymentInstructionIdentifier>
<SellerInstructionFreeText LanguageCode="FI"> Anna viimeisimmän laskun viitenumero </SellerInstructionFreeText>
<SellerInstructionFreeText LanguageCode="SV"> Ge den senaste fakturans referensnummer </SellerInstructionFreeText>
<SellerInstructionFreeText LanguageCode="EN"> Enter the reference number </SellerInstructionFreeText>
<SellerInvoiceTypeDetails>
<SellerInvoiceTypeText LanguageCode="FI"> Vuokra lasku </SellerInvoiceTypeText>
<SellerInvoiceIdentifierText LanguageCode="FI" SellerInvoiceIdentifierType="01"> Viitenumero </SellerInvoiceIdentifierText>
</SellerInvoiceTypeDetails>
<SellerServiceCode> 01 </SellerServiceCode>
</SellerInvoiceDetails>
Bank Account Information
The billing company's bank account details must be provided in the SellerAccountDetails
element of the SI-message. Bank account numbers should be in IBAN format, and all account numbers used in consumer e-invoicing must be specified. The IBAN on the consumer e-invoice must match at least one of the IBANs provided in the SI-message.
Receiver Notification / RI-Message
Receiver notifications (RI-messages or ReceiverInfo) are considered as agreements between the consumer and the biller regarding consumer e-invoicing and are always linked to an existing SI-message. For every consumer, an RI-message is sent to the biller, providing the consumer's e-invoicing details.
- ADD (MessageActionCode): Sent to the biller when a new consumer selects the company as their biller from online banking.
- CHANGE: Sent if the consumer's details change.
- DELETE: Sent if the consumer wants to terminate the agreement on consumer e-invoicing.
ERP Recommendations: Maintain a consumer register in your ERP with updated statuses for each RI-message. You can list received RI-messages using the ri_message_list
method and load them individually with the ri_message_show
method. It's recommended to retrieve all new RI-messages daily and update the consumer register accordingly. Note: If RI-messages are retrieved through the interface, the transactions might be billed to the client company. Hence, retrieving RI-messages via the interface is recommended.
Testing Tip: You can send RI-messages to your own account using the message_send
method and load them to ensure the integration works before moving to production.
Receiver Proposal / RP-Message FI
The Receiver Proposal (RP-message) is used when a biller wants to offer a consumer the option to receive e-invoices from them. Once the consumer accepts this proposal, an RI-message is sent to the biller. The RP-message is a method to encourage more consumers to adopt e-invoicing.
Conditions for Using RP-Message
- The biller and consumer must have agreed that the biller will request the e-invoice address using the RP-message.
- SI-messages must have been successfully sent.
- The RP and SI-message must contain the same data in the
PaymentInstructionIdentifier
field.
RP-Message Process
-
The biller sends an RP-message through Maventa with the type
ADD
(MessageActionCode) including:MessageActionCodeIdentifier
value of00
.- The consumer's personal identification number is provided in the
BuyerPartyIdentifier
field.
-
RP-messages can be sent using the
message_send
method. -
Maventa forwards the RP-messages to the operator bank.
-
The RP-message is displayed in the consumer's online banking. The consumer confirms the agreement for the e-invoice subscription in the
RPFreeText
element. -
The bank responds with an RI-message containing the consumer's e-invoice address. The personal identification number is not returned in the RI-message. The RI-message is then forwarded to the biller via Maventa.
-
The biller updates the consumer's e-invoicing details and sends the next invoice as an e-invoice.
Note: If the consumer does not respond within 30 calendar days, the bank will remove the RP-message from the consumer's online banking. There is no separate notification for this removal.
Implementation guidelines for creating RP-messages and more detailed process information are available on the Finance Finland's(Finanssiala) website.
Closing Consumer E-Invoicing
Consumer e-invoicing can be closed by sending SI-messages (DELETE) to the banks. After this action, the company will no longer have an agreement on consumer e-invoicing with the banks, and the company will not appear on the list of billers in online banking. Removing the SI-messages also deletes all active receiver notifications (RI-messages).
If there is a need to change the service provider (operator/bank) or other details, there is no necessity to delete existing agreements. Instead, these details can be easily changed by sending SI-messages with the type CHANGE.
Switching Service Providers
If the service provider changes, SI-messages must be sent with the type CHANGE from the old service provider, indicating who the new service provider is. This ensures that current receiver notifications (RI-messages) are transferred to the new service provider without requiring consumers to make any changes.
Note: It may take a few banking days for the SI-messages to reach each bank, so it's prudent to be prepared for potential error messages a few days after sending the messages. Therefore, the old connection should not be closed immediately; instead, wait approximately five days. If no errors have appeared by then, you can close the old connection.
Files of RI-messages from the old service provider are not automatically transferred to the new provider. Therefore, it's essential to ensure the files are downloaded or the information is stored by other means.
Current Information:
InvoiceSenderAddress
InvoiceSenderIntermediatorAddress
New Information:
NewInvoiceSenderAddress
NewInvoiceSenderIntermediatorAddress
<InvoiceSenderInformationDetails>
<InvoiceSenderAddress> 003712345678 </InvoiceSenderAddress>
<InvoiceSenderIntermediatorAddress> DABAFIHH </InvoiceSenderIntermediatorAddress>
<NewInvoiceSenderAddress> 003787654321 </NewInvoiceSenderAddress>
<NewInvoiceSenderIntermediatorAddress> NDEAFIHH </NewInvoiceSenderIntermediatorAddress>
</InvoiceSenderInformationDetails>