{"id":57,"date":"2026-09-25T09:00:00","date_gmt":"2026-09-25T07:00:00","guid":{"rendered":"https:\/\/yindle.com\/?p=57"},"modified":"2026-09-21T22:09:31","modified_gmt":"2026-09-21T20:09:31","slug":"dubbele-afas-debiteuren-voorkomen-herstellen","status":"publish","type":"post","link":"https:\/\/yindle.com\/en\/preventing-and-resolving-duplicate-afas-debtor-records-from-online-store-orders\/","title":{"rendered":"Preventing and resolving duplicate AFAS debtor records from online store orders"},"content":{"rendered":"<p>Prevent duplicate AFAS debtor records by searching specifically before every creation action, comparing several identifying characteristics and not resolving uncertainty automatically. An email address alone is insufficient. The integration also needs to account for organisations and people, administrative identifiers and the difference between a new delivery address and an actually new contact.<\/p>\n\n<p>Complete prevention is not always realistic. Existing data may already contain duplicates, customers use different addresses and company names are written in different ways. A safe recovery process therefore belongs alongside prevention in the integration.<\/p>\n\n<h2>Why do duplicate debtor records arise?<\/h2>\n\n<p>An online store mainly thinks in accounts, orders and addresses. AFAS manages contacts with administrative significance. If every new WooCommerce order blindly creates a new debtor record, returning customers quickly cause data pollution.<\/p>\n\n<p>Common causes include:<\/p>\n\n<ul>\n  <li>ordering with a different email address or guest account;<\/li>\n  <li>differences in how a company name, surname prefix or phone number is written;<\/li>\n  <li>a new delivery address incorrectly treated as a new contact;<\/li>\n  <li>a business order where the contact person and organisation are confused;<\/li>\n  <li>a timeout after which the same creation action is repeated;<\/li>\n  <li>historical duplicates that make new automatic matches ambiguous.<\/li>\n<\/ul>\n\n<p>The problem is therefore more than \u2018poor searching\u2019. The integration needs to understand which object it is trying to recognise.<\/p>\n\n<h2>Use a matching hierarchy<\/h2>\n\n<p>Work from stronger to weaker evidence. An existing, previously recorded linking key between WooCommerce and AFAS is stronger than a matching name. An administrative contact number is stronger than a phone number. The exact hierarchy depends on the data model, but the outcomes must always fall into the same three categories.<\/p>\n\n<ol>\n  <li><strong>Certain match:<\/strong> use the existing contact and record why this is safe.<\/li>\n  <li><strong>No plausible match:<\/strong> create a new contact in a controlled way.<\/li>\n  <li><strong>Ambiguous match:<\/strong> pause the order step and ask an employee to choose.<\/li>\n<\/ol>\n\n<p>That third outcome is often missing. A system that always has to decide independently will sometimes update the wrong contact or still create a duplicate when information is insufficient.<\/p>\n\n<h2>Separate the person, organisation and order address<\/h2>\n\n<p>A business order can contain at least three identities: the organisation paying, the person in contact and the delivery location. These must not automatically be treated as the same thing. <a href=\"\/en\/woocommerce-afas-data-ownership-matrix\/\">Determine which AFAS object each online store field belongs to<\/a> and under what conditions a new object is created.<\/p>\n\n<p>Also distinguish between a permanent address change and the delivery address for one order. A customer temporarily receiving a delivery at a construction site probably does not want the debtor record\u2019s main address overwritten.<\/p>\n\n<h2>Make reprocessing safe<\/h2>\n\n<p>Network errors can be deceptive. Suppose the integration sends a new debtor record to AFAS and receives no response. The action may have failed, but AFAS may already have processed it. Blindly sending it again then creates precisely the duplicate you wanted to prevent.<\/p>\n\n<p>Use a stable external identity and, after an uncertain outcome, first check whether the intended record already exists. Also retain the relationship between the online store customer, order and AFAS record. A subsequent order can then use that known connection as a strong match.<\/p>\n\n<h2>Recovering without causing further damage<\/h2>\n\n<p>When a duplicate is found, an employee needs sufficient context: the candidates, relevant characteristics, linked orders and the reason automation could not decide. The recovery path may involve selecting the correct existing contact, merging according to administrative procedures or confirming that both contacts rightly exist separately.<\/p>\n\n<p>After that decision, let the integration continue from the stopped process step. An employee should not have to enter the entire order again manually. Also record the chosen connection so the same ambiguity does not recur with every subsequent order.<\/p>\n\n<h3>Practical checklist<\/h3>\n\n<ul>\n  <li>Is there a stable linking key for previously recognised contacts?<\/li>\n  <li>Are the person and organisation modelled separately?<\/li>\n  <li>Are order addresses and master data kept from being unintentionally mixed?<\/li>\n  <li>Does the matcher have an explicit outcome for uncertainty?<\/li>\n  <li>Is retrying after a timeout safe?<\/li>\n  <li>Can an employee make a choice without reading technical log entries?<\/li>\n  <li>Is the decision retained for subsequent orders?<\/li>\n<\/ul>\n\n<h2>Measure the quality of the process<\/h2>\n\n<p>Look beyond the number of technically successful messages. More relevant signals are new contacts relative to order volume, ambiguous matches, manual corrections and orders awaiting contact checks. A sudden change may indicate a changed online store checkout, mapping or AFAS configuration.<\/p>\n\n<p>The broader setup of this chain is described in <a href=\"\/en\/woocommerce-afas-integration-guide\/\">connecting WooCommerce to AFAS<\/a>. On <a href=\"\/en\/connect\/\">Yindle Connect<\/a> you can read how validation, translation and recovery become part of one managed data flow. The <a href=\"\/en\/cases\/foravida\/\">ForaVida case study<\/a> shows how the online store, administration and planning are connected in the implemented Connect foundation.<\/p>\n\n<h2>Test cases that reveal contact data pollution<\/h2>\n\n<p>Do not use a series of identical test customers. Create a small set that reproduces real ambiguity: one person orders privately and for business, two organisations share a general email address, a company name contains a trading name, and a customer moves while an old order remains open. Also add an organisation with several contact people and delivery locations.<\/p>\n\n<p>For each case, check more than whether the order \u2018goes through\u2019. Review which AFAS object was used, whether master data changed unintentionally, which key was stored and what an employee sees when there is uncertainty. Then repeat exactly the same order action after a simulated timeout. The result must remain one recognisable contact and one intended order.<\/p>\n\n<h2>Frequently asked questions<\/h2>\n\n<h3>Can we merge duplicates automatically?<\/h3>\n\n<p>Only when the organisation has a demonstrably safe rule and the administrative consequences are known. Merging may affect linked orders, invoices and contact people. Detection can be automated effectively; when there is uncertainty, the final choice requires an authorised employee and a recorded reason.<\/p>\n\n<h3>Is the KvK number always sufficient?<\/h3>\n\n<p>It is strong business evidence, but not every checkout requests or validates this number, and different branches may require additional agreements. Use it as part of the matching hierarchy, not as a reason to avoid modelling the person, organisation and delivery location separately.<\/p>\n\n<p>Want to prevent contact data pollution from growing or recover an existing flow in a controlled way? <a href=\"\/en\/contact\/\">Discuss your order and contact process with Yindle<\/a>. We first map recognition, uncertain cases and recovery steps.<\/p>\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"\/en\/connect\/\">Explore Yindle Connect<\/a><\/div>\n\n\n\n<div class=\"wp-block-button is-style-outline is-style-outline--1\"><a class=\"wp-block-button__link wp-element-button\" href=\"\/en\/contact\/\">Discuss contact data recovery<\/a><\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>How to recognise existing AFAS contacts from online store orders, prevent new duplicates and resolve uncertain cases without further damage.<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-57","post","type-post","status-publish","format-standard","hentry","category-integraties"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Dubbele AFAS-debiteuren voorkomen en herstellen<\/title>\n<meta name=\"description\" content=\"Voorkom dubbele AFAS-debiteuren met een herkenningsladder, veilige retries en menselijke controle bij twijfel over organisaties en personen.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/yindle.com\/en\/preventing-and-resolving-duplicate-afas-debtor-records-from-online-store-orders\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dubbele AFAS-debiteuren voorkomen en herstellen\" \/>\n<meta property=\"og:description\" content=\"Voorkom dubbele AFAS-debiteuren met een herkenningsladder, veilige retries en menselijke controle bij twijfel over organisaties en personen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/yindle.com\/en\/preventing-and-resolving-duplicate-afas-debtor-records-from-online-store-orders\/\" \/>\n<meta property=\"og:site_name\" content=\"Yindle\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-25T07:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/yindle.com\/wp-content\/themes\/yindle\/assets\/images\/yindle-social-share.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Yindle\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Yindle\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/preventing-and-resolving-duplicate-afas-debtor-records-from-online-store-orders\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/preventing-and-resolving-duplicate-afas-debtor-records-from-online-store-orders\\\/\"},\"author\":{\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/#organization\"},\"headline\":\"Dubbele AFAS-debiteuren door webshoporders voorkomen en herstellen\",\"datePublished\":\"2026-09-25T07:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/preventing-and-resolving-duplicate-afas-debtor-records-from-online-store-orders\\\/\"},\"wordCount\":950,\"publisher\":{\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/#organization\"},\"articleSection\":[\"Integraties\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/preventing-and-resolving-duplicate-afas-debtor-records-from-online-store-orders\\\/\",\"url\":\"https:\\\/\\\/yindle.com\\\/en\\\/preventing-and-resolving-duplicate-afas-debtor-records-from-online-store-orders\\\/\",\"name\":\"Dubbele AFAS-debiteuren voorkomen en herstellen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/#website\"},\"datePublished\":\"2026-09-25T07:00:00+00:00\",\"description\":\"Voorkom dubbele AFAS-debiteuren met een herkenningsladder, veilige retries en menselijke controle bij twijfel over organisaties en personen.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/preventing-and-resolving-duplicate-afas-debtor-records-from-online-store-orders\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/yindle.com\\\/en\\\/preventing-and-resolving-duplicate-afas-debtor-records-from-online-store-orders\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/preventing-and-resolving-duplicate-afas-debtor-records-from-online-store-orders\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/yindle.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dubbele AFAS-debiteuren door webshoporders voorkomen en herstellen\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/yindle.com\\\/en\\\/\",\"name\":\"Yindle\",\"description\":\"Software voor e-commerce en klantprocessen\",\"publisher\":{\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/yindle.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/#organization\",\"name\":\"Yindle B.V.\",\"url\":\"https:\\\/\\\/yindle.com\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/yindle.com\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/yindle-site-icon.png\",\"contentUrl\":\"https:\\\/\\\/yindle.com\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/yindle-site-icon.png\",\"width\":512,\"height\":512,\"caption\":\"Yindle B.V.\"},\"image\":{\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"legalName\":\"Yindle B.V.\",\"address\":{\"@type\":\"PostalAddress\",\"streetAddress\":\"Markt 43\",\"postalCode\":\"5554 CA\",\"addressLocality\":\"Valkenswaard\",\"addressCountry\":\"NL\"},\"identifier\":{\"@type\":\"PropertyValue\",\"propertyID\":\"KvK\",\"value\":\"99695367\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Preventing and resolving duplicate AFAS debtor records","description":"Prevent duplicate AFAS debtor records with a matching hierarchy, safe retries and human checks when organisations or people are uncertain.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/yindle.com\/en\/preventing-and-resolving-duplicate-afas-debtor-records-from-online-store-orders\/","og_locale":"en_GB","og_type":"article","og_title":"Dubbele AFAS-debiteuren voorkomen en herstellen","og_description":"Voorkom dubbele AFAS-debiteuren met een herkenningsladder, veilige retries en menselijke controle bij twijfel over organisaties en personen.","og_url":"https:\/\/yindle.com\/en\/preventing-and-resolving-duplicate-afas-debtor-records-from-online-store-orders\/","og_site_name":"Yindle","article_published_time":"2026-09-25T07:00:00+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/yindle.com\/wp-content\/themes\/yindle\/assets\/images\/yindle-social-share.png","type":"image\/png"}],"author":"Yindle","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Yindle","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/yindle.com\/en\/preventing-and-resolving-duplicate-afas-debtor-records-from-online-store-orders\/#article","isPartOf":{"@id":"https:\/\/yindle.com\/en\/preventing-and-resolving-duplicate-afas-debtor-records-from-online-store-orders\/"},"author":{"@id":"https:\/\/yindle.com\/en\/#organization"},"headline":"Dubbele AFAS-debiteuren door webshoporders voorkomen en herstellen","datePublished":"2026-09-25T07:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/yindle.com\/en\/preventing-and-resolving-duplicate-afas-debtor-records-from-online-store-orders\/"},"wordCount":950,"publisher":{"@id":"https:\/\/yindle.com\/en\/#organization"},"articleSection":["Integraties"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/yindle.com\/en\/preventing-and-resolving-duplicate-afas-debtor-records-from-online-store-orders\/","url":"https:\/\/yindle.com\/en\/preventing-and-resolving-duplicate-afas-debtor-records-from-online-store-orders\/","name":"Preventing and resolving duplicate AFAS debtor records","isPartOf":{"@id":"https:\/\/yindle.com\/en\/#website"},"datePublished":"2026-09-25T07:00:00+00:00","description":"Prevent duplicate AFAS debtor records with a matching hierarchy, safe retries and human checks when organisations or people are uncertain.","breadcrumb":{"@id":"https:\/\/yindle.com\/en\/preventing-and-resolving-duplicate-afas-debtor-records-from-online-store-orders\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/yindle.com\/en\/preventing-and-resolving-duplicate-afas-debtor-records-from-online-store-orders\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/yindle.com\/en\/preventing-and-resolving-duplicate-afas-debtor-records-from-online-store-orders\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/yindle.com\/en\/"},{"@type":"ListItem","position":2,"name":"Dubbele AFAS-debiteuren door webshoporders voorkomen en herstellen"}]},{"@type":"WebSite","@id":"https:\/\/yindle.com\/en\/#website","url":"https:\/\/yindle.com\/en\/","name":"Yindle","description":"Software for e-commerce and customer processes","publisher":{"@id":"https:\/\/yindle.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/yindle.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/yindle.com\/en\/#organization","name":"Yindle B.V.","url":"https:\/\/yindle.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/yindle.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/yindle.com\/wp-content\/uploads\/2026\/09\/yindle-site-icon.png","contentUrl":"https:\/\/yindle.com\/wp-content\/uploads\/2026\/09\/yindle-site-icon.png","width":512,"height":512,"caption":"Yindle B.V."},"image":{"@id":"https:\/\/yindle.com\/en\/#\/schema\/logo\/image\/"},"legalName":"Yindle B.V.","address":{"@type":"PostalAddress","streetAddress":"Markt 43","postalCode":"5554 CA","addressLocality":"Valkenswaard","addressCountry":"NL"},"identifier":{"@type":"PropertyValue","propertyID":"KvK","value":"99695367"}}]}},"_links":{"self":[{"href":"https:\/\/yindle.com\/en\/wp-json\/wp\/v2\/posts\/57","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yindle.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yindle.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yindle.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/yindle.com\/en\/wp-json\/wp\/v2\/comments?post=57"}],"version-history":[{"count":1,"href":"https:\/\/yindle.com\/en\/wp-json\/wp\/v2\/posts\/57\/revisions"}],"predecessor-version":[{"id":815,"href":"https:\/\/yindle.com\/en\/wp-json\/wp\/v2\/posts\/57\/revisions\/815"}],"wp:attachment":[{"href":"https:\/\/yindle.com\/en\/wp-json\/wp\/v2\/media?parent=57"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yindle.com\/en\/wp-json\/wp\/v2\/categories?post=57"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yindle.com\/en\/wp-json\/wp\/v2\/tags?post=57"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}