How-toInfor M3Finance / Chart of Accounts

Infor M3 chart of accounts: structure and setup

Question
infor m3 chart of accounts

Also searched as

  • m3 accounting dimensions setup
  • infor m3 AIT1 AIT2 dimensions
  • how to add a gl account in infor m3

Short answer

In Infor M3 the chart of accounts is the list of values for the first accounting dimension (the account, AIT1), and it sits alongside up to six more accounting dimensions such as cost centre, project or department. Together they form the accounting string every posting carries. You set it up in the finance constants (CRS-series programs), then link transactions to it through accounting control objects.

Applies to: Infor M3 13.x and cloud M3 tenants. Setup program names vary by bookmark; use the program search for chart of accounts and accounting dimensions.

Set up or extend the chart of accounts safely

  1. 1Agree the design first on paper: account ranges (assets, liabilities, equity, revenue, cost of sales, expense), the other dimensions you need, and which are mandatory on which accounts.
  2. 2Define the accounting dimensions: which of the seven positions is used for what, and the length and type of each. Changing this after go-live is painful, so test in a non-production environment.
  3. 3Create the dimension values: the accounts for dimension 1, then the cost centres, projects or departments for the other dimensions.
  4. 4Set the account properties: account type, whether other dimensions are required, blocked, or optional, and any currency or tax defaults.
  5. 5Define the account hierarchy or reporting structure used for financial statements, if your reports rely on one.
  6. 6Link transactional postings to accounts through the accounting control objects, for example sales, purchase receipts, inventory and variances.
  7. 7Test with real examples: a customer invoice, a goods receipt, a supplier invoice and a manual voucher, and look at the generated accounting strings.
  8. 8Move the setup between environments by repeatable method (M3 data migration or Infor-supported load tools) rather than retyping.

The accounting string, in plain terms

A posting line in M3 is not 'an account and an amount'. It is an account plus dimensions: for example account 4000, cost centre 120, project P-2026-14. The first position is the account and the others are optional dimensions that your design makes mandatory, optional or forbidden per account.

That is how one account like salary expense can be reported by department without creating a separate account for each department. The cost of this flexibility is that bad master data in any dimension breaks postings later.

Accounting control objects connect operations to accounts

Operational transactions such as a shipment, a goods receipt or a stock adjustment do not ask the user for an account. M3 derives the account from the accounting control object chain: transaction type, item or customer group, and warehouse or facility, resolving to an account and dimensions.

If you add a new product group or warehouse and forget its control objects, the transaction either fails or falls back to a default account. Include control object setup in every master data change checklist.

Company, division and consolidation

Chart of accounts values are generally defined at company level and shared by the divisions in that company, which is what makes consolidation across divisions simple. Cross-company consolidation needs mapping between charts.

Decide early whether subsidiaries share one chart. Different charts per legal entity are possible but turn every consolidation into a mapping exercise.

Changing a live chart

Adding accounts is low risk. Renaming is harmless. Changing the meaning of an account, or the dimension structure, with open and historical postings is where projects get hurt.

Block an obsolete account instead of deleting it, and do reclassification with vouchers so the audit trail stays complete.

Try it here, free

Infor M3 Facility and Warehouse Structure Worksheet

Open full tool

Design the M3 hierarchy of division, facility, warehouse and locations on one sheet, with storage capacity totals.

Common pitfalls

  • !Changing dimension structure after go-live instead of adding a new dimension value or account.
  • !Forgetting accounting control objects when adding a product group, warehouse or customer group.
  • !Making a dimension mandatory without loading all its values, so users cannot post.
  • !Reusing an old account for a new purpose and corrupting trend reports.
  • !Deleting accounts with history instead of blocking them.

How an ERP-grounded AI assistant handles this

Chart design questions are reading questions: which accounts have no postings, which have postings without a cost centre, which control objects point at blocked accounts. A grounded assistant such as ERPray can answer these read-only and show the query, which is a safe way to clean up a chart before a restructure. Any master data change still goes through your normal M3 change process.

Frequently asked questions

What is AIT1 in Infor M3?

AIT1 is the first accounting dimension, which holds the general ledger account. AIT2 to AIT7 hold the other dimensions your finance design defines, such as cost centre or project.

How many accounting dimensions does M3 support?

Up to seven accounting dimensions per accounting string, with the account being the first. How many you actually use is a finance design decision.

Why does a shipment post to the wrong account?

Operational postings take their account from accounting control objects. A wrong account usually means a control object for that product group, warehouse or transaction type is missing or points at the wrong account.

Can I delete an account that has postings?

Do not. Block the account so no new postings can be made, and keep it for reporting history. Reclassify balances with a voucher if needed.

Related

How-to

How to record an expense in the general ledger in Infor M3

In M3 an expense reaches the general ledger as a voucher: either a supplier invoice entered in Accounts Payable (the APS450 family) that debits an expense account and credits the AP control account, or a manual journal voucher entered in General Ledger (GLS040 in most installations). Either way the voucher needs a valid accounting string, a balanced total, and must be updated to the ledger.

How-to

Infor M3 Master Data: The Core Objects and the Programs That Maintain Them

Infor M3 master data is a small set of linked objects: items (MMS001), item-warehouse records (MMS002), customers (CRS610), suppliers (CRS620), product structures (PDS001) and the operations and work centers that make up routings. Everything transactional, from customer orders to manufacturing orders, reads these records, so load them in dependency order and treat them as governed data.

How-to

Infor M3 Standard Cost: How to Set, Roll Up and Revalue

In M3 a standard cost is calculated by product costing from the bill of material, routing and overhead rules, then updated onto the item as the cost used for inventory valuation and variance. Changing it triggers a revaluation of stock, so plan the date, the periods and the approval before you update.

How-to

How to Run Period End Close in M3

M3 period end close is not a single button - it is a sequence: close sub-ledger activity in inventory, purchasing and sales first, reconcile and post any pending vouchers, then close the accounting period in the financials basic data so no further postings can hit it without explicit reopening. Doing the steps out of order is the most common reason a company has to reopen a period after close.

Error fix

M3 API Error: Record already exist

Record already exist means the MI Add transaction you called is trying to insert a key that is already present in the target M3 table, most often because a prior call succeeded and was retried, or because the key fields you built do not match what you think they match. Read the errorField and errorFieldGroup attributes on the response to see exactly which key field M3 flagged, then either switch to the matching Chg (change) transaction or fix the key construction in the caller.

Advanced

Paging M3 API MI List Transactions Past the Default Record Limit

M3 List transactions (the read/browse transaction most MI programs expose, such as CRS610MI.LstByNumber or OIS100MI.LstOrderHead) cap the rows returned per call using the MaxReturnedRecords input field, and by default many clients leave it low or unset, which looks like the API silently truncating results. Set MaxReturnedRecords explicitly, then loop the call using the last key values from the previous page as the starting position until fewer rows than the limit come back.

AI for ERP

Infor M3 AI: A Practical Path from MI Programs to a Private Assistant

Infor M3 AI explained: grounded natural-language answers over MI programs and MEC, agents for distribution and manufacturing, on-prem or EU private cloud.

Stuck on Infor M3?

Talk to engineers who work inside Infor M3 every week, and who build private AI that answers these questions from your own ERP data.

Keep exploring

Free tools

ERP fixes and how-tos

Runs with your ERP

Guides

AI on your ERP

Integrations

Comparisons

Software