# Infor M3 MI API Program List for Integrations

> Source: https://netray.co/tools/infor-m3-mi-api-program-list-reference
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: Free Tools

## Short answer

The M3 MI programs integrations use most, grouped by area, with the M3 program each mirrors, confirmed transaction names, main tables and how to list the rest in MRS001 and MRS002.

## Category

infor-cloudsuite

## Erp

Infor M3

## Audience

- M3 integration developer
- M3 technical consultant
- ION developer

## Tool

**Kind:** worksheet

**Mode:** reference

**Columns:**

#### MI program

**Key:** mi

**Type:** text

#### Business object

**Key:** object

**Type:** text

#### M3 program it mirrors

**Key:** mirror

**Type:** text

#### Common transactions

**Key:** trans

**Type:** text

#### Main table(s)

**Key:** tables

**Type:** text

#### Typical use

**Key:** use

**Type:** text

#### Notes

**Key:** notes

**Type:** text

**Rows:**

**Mi:** MMS200MI

**Object:** Item

**Mirror:** MMS001 Item. Open

**Trans:** GetItmBasic, GetItmWhsBasic, GetItmFac, AddItmViaItmTyp

**Tables:** MITMAS, MITBAL, MITFAC

**Use:** Read item master data, create items from an item type template

**Notes:** Full list in MRS002 for MMS200MI

**Mi:** MMS060MI

**Object:** Balance identity

**Mirror:** MMS060 Balance Identity

**Trans:** List in MRS002

**Tables:** MITLOC

**Use:** On-hand by location, lot and container

**Notes:** Also used by warehouse interfaces to download aggregated on-hand balances

**Mi:** MMS100MI

**Object:** Distribution order

**Mirror:** MMS100 Distribution Order

**Trans:** List in MRS002

**Tables:** MGHEAD, MGLINE

**Use:** Create and read distribution orders between warehouses

**Mi:** MMS850MI

**Object:** Stock messages (inventory transactions)

**Mirror:** MMS850

**Trans:** AddAdjust, AddMove, AddReclass (full list in MRS002)

**Tables:** MITTRA, MITLOC

**Use:** Upload adjustments, moves and reclassifications from a WMS or scanner

**Notes:** Messages are queued and processed asynchronously; check MRS002 for the process transaction on your version

**Mi:** MHS850MI

**Object:** Received order transactions

**Mirror:** MHS850

**Trans:** AddCOPick, AddPOReceipt, AddMOReceipt, AddDOPick, AddDOReceipt, PrcWhsTran

**Tables:** MITTRA and the order tables

**Use:** Report picks and receipts for CO, PO, MO and DO from an external WMS

**Notes:** Add transactions queue messages; PrcWhsTran processes the queued package

**Mi:** MHS810MI

**Object:** Picking lists

**Mirror:** Picking list

**Trans:** List in MRS002

**Tables:** Picking list tables

**Use:** Download picking lists to an external warehouse system

**Mi:** MWS410MI

**Object:** Delivery

**Mirror:** MWS410 Delivery Toolbox

**Trans:** GetHead (full list in MRS002)

**Tables:** MHDISH, MHDISL

**Use:** Read delivery numbers, packages and addresses for shipping systems

**Mi:** OIS100MI

**Object:** Customer order

**Mirror:** OIS100 Customer Order. Open

**Trans:** AddBatchHead, AddBatchLine, Confirm

**Tables:** OOHEAD, OOLINE

**Use:** Create customer orders from e-commerce or EDI: header, lines, then Confirm

**Notes:** Batch entry: nothing becomes a real order until Confirm succeeds

**Mi:** OIS320MI

**Object:** Customer pricing

**Mirror:** Price inquiry

**Trans:** List in MRS002

**Tables:** Price list tables

**Use:** Get the M3 price for customer, item and quantity before ordering

**Notes:** Use it rather than reading price list tables, so price logic is applied

**Mi:** CRS610MI

**Object:** Customer

**Mirror:** CRS610 Customer. Open

**Trans:** GetBasicData (full list in MRS002)

**Tables:** OCUSMA

**Use:** Read customer master data

**Notes:** Full list in MRS002 for CRS610MI

**Mi:** CRS620MI

**Object:** Supplier

**Mirror:** CRS620 Supplier. Open

