Kredietlimietpoort voor B2B-bestellingen en betalingsvoorwaarden per klant
Stel per-klantlimieten en -voorwaarden in en automatiseer een kredietlimietpoort voor B2B-bestellingen die risicovolle bestellingen pauzeert en voor beoordeling doorstuurt.

Wat een kredietlimietpoort oplost (in gewone taal)
B2B-bestellingen kunnen er op papier gezond uitzien en toch voor een kasprobleem zorgen. In tegenstelling tot kaartbetalingen betalen veel zakelijke klanten later. Als je blijft verzenden terwijl facturen zich opstapelen, kan één trage betaler ongemerkt een groot deel van je werkkapitaal binden.
Een kredietlimietpoort is een eenvoudige veiligheidscontrole voordat een bestelling volledig wordt geaccepteerd. Hij vergelijkt wat de klant al verschuldigd is (en wat ze op het punt staan te verschuldigen) met een afgesproken kredietlimiet. Als de nieuwe bestelling hen over de limiet zou duwen, wordt de bestelling niet voorgoed afgewezen. De bestelling wordt gepauzeerd voor beoordeling.
Een gehouden bestelling betekent meestal dat de bestelling wordt vastgelegd, maar dat belangrijke stappen worden geblokkeerd totdat iemand deze vrijgeeft. Je kunt nog steeds details met de koper bevestigen, en je kunt voorraad reserveren als dat je beleid is. Wat je doorgaans niet doet, is verzenden, factureren of permanent voorraad toewijzen totdat de hold is opgeheven.
Betalingsvoorwaarden veranderen het risico omdat ze bepalen hoe lang je geld vastzit. Vooruitbetaling is laag risico omdat het geld eerst binnenkomt. Net 30 kan prima zijn als bestedingen binnen de limiet blijven en facturen op tijd worden betaald. Net 60 (of aangepaste termen) vergroot de blootstelling voor een langere periode.
Een poort vermindert ook verwarring tussen teams omdat het de vraag "kunnen we dit verzenden?" omzet in een zichtbare, consistente status voor sales, finance en operations.
Definieer wat je per klant opslaat (limieten, voorwaarden, blootstelling)
De poort werkt alleen als het klantrecord een paar velden bevat waarop je backendregel kan vertrouwen. Houd de lijst kort en maak elke waarde makkelijk uit te leggen.
Begin met de kredietlimiet: het limietbedrag en de valuta waarin het is gedefinieerd. Als je in meerdere valuta's verkoopt, kies dan één regel en houd je eraan. Converteer alles naar een basisvaluta voordat je vergelijkt, of sla limieten per valuta op.
Sla vervolgens betalingsvoorwaarden op als gestructureerde data, niet als vrije tekst. Gebruik een duidelijk type (Vooruitbetaling, Betaling bij aflevering (COD), Net 15, Net 30, Net 60) en sla het aantal netdagen op wanneer relevant. Zo kan je bestel-logica vertakken zonder te moeten raden.
Een praktisch per-klant setje ziet er zo uit:
- Bedrag en valuta van de kredietlimiet
- Type betalingsvoorwaarden en netdagen (indien relevant)
- Een tijdelijke override-hoeveelheid (optioneel) met een vervaltijdstempel
- Een override-opmerking (waarom het werd toegekend en door wie)
- Een handmatige hold-schakelaar (een "stop"-knop)
Definieer "blootstelling" op een manier die past bij hoe je daadwerkelijk risico draagt. Veel teams nemen onbetaalde facturen plus openstaande bestellingen die nog niet betaald zijn, en soms lopende zendingen mee als je factureert na verzending.
Tot slot: houd een kleine set bestelstatussen zodat holds zichtbaar en actiegericht zijn. Bijvoorbeeld: Approved, On hold, Released, Cancelled.
Datamodel dat je nodig hebt voor limieten, voorwaarden en order-holds
Je datamodel moet drie vragen makkelijk te beantwoorden maken: wie koopt, op welke voorwaarden, en wat hebben ze al uitstaan.
Begin met een Klant-record dat de beslissingsinputs draagt: kredietlimiet, standaard betalingsvoorwaarden en een hold-beleid (bijvoorbeeld automatisch hold bij overschrijding, toestaan maar markeren, of checkout blokkeren).
Bestellingen moeten zowel de trigger als de uitkomst vastleggen. Sla betaalmethode, ordertotaal en een status op die "On hold" kan representeren zonder "Pending" te overladen. Voeg een hold-reden toe zodat mensen het verschil kunnen zien tussen "kredietlimiet overschreden" en andere problemen (zoals adresverificatie).
Een minimale schema bevat vaak:
- Customers: credit_limit, payment_terms_code, hold_policy, credit_status
- Orders: total_amount, payment_method, status, hold_reason, held_at
- Invoices / AR: invoice_total, open_balance, due_date, status (open/paid/void)
- Credit overrides: customer_id, override_amount_or_limit, expires_at, approved_by
- Audit log: entity_type, entity_id, changed_fields, changed_by, changed_at, note
Om blootstelling betrouwbaar te berekenen heb je debiteuren-data nodig (facturen of een externe synchronisatie) zodat onbetaalde saldi niet worden geschat op basis van bestellingen. Als je nog geen facturatie hebt, sla dan een "open balance" snapshot op het klantrecord en werk die bij vanuit geboekte betalingen.
Houd overrides in een aparte tabel. Dat voorkomt rommelige aanpassingen aan de hoofd-kredietlimiet en geeft je een goedkeuringsspoor.
Hoe kredietblootstelling en beschikbaar krediet te berekenen
De wiskunde moet worden afgesproken en opgeschreven, en vervolgens consistent in de app en financiële rapporten worden gebruikt.
Een veelgebruikte basis is:
Kredietblootstelling = onbetaalde facturen + waarde van openstaande bestellingen
Vervolgens:
Beschikbaar krediet = kredietlimiet - kredietblootstelling
Bepaal vooraf wat "waarde" betekent. Veel teams gebruiken producttotalen minus kortingen en beslissen expliciet of belasting en verzending worden meegerekend. Als je belasting en verzending meeneemt, worden holds eerder geactiveerd. Als je ze uitsluit, loop je het risico bestellingen goed te keuren die later over de limiet gaan zodra de factuur definitief is.
Een paar aanpassingen voorkomen verrassingen:
- Gedeeltelijke betalingen verminderen onbetaalde facturen alleen wanneer het geld daadwerkelijk is ontvangen (niet wanneer een betaling is "geïnitieerd").
- Creditnota's en terugbetalingen verminderen blootstelling alleen wanneer ze zijn uitgegeven en goedgekeurd voor gebruik.
- Geannuleerde bestellingen moeten onmiddellijk uit de open order-waarde verdwijnen.
- Retours verminderen meestal de blootstelling nadat de creditnota is goedgekeurd, niet wanneer de retouraanvraag wordt gedaan.
Timing is net zo belangrijk als de formule. Kies duidelijke updatepunten zodat de cijfers voorspelbaar zijn:
- Bij aanmaak van de bestelling of bij goedkeuring van de bestelling (kies één en wees consistent)
- Bij uitgifte van een factuur (verplaats waarde van open orders naar onbetaalde facturen)
- Bij boeken van een betaling (verminder blootstelling)
Als je in meerdere valuta's verkoopt, converteer blootstelling naar de kredietvaluta van de klant met een consistente koers (bijv. de dagkoers op factuurdatum). Als je parent-accounts of dochterondernemingen ondersteunt, beslis of limieten per juridische entiteit gelden of gedeeld worden over de groep en maak dat zichtbaar op het klantrecord.
Stap voor stap: bouw de backendregel die bestellingen in hold zet
De poort werkt het beste wanneer hij automatisch draait telkens wanneer een bestelling wordt aangemaakt of verandert.
-
Sla de bestelling eerst als concept op, zelfs als de koper met één klik indient. Leg klant-ID, ordertotaal, valuta en een snapshot van de betalingsvoorwaarden vast zodat latere bewerkingen aan het klantprofiel de geschiedenis niet herschrijven.
-
Haal de huidige blootstelling van de klant op (volgens jullie definitie). Bereken de geprojecteerde blootstelling door het nieuwe ordertotaal erbij op te tellen.
-
Pas een eenvoudige beslissing toe:
- Als de geprojecteerde blootstelling binnen de kredietlimiet valt, markeer de bestelling als Approved.
- Als de geprojecteerde blootstelling de limiet overschrijdt, zet de bestelling op On hold.
- Wanneer je de bestelling in hold zet, leg details vast die de beslissing later makkelijk uitlegbaar maken:
- Hold-reden (bijv. "Kredietlimiet overschreden met $2.450")
- Volgende actie-eigenaar (bijv. "AR-team" of een specifieke manager)
- Een auditrecord met de gebruikte inputs (limiet op dat moment, blootstellingscomponenten, wie de controle heeft getriggerd, tijdstempel)
- Hercontroleer blootstelling bij gebeurtenissen die de cijfers veranderen, niet alleen bij creatie. Gebruik triggers zoals bewerkingen die totalen veranderen, verzending (als verzending als verplichting wordt gezien), facturatie en het boeken van betalingen.
Goedkeuringen en meldingen zodat vastgezette bestellingen niet blijven hangen
Een hold is alleen nuttig als het leidt tot een snelle, traceerbare beslissing.
Bepaal wie een hold kan vrijgeven. Veel teams laten finance kredietbeslissingen nemen en een salesmanager als back-up voor urgente gevallen. Maak het expliciet met rollen en permissies, en registreer altijd wie heeft goedgekeurd (of afgewezen) en waarom.
Wat te tonen op het goedkeuringsscherm
Houd het scherm kort, maar voeg de cijfers toe die een goedkeurder nodig heeft:
- Kredietlimiet, huidige blootstelling, beschikbaar krediet
- Ordertotaal en hoeveel het over de limiet zou gaan
- Betaalvoorwaarden in het dossier en gevraagde voorwaarden (als deze verschillen)
- Een kleine set klantstatusnotities (bijv. "nieuw account" of "eens achterstallig")
- Een verplicht commentaarveld
Na de beslissing schrijf je een goedkeuringslog (order-ID, beslissing, goedkeurder, tijdstempel, opmerking). Dit wordt het auditspoor en helpt bij het verklaren van vertragingen.
Meldingen en tijdslimieten
Informeer de juiste mensen zodra een bestelling in hold gaat via kanalen die je team echt leest (e-mail, SMS of Telegram). Voeg herinneringen en escalatie toe zodat holds niet stil blijven. Een praktisch patroon is een herinnering na 2 uur, escalatie na 24 uur en auto-annulering na 72 uur als niemand de bestelling heeft beoordeeld.
Als een volledige vrijgave te risicovol is, sta dan voorwaardelijke vrijgaves toe (gedeeltelijke verzending, aanbetaling vereist, kortere betalingsvoorwaarden) en registreer de voorwaarde zodat fulfilment en facturatie hetzelfde plan volgen.
Operationele flow: wat gebeurt er nadat een bestelling in hold gaat
Behandel een gehouden bestelling als een normale bestelling met één duidelijk verschil: hij kan niet verder totdat de hold is opgelost.
Sales, ops en finance moeten allemaal hetzelfde holdsignaal zien. Gebruik een status zoals "On credit hold" plus een redenveld (bijv. "Blootstelling overschrijdt limiet met $1.240"). Voeg een korte interne notitie toe zodat mensen niet hoeven te raden.
Magazijnregels moeten strikt zijn: on-hold bestellingen worden niet verzameld, verpakt of toegewezen. Als je voorraad reserveert, reserveer die alleen na vrijgave, of gebruik een korte reserveringsperiode zodat een gehouden bestelling geen betaalde bestellingen blokkeert.
Voor klantcommunicatie, houd het bericht neutraal en praktisch met een duidelijke volgende stap. Bijvoorbeeld:
- "Uw bestelling is tijdelijk gepauzeerd voor een routine-accountcontrole. Reageer om betalingstiming te bevestigen of vraag om gedeeltelijke verzending."
- "We kunnen verzenden zodra betaling is ontvangen of de kredietlimiet is aangepast. Welke optie werkt het beste?"
- "We kunnen de bestelling splitsen en de artikelen verzenden die binnen uw beschikbare krediet passen."
Wanneer betaling binnenkomt, kies tussen automatische vrijgave en handmatige vrijgave. Auto-release werkt goed wanneer betalingen betrouwbaar overeenkomen met facturen. Handmatige vrijgave is veiliger wanneer betalingen gedeeltelijk of onduidelijk zijn. Een veelgebruikte middenweg is auto-release alleen wanneer betaling het achterstallige saldo volledig dekt; anders routeer naar finance.
Houd een paar metrics bij om de poort gezond te houden: aantal gehouden bestellingen, percentage vrijgegeven binnen 24 uur, gemiddelde tijd tot vrijgave en belangrijkste redenen voor holds.
Voorbeeldscenario: een groothandelsbestelling die de drempel overschrijdt
Een groothandelsklant, BrightSide Supplies, heeft Net 30 betalingsvoorwaarden en een kredietlimiet van 50.000.
Hun onbetaalde facturen bedragen 38.000. Ze plaatsen een nieuwe bestelling van 15.000.
Geprojecteerde blootstelling is 38.000 + 15.000 = 53.000. Omdat 53.000 boven de 50.000 limiet ligt, wordt de bestelling in hold geplaatst en doorgestuurd naar finance voor beoordeling. Sales kan de bestelling nog steeds zien, maar deze kan niet worden gepakt, verzonden of gefactureerd totdat het risico is verminderd.
Finance heeft gewoonlijk een paar opties: vraag een aanbetaling zodat de blootstelling onder de limiet daalt, verklein de bestelling zodat hij binnen het beschikbare krediet past, of keur een tijdelijke override goed met een vervaldatum en een redenopmerking.
Snelle checklist voordat je het inschakelt
Voordat je de poort in productie zet, doe een korte pre-flight check. Een paar uur testen kan dagen aan opruimwerk besparen.
Begin met een kleine, gevarieerde testset (5 tot 10 klanten): één met Net 30 en een lage limiet, één met een hoge limiet, één vooruitbetaald, één met meerdere openstaande facturen en één die vaak bestellingen na checkout bewerkt.
Verifieer twee dingen:
- De blootstellingswiskunde komt overeen met wat accounting verwacht (inclusief wat je wel en niet meet).
- De hold-regel draait op de juiste momenten: bij creatie van de bestelling en bij elke bewerking die de blootstelling vergroot (aantalwijziging, prijswijziging, verzending toegevoegd, korting verwijderd).
Loop één gehouden bestelling van begin tot eind door en bevestig dat de hold-reden duidelijk is, verzending en facturatie zich precies gedragen zoals bedoeld, meldingen naar de juiste mensen gaan en dat een terugboeking betaling veilig opnieuw kan holden (of markeren).
Veelvoorkomende fouten en hoe ze te vermijden
De meeste problemen zijn niet technisch. Ze ontstaan wanneer de regel het verkeerde getal controleert, of wanneer mensen leren hoe ze eromheen kunnen werken.
Veelvoorkomende fouten:
- Het volledige ordertotaal als "blootstelling" beschouwen in plaats van onbetaalde en gecommitteerde bedragen.
- Goedgekeurde bestellingen die nog niet zijn verzonden negeren, waardoor klanten meerdere grote bestellingen op één dag kunnen plaatsen voordat er een factuur bestaat.
- Wijzigingen toestaan na goedkeuring zonder de kredietcontrole opnieuw uit te voeren.
- Overrides toestaan zonder duidelijk auditspoor.
- Zoveel uitzonderingen toevoegen dat de poort optioneel wordt.
Houd preventie simpel: definieer blootstelling in één zin, voer de poort opnieuw uit bij elke geldwijzigende bewerking, vereist een reden en goedkeurder voor overrides en houd uitzonderingstypen kort.
Volgende stappen: implementeer de poort in je bestel-app en itereren
Begin met de kleinste versie die echt risico voorkomt: "Als de blootstelling na deze bestelling de kredietlimiet van de klant overschrijdt, zet de bestelling op On hold." Draai het een week en voeg uitzonderingen alleen toe wanneer je ze duidelijk kunt benoemen (bijv. tijdelijke overrides goedgekeurd door finance).
Als je de bestel-app bouwt zonder handmatig te coderen, kan AppMaster (appmaster.io) een praktische optie zijn: je kunt klanten, bestellingen, facturen en overrides visueel modelleren en de hold-logica implementeren als een backend businessproces dat blootstelling herberekent bij creatie, bewerking, facturatie en betalingen.
Houd de eerste release saai en voorspelbaar. Verbeter op basis van wat finance en ops elke dag daadwerkelijk zien.
FAQ
Een kredietlimietpoort is een automatische controle die een bestelling pauzeert wanneer de huidige schuld van de klant plus de nieuwe bestelling een afgesproken kredietlimiet zou overschrijden. Het doel is niet om verkoop definitief te weigeren, maar om verzending en facturering te stoppen totdat iemand het risico beoordeelt en beslist wat te doen.
De meeste teams definiëren blootstelling als onbetaalde facturen plus de waarde van openstaande bestellingen die nog niet gefactureerd of betaald zijn. Het belangrijkste is om één definitie op papier te zetten, finance ermee te laten instemmen en dezelfde berekening overal te gebruiken zodat goedkeuringen en rapporten overeenkomen.
Standaard is het verstandig om alles op te nemen wat op de factuur terechtkomt, omdat dit voorkomt dat bestellingen worden goedgekeurd en later de limiet overschrijden door toegevoegde belasting of verzending. Als belastingen en verzending sterk variëren, kun je ze uitsluiten, maar voeg dan een buffer toe of controleer opnieuw bij facturatie om verrassingen te voorkomen.
Run de controle wanneer de bestelling wordt aangemaakt en herhaal deze bij elke wijziging die kan verhogen wat de klant verschuldigd is, zoals wijziging van aantallen, prijswijzigingen, het verwijderen van kortingen of het toevoegen van verzending. Controleer ook opnieuw bij gebeurtenissen die waarde tussen buckets verplaatsen, zoals facturatie en het boeken van betalingen, zodat de status accuraat blijft.
Een hold moet de onomkeerbare stappen blokkeren: voornamelijk picken, verpakken, verzenden en factureren. Je kunt de bestelling wel registreren en met de koper communiceren; sommige teams reserveren voorraad, maar de veiligste standaard is om geen voorraad te reserveren totdat de hold is vrijgegeven of om reserveringen tijdsgebonden te maken.
Bewaar overrides gescheiden van de hoofdlimiet en eis een goedkeurder, een vervaltijd en een schriftelijke reden. Zo blijft de normale limiet schoon, zijn tijdelijke uitzonderingen makkelijk terug te draaien en is er een audittrail wanneer iemand vraagt waarom een bestelling werd toegestaan.
Stuur direct een melding wanneer een bestelling in hold gaat naar de mensen die kunnen handelen, meestal finance en een backup-manager. Voeg herinneringen en escalaties toe met duidelijke tijdsverwachtingen zodat holds niet stil blijven liggen, en overweeg een auto-cancel regel als niemand de bestelling binnen een bepaald venster beoordeelt.
Auto-release werkt goed wanneer betalingen betrouwbaar aan facturen worden gekoppeld en je kunt vertrouwen op het geboekte saldo, omdat het handmatig werk vermindert en de fulfilment versnelt. Handmatige vrijgave is veiliger wanneer betalingen gedeeltelijk, onduidelijk of vaak betwist zijn, omdat een persoon kan bevestigen wat daadwerkelijk is voldaan voordat verzending hervat wordt.
Als je later de betalingsvoorwaarden van de klant wijzigt, kan dat geschiedenis herschrijven en oude goedkeuringsbeslissingen moeilijk uitlegbaar maken. Een eenvoudige oplossing is om de voorwaarden en kredietinputs als snapshot op de bestelling vast te leggen bij creatie of goedkeuring, zodat de bestelling dezelfde beslissingscontext behoudt zelfs als het klantprofiel verandert.
Ja. Je kunt klanten, bestellingen, facturen en overrides modelleren als data-entiteiten en de poort implementeren als een backend businessproces dat blootstelling herberekent bij creatie, bewerking, facturatie en betalingen. Dit werkt goed als je consistente statussen, auditlogs en meldingen wilt zonder alles handmatig te hoeven coderen.


