[{"data":1,"prerenderedAt":300},["ShallowReactive",2],{"blog-\u002Fblog\u002Fdesigning-erp-tms-integration":3,"blog-surround-\u002Fblog\u002Fdesigning-erp-tms-integration":280,"blog-related-\u002Fblog\u002Fdesigning-erp-tms-integration":289},{"id":4,"title":5,"audience":6,"body":9,"cluster":245,"date":246,"description":247,"draft":248,"extension":249,"factCheckedAt":250,"faq":251,"featured":248,"language":250,"meta":261,"navigation":262,"order":263,"originalAsset":250,"path":264,"pillar":265,"primaryKeyword":266,"relatedProject":250,"releaseScope":250,"reviewCycle":267,"reviewStatus":268,"reviewedBy":269,"searchIntent":270,"seo":271,"sources":250,"stem":272,"tags":273,"type":278,"updated":246,"__hash__":279},"blog\u002Fblog\u002Fdesigning-erp-tms-integration.md","Designing ERP-to-TMS Integration",[7,8],"treasury-system-lead","solution-architect",{"type":10,"value":11,"toc":235},"minimark",[12,26,31,39,44,54,59,67,75,79,105,109,112,131,134,138,149,160,164,176,180,206,209,212],[13,14,15,19,20,25],"p",{},[16,17,18],"strong",{},"ERP-to-TMS integration flows reference and AP\u002FAR data from the ERP into the treasury system, and accounting entries (and often payment status) back into the ERP's general ledger — through defined, governed interfaces that follow your system-of-record decisions."," Done well, the two systems stay in step. Done as a ",[21,22,24],"a",{"href":23},"\u002Fblog\u002Ftreasury-integration-patterns-files-apis-middleware","web of ad-hoc extracts",", they drift apart, and you inherit the reconciliation problem that quietly consumes finance-systems teams.",[27,28,30],"h2",{"id":29},"what-flows-between-erp-and-tms","What flows between ERP and TMS",[13,32,33,34,38],{},"Design it as deliberate flows in both directions, anchored to the ",[21,35,37],{"href":36},"\u002Fblog\u002Freference-architecture-for-corporate-treasury","system-of-record decisions",":",[13,40,41],{},[16,42,43],{},"ERP → TMS",[45,46,47,51],"ul",{},[48,49,50],"li",{},"Master and reference data — entities, bank accounts, counterparties, cost centres — from wherever they're mastered.",[48,52,53],{},"AP \u002F AR data to feed cash forecasting and, where relevant, payments.",[13,55,56],{},[16,57,58],{},"TMS → ERP",[45,60,61,64],{},[48,62,63],{},"Accounting entries treasury generates — cash movements, deals, FX, interest, fees — posted to the general ledger.",[48,65,66],{},"Payment status, where the ERP or a process needs it.",[13,68,69,70,74],{},"Each field should flow ",[71,72,73],"em",{},"from its owner",": if the ERP is the system of record for bank master data, it flows to the TMS, not the other way — and never both.",[27,76,78],{"id":77},"interface-design-principles","Interface design principles",[45,80,81,87,93,99],{},[48,82,83,86],{},[16,84,85],{},"Interface-based, not point-to-point."," Define interfaces with clear contracts (what data, what format, what cadence) rather than bolting on extracts whenever someone needs data. Ad-hoc extracts become undocumented spaghetti no one can safely change.",[48,88,89,92],{},[16,90,91],{},"Follow system-of-record ownership."," The direction of every flow is decided by who owns the data. This prevents the classic duplicate-maintenance and drift problem.",[48,94,95,98],{},[16,96,97],{},"Idempotent and recoverable."," A rerun after a failure shouldn't double-post or corrupt data; design for safe reprocessing.",[48,100,101,104],{},[16,102,103],{},"Clear cutoffs and timing."," Agree when each flow runs relative to close, payment runs and the working day, so data is complete when the other side needs it.",[27,106,108],{"id":107},"batch-vs-real-time","Batch vs real-time",[13,110,111],{},"Choose per flow, not as a religion:",[45,113,114,120],{},[48,115,116,119],{},[16,117,118],{},"Batch"," — scheduled files or jobs — suits high-volume, periodic data: end-of-day accounting, AP\u002FAR extracts, statement imports.",[48,121,122,125,126,130],{},[16,123,124],{},"Real-time \u002F API"," suits data that must be current: a payment status, an urgent balance check, an instant payment — the building blocks of ",[21,127,129],{"href":128},"\u002Fblog\u002Freal-time-treasury","real-time treasury",".",[13,132,133],{},"Most landscapes use batch for the bulk and APIs where immediacy genuinely pays. The cadence matters less than making each flow reliable, monitored and reconciled.",[27,135,137],{"id":136},"reconciliation-every-interface-must-reconcile","Reconciliation: every interface must reconcile",[13,139,140,141,144,145,148],{},"The rule that separates a stable integration from a fragile one: ",[16,142,143],{},"every interface carries a way to prove all the data arrived intact."," Control totals — record counts and amount sums sent vs received — turn a silent partial failure into a caught exception. If an ERP sends 1,000 AP items totalling €10m and the TMS books 998 totalling €9.9m, the interface must ",[71,146,147],{},"flag"," it, not quietly proceed.",[150,151,153],"callout",{"type":152},"tip",[13,154,155,156,159],{},"Build reconciliation into the interface from day one, not as a manual afterthought. The interfaces that cause the worst problems aren't the ones that fail loudly — they're the ones that fail ",[71,157,158],{},"partially and silently",", and the first sign is a position that won't tie out weeks later.",[27,161,163],{"id":162},"error-handling-and-monitoring","Error handling and monitoring",[13,165,166,167,170,171,175],{},"Interfaces fail — a feed doesn't run, a file is malformed, a downstream system is down. Design for it: monitor whether each interface ",[71,168,169],{},"ran and completed",", alert an owner when it doesn't, and make reprocessing safe. (This deserves its own discipline — see ",[21,172,174],{"href":173},"\u002Fblog\u002Finterface-monitoring-and-reconciliation","interface monitoring and reconciliation",".) An unmonitored interface is a wrong number waiting to happen.",[27,177,179],{"id":178},"what-usually-goes-wrong","What usually goes wrong",[45,181,182,188,194,200],{},[48,183,184,187],{},[16,185,186],{},"Point-to-point spaghetti."," Extracts built ad hoc, undocumented and unmonitored, until the landscape can't be changed safely.",[48,189,190,193],{},[16,191,192],{},"No reconciliation."," Interfaces with no control totals, so partial failures surface as unexplained breaks much later.",[48,195,196,199],{},[16,197,198],{},"Unclear ownership."," Both systems \"own\" a data domain, so they drift and you reconcile forever.",[48,201,202,205],{},[16,203,204],{},"Timing and cutoff gaps."," A flow runs before its source is complete, so downstream data is subtly wrong.",[13,207,208],{},"Design ERP-TMS integration as governed, reconciled interfaces that follow data ownership, and the two systems stay in step. Skip that and the integration becomes the thing everyone's afraid to touch.",[210,211],"hr",{},[13,213,214],{},[71,215,216,217,221,222,225,226,229,230,234],{},"Part of the ",[21,218,220],{"href":219},"\u002Ftopics\u002Ftreasury-systems-architecture","Treasury Systems Architecture guide",". See also the ",[21,223,224],{"href":36},"reference architecture"," and ",[21,227,228],{"href":173},"interface monitoring",". The ",[21,231,233],{"href":232},"\u002Fnewsletter","newsletter"," sends one finance-systems pattern, product decision or build lesson every two weeks.",{"title":236,"searchDepth":237,"depth":237,"links":238},"",2,[239,240,241,242,243,244],{"id":29,"depth":237,"text":30},{"id":77,"depth":237,"text":78},{"id":107,"depth":237,"text":108},{"id":136,"depth":237,"text":137},{"id":162,"depth":237,"text":163},{"id":178,"depth":237,"text":179},"integration","2026-07-23","ERP TMS integration design: what flows each way, batch vs real-time, reconciliation and ownership — so your ERP and treasury system stay in step.",false,"md",null,[252,255,258],{"question":253,"answer":254},"How does a TMS integrate with an ERP?","Through defined interfaces in both directions. The ERP typically sends the TMS reference and master data plus AP\u002FAR information for forecasting and payments; the TMS sends accounting entries back to the ERP's general ledger, and often payment status. Good integration is interface-based and governed — following the system-of-record decisions so each field flows from its owner — rather than a web of ad-hoc extracts, and every interface is reconciled.",{"question":256,"answer":257},"What data flows between an ERP and a treasury system?","Commonly, from ERP to TMS: master and reference data (entities, accounts, counterparties), and AP\u002FAR data to feed cash forecasting and payments. From TMS to ERP: the accounting entries treasury generates (cash, deals, FX, interest) posted to the general ledger, and sometimes payment status. The exact flows depend on your system-of-record design — which system owns each data domain.",{"question":259,"answer":260},"Should ERP-TMS integration be batch or real-time?","Both patterns are valid; choose per flow. Batch (scheduled file or job) suits high-volume, periodic data like end-of-day accounting or AP\u002FAR extracts. Real-time or API suits data that must be current, such as a payment status or an urgent balance. Many landscapes use batch for the bulk and APIs where immediacy genuinely matters. What matters most is that each flow is reliable, monitored and reconciled, whatever its cadence.",{},true,5,"\u002Fblog\u002Fdesigning-erp-tms-integration","treasury-systems-architecture","ERP TMS integration","annual","reviewed","Tan Gravam","informational",{"title":5,"description":247},"blog\u002Fdesigning-erp-tms-integration",[274,275,245,276,277],"treasury","architecture","erp","tms","text","DjsTUu9ENEjtBVvwapkwYT8pzz_ncKU7-3orPIPnGJo",[281,285],{"title":282,"path":283,"stem":284,"type":278,"language":250,"draft":248,"children":-1},"Debt and Investment Management in Treasury","\u002Fblog\u002Fdebt-and-investment-management-in-treasury","blog\u002Fdebt-and-investment-management-in-treasury",{"title":286,"path":287,"stem":288,"type":278,"language":250,"draft":248,"children":-1},"Direct vs Indirect Cash Flow Forecasting for Treasury","\u002Fblog\u002Fdirect-vs-indirect-cash-flow-forecasting","blog\u002Fdirect-vs-indirect-cash-flow-forecasting",[290,293,296],{"path":23,"title":291,"description":292},"Treasury Integration Patterns: Files, APIs and Middleware","Treasury integration patterns — batch files, APIs and middleware — and their trade-offs, plus why point-to-point connections collapse under their own weight.",{"path":173,"title":294,"description":295},"Interface Monitoring and Reconciliation for Treasury Systems","Treasury interfaces fail silently and partially. Monitoring proves each ran; reconciliation proves the data arrived intact. How to design both from the start.",{"path":297,"title":298,"description":299},"\u002Fblog\u002Fmarket-data-in-treasury-systems","Market Data in Treasury Systems","Market data — FX rates, interest curves, prices — is the external reference data treasury needs to value positions. How to source, control and integrate it.",1785182339101]