A kick start guide to build a custom API with Infor Xtend M3 in a Multi-tenant environment

4 min readJun 19, 2021

Gone are the days of complicated MAK modifications which require extensive experience and knowledge to customize and add functionalities to standard M3. This blog is a quick start to your first Xtend M3 API development.


  1. Xtend Activation
    To activate Xtend m3 in your tenant, you need to log a ticket with Infor. Once done, make sure your user has the right roles to access it. Refer https://infor-cloud.github.io/xtendm3/docs/getting-started


  1. Click on the highlighted icon to create a new extension. Choose the extension type as Transaction for custom APIs.

2. Add the extension name, transaction name, and description and click next. The extension name must begin with EXT. Multi must be ON only for the List transactions.

3. The next step is to add the input and output parameters to the API.

Once done, hit create!

4. Your platform is ready to write some code to make this work!

Click on the Edit icon to start writing the code. We can compile the code to check for compilation errors.


  1. Who codes without debugging? We can use log statements to debug the code. We use the Logger API to write the log statements.
    Refer https://infor-cloud.github.io/xtendm3/docs/documentation/api-specification/logger-api/
  2. Only debug-level log statements are recommended to be used in the code to avoid an exponential increase of log sizes in the cloud environment. For example - logger.debug(“Order status is ”+STAT)
  3. How do we enable logging and view the logs?
    We can enable the logging from the business engine jobs and we can view the logs in the business engine logs. See the screenshot below to know how to access them.

4. Go to configure future logging and click on Add in the business engine jobs

Add the user name with which you are testing, your extension API name, and checkmark the log levels as needed. Do not forget to checkmark the Log to file at the bottom as shown below.

We can now see the transaction being added to logging which will by default be active for 12 hours.

Once you test the API, you should be able to check the dump logs in business engine logs.

Activation and Export

  1. Go to management as shown in the screenshot below

2. Activate the transaction by selecting your custom transaction and clicking the gear icon.

3. We can export the extension using the below steps -

This generates a JSON file and can be used to import across multiple environments and this file also needs to be shared with Infor for code review.

Code Review and approval

  1. Once the transaction is tested well, we need to get it reviewed by the
    Infor’s code review team by forwarding the details to XtendM3@infor.com.
  2. Refer to this page to check what details need to be sent to Infor.
  3. Remember consulting charges are applied by Infor on this code review process and it needs to be considered before sending the estimates to the customer. Clarity tasks need to be created for this process and it is only then that Infor will provide the signed package for production deployment.

4. We can only deploy the signed package by Infor in production.

Are you wondering how you will code in the premature editor in the Xtend M3 tool? Feel more comfortable with Eclipse, IntelliJ IDEA, etc? Want to know more about version control? Planning to catch up on these topics in the next blog! See you, there!




Infor M3 Sr. Consultant who believes in Wisdom increases when shared. Here to share whatever knowledge I have attained in my experience as an Infor consultant.