**Trans:** List in MRS002

**Tables:** CIDMAS, CIDVEN

**Use:** Read and maintain supplier master data

**Mi:** CRS175MI

**Object:** General codes

**Mirror:** CRS175 General Code

**Trans:** LstGeneralCode

**Tables:** CSYTAB

**Use:** List CSYTAB values for a constant

**Mi:** CRS045MI

**Object:** Country

**Mirror:** CRS045 Country

**Trans:** GetBasicData

**Tables:** CSYTAB

**Use:** Country basic data

**Mi:** MNS100MI

**Object:** Division

**Mirror:** MNS100 Company / division

**Trans:** GetBasicData

**Tables:** CMNDIV

**Use:** Division basic data

**Mi:** PPS200MI

**Object:** Purchase order

**Mirror:** PPS200 Purchase Order. Open

**Trans:** GetHead, GetLine, LstLine

**Tables:** MPHEAD, MPLINE

**Use:** Read PO headers and lines

**Notes:** Check MRS002 for create transactions on your version

**Mi:** PPS300MI

**Object:** Purchase order receiving

**Mirror:** PPS300 Purchase Order. Receive Goods

**Trans:** List in MRS002

**Tables:** MPLINE, MITTRA

**Use:** Report goods receipts from a dock or scanner app

**Mi:** PMS100MI

**Object:** Manufacturing order

**Mirror:** PMS100 Manufacturing Order. Open

**Trans:** List in MRS002

**Tables:** MWOHED, MWOMAT, MWOOPE

**Use:** Read or create manufacturing orders from MES

**Mi:** PMS050MI

**Object:** MO receipt reporting

**Mirror:** PMS050 Report Receipt

**Trans:** List in MRS002

**Tables:** MWOHED, MITTRA

**Use:** Report finished quantity from the shop floor

**Mi:** PMS070MI

**Object:** MO operation reporting

**Mirror:** PMS070 Report Operations

**Trans:** List in MRS002

**Tables:** MWOOPE

**Use:** Report time and quantity per operation from MES

**Mi:** APS450MI

**Object:** Supplier invoice batch

**Mirror:** APS450 Supplier Invoice Batch

**Trans:** List in MRS002

**Tables:** Supplier invoice batch tables

**Use:** Load supplier invoices from scanning or AP automation

**Mi:** GLS840MI

**Object:** GL batch

**Mirror:** GL batch upload

**Trans:** List in MRS002

**Tables:** General ledger batch tables

**Use:** Upload journals from payroll or a subledger

**Mi:** MNS150MI

**Object:** User

**Mirror:** MNS150 User. Open

**Trans:** List in MRS002

**Tables:** CMNUSR

**Use:** Read users for provisioning and access reviews

**Mi:** EXPORTMI

**Object:** Generic SQL-like export

**Mirror:** -

**Trans:** Select

**Tables:** Any table

**Use:** Read data with a select statement when no business MI covers it

**Notes:** Read only and returns data unformatted; prefer business MIs where they exist

**Mi:** MDBREADMI

**Object:** Generic index read

**Mirror:** -

**Trans:** Get / Lst transactions per table and index (list in MRS002)

**Tables:** Tables with a configured read transaction

**Use:** Fast keyed reads of a specific table

**Notes:** Only the table and index combinations configured on your system are available; check MRS002

**Mi:** CMS100MI

**Object:** Custom lists

**Mirror:** -

**Trans:** Transactions created per custom list

**Tables:** Joined tables in the list definition

**Use:** Custom joined lists without code

**Notes:** Each custom list gets its own Lst transaction

**Notes:** 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.

## Content

**Intro:** 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.

**Sections:**

#### How to use it

**Body:** 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

**Body:** 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.

**Bullets:**

- 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

**Body:** 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

**Body:** 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.

**Cta:** 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.

**Faq:**

#### Where is the list of all M3 APIs?

**Answer:** 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?

**Answer:** 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?

**Answer:** 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?

**Answer:** 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.

## Search terms

infor m3 api list, infor m3 api documentation, infor m3 api, api integration in infor m3, mms200mi, ois100mi addbatchhead, pps200mi, mrs001 mi programs

---
Talk to an engineer: https://netray.co/contact?intent=erp_ai | Machine catalog: https://netray.co/agent/catalog.json
