Infor M3 & CloudSuiteFree referencePDF, Excel, Word exportInfor M3All Infor M3 tools

Infor M3 MI API Program List for Integrations

This reference lists the M3 Business Engine 13.x MI programs integrations call most, with the M3 program each one mirrors, confirmed transaction names and the main tables behind them. Use it to find the right API before you open MRS001 or write a call.

Download:
MI programBusiness objectM3 program it mirrorsCommon transactionsMain table(s)Typical useNotes
MMS200MI
Item
MMS001 Item. Open
GetItmBasic, GetItmWhsBasic, GetItmFac, AddItmViaItmTyp
MITMAS, MITBAL, MITFAC
Read item master data, create items from an item type template
Full list in MRS002 for MMS200MI
MMS060MI
Balance identity
MMS060 Balance Identity
List in MRS002
MITLOC
On-hand by location, lot and container
Also used by warehouse interfaces to download aggregated on-hand balances
MMS100MI
Distribution order
MMS100 Distribution Order
List in MRS002
MGHEAD, MGLINE
Create and read distribution orders between warehouses
MMS850MI
Stock messages (inventory transactions)
MMS850
AddAdjust, AddMove, AddReclass (full list in MRS002)
MITTRA, MITLOC
Upload adjustments, moves and reclassifications from a WMS or scanner
Messages are queued and processed asynchronously; check MRS002 for the process transaction on your version
MHS850MI
Received order transactions
MHS850
AddCOPick, AddPOReceipt, AddMOReceipt, AddDOPick, AddDOReceipt, PrcWhsTran
MITTRA and the order tables
Report picks and receipts for CO, PO, MO and DO from an external WMS
Add transactions queue messages; PrcWhsTran processes the queued package
MHS810MI
Picking lists
Picking list
List in MRS002
Picking list tables
Download picking lists to an external warehouse system
MWS410MI
Delivery
MWS410 Delivery Toolbox
GetHead (full list in MRS002)
MHDISH, MHDISL
Read delivery numbers, packages and addresses for shipping systems
OIS100MI
Customer order
OIS100 Customer Order. Open
AddBatchHead, AddBatchLine, Confirm
OOHEAD, OOLINE
Create customer orders from e-commerce or EDI: header, lines, then Confirm
Batch entry: nothing becomes a real order until Confirm succeeds
OIS320MI
Customer pricing
Price inquiry
List in MRS002
Price list tables
Get the M3 price for customer, item and quantity before ordering
Use it rather than reading price list tables, so price logic is applied
CRS610MI
Customer
CRS610 Customer. Open
GetBasicData (full list in MRS002)
OCUSMA
Read customer master data
Full list in MRS002 for CRS610MI
CRS620MI
Supplier
CRS620 Supplier. Open
List in MRS002
CIDMAS, CIDVEN
Read and maintain supplier master data
CRS175MI
General codes
CRS175 General Code
LstGeneralCode
CSYTAB
List CSYTAB values for a constant
CRS045MI
Country
CRS045 Country
GetBasicData
CSYTAB
Country basic data
MNS100MI
Division
MNS100 Company / division
GetBasicData
CMNDIV
Division basic data
PPS200MI
Purchase order
PPS200 Purchase Order. Open
GetHead, GetLine, LstLine
MPHEAD, MPLINE
Read PO headers and lines
Check MRS002 for create transactions on your version
PPS300MI
Purchase order receiving
PPS300 Purchase Order. Receive Goods
List in MRS002
MPLINE, MITTRA
Report goods receipts from a dock or scanner app
PMS100MI
Manufacturing order
PMS100 Manufacturing Order. Open
List in MRS002
MWOHED, MWOMAT, MWOOPE
Read or create manufacturing orders from MES
PMS050MI
MO receipt reporting
PMS050 Report Receipt
List in MRS002
MWOHED, MITTRA
Report finished quantity from the shop floor
PMS070MI
MO operation reporting
PMS070 Report Operations
List in MRS002
MWOOPE
Report time and quantity per operation from MES
APS450MI
Supplier invoice batch
APS450 Supplier Invoice Batch
List in MRS002
Supplier invoice batch tables
Load supplier invoices from scanning or AP automation
GLS840MI
GL batch
GL batch upload
List in MRS002
General ledger batch tables
Upload journals from payroll or a subledger
MNS150MI
User
MNS150 User. Open
List in MRS002
CMNUSR
Read users for provisioning and access reviews
EXPORTMI
Generic SQL-like export
-
Select
Any table
Read data with a select statement when no business MI covers it
Read only and returns data unformatted; prefer business MIs where they exist
MDBREADMI
Generic index read
-
Get / Lst transactions per table and index (list in MRS002)
Tables with a configured read transaction
Fast keyed reads of a specific table
Only the table and index combinations configured on your system are available; check MRS002
CMS100MI
Custom lists
-
Transactions created per custom list
Joined tables in the list definition
Custom joined lists without code
Each custom list gets its own Lst transaction

