Leer hoe je een webapp plant, ontwerpt en bouwt voor marktplaatsgeschillen: case‑intake, bewijs, workflows, rollen, audittrail, integraties en rapportage.

Een geschillenapp is niet zomaar een “supportformulier met een status.” Het is het systeem dat bepaalt hoe geld, goederen en vertrouwen door je marktplaats bewegen als er iets misgaat. Voordat je schermen of tabellen uittekent, definieer je de probleemruimte duidelijk—anders bouw je een tool die makkelijk te gebruiken is maar moeilijk af te dwingen.
Begin met het opsommen van de geschilstypen die je daadwerkelijk moet afhandelen en hoe ze van elkaar verschillen. Veelvoorkomende categorieën zijn:
Elk type vereist vaak ander bewijs, andere tijdvensters en verschillende uitkomsten (terugbetaling, vervanging, gedeeltelijke terugbetaling, terugdraaien van uitbetaling aan verkoper). Behandel het geschilstype als workflow‑stuurder—niet als een eenvoudige label.
Geschilafhandeling concurreert meestal op snelheid, consistentie en verliesbeperking. Noteer wat succes voor jullie betekent:
Deze doelen beïnvloeden alles, van welke data je verzamelt tot welke acties je automatiseert.
De meeste marktplaatsen hebben meer dan alleen “klantenservice”. Typische gebruikers zijn kopers, verkopers, supportmedewerkers, admins en finance/risk. Elke groep heeft een andere weergave nodig:
Een sterke v1 richt zich meestal op: case‑aanmaak, bewijsverzameling, messaging, deadline‑tracking en het vastleggen van een beslissing met een audittrail.
Latere releases kunnen toevoegen: geautomatiseerde terugbetalingsregels, fraudesignalen, geavanceerde analytics en diepere integraties. Een strakke scope vroeg houden voorkomt een “doe‑alles” systeem dat niemand vertrouwen.
Als je snel beweegt, kan het helpen om de workflow end‑to‑end te prototypen voordat je aan een volledige bouw vastlegt. Teams gebruiken bijvoorbeeld soms Koder.ai (een vibe‑coding platform) om snel een interne React admin dashboard + Go/PostgreSQL backend te genereren vanuit een chatgedreven specificatie, en daarna de broncode te exporteren zodra de kernstatussen en permissies goed aanvoelen.
Een geschillenapp slaagt of faalt op basis van of hij weerspiegelt hoe geschillen werkelijk door je marktplaats bewegen. Begin met het in kaart brengen van de huidige reis end‑to‑end, en zet die kaart om in een klein aantal staten en regels die het systeem kan afdwingen.
Schrijf het “happy path” als een tijdlijn: intake → bewijsverzameling → beoordeling → beslissing → uitbetaling/terugbetaling. Noteer voor elke stap:
Dit wordt de ruggengraat voor automatisering, herinneringen en rapportage.
Houd staten onderling exclusief en makkelijk te begrijpen. Een praktisch uitgangspunt:
Voor elke staat definieer je toegangseisen, toegestane overgangen en verplichte velden voordat je verdergaat. Dat voorkomt vastgelopen cases en inconsistente uitkomsten.
Koppel deadlines aan staten (bijv. verkoper heeft 72 uur om tracking te leveren). Voeg automatische herinneringen toe en bepaal wat er gebeurt als de tijd om is: auto‑sluiten, standaardbeslissing of escalatie naar handmatige beoordeling.
Modelleer uitkomsten apart van staten zodat je kunt bijhouden wat er daadwerkelijk is gebeurd: refund, gedeeltelijke refund, vervanging, fondsen vrijgeven, accountbeperking/verbod, of goodwill‑krediet.
Geschillen worden rommelig. Voeg paden toe voor ontbrekende tracking, gesplitste zendingen, bewijs voor levering van digitale goederen en orders met meerdere items (itemniveau‑beslissingen vs hele orderbeslissingen). Deze vertakkingen vroeg ontwerpen voorkomt éénmalige handelingen die later consistentie breken.
Een geschillenapp slaagt of faalt op basis van of het datamodel aansluit op echte vragen: “Wat is er gebeurd?”, “Wat is het bewijs?”, “Wat besloten we?” en “Kunnen we later een audittrail tonen?” Begin met een klein aantal kernentiteiten en wees strikt over wat mag veranderen.
Minimaal modelleer:
Houd “Dispute” gefocust: het moet verwijzen naar order/payment, status, deadlines en pointers naar bewijs en beslissingen.
Behandel alles wat later verdedigbaar moet zijn als append‑only:
Sta alleen bewerkingen toe voor operationeel gemak:
Deze scheiding is het makkelijkst met een audittrail tabel (eventlog) plus huidige “snapshot” velden op de case.
Definieer strikte validatie vroeg:
Plan bewijsopslag: toegestane bestandstypes, limieten voor bestandsgrootte, virus‑scanning en retentieregels (bijv. automatisch verwijderen na X maanden indien beleid dat toestaat). Sla bestandsmetadata op (hash, uploader, tijdstempel) en houd de blob in object storage.
Gebruik een consistente, mensleesbare case‑ID‑schema (bijv. DSP-2025-000123). Indexeer doorzoekbare velden zoals order ID, koper/verkoper ID's, status, reden, bedragscategorie en belangrijke datums zodat agenten snel cases vinden in de wachtrij.
Geschillen betreffen meerdere partijen en risicovolle data. Een helder rollenmodel vermindert fouten, versnelt beslissingen en helpt compliance‑verwachtingen te halen.
Begin met een kleine, expliciete set rollen en koppel ze aan acties—niet alleen aan schermen:
Gebruik least‑privilege als standaard en voeg “break glass” toegang alleen toe voor gecontroleerde, geauditeerde noodsituaties.
Voor personeel ondersteun SSO (SAML/OIDC) zodat toegang de HR‑levenscyclus volgt. Vereis MFA voor bevoegde rollen (supervisor, finance, admin) en voor acties die geld of een definitieve beslissing veranderen.
Sessiebeheer is belangrijk: kortlopende tokens voor staff tools, apparaatgebonden refresh waar mogelijk en automatische uitlog voor gedeelde werkstations.
Scheid “case feiten” van gevoelige velden. Pas veldniveau‑permissies toe voor:
Mask standaard in de UI en logs. Als iemand toegang nodig heeft, registreer waarom.
Houd een onveranderlijk auditlog bij voor gevoelige acties: beslissingswijzigingen, refunds, vasthouden van uitbetalingen, bewijsverwijdering, permissiewijzigingen. Inclusief timestamp, actor, oude/nieuwe waarden en bron (API/UI).
Voor bewijs definieer toestemmings‑ en delingsregels: wat de andere partij kan zien, wat intern blijft (bijv. fraudesignalen) en wat gedeeltelijk geredigeerd moet worden voordat het gedeeld wordt.
Een geschillen‑tool leeft of sterft op snelheid: hoe snel een agent een case kan triëren, begrijpen wat er gebeurde en een veilige actie kan uitvoeren. De UI moet duidelijk maken “wat nu aandacht nodig heeft”, en tegelijk gevoelige data en onomkeerbare beslissingen moeilijk per ongeluk te activeren maken.
Je caselijst moet zich gedragen als een operatiesturing, niet als een generieke tabel. Voeg filters toe die overeenkomen met hoe teams werken: status, reden, bedrag, leeftijd/SLA, verkoper en risicoscore. Voeg opgeslagen weergaven toe (bijv. “Nieuwe high‑value”, “Overdue”, “Wacht op koper”) zodat agenten niet elke dag filters hoeven te herbouwen.
Maak rijen scanbaar: case ID, status‑chip, dagen open, bedrag, partij (koper/verkoper), risicoindicator en de volgende deadline. Houd sortering voorspelbaar (standaard op urgentie/SLA). Bulkacties zijn handig, maar beperk ze tot veilige handelingen zoals toewijzen of tags toevoegen.
De case‑detailpagina moet binnen enkele seconden drie vragen beantwoorden:
Een praktisch ontwerp is een tijdlijn in het midden (events, statuswijzigingen, betalingen/verzendingssignalen), met een rechterzijpaneel snapshot voor order/betaalcontext (ordertotaal, betaalmethode, verzendstatus, refunds/chargebacks, sleutel‑ID's). Houd diepe links naar gerelateerde objecten (order, betaling, verzending) als relatieve routes zoals /orders/123 en /payments/abc.
Voeg een berichten‑gebied en een bewijsgalerij toe die snelle preview ondersteunt (afbeeldingen, PDF's) plus metadata (wie ingediend, wanneer, type, verificatiestatus). Agenten moeten niet hoeven zoeken naar bijlagen om de laatste update te begrijpen.
Beslissingsacties (refund, deny, vraag meer info, escalate) moeten onmiskenbaar zijn. Gebruik bevestigingen voor onomkeerbare stappen en vereis gestructureerde inputs: een verplichte notitie, reden‑code en optionele beslissingssjablonen voor consistente formulering.
Scheid samenwerkingskanalen: interne notities (alleen agenten, handoffs) versus externe berichten (koper/verkoper zichtbaar). Voeg toewijzingscontroles en een zichtbare “huidige eigenaar” toe om dubbele werkzaamheden te voorkomen.
Ontwerp voor toetsenbordnavigatie, leesbaar contrast en screenreader‑labels—vooral op actiekoppen en formuliervelden. Mobiele weergaven moeten de snapshot, laatste bericht, volgende deadline en één‑tap route naar de bewijsgalerij prioriteren voor snelle controles tijdens bereikbaarheidsdiensten.
Geschillen zijn grotendeels communicati eproblemen met een timer eraan vast. Je app moet duidelijk maken wie wat moet doen, wanneer en via welk kanaal—zonder mensen door e‑mailthreads te laten zoeken.
Gebruik in‑app messaging als de bron van waarheid: elk verzoek, antwoord en bijlage moet op de casetijdlijn staan. Spiegel daarna belangrijke updates via e‑mailmeldingen (nieuw bericht, bewijs gevraagd, naderende deadline, beslissing uitgegeven). Als je SMS toevoegt, beperk het tot tijdkritische aanmaningen (bijv. “Deadline over 24 uur”) en vermijd gevoelige details.
Maak berichtsjablonen voor veelvoorkomende verzoeken zodat agenten consistent blijven en gebruikers weten wat “goed bewijs” is:
Sta placeholders toe zoals order ID, datums en bedragen, plus een korte “menselijke bewerk‑area” zodat antwoorden niet robotachtig aanvoelen.
Elk verzoek moet een deadline genereren (bijv. verkoper heeft 3 werkdagen om te reageren). Toon die prominent op de case, stuur automatische herinneringen (48u en 24u) en definieer duidelijke uitkomsten bij niet‑reactie (bijv. auto‑sluiten, auto‑refund of escaleren).
Als je meerdere regio's bedient, sla berichtinhoud op met een taletiket en bied gelokaliseerde sjablonen. Om misbruik te voorkomen, voeg rate limits per case/gebruiker toe, limieten voor bijlagegrootte/type, virus‑scanning en veilige rendering (geen inline HTML, sanitize bestandsnamen). Houd een audittrail bij van wie wat en wanneer heeft gestuurd.
Bewijs is waar de meeste geschillen gewonnen of verloren worden; behandel het daarom als een kernworkflow, niet als een stapel bijlagen.
Begin door de bewijstypes te definiëren die je verwacht bij veelvoorkomende marktplaatsgeschillen: trackinglinks en bezorgscans, foto’s van verpakking of schade, facturen/bonnen, chatlogs, retourlabels en interne notities. Expliciete types helpen bij validatie, gestandaardiseerde beoordeling en latere rapportage.
Vermijd generieke “upload alles” prompts. Genereer in plaats daarvan gestructureerde bewijsverzoeken vanuit de reden van het geschil (bijv. “Item niet ontvangen” → carrier tracking + bewijs van levering; “Niet zoals beschreven” → snapshot van productpagina + koperfoto’s). Elk verzoek moet bevatten:
Dit vermindert heen‑en‑weer en maakt cases vergelijkbaar tussen beoordelaars.
Behandel bewijs als gevoelige records. Voor elke upload sla op:
Deze controles bewijzen niet of de inhoud waar is, maar wel of het bestand na indiening gewijzigd is en wie ermee omging.
Geschillen belanden vaak in externe beoordeling (payment processor, vervoerder, arbitrage). Bied een één‑klik export die sleutelbestanden bundelt plus een samenvatting: casefeiten, tijdlijn, ordermetadata en een bewijsindex. Houd het consistent zodat teams erop kunnen vertrouwen onder tijdsdruk.
Bewijs kan persoonsgegevens bevatten. Implementeer retentieregels per geschilstype en regio, plus een getraceerd verwijderingsproces (met goedkeuringen en auditlogs) wanneer dat wettelijk vereist is.
Beslissingen zijn het punt waarop een geschillenapp vertrouwen opbouwt of juist meer werk creëert. Het doel is consistentie: vergelijkbare cases krijgen vergelijkbare uitkomsten en beide partijen begrijpen waarom.
Begin met policies als leesbare regels, niet als juridisch proza. Voor elke reden (item niet ontvangen, beschadigd, niet zoals beschreven, ongeautoriseerde betaling, enz.) documenteer:
Versieer deze policies zodat je beslissingen onder oudere regels kunt uitleggen en “policy drift” vermindert.
Een goed beslisscherm duwt beoordelaars richting complete, verdedigbare uitkomsten.
Gebruik checklists per reden die automatisch in de caseweergave verschijnen (bijv. “carrier scan aanwezig”, “foto toont schade”, “vermelding beloofde X”). Elk checklistitem kan:
Dit creëert een consistente audittrail zonder iedereen vanaf nul te laten schrijven.
Besluitvorming moet financiële impact berekenen, niet overlaten aan spreadsheets. Sla op en toon:
Maak duidelijk of het systeem de terugbetaling automatisch uitvoert of een taak genereert voor finance/support (vooral bij gesplitste betalingen of deels vastgelegde bedragen).
Beroepen verminderen frustratie als er nieuwe informatie komt—maar ze kunnen ook oneindige lussen veroorzaken.
Definieer: wanneer beroepen zijn toegestaan, wat “nieuw” bewijs betekent, wie beoordeelt (bij voorkeur een andere reviewer), en hoeveel pogingen zijn toegestaan. Bij beroep vries de originele beslissing in en maak een gekoppeld appeal‑record zodat rapportage onderscheid kan maken tussen initiële en definitieve uitkomsten.
Elke beslissing genereert twee berichten: één voor de koper en één voor de verkoper. Gebruik duidelijke taal, som het belangrijkste bewijs op en vermeld de volgende stappen (inclusief beroepsmogelijkheid en deadlines). Vermijd jargon en verwijten—focus op feiten en beleid.
Integraties maken van een geschillenhulpmiddel een systeem dat feiten kan verifiëren en veilig uitkomsten kan uitvoeren. Begin met het opsommen van externe systemen die de realiteit bepalen: ordermanagement (wat is besteld), betalingen (wat is vastgelegd/terugbetaald), vervoerders (wat is geleverd) en je e‑mail/SMS‑provider (wat is gecommuniceerd en wanneer).
Voor tijdkritische wijzigingen—zoals chargeback‑alerts, refundstatus of ticketupdates—geef de voorkeur aan webhooks. Ze verminderen vertraging en houden de casetijdlijnen accuraat.
Gebruik geplande sync wanneer webhooks niet beschikbaar of onbetrouwbaar zijn (vaak bij vervoerders). Een praktisch hybride model is:
Wat je ook kiest, sla de “laatst bekende externe status” op de case en bewaar de ruwe payload voor audit en debugging.
Financiële acties moeten herhaalveilig zijn. Netwerkretries, dubbelklikken en herlevering van webhooks kunnen anders dubbele refunds veroorzaken.
Maak elke geldbeïnvloedende call idempotent door:
case_id + decision_id + action_type)Dit patroon geldt ook voor gedeeltelijke refunds, voids en fee‑reversals.
Als iets niet matcht (een refund staat op “pending” of een bezorgscan ontbreekt), heeft je team inzicht nodig. Log elk integratieevent met:
Toon een lichte “Integrations” tab in de case‑detailweergave zodat support zelf kan debuggen.
Plan veilige omgevingen vanaf dag één: payment processor sandbox, testtrackingnummers van vervoerders (of gemockte responses) en e‑mail/SMS “testontvangers.” Voeg een zichtbare “testmode” banner toe in niet‑productie zodat QA nooit per ongeluk echte refunds triggert.
Als je admin‑tools bouwt, documenteer vereiste credentials en scopes op een interne pagina zoals /docs/integrations zodat setup herhaalbaar is.
Een geschillenbeheersysteem groeit snel voorbij “een paar schermen.” Je voegt bewijsuploads, betaalopvragingen, deadlineherinneringen en rapportage toe—dus de architectuur moet saai en modulair blijven.
Voor v1 geef prioriteit aan wat je team al kent. Een conventionele setup (React/Vue + een REST/GraphQL API + Postgres) is meestal sneller te leveren dan het uitproberen van nieuwe frameworks. Het doel is voorspelbare levering, niet nieuwigheid.
Als je de eerste iteratie wilt versnellen zonder je vast te leggen in een black box, kan een platform zoals Koder.ai nuttig zijn om een werkende React + Go + PostgreSQL basis te genereren vanuit een geschreven workflowspec, met de optie om later de broncode te exporteren en volledige eigendom te nemen.
Houd duidelijke grenzen tussen:
Deze scheiding maakt het makkelijker om specifieke onderdelen op te schalen (zoals achtergrondverwerking) zonder de hele case management webapp te herschrijven.
Bewijsverwerking en verificatie omvat vaak virus‑scanning, OCR, bestandsconversies en externe API‑calls. Exports en geplande herinneringen kunnen ook zwaar zijn. Zet deze taken achter een queue zodat je UI snel blijft en gebruikers acties niet opnieuw hoeven in te dienen. Houd jobstatus op de case bij zodat operators zien wat in behandeling is.
Casewachtrijen leven en sterven door zoeken. Ontwerp filtering op status, SLA/deadlines, betaalmethode, risicovlags en toegewezen agent. Voeg indexen vroeg toe en overweeg full‑text search alleen als basisindexering niet voldoende is. Ontwerp ook paginatie en “opgeslagen weergaven” voor veelvoorkomende workflows.
Definieer staging en production vanaf het begin, met seeddata die echte geschilscenario's nabootst (chargeback‑workflow, refundautomatisering, beroepen). Gebruik versieerbare migraties, featureflags voor risicovolle wijzigingen en een rollback‑plan zodat je vaak kunt deployen zonder actieve cases te breken.
Als je team snelle iteratie wil, kunnen features zoals snapshots en rollback (beschikbaar in platforms zoals Koder.ai) een nuttige aanvulling zijn op traditionele releasecontrols—vooral terwijl workflows en permissies nog evolueren.
Een geschillenbeheersysteem wordt beter wanneer je snel kunt zien wat er gebeurt over cases heen. Rapportage is niet alleen voor managers; het helpt agenten te prioriteren, managers operationeel risico te spotten en het bedrijf beleid aan te passen voordat kosten oplopen.
Volg een klein aantal actiegerichte KPI's en maak ze overal zichtbaar:
Agenten hebben een operationeel zicht nodig: “Wat moet ik nu doen?” Bouw een wachtrij‑stijl dashboard dat SLA‑schendingen, naderende deadlines en “ontbrekend bewijs” benadrukt.
Managers hebben patroonherkenning nodig: pieken in specifieke redencodes, risicovolle verkopers, ongebruikelijke refundbedragen en dalende winrates na policywijzigingen. Een eenvoudige week‑op‑week weergave is vaak effectiever dan een te uitgebreide grafiekpagina.
Ondersteun CSV‑exports en geplande rapporten, maar zet er waarborgen omheen:
Analytics werkt alleen als cases consistent gelabeld zijn. Gebruik gecontroleerde redencodes, optionele tags (vrij formaat maar genormaliseerd) en validatieprompts wanneer agenten een case willen sluiten met “Other.”
Behandel rapportage als een feedbackloop: bespreek maandelijkse topverliesoorzaken, pas bewijschecklists aan, verfijn auto‑refunddrempels en documenteer veranderingen zodat verbetering zichtbaar is in volgende cohorten.
Het uitrollen van een geschillenbeheersysteem gaat minder over perfecte UI‑polish en meer over weten dat het zich correct gedraagt onder stress: ontbrekend bewijs, late reacties, betaal‑edgecases en strikte toegangscontrole.
Schrijf testcases die echte flows end‑to‑end volgen: open → bewijs gevraagd/ontvangen → beslissing → uitbetaling/refund/vasthouden. Voeg negatieve paden en tijdgebaseerde overgangen toe:
Automatiseer deze met integratietests rond je API's en achtergrondjobs; houd een kleine set handmatige scripts voor UI‑exploratie.
RBAC‑fouten hebben grote impact. Bouw een permissietestmatrix voor elke rol (koper, verkoper, agent, supervisor, finance, admin) en verifieer:
Geschillenapps hangen af van jobs en integraties. Voeg monitoring toe voor:
Bereid een intern runbook voor met veelvoorkomende problemen, escalatiepaden en handmatige overrides (case heropenen, deadline verlengen, refund correctie, bewijs opnieuw vragen). Rol daarna gefaseerd uit:
Als je snel iterereert, kan een gestructureerde “planning mode” (zoals beschikbaar in Koder.ai) helpen stakeholders af te stemmen op staten, rollen en integraties voordat je wijzigingen naar productie brengt.
Begin met het definiëren van geschilstypen (item niet ontvangen, niet conform/beschadigd, fraude/ongeautoriseerde aankoop, chargebacks) en koppel elk type aan verschillende bewijsvereisten, tijdvensters en uitkomsten. Behandel het geschilstype als sturingsfactor van de workflow zodat het systeem consistente stappen en deadlines kan afdwingen.
Een praktisch v1 bevat meestal: case‑aanmaak, gestructureerde bewijsverzameling, in‑app messaging die naar e-mail gespiegeld wordt, SLA‑deadlines met herinneringen, een basale agentenwachtrij en het vastleggen van beslissingen met een onveranderlijke audittrail. Stel geavanceerde automatisering (fraude‑scoring, auto‑refundregels, complexe analytics) uit totdat de kernworkflow vertrouwd is.
Gebruik een kleine, onderling exclusieve set zoals:
Voor elke staat definieer je toelatingscriteria, toegestane overgangen en vereiste velden voordat je verder gaat (bijv. je kunt niet in “Under review” komen zonder het vereiste bewijs voor die reden).
Stel deadlines per staat/actie in (bijv. “verkoper heeft 72 uur om tracking te leveren”), automatiseer herinneringen (48u/24u) en definieer standaarduitkomsten wanneer tijd verloopt (auto‑sluiten, auto‑refund of escalatie). Maak deadlines zichtbaar in zowel de wachtrij (voor prioritering) als op de case‑detailpagina (voor duidelijkheid).
Scheid staat (waar het dossier zich in de workflow bevindt) van uitkomst (wat er gebeurde). Uitkomsten omvatten vaak refund, gedeeltelijke refund, vervanging, vrijgave van gelden, terugdraaien van uitbetaling, accountbeperking of goodwill‑krediet. Deze scheiding maakt rapportage nauwkeurig, zelfs als dezelfde staat (“Resolved”) verschillende financiële acties kan betekenen.
Modelleer minimaal: Order, Payment, User, Case/Dispute, Claim reason (gecontroleerde codes), Evidence, Messages en Decision. Houd verdedigbare informatie append‑only via een eventlog (statuswijzigingen, bewijsuploads, beslissingen, geldbewegingen), en sta beperkte bewerkingen toe voor operationele velden zoals interne notities, tags en toewijzing.
Behandel gevoelige en verdedigbare artefacten als append‑only:
Combineer dit met een “huidige snapshot” op de case voor snelle UI‑queries. Dat maakt onderzoeken, beroepen en chargeback‑packets later veel eenvoudiger te onderbouwen.
Definieer expliciete rollen (buyer, seller, agent, supervisor, finance, admin) en geef permissies op actie‑niveau, niet alleen per scherm. Gebruik least‑privilege defaults, SSO + MFA voor bevoegde medewerkers en veldniveau‑maskering voor PII/betaalgegevens. Houd interne notities en risicosignalen verborgen voor externe partijen en registreer ‘break glass’ toegang auditief.
Maak een operations‑achtige wachtrij met filters die passen bij triage: status, reden, bedrag, leeftijd/SLA, verkoper en risicoscore. Zorg dat rijen snel scanbaar zijn (case ID, status, dagen open, bedrag, partij, risico, volgende deadline) en bied opgeslagen weergaven zoals “Overdue” of “New high‑value”. Beperk bulkacties tot veilige operaties zoals toewijzen of taggen.
Gebruik in‑app messaging als de bron van waarheid, spiegel belangrijke gebeurtenissen naar e‑mail en gebruik SMS alleen voor tijdkritische meldingen zonder gevoelige inhoud. Leid bewijsverzoeken af van de redencode met sjablonen (bewijs van levering, foto’s, retourinstructies) en voeg altijd een vervaldatum toe zodat gebruikers precies weten wat de volgende stap is.