Mercator 10.0 of hoger is "Peppol-compatibel" en laat dus ons toe om facturen uit het commercieel beheer te verzenden in een elektronisch formaat
XML > UBL (Invoice/Credit Note) > EN16931 > BIS 3.0 Billing
Om te beschikken over deze functionaliteit, moet men kolom C_EINVOICE1 char(30) in de tabel CLI toevoegen.
alter table CLI add C_EINVOICE1 char(30) not null default ''
Daarna volstaat het om de klantenfiche aan te passen en een ComboBox toe te voegen die dit veld gebruikt als bron. Mercator voegt automatisch volgend element toe in het menu "Bestand".

Dit menu laat ons toe om facturen te verzenden indien er aan de volgende voorwaarden werd voldaan.
- Het veld C_EINVOICE1 voor de huidige klant bevat BIS3 via Peppol
- De factuur/credit nota is reeds opgeslagen en is dus zeker genummerd.
Het BTW-regime is niet gelijk aan "BTW inbegrepen" (het BTW-nummer van de klant moet vervolledigd worden).- Het document heeft geen korting op hoofdingsniveau
- De referenties zijn volledig
- Een afdrukmodel met minstens één PDF-duplicaat is opgenomen in het XML-bestand.
- De bankrekening van de afzender wordt weergegeven in het veld "Bank" van het menu "Tools > Identificatie" onder de vorm van IBAN:BIC
Sinds versie 12 van Mercator is het mogelijk om een factuur te versturen in een "BTW-inbegrepen" regime. Deze factuur mag echter geen disconto bevatten. (Deze beperking met betrekking tot disconto geldt niet voor facturen met het regime “Normaal”, “Intracommunautair”, “Import/Export” of “Medecontractant”.) De prijzen in het XML-bestand worden daarentegen exclusief BTW uitgedrukt, omdat het formaat dit vereist.
De berekeningslogica die door de Peppol-norm wordt opgelegd, is uitsluitend gebaseerd op de optelling van de bedragen exclusief BTW, met de BTW die vervolgens wordt toegevoegd (zoals bij het normale BTW regime van Mercator). In het regime "BTW-inbegrepen" telt Mercator eerst de bedragen inclusief BTW op en leidt daaruit vervolgens de BTW bedragen af. Dit kan aanleiding geven tot afrondingsverschillen. In dat geval voegt Mercator in de lijnen van het XML-bestand een lijn toe met de vermelding "Afrondingsverschil op de opgestelde factuur BTW incl.", het verschilbedrag en 0% BTW.
Een factuur die via Peppol is verzonden, herkent u aan dit pictogram in de klantgeschiedenis.

