[{"data":1,"prerenderedAt":530},["ShallowReactive",2],{"blog-\u002Fblog\u002Freference-architecture-for-corporate-treasury":3,"blog-surround-\u002Fblog\u002Freference-architecture-for-corporate-treasury":508,"blog-related-\u002Fblog\u002Freference-architecture-for-corporate-treasury":517},{"id":4,"title":5,"audience":6,"body":10,"cluster":474,"date":475,"description":476,"draft":477,"extension":478,"factCheckedAt":479,"faq":480,"featured":490,"language":479,"meta":491,"navigation":490,"order":492,"originalAsset":479,"path":493,"pillar":494,"primaryKeyword":495,"relatedProject":479,"releaseScope":479,"reviewCycle":496,"reviewStatus":497,"reviewedBy":498,"searchIntent":499,"seo":500,"sources":479,"stem":501,"tags":502,"type":35,"updated":506,"__hash__":507},"blog\u002Fblog\u002Freference-architecture-for-corporate-treasury.md","A Reference Architecture for Corporate Treasury",[7,8,9],"treasury-system-lead","solution-architect","group-treasurer",{"type":11,"value":12,"toc":464},"minimark",[13,21,26,29,40,43,47,80,84,91,207,218,222,225,257,264,267,350,361,365,372,376,402,406,425,436,439],[14,15,16,20],"p",{},[17,18,19],"strong",{},"A corporate treasury reference architecture has four layers — source systems (the ERP), the treasury system (a TMS or ERP treasury module), bank connectivity, and market data — connected by defined interfaces, with a clear system of record for each type of data."," Most of the value, and most of the risk, lives in the connections and the ownership decisions, not in the individual systems. Get the interfaces and the system-of-record boundaries right and the landscape stays clean; get them wrong and you buy years of reconciliation.",[22,23,25],"h2",{"id":24},"the-reference-architecture","The reference architecture",[14,27,28],{},"At a high level, it looks like this:",[30,31,36],"pre",{"className":32,"code":34,"language":35},[33],"language-text","                    ┌──────────────────┐\n                    │   Market data    │  FX rates, interest rates\n                    └────────┬─────────┘\n                             │\n   ┌───────────┐      ┌──────┴───────┐      ┌───────────────┐\n   │    ERP    │◄────►│  Treasury    │◄────►│     Banks     │\n   │ GL·AP·AR  │      │  system (TMS)│      │ statements in │\n   │ master    │      │ cash·risk·   │      │ payments out  │\n   │ data      │      │ payments     │      │               │\n   └───────────┘      └──────────────┘      └───────────────┘\n        source            core treasury          connectivity\n","text",[37,38,34],"code",{"__ignoreMap":39},"",[14,41,42],{},"Four layers, each with a clear job, joined by governed interfaces:",[22,44,46],{"id":45},"the-four-layers","The four layers",[48,49,50,62,68,74],"ul",{},[51,52,53,56,57,61],"li",{},[17,54,55],{},"Source systems (ERP)."," The accounting and operational backbone — the general ledger, accounts payable and receivable, and much of the master data. It is the source of truth for ",[58,59,60],"em",{},"what happened"," financially.",[51,63,64,67],{},[17,65,66],{},"Treasury system (TMS or ERP treasury)."," The core treasury engine: cash positioning and forecasting, payments, financial-risk management, debt and investments. It consumes data from the ERP and produces accounting back to it.",[51,69,70,73],{},[17,71,72],{},"Bank connectivity."," The channel to the outside world: statements come in (MT940, camt.053, BAI2) and payments go out (pain.001 \u002F ISO 20022) over SWIFT, host-to-host, API or EBICS. Often a bank connector or integration layer sits here.",[51,75,76,79],{},[17,77,78],{},"Market data."," FX and interest rates feeding valuation, risk and forecasting.",[22,81,83],{"id":82},"system-of-record-who-owns-what","System of record: who owns what",[14,85,86,87,90],{},"The single most consequential architectural decision is assigning a ",[17,88,89],{},"system of record"," to each data domain — one owner, everywhere else a copy. Here's a defensible default; adapt it to your landscape, but decide it explicitly.",[92,93,94,110],"table",{},[95,96,97],"thead",{},[98,99,100,104,107],"tr",{},[101,102,103],"th",{},"Data domain",[101,105,106],{},"Typical system of record",[101,108,109],{},"Notes",[111,112,113,129,139,154,165,175,185,196],"tbody",{},[98,114,115,119,122],{},[116,117,118],"td",{},"General ledger",[116,120,121],{},"ERP",[116,123,124,125,128],{},"Treasury posts ",[58,126,127],{},"to"," it",[98,130,131,134,136],{},[116,132,133],{},"AP \u002F AR",[116,135,121],{},[116,137,138],{},"Feeds treasury forecasting",[98,140,141,144,151],{},[116,142,143],{},"Bank master data",[116,145,146,147,150],{},"One owner (ERP ",[58,148,149],{},"or"," TMS)",[116,152,153],{},"The classic duplication trap",[98,155,156,159,162],{},[116,157,158],{},"Cash position",[116,160,161],{},"TMS",[116,163,164],{},"Built from bank statements",[98,166,167,170,172],{},[116,168,169],{},"Cash forecast",[116,171,161],{},[116,173,174],{},"Fed by ERP AP\u002FAR + treasury",[98,176,177,180,182],{},[116,178,179],{},"Exposures & deals",[116,181,161],{},[116,183,184],{},"Risk lives here",[98,186,187,190,193],{},[116,188,189],{},"Payment status",[116,191,192],{},"TMS or payment hub",[116,194,195],{},"Decide, don't let both claim it",[98,197,198,201,204],{},[116,199,200],{},"FX \u002F interest rates",[116,202,203],{},"Market-data source",[116,205,206],{},"Distributed read-only",[208,209,211],"callout",{"type":210},"tip",[14,212,213,214,217],{},"The most common architecture failure isn't a missing system — it's the ",[58,215,216],{},"absence of this table",". When bank master data or payment status is \"owned\" by two systems, you get duplicate maintenance, drift and permanent reconciliation. Deciding ownership per domain is cheap; discovering you never did is expensive.",[22,219,221],{"id":220},"the-interfaces","The interfaces",[14,223,224],{},"Design the connections deliberately, not as a web of point-to-point extracts:",[48,226,227,233,239,251],{},[51,228,229,232],{},[17,230,231],{},"ERP → TMS:"," AP\u002FAR and reference data for forecasting and payments.",[51,234,235,238],{},[17,236,237],{},"TMS → ERP:"," accounting entries to the GL (and sometimes payment status).",[51,240,241,244,245,250],{},[17,242,243],{},"TMS ↔ Banks:"," statements in, payments out, acknowledgements back — usually the ",[246,247,249],"a",{"href":248},"\u002Fblog\u002Fwhy-tms-implementations-fail","critical path"," in any implementation.",[51,252,253,256],{},[17,254,255],{},"Market data → TMS:"," rates for valuation and forecasting.",[14,258,259,260,263],{},"Each interface should follow the system-of-record decisions — a field flows ",[58,261,262],{},"from"," its owner — and be monitored and reconciled, so a broken feed is caught before it becomes a wrong number.",[14,265,266],{},"An interface register makes the direction and the ownership explicit — and names what a silent failure of each one actually costs:",[92,268,269,285],{},[95,270,271],{},[98,272,273,276,279,282],{},[101,274,275],{},"Interface",[101,277,278],{},"Flows",[101,280,281],{},"Direction follows",[101,283,284],{},"What a silent failure costs",[111,286,287,303,319,335],{},[98,288,289,294,297,300],{},[116,290,291],{},[17,292,293],{},"ERP → TMS",[116,295,296],{},"AP\u002FAR and reference \u002F master data",[116,298,299],{},"ERP owns it",[116,301,302],{},"Stale reference data → a forecast built on it",[98,304,305,310,313,316],{},[116,306,307],{},[17,308,309],{},"TMS → ERP",[116,311,312],{},"Accounting entries (± payment status)",[116,314,315],{},"TMS owns treasury postings",[116,317,318],{},"A sub-ledger that won't reconcile to the GL",[98,320,321,326,329,332],{},[116,322,323],{},[17,324,325],{},"TMS ↔ Banks",[116,327,328],{},"Statements in, payments out, acks back",[116,330,331],{},"The bank's formats\u002Fchannel",[116,333,334],{},"The critical path — a missed statement or payment",[98,336,337,342,345,347],{},[116,338,339],{},[17,340,341],{},"Market data → TMS",[116,343,344],{},"FX and interest rates",[116,346,203],{},[116,348,349],{},"Mis-valuation and a mispriced position",[14,351,352,353,356,357,360],{},"Keep this register next to the system-of-record table: one says ",[58,354,355],{},"who owns each field",", the other says ",[58,358,359],{},"which pipe carries it and what breaks if it's quiet",".",[22,362,364],{"id":363},"environments","Environments",[14,366,367,368,371],{},"Finance systems need a proper environment strategy — typically development, test, and a ",[17,369,370],{},"pre-production"," environment that genuinely mirrors production, then production. The pre-prod discipline matters: in one landscape, pre-production was quietly treated as \"another test environment,\" and teams changed static data in Test and Pre-Prod independently — which produced configuration drift that only surfaced at go-live. Keep environments controlled and their data governed.",[22,373,375],{"id":374},"what-usually-goes-wrong","What usually goes wrong",[48,377,378,384,390,396],{},[51,379,380,383],{},[17,381,382],{},"No system-of-record decision."," Two systems own the same data; reconciliation becomes a permanent job.",[51,385,386,389],{},[17,387,388],{},"Point-to-point spaghetti."," Interfaces built ad hoc as extracts, undocumented and unmonitored, until no one can safely change anything.",[51,391,392,395],{},[17,393,394],{},"Dirty master data."," Bank accounts, counterparties and mappings maintained inconsistently across systems.",[51,397,398,401],{},[17,399,400],{},"Unmonitored interfaces."," A feed fails silently and the first sign is a wrong position or a missed payment.",[22,403,405],{"id":404},"design-principles","Design principles",[14,407,408,409,412,413,416,417,420,421,424],{},"Keep four principles in view: ",[17,410,411],{},"one owner per data domain","; ",[17,414,415],{},"interface-based, governed integration"," rather than point-to-point; ",[17,418,419],{},"master data owned and clean","; and ",[17,422,423],{},"every interface monitored and reconciled",". Follow them and the architecture is a stable foundation. Skip them and each new system makes the landscape harder, not easier.",[14,426,427,430,431,435],{},[17,428,429],{},"Start with ownership:"," the free ",[246,432,434],{"href":433},"\u002Ftools\u002Fsystem-of-record-map","Treasury System-of-Record Map"," applies the first principle — one owner per data domain — flags anything that breaks it, and exports a table you can drop straight into your architecture doc.",[437,438],"hr",{},[14,440,441],{},[58,442,443,444,448,449,453,454,458,459,463],{},"Part of the ",[246,445,447],{"href":446},"\u002Ftopics\u002Ftreasury-systems-architecture","Treasury Systems Architecture guide",". See also ",[246,450,452],{"href":451},"\u002Fblog\u002Fwhat-is-a-treasury-management-system","what a TMS is"," and ",[246,455,457],{"href":456},"\u002Fblog\u002Ftreasury-bank-connectivity-swift-host-to-host-api-ebics","bank connectivity options",". The ",[246,460,462],{"href":461},"\u002Fnewsletter","newsletter"," sends one finance-systems pattern, product decision or build lesson every two weeks.",{"title":39,"searchDepth":465,"depth":465,"links":466},2,[467,468,469,470,471,472,473],{"id":24,"depth":465,"text":25},{"id":45,"depth":465,"text":46},{"id":82,"depth":465,"text":83},{"id":220,"depth":465,"text":221},{"id":363,"depth":465,"text":364},{"id":374,"depth":465,"text":375},{"id":404,"depth":465,"text":405},"architecture","2026-07-23","How a corporate treasury landscape fits together: ERP, TMS, bank connectivity and market data, joined by defined interfaces, with a system-of-record matrix.",false,"md",null,[481,484,487],{"question":482,"answer":483},"What does a corporate treasury systems architecture look like?","At its simplest, four layers connected by defined interfaces: source systems (the ERP, holding the ledger, AP and AR), the treasury system (a TMS or the ERP's treasury module, handling cash, risk and payments), bank connectivity (the channel to banks for statements and payments), and market data (FX and interest rates). The value and the risk are in the interfaces and in deciding which system is the source of record for each type of data.",{"question":485,"answer":486},"What is a system of record in treasury architecture?","The system of record for a data domain is the single system that owns the authoritative version of it — for example, the ERP owns the general ledger, the TMS owns the cash position and exposures, and bank master data has one owner rather than being maintained in several places. Defining the system of record for each domain is the most important architectural decision because it prevents duplicate maintenance and reconciliation.",{"question":488,"answer":489},"How do ERP and TMS integrate?","Through defined interfaces: the ERP typically sends AP\u002FAR and reference data to the TMS, and the TMS sends accounting entries (and sometimes payment status) back to the ERP's general ledger. The design should be interface-based and governed, not a web of point-to-point extracts, and it should follow the system-of-record decisions so each field flows from its owner.",true,{},1,"\u002Fblog\u002Freference-architecture-for-corporate-treasury","treasury-systems-architecture","treasury systems architecture","annual","reviewed","Tan Gravam","informational",{"title":5,"description":476},"blog\u002Freference-architecture-for-corporate-treasury",[503,474,504,505],"treasury","integration","finance-systems","2026-07-27","Ixtm4OtPc6GXgrD7QEAZLCrT_7XZ7p3ms4KaHh80FWQ",[509,513],{"title":510,"path":511,"stem":512,"type":35,"language":479,"draft":477,"children":-1},"Real-Time Treasury: What It Actually Means","\u002Fblog\u002Freal-time-treasury","blog\u002Freal-time-treasury",{"title":514,"path":515,"stem":516,"type":35,"language":479,"draft":477,"children":-1},"Risk Appetite and Risk Limits in Treasury","\u002Fblog\u002Frisk-appetite-and-limits-in-treasury","blog\u002Frisk-appetite-and-limits-in-treasury",[518,522,526],{"path":519,"title":520,"description":521},"\u002Fblog\u002Ftreasury-system-of-record","What Is the Treasury System of Record?","A treasury system of record is the single authoritative source for its data. Designating one, and the TMS-vs-ERP boundary, ends 'which number is right?'",{"path":523,"title":524,"description":525},"\u002Fblog\u002Ftreasury-data-model","The Treasury Data Model","The treasury data model is the structure of a treasury system's data — the core entities and the reference data they depend on. Why every output rests on it.",{"path":527,"title":528,"description":529},"\u002Fblog\u002Ftreasury-master-data-management","Treasury Master Data Management","Treasury master data is the static reference data everything depends on — banks, counterparties, instruments, settlement instructions — and ownership is key.",1785182342007]