Integration
Restaurant operations

How to Handle Central Kitchen Transfers in a Multi-Entity Xero Restaurant Group

How to handle central kitchen transfers in a multi-entity Xero restaurant group

You opened a central kitchen for a reason: prep and buy in one place, hold food cost down across every site, and open the next store without rebuilding your supply chain each time. That payoff is real, and most of your accounting keeps up with it. The one place it does not is the internal delivery. Every time the kitchen sends stock to one of your own stores, that single movement has to be recorded in two separate Xero files, and because each entity keeps its own books, nothing posts both sides for you, so someone keys it in by hand, twice, for every internal delivery, every week. Getting this right is what keeps the whole model paying off: each site's P&L shows its true cost, month-end closes without a scramble, and you can open the next location without handing your finance team another pile of manual entries. Get it wrong and that hidden manual load, and the errors buried in it, grow with every store you add. This guide walks you through how to handle it: what your multi-entity Xero setup already does for you, where it stops, and the two decisions that keep a multi-entity Xero restaurant group manageable as you scale.

Step 1: Map What Your Multi-Entity Xero Setup Already Handles

Run a restaurant group as several legal entities and each one usually keeps its own Xero file. A multi-entity Xero setup is that arrangement: one accounting organisation per legal entity, each mapped to its own outlets. The external purchasing posts cleanly. It is the single internal delivery between two of your own entities that has nowhere to go.

Start with what works, because most of it does. Each entity in the group connects its own accounting platform, and purchase invoices, supplier returns and central kitchen B2B orders post to the correct entity automatically. If a sync fails, the source document is un-posted and flagged with a retry, so nothing is left half-recorded. Per-location mapping routes each outlet to its own Xero organisation from one place, so a group can run many separate Xero files without logging into each one to move data across.

Underneath that, every entity maps its outlets to accounting cost centres, aligns its tax rates to Xero's tax codes, and assigns a general ledger (GL) purchase account to each inventory item, so purchase journal entries land on the right code from day one. That is the reliable spine of a multi-entity Xero restaurant group: invoices and credit notes flowing per entity, each file self-contained. The break comes at exactly one point.

Two-lane diagram showing supplier invoices posting to a central kitchen entity's Xero file and a store entity's Xero file, both marked Posted


Step 2: Find Where the Internal Transfer Breaks

The break is structural, not a setup mistake. When a central kitchen sells to one of its own stores, the same item has to carry two roles: a purchase code when a supplier delivers it into the kitchen, and a sales code when the kitchen ships it out to the store. An inventory item holds one general ledger code, so the moment that item also carries external supplier invoices, the internal transfer invoice has no second code to post against and cannot land.

This is the same fault line that runs through a group's multi-entity chart of accounts, seen from the transfer side rather than the code-mapping side. It is not solved by a clever configuration: no standard setup posts an internal central-kitchen-to-store transfer as two entries in two separate files on its own, and the common workaround among groups that hit it is simply not to post internal transfers into the kitchen's ledger at all. That is a real, defensible choice, and it is the reason this has to be decided rather than assumed.

Flow diagram with a red failure box showing one item needs two general ledger codes for an internal transfer and cannot post


Step 3: Count What the Manual Double Entry Costs You

Because the transfer will not post itself, someone keys it in twice: once as a sales invoice in the kitchen's file and once as a bill in the store's file. On its own that is a two-minute job. Across a real group it is not. A mid-size operator running roughly eight internal deliveries a week across five or more separate Xero files is entering about sixteen accounting lines by hand every week, near eight hundred a year, and every one is a chance to mistype a figure, code it wrong, or miss the delivery entirely.

The number also grows with the group, not with effort. Each new store or brand that trades internally adds another file and another set of hand-keyed entries, so the task gets heavier exactly as the finance team gets busier. This is the cost that stays invisible on a feature comparison and shows up only in the month-end close.

Stat callout card reading about 800 manual accounting entries a year, equal to 16 hand-keyed entries every week


Step 4: See One Delivery as Two Ledger Entries

To decide anything, be precise about what a single internal delivery actually is in accounting terms. It is not one event, it is two, sitting in two different Xero organisations. The kitchen owes a sales record for goods it sold out; the store owes a purchase record for goods it bought in. Both describe the same physical delivery, and both have to reconcile at close.

LedgerDocument that must postHow it happens today
Central kitchen's Xero fileDraft sales invoice, out to the storeEntered by hand
Receiving store's Xero fileDraft bill, in from the kitchenEntered by hand


Step 5: Set the Right Internal Transfer Price

The second decision is the number on that invoice, and it is easy to get wrong by defaulting to a figure the system already knows. Neither the recipe build cost nor the store's menu price is the right value for an inter-entity transfer: cost price hides the kitchen's own margin and makes the store look cheaper to run than it is, while menu price inflates the kitchen's revenue against a sale that never left the group. What most operators actually need is a third, distinct internal transfer price, agreed once and applied consistently.

Price basisWhat it isWhat it distorts
Recipe cost priceThe internal build cost of the itemHides the kitchen's margin; the store looks cheaper than it runs
Menu or retail priceThe price the store sells atInflates kitchen revenue on a sale that stayed inside the group
Set internal transfer priceA distinct, agreed inter-entity priceNothing, once agreed and applied the same way every time


