Infor M3 SDK, MI APIs and REST API Documentation Guide
infor m3 sdk
Also searched as
- sdk infor m3
- infor m3 rest api documentation
- m3 mi programs list
- m3 api developer guide
Short answer
There is no single M3 SDK. Developers use a set of tools: MI programs (the API layer over Business Engine), the REST endpoint that exposes them, the H5 client SDK for scripts and extensions, and the Grid and ION tooling around them. Start with MI programs and REST, and use the official Infor documentation for the transaction list.
Applies to: Infor M3 Business Engine, on-prem and CloudSuite. Endpoint paths and authentication differ between on-prem and cloud.
Make your first M3 API call
- 1Find the MI program for the business object, for example one for items, one for customers. The names end in MI, such as a program per master data area.
- 2Open the transaction list for that program in the API documentation or the M3 API metadata programs, and read input and output fields and which are mandatory.
- 3Get credentials. In the cloud, create an ION API authorized app and a service account and download the credential file. On-prem, check how your Grid is secured.
- 4Request an access token with OAuth 2.0 where ION API is used, and send it as a bearer token.
- 5Call the execute endpoint with program, transaction and parameters, as a GET for reads.
- 6Parse the JSON, which returns the records in a list and an error block with the message when a transaction fails.
- 7Handle paging and limits for list transactions, and log the full error text.
The pieces of the developer surface
MI programs are the supported API. Each program has transactions, with named input and output fields, that wrap Business Engine logic so that validation rules still run. They are the right way to read and write M3 data from outside.
The REST interface exposes MI transactions over HTTP with JSON. The H5 client has its own scripting SDK for personalization and extensions in the UI. Event Analytics, Grid applications and MEC for EDI are separate tools around the core.
Example REST call shape
The URL shape below is the commonly documented pattern. Your base host, tenant segment and version prefix depend on your deployment, so copy the base URL from your ION API or Grid configuration.
Read calls are GET requests with the field values as query parameters. Write calls use the same pattern with the add, change or delete transaction names.
GET https://<host>/<tenant>/M3/m3api-rest/v2/execute/MMS200MI/GetItmBasic?ITNO=ITEM-123
Authorization: Bearer <access token>
Accept: application/json
Rules that save time
Use a dedicated service user whose roles allow only the programs needed. An unauthorized program returns a not-authorized error rather than data.
Send dates as YYYYMMDD and numbers without locale separators. For list transactions set a maximum returned records value and page through the result.
Prefer MI transactions to direct SQL for writes. For reads at scale, use a reporting replica or the data lake rather than hammering the API.
Try it here, free
M3 MI API Batch Load Time Estimator
Estimate how long a bulk load through M3 APIs will run and how added parallel threads change it, using your own measured response time.
Common pitfalls
- !Writing to M3 tables with SQL instead of MI transactions.
- !Using a personal account for integrations, so the role or password change breaks the flow.
- !Ignoring the error block and treating HTTP 200 as success.
- !Missing mandatory fields because the documentation was for another version.
- !Not paging list transactions and silently truncating results.
How an ERP-grounded AI assistant handles this
Agents that act on M3 should call MI transactions under a narrow service role and ask for human approval on writes. Netray builds such tool layers, typically with an open-weight model served on your own GPUs, so prompts and records stay inside your network.
Frequently asked questions
Is there a download called the M3 SDK?
Infor ships several development components rather than one package. Which you need depends on whether you are calling APIs, extending the H5 UI or building Grid applications. Check the Infor documentation library for your version.
Where is the REST API documentation?
In the Infor documentation library and the ION API section of your tenant, plus the API metadata inside M3 for the transaction list and fields of each MI program.
Can I call M3 APIs without ION API?
On-prem installations can expose the endpoints through Grid with their own authentication. In the cloud, ION API is the supported route.
Related
How to Call M3 API (MI Programs) Through ION API
Calling M3 from an external system today almost always means going through ION API rather than the older direct MvxAPI SOAP endpoint: you create an ION API authorized app or service account in the ION API portal, download its .ionapi credential file, obtain an OAuth 2.0 access token, and call the M3 MI program transaction through the m3api-rest execute endpoint with that token.
AdvancedPaging 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.
How-toHow to Add a Personalization Script to an M3 H5 Panel
M3 H5 lets an administrator attach a JavaScript personalization script to a specific panel of a specific program, using the MForms client API to read fields, react to panel and field events, and adjust the UI (hide fields, set defaults, validate input) without modifying the underlying M3 program. Scripts are written and attached through Personalization mode in H5, saved against the panel/program combination, and deployed to the users or roles who should see the behavior.
Error fixM3 API Error: Not Authorized to Program
Not authorized to program (or the equivalent transaction-level authorization error) means the M3 user ID the integration authenticates as can log in fine but has not been granted access to that specific MI program, transaction, or company/division through its authority group. Fixing it means adding the program/transaction to the integration user's authority group in M3, not changing anything in the calling code.
Error fixM3 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.
How-toHow to Build a Grid Mapping in M3 Enterprise Collaborator (MEC)
M3 Enterprise Collaborator (MEC) moves data between an external format (EDI, flat file, XML) and M3's own API by chaining a collection step (getting the document in), a grid mapping step (field-level transformation from source structure to M3 API call structure), and a delivery step (executing the mapped MI transaction). Building a new mapping means defining the source document structure, building the grid that maps each source field to its M3 API field, and testing with representative sample documents before going live.
AI for ERPInfor 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
- M3 MI API Batch Load Time EstimatorEstimate how long a bulk load through M3 APIs will run and how added parallel threads change it, using your own measured response time.
- Infor M3 MI API Transaction Call GeneratorFill in program, transaction and parameters to get a ready M3 REST call as URL, curl and a JavaScript fetch snippet.
- Infor M3 H5 Script Review ChecklistA review checklist for H5 Client scripts covering design, coding, security, testing and upgrade risk.
ERP fixes and how-tos
- How to Call M3 API (MI Programs) Through ION APIHow to build and authenticate an ION API call to an M3 MI program: service account setup, the .ionapi file, the execute endpoint URL, and request/response shape.
- Infor M3 API Swagger: Discover MI Programs, Authenticate and Test CallsHow to find M3 MI programs and REST APIs through the ION API Swagger and OpenAPI documentation, authenticate with an ionapi file, and test your first call.
- Private AI Layer for Infor M3 On-Prem: Reference ArchitectureReference architecture to add a private AI assistant to Infor M3 on-prem: data access paths, retrieval, permissions, sizing and rollout, no cloud needed.
Guides
- Infor M3 API Integration with MI Programs and RESTInfor M3 API integration guide covering MI programs, the m3api-rest v2 endpoint, ION API gateway OAuth, Event Hub, and error handling for reliable interfaces.
- Infor M3 API Toolkit: A Developer's Guide to MI Programs and MvxAPIBuild robust integrations with the Infor M3 API toolkit. Learn MI programs, MvxAPI patterns, and transaction handling for M3 13.4+ environments.
- Infor M3 API Performance Optimization GuideOptimize Infor M3 API performance. MI program tuning, API call batching, caching strategies, and connection pool management for high-volume integrations.
Integrations
- How to add AI agents to Infor M3How to add AI agents to Infor M3: a tool layer over MI programs and ION, read-first workflows for POs, MO and CO exceptions, and human approval on writes.
- How to build an MCP server for Infor M3How to build a Model Context Protocol server for Infor M3: which read-only tools to expose over MI programs, ION or on-prem auth, transports, scoping and audit.