Banktransacties importeren via CSV

Bankafschriften importeren via CSV
Bankafschriften importeren via CSV

Veel organisaties importeren banktransacties in Microsoft Dynamics 365 Business Central SaaS via CSV bestanden. Dat werkt snel en efficiënt, zeker wanneer een bank geen standaard CAMT.053-bestanden levert of wanneer je transacties uit een externe applicatie importeert. Toch ontstaat er vaak een probleem tijdens het afstemmen van banktransacties: de transactieomschrijving is niet altijd duidelijk genoeg om automatisch de juiste boeking te vinden.

In deze blog laat ik zien hoe je dit probleem kunt oplossen met een relatief eenvoudige AL-extensie. We bekijken eerst hoe CSV-importen werken binnen Business Central, welke problemen kunnen ontstaan bij automatische afstemming en hoe je met een event subscriber de transactieteksten verrijkt zodat Business Central veel beter in staat is transacties automatisch te herkennen.

Het probleem met banktransacties via CSV importeren

Wanneer je een bankafschrift importeert via een CSV-bestand, bevat iedere transactieregel meestal een beperkt aantal velden, zoals:

  • Datum
  • Bedrag
  • Transactieomschrijving
  • Naam verwante partij
  • Referentie

In de praktijk blijkt vooral het veld Transaction Text vaak onvoldoende informatief.

Neem bijvoorbeeld een betaling bij winkelketen Action in Veldhoven:

Action Veldhoven

In het CSV bestand staat echter:

1447 Veldhoven

Voor een mens is dat misschien nog te herkennen, maar voor Business Central is dat moeilijk. Het systeem weet niet dat “1447 Veldhoven” eigenlijk een betaling aan Action betreft.

Het gevolg is dat automatische afstemming minder goed werkt.

Waarom automatische afstemming afhankelijk is van herkenbare teksten

Het betalingsreconciliatiedagboek vergelijkt geïmporteerde banktransacties met openstaande posten in de administratie.

Daarbij gebruikt Business Central verschillende kenmerken:

  • Bedrag
  • Datum
  • Relatie
  • Betalingsreferentie
  • Omschrijving

Vooral de omschrijving speelt een belangrijke rol bij:

  • leveranciersbetalingen
  • periodieke kosten
  • winkeltransacties
  • privé-administraties
  • verenigingsadministraties

Wanneer een leverancier in de administratie bekend staat als “Action Nederland B.V.” maar de banktransactie alleen “1447 Veldhoven” bevat, mist Business Central een belangrijk herkenningspunt.

Daardoor daalt de automatische herkenningsgraad aanzienlijk.

Het voordeel van verrijkte transactieteksten bij het importeren van banktransacties via CSV

Stel dat we tijdens de import automatisch de omschrijving aanpassen.

1447 Veldhoven

Naar:

Action - 1447 Veldhoven

Hierdoor ontstaat een veel duidelijkere omschrijving die beter aansluit op betalingsregels en afstemmingslogica.

Het resultaat:

  • hogere automatische herkenning
  • minder handmatige aflettering
  • snellere verwerking van bankmutaties
  • minder fouten

Werken met een Event Subscriber

Business Central biedt verschillende events waarmee ontwikkelaars standaardfunctionaliteit kunnen uitbreiden zonder broncode aan te passen.

In dit voorbeeld wordt gebruikgemaakt van:

OnAfterInsertEvent

Dat betekent dat de code automatisch wordt uitgevoerd zodra een nieuwe regel in het betalingsreconciliatiedagboek wordt aangemaakt.

Hierdoor kunnen we direct na het importeren de transactietekst aanpassen voordat de gebruiker gaat afstemmen.

Opbouw van de oplossing

De extensie leest twee belangrijke velden uit:

RelatedPartyName := Rec."Related-Party Name";
TransactionText := Rec."Transaction Text";

De eerste variabele bevat de naam van de tegenpartij.

De tweede bevat de geïmporteerde omschrijving.

Vervolgens controleert de code of bekende patronen voorkomen in de transactietekst.

Voorbeeld: Action

De volgende controle zoekt naar de tekst:

1447 Veldhoven

Wanneer deze wordt gevonden, vervangt de code de tekst door:

Action - 1447 Veldhoven

Hierdoor wordt de transactie direct duidelijker.

Waarom een eigen ReplaceText-functie gebruiken bij importeren banktransacties via CSV?

In de extensie wordt een aparte functie gebruikt:

local procedure ReplaceText(...)

Deze functie zoekt naar een tekstdeel en vervangt alleen dat gedeelte.

Dat heeft meerdere voordelen:

  • overzichtelijke code
  • eenvoudig uit te breiden
  • herbruikbaar voor andere herkenningsregels

Wanneer later extra winkels worden toegevoegd, kan dezelfde functie opnieuw worden gebruikt.

Denk bijvoorbeeld aan:

  • Jumbo
  • Albert Heijn
  • Lidl
  • Kruidvat
  • Decathlon
  • Gamma

