In Belgium, e-invoicing is mandatory and regulated by the Federal Public Service Finance (FPS Finance). It follows the Peppol model: invoices are exchanged via the Peppol network using the Peppol BIS format, and all records must be archived for 10 years in the electronic compliant format.
This page covers the Belgium-specific requirements that complement the General Step-by-Step Integration. Make sure you have the following taxpayer information ready before proceeding:
tax_id_number— KBO/BCE numbervat_id_number— Belgian VAT ID / VATINcredentials— Belgian fiscalization credentialsname— registered legal name and trade name of the company or individualaddress— registered legal address of the company or individual
Sending of e-invoices: recipient requirements
Section titled “Sending of e-invoices: recipient requirements”As described in the general integration guide, the recipient of an e-invoice is required to be a BUSINESS type and the invoicing block is required to be populated. For Belgium, this means setting invoicing.type = PEPPOL and invoicing.identifier to the recipient’s Peppol Network Identifier.
Without the invoicing block, the e-invoice cannot be transmitted via the Peppol network.
Receiving e-invoices
Section titled “Receiving e-invoices”fiskaly also receives e-invoices on your behalf over the Peppol network — you don’t need to run or maintain your own access point. Once your Taxpayer is publicly listed on the network, any business can address an invoice to it; fiskaly takes delivery and stores each one as a Record you can retrieve through the API.
Receiving is enabled by default when you create the E_INVOICE_SERVICE System: fiskaly registers your Taxpayer’s Peppol identifier on the network, with no extra configuration required to start receiving.
If your Taxpayer’s Peppol identifier already exists on the network, fiskaly automatically falls back to a sending-only registration — you can send e-invoices, but inbound documents won’t be routed to fiskaly.
Retrieving received invoices
Section titled “Retrieving received invoices”Every invoice addressed to your Taxpayer is received, validated, and stored automatically as a Record — there’s no webhook, so you poll for new ones:
- Call
listRecordsand filter forE_INVOICE::RECEPTION. - For each new Record, call
retrieveRecordwithcompliance-artifactto get the signed XML.
listRecords returns the most recent Records (limit defaults to 10, newest first), so track what you’ve already processed.