> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreflux.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Infor CloudSuite via ION API Gateway REST API

> Client-mode REST API connector for Infor CloudSuite M3/CSI via ION API Gateway

Technical Preview

## Overview

Client-mode REST API connector for Infor CloudSuite M3/CSI via ION API Gateway. `BASE_ADDRESS` defaults to `https://mingle-ionapi.YOUR_REGION.inforcloudsuite.com/YOUR_TENANT`. Auth: **OAuth 2.0 Bearer (.ionapi service account or auth code)**. Pass secrets only at runtime via MQTT JSON placeholders or Hub `GET SECRET` — never commit real credentials.

## Auth

OAuth 2.0 Bearer (.ionapi service account or auth code). Prefer Hub secrets / `GET SECRET`. Never hard-code tokens into the `.lot`.

## Basic Syntax

```lot wrap theme={"theme":"css-variables","languages":{"custom":["/languages/lot.json"]}}

DEFINE ROUTE InforCloudsuiteViaIonApiGatewayRestApi WITH TYPE REST_API
    ADD REST_API_CONFIG
        WITH BASE_ADDRESS "https://mingle-ionapi.YOUR_REGION.inforcloudsuite.com/YOUR_TENANT"
        WITH ENABLE_CLIENT "true"
        WITH USE_SSL "true"
        WITH REQUEST_TIMEOUT '30'
        WITH DEFAULT_CONTENT_TYPE "application/json"
        # Auth: Authorization Bearer {value.json.access_token} — prefer Hub secrets / GET SECRET.
        # Optional Basic: WITH USERNAME "YOUR_USER" / WITH PASSWORD GET SECRET "APP_PASSWORD"
    ADD EVENT M3Lstoperations
        WITH SOURCE_TOPIC "integrations/infor-cloudsuite-via-ion-api-gateway/request/M3Lstoperations"
        WITH DESTINATION_TOPIC "integrations/infor-cloudsuite-via-ion-api-gateway/response/M3Lstoperations"
        WITH METHOD "GET"
        WITH ENDPOINT "/M3/m3api-rest/v2/execute/MOS070MI/LstOperations"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "Authorization" "Bearer {value.json.access_token}"
    ADD EVENT M3Rptoperation
        WITH SOURCE_TOPIC "integrations/infor-cloudsuite-via-ion-api-gateway/request/M3Rptoperation"
        WITH DESTINATION_TOPIC "integrations/infor-cloudsuite-via-ion-api-gateway/response/M3Rptoperation"
        WITH METHOD "POST"
        WITH ENDPOINT "/M3/m3api-rest/v2/execute/PMS050MI/RptOperation"
        WITH HEADERS
            ADD "Content-Type" "application/json"
            ADD "Authorization" "Bearer {value.json.access_token}"
        WITH BODY "{payload}"
    ADD EVENT M3Getitem
        WITH SOURCE_TOPIC "integrations/infor-cloudsuite-via-ion-api-gateway/request/M3Getitem"
        WITH DESTINATION_TOPIC "integrations/infor-cloudsuite-via-ion-api-gateway/response/M3Getitem"
        WITH METHOD "GET"
        WITH ENDPOINT "/M3/m3api-rest/v2/execute/MMS200MI/Get"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "Authorization" "Bearer {value.json.access_token}"
    # ... additional EVENTs in package .lot ...
```

## MQTT topics

Request topics under `integrations/infor-cloudsuite-via-ion-api-gateway/request/...`; responses on `integrations/infor-cloudsuite-via-ion-api-gateway/response/...`.

## Template reference

Generated from the shipped broker template `infor-cloudsuite-via-ion-api-gateway` (`-routeCode INFOR_CLOUDSUITE_VIA_ION_API_GATEWAY`). It lists every event the template defines.

### Auth

OAuth 2.0 Bearer (.ionapi service account or auth code)

Auth headers used by the template: `Authorization: Bearer {value.json.access_token}`.

### Template parameters