Zo ontstaat geleidelijk een steeds slimmer herkenningsmechanisme.

Gebruik van de naam van de verwante partij bij het importeren van banktransacties via CSV

Niet iedere transactie vereist een specifieke herkenningsregel.

Daarom bevat de extensie ook een generieke oplossing.

Wanneer de verwante partij beschikbaar is:

RelatedPartyName

wordt deze automatisch toegevoegd aan het begin van de transactietekst.

Bijvoorbeeld:

Oorspronkelijk

VELDHOVEN, 5508ME, NLD, 12:11

Na verwerking

Nuvoc kantine VELDHOVEN, 5508ME, NLD, 12:11

Dat levert veel meer context op tijdens het reconciliëren.

Voorkomen van dubbele teksten

Een belangrijk onderdeel van de oplossing is de controle op dubbele toevoegingen.

De code controleert eerst:

if StrPos(TransactionText, RelatedPartyName) > 0 then
exit;

Hiermee voorkomt de extensie dat dezelfde naam meerdere keren wordt toegevoegd.

Zonder deze controle zouden omschrijvingen kunnen ontstaan zoals:

Belastingdienst Belastingdienst Teruggaaf Motorrijtuigenbelasting

Dat zou juist voor meer verwarring zorgen.

Wanneer wordt de wijziging opgeslagen?

Zodra een wijziging nodig is, schrijft de extensie de aangepaste tekst terug naar het record.

Dat gebeurt met:

Rec."Transaction Text" := CopyStr(...);

Vervolgens wordt de wijziging opgeslagen:

Rec.Modify(false);

Hiermee worden de gegevens direct bijgewerkt zonder aanvullende gebruikersactie.

De gebruiker merkt daar vrijwel niets van, behalve dat transacties duidelijkere omschrijvingen krijgen.

Alternatieven voor een AL-extensie

Er zijn verschillende manieren om dit probleem op te lossen:

1. Payment Matching Rules

Business Central ondersteunt standaard betalingsafstemmingsregels.

Hiermee kun je zoeken op trefwoorden.

Nadeel is dat de tekst hiervoor vaak voldoende herkenbaar moet zijn. Bij omschrijvingen zoals “1447 Veldhoven” schiet deze methode tekort.

2. Aanpassen van het CSV-bestand

Je kunt de omschrijvingen vooraf verrijken voordat het bestand wordt geïmporteerd.

Dit vereist echter extra verwerking buiten Business Central.

3. Extensie in AL

De beschreven oplossing heeft meerdere voordelen:

  • volledig geïntegreerd
  • automatisch
  • onderhoudbaar
  • schaalbaar
  • geen handmatige tussenstappen

Voor veel organisaties is dit daarom de meest toekomstbestendige aanpak.

Uitbreidingsmogelijkheden

De beschreven extensie vormt een goede basis maar kan verder worden uitgebreid.

Denk bijvoorbeeld aan:

  • herkenning van supermarktketens
  • tankstations
  • webwinkels
  • verzekeraars
  • energieleveranciers
  • telecomproviders

Ook kan een aparte configuratietabel worden ontwikkeld waarin gebruikers zelf herkenningsregels beheren zonder dat nieuwe software gepubliceerd hoeft te worden.

Dan ontstaat bijvoorbeeld een tabel met:

ZoektekstVervang door
1447 VeldhovenAction – 1447 Veldhoven
BCK*Warenhuis Witte VeHema
AH To GoAlbert Heijn To Go
Jumbo Valkenswrd WaaJumbo Valkenswaard

Daardoor wordt de oplossing nog flexibeler.

Conclusie banktransacties importeren via CSV

Het importeren van bankafschriften via CSV-bestanden in Business Central SaaS is dus een praktische oplossing wanneer geen gebruik wordt gemaakt van standaard bankkoppelingen. De kwaliteit van het afstemmingsproces hangt dus echter sterk af van de informatie die in de transactieteksten beschikbaar is.

Wanneer banken of betalingsproviders cryptische omschrijvingen aanleveren, daalt de effectiviteit van automatische afstemming aanzienlijk. Met een relatief eenvoudige AL-extensie op de tabel Bank Acc. Reconciliation Line kun je deze omschrijvingen automatisch verrijken. Specifieke herkenningsregels voor winkels zoals Action en HEMA, gecombineerd met het toevoegen van de naam van de verwante partij, zorgen voor veel betere herkenbaarheid van transacties.

Het resultaat is dus een hoger percentage automatisch afgestemde transacties, minder handmatig werk en een efficiënter reconciliatieproces. Voor organisaties die regelmatig CSV-bankbestanden verwerken in Business Central SaaS kan deze aanpak een verrassend groot verschil maken in de dagelijkse administratie.

Wil je meer weten over dit onderwerp. Kijk dan hier. Wil je contact opnemen met mij, klik dan hier.

0 Shares:
You May Also Like