Only transaction names confirmed in Infor documentation are listed; where a cell says List in MRS002, open MI Programs (MRS001), select the program and use the transactions option (MRS002) to see every transaction with its input and output fields on your 13.x system. Cloud-only XtendM3 APIs are not included.

Get your M3 API design checked

Send us the flows you plan and the MI programs you picked, and we will check transactions, error handling and volumes for your 13.x release.

Optional. The tool and every export work without this. No spam.

Was this tool useful?

How to use it

Search by area (item, order, purchase), by MI program or by table. Program names follow a simple rule: the MI program carries the code of the interactive program it serves plus MI, so MMS200MI works on items like MMS001 and OIS100MI on customer orders like OIS100. When a row says List in MRS002, the transaction names vary enough by version that you should read them from your own system. Transactions follow naming patterns: Get returns one record, Lst returns many, Add creates, Upd or Chg updates and Dlt deletes.

Where this lives in M3

MI Programs (MRS001) lists every MI program on the system. Transactions (MRS002) shows each transaction, whether it is single or multiple record output, and the input and output field list with lengths and mandatory flags. Calls go through the M3 API, ION API gateway or MI test tools. Generic readers sit beside the business MIs: EXPORTMI runs a select, MDBREADMI uses keyed read transactions per table and index, and CMS100MI exposes custom lists. Business MIs apply M3 logic; generic readers only read.

  • Use business MIs for anything that writes
  • Use MDBREADMI or CMS100MI for read patterns no standard MI offers
  • Check field lengths in MRS002; truncated keys fail silently in some tools
  • Respect max record count on Lst transactions

Worked example: order from a web shop

A web shop posts an order. The integration calls CRS610MI GetBasicData to check the customer, MMS200MI GetItmBasic for each item, then OIS100MI AddBatchHead with customer and order type, AddBatchLine for each line with item, quantity, warehouse and requested delivery date, and Confirm to create the real order in OOHEAD and OOLINE. If Confirm reports errors, the batch order stays unconfirmed and the error is returned, so the integration logs it and retries after the data is fixed. Pricing checks can come first through OIS320MI.

Version differences and gotchas

Transaction lists grow with each 13.x release and with cloud editions; never assume a transaction exists without checking MRS002. Date fields are YYYYMMDD and quantities are in the basic unit of measure unless the transaction takes an alternate unit field. EXPORTMI has limits on output length and is not meant for bulk extracts; use data lake or replication for that. Warehouse interface MIs (MHS850MI, MMS850MI) are asynchronous: they queue messages that M3 processes later, so check for errors after processing, not only the API return.

Frequently Asked Questions

Where is the list of all M3 APIs?

On your M3 system, MI Programs (MRS001) lists every MI program and Transactions (MRS002) lists each transaction with its fields. Infor also publishes API documentation on docs.infor.com. This page highlights the programs integrations use most.

How do I create a customer order through the M3 API?

Use OIS100MI: AddBatchHead creates the order header in batch entry, AddBatchLine adds each line, and Confirm turns it into a real customer order. Check the input fields in MRS002 for your version and handle errors returned by Confirm.

What is the difference between EXPORTMI and MDBREADMI?

EXPORTMI Select runs a select statement you pass in and returns rows as text; it is flexible but not tuned for volume. MDBREADMI calls keyed read transactions for a specific table and index, which is faster and more controlled. Check MRS002 for the MDBREADMI transactions configured on your system.

Can I write to any M3 table with an API?

No. Writes go through business MI programs that apply M3 logic, such as OIS100MI, MMS200MI or PPS300MI. Generic readers are read only. If no standard MI does what you need, the usual options are a custom MI or an extension, not direct database writes.

If you want your team to ask M3 about items, orders and stock in plain English on your own servers, we can build that layer on the MI APIs you already use.

ArchRay builder
Design the on-prem AI stack for Infor M3: model, GPUs, RAG pipeline, guardrails
See memory, speed and cost as you swap parts, then export the diagram. Free, in your browser.
Open the builder

Keep exploring

Free tools

ERP fixes and how-tos

Guides

AI on your ERP

Integrations

Software