[{"data":1,"prerenderedAt":436},["Reactive",2],{"post-/blog/en/zahlungseingaenge-automatisch-zuordnen":3,"blog-en-all-3-/blog/en/zahlungseingaenge-automatisch-zuordnen":419},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"topic":10,"tags":11,"lang":5,"date":15,"path":16,"body":17,"_type":413,"_id":414,"_source":415,"_file":416,"_extension":417,"sitemap":418},"/blog/en/zahlungseingaenge-automatisch-zuordnen","en",false,"","Matching incoming payments automatically: bank statement, open items, approval","How bank statements arrive via EBICS, CAMT.053 or CSV, how n8n matches them against open items in your ERP, and how Claude handles messy payment references.","data",[12,13,14],"Data automation","Claude","Banking","2026-10-19T00:00:00.000Z","/en/blog/zahlungseingaenge-automatisch-zuordnen",{"type":18,"children":19,"toc":404},"root",[20,28,35,40,86,91,97,102,126,131,137,142,147,273,278,284,289,294,300,305,315,325,331,336,369,374,380,385,398],{"type":21,"tag":22,"props":23,"children":24},"element","p",{},[25],{"type":26,"value":27},"text","The same picture every morning in many accounting teams: the bank statement arrives, someone opens the list of open items next to it and matches payment after payment by hand. With fifty transactions a day this is tedious. With five hundred it is a full-time job. Most of this work can be automated cleanly with n8n. The remainder, the unclear cases, gets much smaller with Claude. Here is the setup we run in practice.",{"type":21,"tag":29,"props":30,"children":32},"h2",{"id":31},"how-the-bank-statement-gets-into-the-system",[33],{"type":26,"value":34},"How the bank statement gets into the system",{"type":21,"tag":22,"props":36,"children":37},{},[38],{"type":26,"value":39},"Before anything can be matched, the transactions have to be machine-readable. In practice we see four routes:",{"type":21,"tag":41,"props":42,"children":43},"ul",{},[44,56,66,76],{"type":21,"tag":45,"props":46,"children":47},"li",{},[48,54],{"type":21,"tag":49,"props":50,"children":51},"strong",{},[52],{"type":26,"value":53},"Bank API",{"type":26,"value":55},": Some banks and most fintech accounts offer a REST interface. n8n fetches the transactions via HTTP request, usually several times a day.",{"type":21,"tag":45,"props":57,"children":58},{},[59,64],{"type":21,"tag":49,"props":60,"children":61},{},[62],{"type":26,"value":63},"EBICS or FinTS",{"type":26,"value":65},": The standard route for business accounts in Germany. A small client collects the statements and drops them as files, n8n takes over from there.",{"type":21,"tag":45,"props":67,"children":68},{},[69,74],{"type":21,"tag":49,"props":70,"children":71},{},[72],{"type":26,"value":73},"CAMT.053 files",{"type":26,"value":75},": The XML format for end-of-day statements. It has structured fields for amount, counterparty, remittance information and end-to-end reference. For matching, it is the best source.",{"type":21,"tag":45,"props":77,"children":78},{},[79,84],{"type":21,"tag":49,"props":80,"children":81},{},[82],{"type":26,"value":83},"CSV via SFTP",{"type":26,"value":85},": Often the stopgap when the bank offers nothing else or a payment provider sits in between. It works, but needs maintenance, because columns change without notice.",{"type":21,"tag":22,"props":87,"children":88},{},[89],{"type":26,"value":90},"Whichever route: the first step in the workflow normalises every transaction into one common format. Amount, currency, booking date, payer name and IBAN, remittance text, bank reference. Everything downstream works only with this format.",{"type":21,"tag":29,"props":92,"children":94},{"id":93},"deterministic-matching-first",[95],{"type":26,"value":96},"Deterministic matching first",{"type":21,"tag":22,"props":98,"children":99},{},[100],{"type":26,"value":101},"Most payments can be matched without any AI. n8n fetches the open items from the ERP: from SAP via OData or RFC, from DATEV via its data services, from smaller systems often straight from the database or via REST. Then the workflow checks in a fixed order:",{"type":21,"tag":103,"props":104,"children":105},"ol",{},[106,111,116,121],{"type":21,"tag":45,"props":107,"children":108},{},[109],{"type":26,"value":110},"Is there an invoice number in the remittance text and does the amount match exactly? Match.",{"type":21,"tag":45,"props":112,"children":113},{},[114],{"type":26,"value":115},"Is there a customer number in the remittance text and exactly one open item with this amount? Match.",{"type":21,"tag":45,"props":117,"children":118},{},[119],{"type":26,"value":120},"Is the payer's IBAN linked to a customer and does the amount fit exactly one invoice? Match.",{"type":21,"tag":45,"props":122,"children":123},{},[124],{"type":26,"value":125},"Does the amount equal the sum of several open items of the same customer? Bulk payment, match with a note.",{"type":21,"tag":22,"props":127,"children":128},{},[129],{"type":26,"value":130},"These rules are cheap, fast and easy to explain. Anyone who starts with a language model at this stage pays for something a few lines of code do better.",{"type":21,"tag":29,"props":132,"children":134},{"id":133},"unclear-cases-claude-reads-the-remittance-text",[135],{"type":26,"value":136},"Unclear cases: Claude reads the remittance text",{"type":21,"tag":22,"props":138,"children":139},{},[140],{"type":26,"value":141},"What remains is the interesting part. Remittance texts like \"inv. from 12 Mar Mueller partial\", \"March invoices less discount\" or simply a project name that only one clerk recognises. Here n8n hands the transaction, together with the open items of the likely customer, to Claude. The request is narrow: which item fits, why, and how confident is it.",{"type":21,"tag":22,"props":143,"children":144},{},[145],{"type":26,"value":146},"The answer has to come back structured, otherwise the workflow cannot process it:",{"type":21,"tag":148,"props":149,"children":153},"pre",{"className":150,"code":151,"language":152,"meta":7,"style":7},"language-json shiki shiki-themes github-light","{\n  \"match\": \"INV-2024-0471\",\n  \"confidence\": 0.82,\n  \"reason\": \"Amount equals invoice less 2% early payment discount, customer name in remittance text\",\n  \"flags\": [\"discount\"]\n}\n","json",[154],{"type":21,"tag":155,"props":156,"children":157},"code",{"__ignoreMap":7},[158,170,196,218,240,264],{"type":21,"tag":159,"props":160,"children":163},"span",{"class":161,"line":162},"line",1,[164],{"type":21,"tag":159,"props":165,"children":167},{"style":166},"--shiki-default:#24292E",[168],{"type":26,"value":169},"{\n",{"type":21,"tag":159,"props":171,"children":173},{"class":161,"line":172},2,[174,180,185,191],{"type":21,"tag":159,"props":175,"children":177},{"style":176},"--shiki-default:#005CC5",[178],{"type":26,"value":179},"  \"match\"",{"type":21,"tag":159,"props":181,"children":182},{"style":166},[183],{"type":26,"value":184},": ",{"type":21,"tag":159,"props":186,"children":188},{"style":187},"--shiki-default:#032F62",[189],{"type":26,"value":190},"\"INV-2024-0471\"",{"type":21,"tag":159,"props":192,"children":193},{"style":166},[194],{"type":26,"value":195},",\n",{"type":21,"tag":159,"props":197,"children":199},{"class":161,"line":198},3,[200,205,209,214],{"type":21,"tag":159,"props":201,"children":202},{"style":176},[203],{"type":26,"value":204},"  \"confidence\"",{"type":21,"tag":159,"props":206,"children":207},{"style":166},[208],{"type":26,"value":184},{"type":21,"tag":159,"props":210,"children":211},{"style":176},[212],{"type":26,"value":213},"0.82",{"type":21,"tag":159,"props":215,"children":216},{"style":166},[217],{"type":26,"value":195},{"type":21,"tag":159,"props":219,"children":221},{"class":161,"line":220},4,[222,227,231,236],{"type":21,"tag":159,"props":223,"children":224},{"style":176},[225],{"type":26,"value":226},"  \"reason\"",{"type":21,"tag":159,"props":228,"children":229},{"style":166},[230],{"type":26,"value":184},{"type":21,"tag":159,"props":232,"children":233},{"style":187},[234],{"type":26,"value":235},"\"Amount equals invoice less 2% early payment discount, customer name in remittance text\"",{"type":21,"tag":159,"props":237,"children":238},{"style":166},[239],{"type":26,"value":195},{"type":21,"tag":159,"props":241,"children":243},{"class":161,"line":242},5,[244,249,254,259],{"type":21,"tag":159,"props":245,"children":246},{"style":176},[247],{"type":26,"value":248},"  \"flags\"",{"type":21,"tag":159,"props":250,"children":251},{"style":166},[252],{"type":26,"value":253},": [",{"type":21,"tag":159,"props":255,"children":256},{"style":187},[257],{"type":26,"value":258},"\"discount\"",{"type":21,"tag":159,"props":260,"children":261},{"style":166},[262],{"type":26,"value":263},"]\n",{"type":21,"tag":159,"props":265,"children":267},{"class":161,"line":266},6,[268],{"type":21,"tag":159,"props":269,"children":270},{"style":166},[271],{"type":26,"value":272},"}\n",{"type":21,"tag":22,"props":274,"children":275},{},[276],{"type":26,"value":277},"What matters is what Claude does not do here: it books nothing. It proposes. The confidence is a self-assessment, not a guarantee, and we use it only to sort proposals in the approval queue.",{"type":21,"tag":29,"props":279,"children":281},{"id":280},"human-approval",[282],{"type":26,"value":283},"Human approval",{"type":21,"tag":22,"props":285,"children":286},{},[287],{"type":26,"value":288},"Every proposal from the fuzzy matching lands in an approval list. That can be a simple table, a form in n8n, or a message in Teams or Slack with two buttons. The clerk sees the payment, the proposed item and the reasoning, and confirms or corrects with one click.",{"type":21,"tag":22,"props":290,"children":291},{},[292],{"type":26,"value":293},"A threshold keeps the list short: proposals with high confidence and no flags can pass automatically after an introduction phase, everything else waits for approval. Where that threshold sits is a decision for accounting, not for IT. We recommend approving everything in the first weeks and watching the hit rate before lowering the threshold.",{"type":21,"tag":29,"props":295,"children":297},{"id":296},"booking-audit-trail-and-idempotency",[298],{"type":26,"value":299},"Booking, audit trail and idempotency",{"type":21,"tag":22,"props":301,"children":302},{},[303],{"type":26,"value":304},"After approval, n8n writes the incoming payment to the ERP and clears the open item. Two things have to be right.",{"type":21,"tag":22,"props":306,"children":307},{},[308,313],{"type":21,"tag":49,"props":309,"children":310},{},[311],{"type":26,"value":312},"Audit trail",{"type":26,"value":314},": For every booking we store where the payment came from, which rule or proposal applied, who approved it and when. For AI proposals, the reasoning is part of the record. This is not optional, auditors ask for exactly this.",{"type":21,"tag":22,"props":316,"children":317},{},[318,323],{"type":21,"tag":49,"props":319,"children":320},{},[321],{"type":26,"value":322},"Idempotency",{"type":26,"value":324},": Bank statements arrive twice. The bank re-delivers the daily statement, an SFTP job runs twice, someone triggers the workflow by hand. Every transaction therefore gets a unique key built from bank reference, date and amount, and the workflow checks before processing whether that key is already known. Without this check you will eventually book a payment twice, and you will notice during the dunning run.",{"type":21,"tag":29,"props":326,"children":328},{"id":327},"what-happens-with-the-rest",[329],{"type":26,"value":330},"What happens with the rest",{"type":21,"tag":22,"props":332,"children":333},{},[334],{"type":26,"value":335},"Even with Claude, a remainder cannot be matched cleanly:",{"type":21,"tag":41,"props":337,"children":338},{},[339,349,359],{"type":21,"tag":45,"props":340,"children":341},{},[342,347],{"type":21,"tag":49,"props":343,"children":344},{},[345],{"type":26,"value":346},"Partial payments",{"type":26,"value":348},": The amount is smaller than the invoice. The workflow books the payment against the item and leaves the remainder open, with a note for dunning.",{"type":21,"tag":45,"props":350,"children":351},{},[352,357],{"type":21,"tag":49,"props":353,"children":354},{},[355],{"type":26,"value":356},"Overpayments and bulk payments without a breakdown",{"type":26,"value":358},": Proposal to the approval queue, with the most likely split.",{"type":21,"tag":45,"props":360,"children":361},{},[362,367],{"type":21,"tag":49,"props":363,"children":364},{},[365],{"type":26,"value":366},"Unknown payers",{"type":26,"value":368},": No IBAN in the master data, no name in the remittance text, no matching amount. These payments go to a clearing account and onto a separate list that someone works through daily.",{"type":21,"tag":22,"props":370,"children":371},{},[372],{"type":26,"value":373},"The point is not that the list becomes empty. The point is that it becomes short and only contains the cases where a human really needs to think.",{"type":21,"tag":29,"props":375,"children":377},{"id":376},"takeaway",[378],{"type":26,"value":379},"Takeaway",{"type":21,"tag":22,"props":381,"children":382},{},[383],{"type":26,"value":384},"Matching incoming payments is mostly rules and partly interpretation. n8n handles the rules, Claude handles the interpretation, and approval stays with your team. Built properly, this runs stably, traceably and without double bookings.",{"type":21,"tag":22,"props":386,"children":387},{},[388,390,396],{"type":26,"value":389},"If you want to know what this looks like with your bank and your ERP, book a free 30-minute intro call at ",{"type":21,"tag":391,"props":392,"children":394},"a",{"href":393},"/en#kontakt",[395],{"type":26,"value":393},{"type":26,"value":397},".",{"type":21,"tag":399,"props":400,"children":401},"style",{},[402],{"type":26,"value":403},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":7,"searchDepth":172,"depth":172,"links":405},[406,407,408,409,410,411,412],{"id":31,"depth":172,"text":34},{"id":93,"depth":172,"text":96},{"id":133,"depth":172,"text":136},{"id":280,"depth":172,"text":283},{"id":296,"depth":172,"text":299},{"id":327,"depth":172,"text":330},{"id":376,"depth":172,"text":379},"markdown","content:blog:en:zahlungseingaenge-automatisch-zuordnen.md","content","blog/en/zahlungseingaenge-automatisch-zuordnen.md","md",{"loc":16},[420,429],{"_path":421,"title":422,"description":423,"topic":424,"tags":425,"lang":5,"date":427,"path":428},"/blog/en/n8n-fehlerbehandlung","Error handling in n8n: retries, dead-letter queues and alerts","Error workflows, retry settings, idempotency, the dead-letter pattern and alerts to Slack or Teams. How to keep n8n workflows reliable in production.","n8n",[424,426],"AWS","2026-10-17T00:00:00.000Z","/en/blog/n8n-fehlerbehandlung",{"_path":430,"title":431,"description":432,"topic":424,"tags":433,"lang":5,"date":434,"path":435},"/blog/en/n8n-self-hosted-aws","Self-hosted n8n on AWS: what an enterprise setup really needs","Queue mode, Postgres, SSO, secrets, tested backups, zero-downtime updates and CloudWatch monitoring. What n8n on AWS really needs, and when n8n Cloud is enough.",[424,426],"2026-10-15T00:00:00.000Z","/en/blog/n8n-self-hosted-aws",1792414102944]