| Placeholder | Type | Description | Required |
| - | - | - | - |
| `RouteName` | string | Name of the Infor CloudSuite via ION API Gateway connector | no |
| `BaseUrl` | string | Infor CloudSuite via ION API Gateway base URL without trailing slash (e.g. [https://mingle-ionapi.YOUR\_REGION.inforcloudsuite.com/YOUR\_TENANT](https://mingle-ionapi.YOUR_REGION.inforcloudsuite.com/YOUR_TENANT)) | yes |

`BASE_ADDRESS` default: `https://mingle-ionapi.YOUR_REGION.inforcloudsuite.com/YOUR_TENANT`.

### Events

| Event | Method | Endpoint | Request topic | Response topic | Payload fields |
| - | - | - | - | - | - |
| `M3Lstoperations` | GET | `/M3/m3api-rest/v2/execute/MOS070MI/LstOperations` | `integrations/infor-cloudsuite-via-ion-api-gateway/request/M3Lstoperations` | `integrations/infor-cloudsuite-via-ion-api-gateway/response/M3Lstoperations` | `access_token` |
| `M3Rptoperation` | POST | `/M3/m3api-rest/v2/execute/PMS050MI/RptOperation` | `integrations/infor-cloudsuite-via-ion-api-gateway/request/M3Rptoperation` | `integrations/infor-cloudsuite-via-ion-api-gateway/response/M3Rptoperation` | `access_token`, `body` |
| `M3Getitem` | GET | `/M3/m3api-rest/v2/execute/MMS200MI/Get` | `integrations/infor-cloudsuite-via-ion-api-gateway/request/M3Getitem` | `integrations/infor-cloudsuite-via-ion-api-gateway/response/M3Getitem` | `access_token` |
| `M3Lstitems` | GET | `/M3/m3api-rest/v2/execute/MMS200MI/Lst` | `integrations/infor-cloudsuite-via-ion-api-gateway/request/M3Lstitems` | `integrations/infor-cloudsuite-via-ion-api-gateway/response/M3Lstitems` | `access_token` |
| `Csigetitems` | GET | `/CSI/IDORequestService/ido/load/Items?properties={value.json.properties}` | `integrations/infor-cloudsuite-via-ion-api-gateway/request/Csigetitems` | `integrations/infor-cloudsuite-via-ion-api-gateway/response/Csigetitems` | `access_token`, `mongoose_config`, `properties` |
| `Csiinvokeitems` | POST | `/CSI/IDORequestService/ido/invoke/Items?method={value.json.method}` | `integrations/infor-cloudsuite-via-ion-api-gateway/request/Csiinvokeitems` | `integrations/infor-cloudsuite-via-ion-api-gateway/response/Csiinvokeitems` | `access_token`, `body`, `method`, `mongoose_config` |
| `M3Execute` | POST | `/M3/m3api-rest/v2/execute` | `integrations/infor-cloudsuite-via-ion-api-gateway/request/M3Execute` | `integrations/infor-cloudsuite-via-ion-api-gateway/response/M3Execute` | `access_token`, `body` |
| `Ionlistservices` | GET | `/IONSERVICES/api/ion/service/list` | `integrations/infor-cloudsuite-via-ion-api-gateway/request/Ionlistservices` | `integrations/infor-cloudsuite-via-ion-api-gateway/response/Ionlistservices` | `access_token` |

### Deploy

Get the template card (JSON with `template` and `metadata`) from the broker, then deploy the connector:

```bash theme={"theme":"css-variables","languages":{"custom":["/languages/lot.json"]}}
mosquitto_pub -t '$SYS/Coreflux/Command' -m "-routeCode INFOR_CLOUDSUITE_VIA_ION_API_GATEWAY"
```

The deployable connector from the REST API app, with `BASE_ADDRESS` already filled in:

```lot theme={"theme":"css-variables","languages":{"custom":["/languages/lot.json"]}}
DEFINE ROUTE InforCloudsuiteViaIonApiGatewayRestApi WITH TYPE REST_API
    ADD REST_API_CONFIG
        WITH BASE_ADDRESS "https://mingle-ionapi.YOUR_REGION.inforcloudsuite.com/YOUR_TENANT"
        WITH ENABLE_CLIENT "true"
        WITH USE_SSL "true"
        WITH REQUEST_TIMEOUT '30'
        WITH DEFAULT_CONTENT_TYPE "application/json"
    ADD EVENT M3Lstoperations
        WITH SOURCE_TOPIC "integrations/infor-cloudsuite-via-ion-api-gateway/request/M3Lstoperations"
        WITH DESTINATION_TOPIC "integrations/infor-cloudsuite-via-ion-api-gateway/response/M3Lstoperations"
        WITH METHOD "GET"
        WITH ENDPOINT "/M3/m3api-rest/v2/execute/MOS070MI/LstOperations"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "Authorization" "Bearer {value.json.access_token}"
    ADD EVENT M3Rptoperation
        WITH SOURCE_TOPIC "integrations/infor-cloudsuite-via-ion-api-gateway/request/M3Rptoperation"
        WITH DESTINATION_TOPIC "integrations/infor-cloudsuite-via-ion-api-gateway/response/M3Rptoperation"
        WITH METHOD "POST"
        WITH ENDPOINT "/M3/m3api-rest/v2/execute/PMS050MI/RptOperation"
        WITH HEADERS
            ADD "Content-Type" "application/json"
            ADD "Authorization" "Bearer {value.json.access_token}"
        WITH BODY "{value.json.body}"
    ADD EVENT M3Getitem
        WITH SOURCE_TOPIC "integrations/infor-cloudsuite-via-ion-api-gateway/request/M3Getitem"
        WITH DESTINATION_TOPIC "integrations/infor-cloudsuite-via-ion-api-gateway/response/M3Getitem"
        WITH METHOD "GET"
        WITH ENDPOINT "/M3/m3api-rest/v2/execute/MMS200MI/Get"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "Authorization" "Bearer {value.json.access_token}"
    ADD EVENT M3Lstitems
        WITH SOURCE_TOPIC "integrations/infor-cloudsuite-via-ion-api-gateway/request/M3Lstitems"
        WITH DESTINATION_TOPIC "integrations/infor-cloudsuite-via-ion-api-gateway/response/M3Lstitems"
        WITH METHOD "GET"
        WITH ENDPOINT "/M3/m3api-rest/v2/execute/MMS200MI/Lst"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "Authorization" "Bearer {value.json.access_token}"
    ADD EVENT Csigetitems
        WITH SOURCE_TOPIC "integrations/infor-cloudsuite-via-ion-api-gateway/request/Csigetitems"
        WITH DESTINATION_TOPIC "integrations/infor-cloudsuite-via-ion-api-gateway/response/Csigetitems"
        WITH METHOD "GET"
        WITH ENDPOINT "/CSI/IDORequestService/ido/load/Items?properties={value.json.properties}"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "Authorization" "Bearer {value.json.access_token}"
            ADD "X-Infor-MongooseConfig" "{value.json.mongoose_config}"
    ADD EVENT Csiinvokeitems
        WITH SOURCE_TOPIC "integrations/infor-cloudsuite-via-ion-api-gateway/request/Csiinvokeitems"
        WITH DESTINATION_TOPIC "integrations/infor-cloudsuite-via-ion-api-gateway/response/Csiinvokeitems"
        WITH METHOD "POST"
        WITH ENDPOINT "/CSI/IDORequestService/ido/invoke/Items?method={value.json.method}"
        WITH HEADERS
            ADD "Content-Type" "application/json"
            ADD "Authorization" "Bearer {value.json.access_token}"
            ADD "X-Infor-MongooseConfig" "{value.json.mongoose_config}"
        WITH BODY "{value.json.body}"
    ADD EVENT M3Execute
        WITH SOURCE_TOPIC "integrations/infor-cloudsuite-via-ion-api-gateway/request/M3Execute"
        WITH DESTINATION_TOPIC "integrations/infor-cloudsuite-via-ion-api-gateway/response/M3Execute"
        WITH METHOD "POST"
        WITH ENDPOINT "/M3/m3api-rest/v2/execute"
        WITH HEADERS
            ADD "Content-Type" "application/json"
            ADD "Authorization" "Bearer {value.json.access_token}"
        WITH BODY "{value.json.body}"
    ADD EVENT Ionlistservices
        WITH SOURCE_TOPIC "integrations/infor-cloudsuite-via-ion-api-gateway/request/Ionlistservices"
        WITH DESTINATION_TOPIC "integrations/infor-cloudsuite-via-ion-api-gateway/response/Ionlistservices"
        WITH METHOD "GET"
        WITH ENDPOINT "/IONSERVICES/api/ion/service/list"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "Authorization" "Bearer {value.json.access_token}"
```

Deploy it with `-addRoute` (do not include `ADD METADATA`).

### Usage example

Call `M3Lstoperations` by publishing a JSON payload to its request topic, and read the reply on the response topic:

```bash theme={"theme":"css-variables","languages":{"custom":["/languages/lot.json"]}}
mosquitto_sub -t 'integrations/infor-cloudsuite-via-ion-api-gateway/response/M3Lstoperations' &
mosquitto_pub -t 'integrations/infor-cloudsuite-via-ion-api-gateway/request/M3Lstoperations' -m '{"access_token": "<access_token>"}'
```

## Related

* [REST API Connectors](/latest/lot-language/routes/rest-api-routes)
* [REST API apps index](/latest/lot-language/routes/rest-api-apps)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.