Step 6: Decide Your Posting Policy Before You Scale

Before you build any automation or write a workaround, place your group on two axes: how many internal transfers you genuinely run in a week, and whether your entities truly need separate accounting files or only look like they do. Those two questions sort almost every group into a clear answer, and they matter more than any tool choice.

If the entities could sit in one file, keeping them as cost centres and skipping inter-entity posting entirely removes the whole problem; a clean accounting integration and GL mapping does more for close accuracy than automating a posting you did not need to make. If the entities are genuinely separate and the transfer volume is high, the manual burden is real, so agree a single internal transfer price and a posting policy before you add the next store rather than after. Low volume with separate files is the one case where posting by hand for now is the honest answer.

Two-axis decision matrix plotting internal transfer volume against entity separation with a recommended action in each quadrant


Start with one count: how many internal deliveries cross an entity boundary in a typical week. If it is a handful, post them by hand and move the finance team's attention somewhere higher-value. If it is dozens, decide your internal transfer price and your posting policy now, because retrofitting either across live multi-entity Xero ledgers once the group has grown is far harder than agreeing them once, early, while the structure is still small enough to change.

Book a Demo with Supy: multi-entity Xero for restaurant groups

Ready to optimize your restaurant operations?

Blog

Our operational insights

No items found.

Your questions 
answered

Everything you need to know about Supy — from setup to integrations, pricing, and daily use. If it’s not covered here, just ask.

What is a multi-entity Xero setup for a restaurant group?
+

A multi-entity Xero setup is when a restaurant group runs each legal entity as its own Xero organisation rather than sharing one file. Each entity keeps its own accounts, tax codes and general ledger, and each of the group's outlets maps to the entity that owns it. External purchasing posts cleanly this way: supplier invoices, returns and credit notes land in the correct entity's file automatically. The arrangement only strains at one point, the internal delivery that moves goods between two of the group's own entities, because that single event has to be recorded in two separate accounting files at once.

Why does a central kitchen's internal transfer fail to post in Xero?
+

When a central kitchen sells to one of its own stores, the same item has to carry two general ledger roles: a purchase code when a supplier delivers it into the kitchen, and a sales code when the kitchen ships it out to the store. An inventory item holds one general ledger code, so once that item already carries external supplier invoices, the internal transfer invoice has no second code to post against and cannot land. It is a structural limit, not a setup mistake, which is why no standard configuration posts the transfer on its own and groups have to decide how to handle it.

How much manual work does inter-entity transfer posting create?
+

Because the internal transfer will not post itself, each delivery is keyed in twice: once as a sales invoice in the kitchen's file and once as a bill in the receiving store's file. A mid-size group running about eight internal deliveries a week across five or more separate Xero files enters roughly sixteen accounting lines by hand every week, close to eight hundred a year. The load grows with the group rather than with effort, because every new store or brand that trades internally adds another file and another set of entries, so the task gets heavier exactly as the finance team gets busier.

What price should an internal central kitchen transfer post at?
+

Neither the recipe build cost nor the store's menu price is the right value for an inter-entity transfer. Posting at cost price hides the kitchen's own margin and makes the receiving store look cheaper to run than it is; posting at menu price inflates the kitchen's revenue against a sale that never left the group. What most operators actually need is a third, distinct internal transfer price, agreed once and applied the same way every time. Deciding that price basis before you build any posting process matters more than the mechanics of the posting itself, because it sets whether site-level profit and loss can be trusted.

Should a restaurant group post internal transfers to accounting at all?
+

Not always, and it is a genuine decision rather than an oversight. Many groups that hit the dual-posting wall choose simply not to post internal central-kitchen-to-store transfers into the kitchen's ledger, keeping the entities as cost centres in one accounting file instead. That is a defensible answer when the entities do not truly need separate books. Posting internal transfers only earns its manual cost when the entities are genuinely separate for legal or tax reasons and the transfer volume is high enough that the movement materially affects each entity's reported position. Start by asking whether separate files are actually required before automating anything.

Does Supy automate multi-entity Xero accounting for restaurant groups?
+

Supy connects each entity in the group to its own accounting platform, including Xero, and posts that entity's purchase invoices, supplier returns and central kitchen B2B orders to the correct file automatically, with a failed sync un-posted and flagged for retry. Each entity maps its outlets to cost centres and assigns a general ledger account per item, so purchase journals post to the right code from day one. What no tool posts on its own is the internal inter-entity transfer as a paired draft invoice and draft bill across two separate files; that stays a decision about pricing and posting policy, which is what this guide is for.

When should a group use separate Xero files instead of one file with cost centres?
+

Use separate Xero files per entity when the entities are genuinely distinct for legal, ownership or tax-registration reasons and each needs its own statutory accounts. Use one file with the entities represented as cost centres when the separation is really only operational, because that removes the inter-entity posting problem entirely and keeps close accuracy high. The deciding factors are how separate the entities truly are and how many internal transfers cross an entity boundary each week. Low transfer volume with separate files can be posted by hand for now; high volume with separate files needs an agreed internal transfer price and posting policy before the group grows further.

Ready to transform your operations?

Join 3500+ restaurant operators cutting costs, streamlining operations and making smarter decisions with Supy.