Een bestand aangemaakt door Mercator is toevertrouwd aan een provider alvorens het geleverd wordt aan de ontvanger via het Peppol-netwerk. Om over deze functionaliteit te beschikken moet je:
- de PEPPOL optie in de Mercator-voucher hebben
de optie "Peppol-toegangsprovider" op Digiteal zetten (id = PEPPOL_PRV)- de informatie invullen in "Tools > Setup > Peppol identificatie". Dit maakt het mogelijk om automatisch de inschrijving in het Peppol-netwerk uit te voeren.
- In dit scherm worden de velden "Peppol ID" automatisch ingevuld op basis van het btw-nummer en het land. Ze kunnen niet worden gewijzigd.
- Als tijdens de registratie een of meer Peppol-ID's een fout opleveren, moet u contact opnemen met de Mercator-support die een handmatige registratie zal uitvoeren.
Opmerkingen :
- In dit scherm valideert u het btw-nummer met de Enter-toets om automatisch de PeppolId(s) te genereren.
- Deze inschrijving is definitief. Het is noodzakelijk vooraf te bepalen of de documenten al dan niet in Mercator zullen worden ontvangen. Indien dat niet het geval is, moet u “Enkel verzenden” aanvinken.
Deze functionaliteit maakt de overdracht van bestanden volledig transparant voor de gebruiker.
Standaard produceert Mercator een bestand conform met de hieronder beschreven normen. Het biedt een basis van mogelijkheden:
- Indien de leverklant gebruikt wordt (ID_CLI_LIV) en verschillend is van de facturatieklant, zal Mercator een blok "cac:Delivery" plaatsen met het adres van de leverklant.
- Voor een factuur, wordt het veld "Referentie" gebruikt om het veld "cac:OrderReference" aan te vullen (purchase order no - bestelnummer).
- Voor een creditnota wordt veld "cac:InvoiceDocumentReference" als referentie gebruikt, dit verwijst naar de referentie van de factuur waarop de credit nota betrekking heeft.
- De volgende regimes zijn gekend: Normaal, vrijgesteld, medecontractant en intracommunautair, en worden correct verwerkt wat betreft het uitwisselen van de BTW-informatie.
- De verschillende PDF-duplicaten uit Mercator worden toegevoegd als "cbc:EmbeddedDocumentBinaryObject". Het is verplicht om minstens één PDF-duplicaat toe te voegen.
- De OGM die eventueel gekoppeld is aan een factuur wordt gebruikt als "cbc:InstructionID" en "cbc:PaymentID"
- Verzendkosten kunnen afzonderlijk vermeld worden als "cac:Allowancecharge" in de header. Hiervoor moet men de optie EINV_PORT aanvullen met het S_ID van het artikel "Verzendkosten".
- Een korting wordt behandeld als "cac:AllowanceCharge" in de header.
- De kortingen op lijnniveau worden beheerd als "cac:AllowanceCharge", inclusief optionele kortingen 2, 3 en 4.
- De serienummers en lotnummers zijn meegenomen in het blok "cac:ItemInstance"
Het is essentieel om goed te begrijpen dat al het personalisatiewerk van het document uitgevoerd in het afdrukmodel ook zal moeten toegepast worden in het elektronisch model. Zoals bij een geprinte factuur zal dit gedaan worden in de customizer van Mercator. Hiervoor beschikt de BillingEngine over 3 events:
- EinvNodeAdding: tijdens het toevoegen van elke node in de XML-structuur. Door de property e.Cancel op true te plaatsen, hebben we de mogelijkheid om een node niet toe te voegen.
- EinvNodeAdded: wanneer een node toegevoegd wordt aan de XML-tree
- EinvFileCreating: wanneer de gehele XML-tree klaar is net alvorens het XML-bestand gegenereerd wordt. De property e.FileName laat ons toe om de naam van het bestand dat geproduceerd zal worden te wijzigen.
De geproduceerde bestanden moeten voldoen aan de standaard-normen die gesteld zijn door Peppol: zie het toepasselijk document voor facturen.
We tonen op deze pagina enkele voorbeeld-instellingen.
De code hieronder kan in een knop op het scherm van de facturen/credit nota’s geplaatst worden. Dit laat ons toe om de status van het verzenden van het huidig document te bekomen.
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorController;
using System.Windows.Forms;
using MercatorExtensions;
using MercatorUi;
using System.Data.SqlClient;
// <CompileWithRoslyn />
namespace MercatorUi.MovableControls.ButtonsCodes
{
public static class Script
{
public static void Exec(MercatorUi.MovableControls.MovableButton clickedButton)
{
// enter your customized code here
Forms.Billing.BillingForm billingForm = (Forms.Billing.BillingForm)clickedButton.Form;
string peppol_response = Api.StrExtract(billingForm.BillingEngine.PiedsVRecord.PEPPOL_RESPONSE, "<Digiteal>", "</Digiteal>");
if (peppol_response == "")
{
MercatorUi.Dialogs.Stop("Dit document is nooit naar het Peppol-netwerk gestuurd!");
return;
}
MercatorPeppol.CreatePeppolInvoiceResponse createPeppolInvoiceResponse = Api.JsonConvertDeserializeObject<MercatorPeppol.CreatePeppolInvoiceResponse>(peppol_response);
Dialogs.Stop("Id = " + createPeppolInvoiceResponse.Id
+ "\r\n" + createPeppolInvoiceResponse.Moment.ToShortDateString() + " " + createPeppolInvoiceResponse.Moment.ToShortTimeString());
}
}
}