{"id":114,"date":"2026-09-23T09:00:00","date_gmt":"2026-09-23T07:00:00","guid":{"rendered":"https:\/\/yindle.com\/?p=114"},"modified":"2026-09-23T09:00:00","modified_gmt":"2026-09-23T07:00:00","slug":"afas-succes-vervolgsysteem-mislukt","status":"publish","type":"post","link":"https:\/\/yindle.com\/en\/afas-succeeded-the-downstream-system-failed-what-now\/","title":{"rendered":"AFAS succeeded, the downstream system failed: what now?"},"content":{"rendered":"<p>If AFAS succeeds but a downstream system fails, preserve the successful part and recover only the failed dependency. Do not rerun the whole order chain. A partial result is not an unclear failure: it is a known state in which the financial order exists while, for example, the parcel or route still needs attention.<\/p>\n<h2>A chain has several established facts<\/h2>\n<p>Processing an online store order rarely consists of one API call. First the source order is validated, then a debtor record or sales order may be created in AFAS, and only afterwards a parcel in Sendcloud or a stop in route planning. Each step has its own external identity, response and repeatability. One red indicator for the entire chain hides which facts have already been established.<\/p>\n<p>Model provider steps separately and record their dependencies. A logistics step may only begin once AFAS has accepted the order, for example. If logistics then fails, the AFAS step remains complete. The main action receives \u201ccompleted with warning\u201d or \u201cattention needed\u201d, not the misleading status \u201cnothing happened\u201d. This makes <a href=\"\/en\/connect\/\">Connect<\/a> more than a forwarding service: it retains the state of the process.<\/p>\n<h2>Use a partial-results matrix<\/h2>\n<figure class=\"wp-block-table\">\n<table>\n<thead>\n<tr>\n<th>AFAS<\/th>\n<th>Logistics<\/th>\n<th>Meaning<\/th>\n<th>Safe action<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Not started<\/td>\n<td>Not started<\/td>\n<td>Validation or a filter stopped the order<\/td>\n<td>Correct the source or confirm the exclusion<\/td>\n<\/tr>\n<tr>\n<td>Succeeded<\/td>\n<td>Not started<\/td>\n<td>A dependency or configuration is blocking progress<\/td>\n<td>Investigate logistics readiness only<\/td>\n<\/tr>\n<tr>\n<td>Succeeded<\/td>\n<td>Failed<\/td>\n<td>The financial identity exists<\/td>\n<td>Recover and rerun the failed substep<\/td>\n<\/tr>\n<tr>\n<td>Uncertain<\/td>\n<td>Not started<\/td>\n<td>The outcome of the external write is unknown<\/td>\n<td>First verify receipt in AFAS<\/td>\n<\/tr>\n<tr>\n<td>Succeeded<\/td>\n<td>Succeeded<\/td>\n<td>Chain complete<\/td>\n<td>Retain the audit trail<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p>The matrix prevents operations from using \u201cretry\u201d as a universal button. Give the button a precise meaning: rerun only this provider step, recalculate dependencies and skip side effects that already have a receipt.<\/p>\n<h2>Fictional example: an ERP order without a parcel<\/h2>\n<p>Fictional example: order 39014 from camping online store Buitenstroom is correctly created as a sales order in AFAS. The subsequent Sendcloud step fails because the configured sender account is temporarily unavailable. Desk shows the AFAS substep in green with its external order identity, and the parcel step in red with the specific error.<\/p>\n<p>An administrator restores the Sendcloud account and selects \u201crerun\u201d for the parcel step only. The dependency check confirms that AFAS is still complete. One parcel is created; the AFAS sales order is not submitted again. The final check then recalculates the main status. This fictional scenario shows how a chain remains recoverable without a technical incident creating a duplicate financial order.<\/p>\n<h2>Acceptance criteria for recoverable chains<\/h2>\n<ul>\n<li>Every external write operation has its own status, attempt number and external identity.<\/li>\n<li>A downstream step visibly identifies the successful step it depends on.<\/li>\n<li>An error in a child step does not change a successful parent back to failed.<\/li>\n<li>Rerunning first checks existing receipts and the current configuration.<\/li>\n<li>The final status distinguishes full success, a warning and the need for manual attention.<\/li>\n<li>An employee can see what the customer may already expect and what is still missing.<\/li>\n<\/ul>\n<p>In <a href=\"\/en\/desk\/\">Desk<\/a> that last explanation belongs beside the order, so customer service does not have to infer what happened from three supplier portals. For the broader architecture, the article on <a href=\"\/en\/online-store-erp-integration\/\">reliable online store\u2013ERP integrations<\/a> helps define the owner and recovery path for each step.<\/p>\n<p>Also make the customer commitment depend on the correct partial result. \u201cYour order has been processed\u201d may be financially true while no parcel exists yet; \u201cyour order has been dispatched\u201d is then incorrect. Define which internal and customer-facing statuses may change for each piece of external evidence. For example, let AFAS acceptance confirm only administrative processing and wait for an actual parcel identity before providing tracking. During recovery, check whether earlier notifications have already been sent so rerunning does not send the same email or webhook to a customer channel. Include both the original error and the recovery action in an incident report: which substep failed, who changed the configuration, which existing evidence was reused and which follow-up notification was deliberately not repeated. This makes partial success a manageable business status rather than a technical footnote.<\/p>\n<p>Finally, give every chain an owner for the grey area. Technology can show the steps, but operations decides, for example, whether an order without a parcel still needs to be dispatched manually today. Record that decision against the order so the next shift does not start again.<\/p>\n<p>Want to divide a fragile order chain into verifiable, recoverable steps? <a href=\"\/en\/contact\/\">Discuss your provider workflow with Yindle<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Partial success is a concrete state. Model provider steps separately and rerun only what demonstrably has not yet succeeded.<\/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-114","post","type-post","status-publish","format-standard","hentry","category-integraties"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>AFAS gelukt, vervolgstap mislukt: veilig herstel<\/title>\n<meta name=\"description\" content=\"Bewaar geslaagde AFAS-verwerking en herstel alleen de mislukte logistieke stap. Zo voorkom je dubbele orders, labels en klantberichten.\" \/>\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\/afas-succeeded-the-downstream-system-failed-what-now\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AFAS gelukt, vervolgstap mislukt: veilig herstel\" \/>\n<meta property=\"og:description\" content=\"Bewaar geslaagde AFAS-verwerking en herstel alleen de mislukte logistieke stap. Zo voorkom je dubbele orders, labels en klantberichten.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/yindle.com\/en\/afas-succeeded-the-downstream-system-failed-what-now\/\" \/>\n<meta property=\"og:site_name\" content=\"Yindle\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-23T07: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=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/afas-succeeded-the-downstream-system-failed-what-now\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/afas-succeeded-the-downstream-system-failed-what-now\\\/\"},\"author\":{\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/#organization\"},\"headline\":\"AFAS gelukt, vervolgsysteem mislukt: wat nu?\",\"datePublished\":\"2026-09-23T07:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/afas-succeeded-the-downstream-system-failed-what-now\\\/\"},\"wordCount\":688,\"publisher\":{\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/#organization\"},\"articleSection\":[\"Integraties\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/afas-succeeded-the-downstream-system-failed-what-now\\\/\",\"url\":\"https:\\\/\\\/yindle.com\\\/en\\\/afas-succeeded-the-downstream-system-failed-what-now\\\/\",\"name\":\"AFAS gelukt, vervolgstap mislukt: veilig herstel\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/#website\"},\"datePublished\":\"2026-09-23T07:00:00+00:00\",\"description\":\"Bewaar geslaagde AFAS-verwerking en herstel alleen de mislukte logistieke stap. Zo voorkom je dubbele orders, labels en klantberichten.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/afas-succeeded-the-downstream-system-failed-what-now\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/yindle.com\\\/en\\\/afas-succeeded-the-downstream-system-failed-what-now\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/afas-succeeded-the-downstream-system-failed-what-now\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/yindle.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"AFAS gelukt, vervolgsysteem mislukt: wat nu?\"}]},{\"@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":"AFAS succeeded, the next step failed: safe recovery","description":"Preserve successful AFAS processing and recover only the failed logistics step. This prevents duplicate orders, labels and customer messages.","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\/afas-succeeded-the-downstream-system-failed-what-now\/","og_locale":"en_GB","og_type":"article","og_title":"AFAS gelukt, vervolgstap mislukt: veilig herstel","og_description":"Bewaar geslaagde AFAS-verwerking en herstel alleen de mislukte logistieke stap. Zo voorkom je dubbele orders, labels en klantberichten.","og_url":"https:\/\/yindle.com\/en\/afas-succeeded-the-downstream-system-failed-what-now\/","og_site_name":"Yindle","article_published_time":"2026-09-23T07: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":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/yindle.com\/en\/afas-succeeded-the-downstream-system-failed-what-now\/#article","isPartOf":{"@id":"https:\/\/yindle.com\/en\/afas-succeeded-the-downstream-system-failed-what-now\/"},"author":{"@id":"https:\/\/yindle.com\/en\/#organization"},"headline":"AFAS gelukt, vervolgsysteem mislukt: wat nu?","datePublished":"2026-09-23T07:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/yindle.com\/en\/afas-succeeded-the-downstream-system-failed-what-now\/"},"wordCount":688,"publisher":{"@id":"https:\/\/yindle.com\/en\/#organization"},"articleSection":["Integraties"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/yindle.com\/en\/afas-succeeded-the-downstream-system-failed-what-now\/","url":"https:\/\/yindle.com\/en\/afas-succeeded-the-downstream-system-failed-what-now\/","name":"AFAS succeeded, the next step failed: safe recovery","isPartOf":{"@id":"https:\/\/yindle.com\/en\/#website"},"datePublished":"2026-09-23T07:00:00+00:00","description":"Preserve successful AFAS processing and recover only the failed logistics step. This prevents duplicate orders, labels and customer messages.","breadcrumb":{"@id":"https:\/\/yindle.com\/en\/afas-succeeded-the-downstream-system-failed-what-now\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/yindle.com\/en\/afas-succeeded-the-downstream-system-failed-what-now\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/yindle.com\/en\/afas-succeeded-the-downstream-system-failed-what-now\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/yindle.com\/en\/"},{"@type":"ListItem","position":2,"name":"AFAS gelukt, vervolgsysteem mislukt: wat nu?"}]},{"@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\/114","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=114"}],"version-history":[{"count":1,"href":"https:\/\/yindle.com\/en\/wp-json\/wp\/v2\/posts\/114\/revisions"}],"predecessor-version":[{"id":915,"href":"https:\/\/yindle.com\/en\/wp-json\/wp\/v2\/posts\/114\/revisions\/915"}],"wp:attachment":[{"href":"https:\/\/yindle.com\/en\/wp-json\/wp\/v2\/media?parent=114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yindle.com\/en\/wp-json\/wp\/v2\/categories?post=114"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yindle.com\/en\/wp-json\/wp\/v2\/tags?post=114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}