Endpoint Services
REST API & SAP OData integration design specification for exchanging delivery, material master, and inventory data between customer systems and Solve Cloudmunk.
Introduction
This document provides the design specifications for the REST/OData-based endpoints used to exchange delivery, material master, and inventory information between the customer application and Solve Cloudmunk.
The interfaces covered in this document support the integration of the following business objects:
| Business object | Covers |
|---|---|
| Delivery Header & Item Details | Delivery document information, ship-to party details, delivery status information, and item-level details such as material, batch, quantities, and picking status. |
| Material Master Details | Material and plant-specific information, including base unit of measure, pallet quantity, and packaging product group. |
| Inventory Details | Material stock information by batch, plant, storage location, and storage bin — including unrestricted-use, quality inspection, and blocked stock, plus batch data such as manufacture date and shelf-life expiration date. |
Each endpoint specification in this document is organized into three sections:
Authorization (OAuth 2.0)
All REST API endpoints use OAuth 2.0 for authentication and authorization.
Manage Client CredentialsDelivery Header & Item Upload API
Used by the customer application to push Delivery Header and Delivery Item information to Solve Cloudmunk. Requests support both single delivery objects and JSON arrays of multiple delivery documents for bulk processing.
Sample request payload
[
{
"Header": {
"Plant": "1710",
"Delivery": "8000012345",
"ShipPoint": "1710",
"ShiptoParty": "1000001234",
"ShiptoPartyName": "ABC Retail",
"ShiptoPartyCity": "Atlanta",
"OverallPickStatus": "A",
"OverallPackStatus": "A",
"OverallGMStatus": "A"
},
"Items": [
{
"Plant": "1710",
"Delivery": "8000012345",
"Item": "000010",
"Material": "MAT10001",
"Description": "Soft Drink 500ml",
"Batch": "BATCH001",
"DeliveryQty": 120.000,
"PickedQty": 120.000,
"PickStatus": "C",
"UOM": "EA"
}
]
},
{
"Header": {
"Plant": "1710",
"Delivery": "8000012346",
"ShipPoint": "1710",
"ShiptoParty": "1000001235",
"ShiptoPartyName": "XYZ Retail",
"ShiptoPartyCity": "Boston",
"OverallPickStatus": "C",
"OverallPackStatus": "C",
"OverallGMStatus": "C"
},
"Items": [
{
"Plant": "1710",
"Delivery": "8000012346",
"Item": "000010",
"Material": "MAT10002",
"Description": "Orange Juice",
"Batch": "BATCH002",
"DeliveryQty": 50.000,
"PickedQty": 50.000,
"PickStatus": "C",
"UOM": "EA"
}
]
}
]
{
"Header": {
"Plant": "1710",
"Delivery": "8000012345",
"ShipPoint": "1710",
"ShiptoParty": "1000001234",
"ShiptoPartyName": "ABC Retail",
"ShiptoPartyCity": "Atlanta",
"OverallPickStatus": "A",
"OverallPackStatus": "A",
"OverallGMStatus": "A"
},
"Items": [
{
"Plant": "1710",
"Delivery": "8000012345",
"Item": "000010",
"Material": "MAT10001",
"Description": "Soft Drink 500ml",
"Batch": "BATCH001",
"DeliveryQty": 120.000,
"PickedQty": 120.000,
"PickStatus": "C",
"UOM": "EA"
}
]
}
Response fields
| Field | Description |
|---|---|
Delivery | Delivery document number |
Status | Overall processing status |
Message | Overall processing message |
TotalItems | Number of items received |
SuccessfulItems | Number of items successfully processed |
FailedItems | Number of items failed |
ItemResults | Processing result for each delivery item |
ItemResults[].Item | Delivery item number |
ItemResults[].Processed | Open, Completed, or Error |
ItemResults[].Message | Success or error message |
Sample response
[
{
"Delivery": "8000012345",
"Status": "Open",
"Message": "Delivery uploaded successfully",
"TotalItems": 1,
"SuccessfulItems": 1,
"FailedItems": 0,
"ItemResults": [
{ "Item": "000010", "Processed": "Open", "Message": "Item uploaded successfully." }
]
},
{
"Delivery": "8000012346",
"Status": "Open",
"Message": "Delivery uploaded successfully",
"TotalItems": 1,
"SuccessfulItems": 1,
"FailedItems": 0,
"ItemResults": [
{ "Item": "000010", "Processed": "Open", "Message": "Item uploaded successfully." }
]
}
]
{
"Delivery": "8000012345",
"Status": "Open",
"Message": "Delivery uploaded successfully",
"TotalItems": 1,
"SuccessfulItems": 1,
"FailedItems": 0,
"ItemResults": [
{ "Item": "000010", "Processed": "Open", "Message": "Item uploaded successfully." }
]
}
Material Master Upload API
Submits material master-related information required by Solve Cloudmunk — the material number, plant, base unit of measure, logistics execution quantity per pallet, and packaging product group. Requests support both single material objects and JSON arrays of multiple materials for bulk processing.
Sample request payload
[
{
"Plant": "1710",
"Date": "2026-09-05",
"Time": "14:30:25",
"Material": "2410",
"Description": "Test Material Batch0001",
"PalletQty": 48,
"BaseUOM": "PC",
"PackagingTypeCategory": "PMG1"
},
{
"Plant": "1710",
"Date": "2026-09-05",
"Time": "12:30:25",
"Material": "2411",
"Description": "Test Material Batch0002",
"PalletQty": 36,
"BaseUOM": "PC",
"PackagingTypeCategory": "PMG1"
}
]
{
"Plant": "1710",
"Date": "2026-07-21",
"Time": "14:30:25",
"Material": "MAT10001",
"Description": "Soft Drink 500ml",
"PalletQty": 48,
"CaseQty": 24,
"BaseUOM": "EA",
"PackagingTypeCategory": "P001"
}
Response
[
{
"Material": "2410",
"Plant": "1710",
"Status": "Completed",
"Message": "Material Master record sent successfully."
},
{
"Material": "2411",
"Plant": "1710",
"Status": "Completed",
"Message": "Material Master record sent successfully."
}
]
{
"Material": "MAT10001",
"Plant": "1710",
"Status": "Completed",
"Message": "Material Master record sent successfully."
}
{
"Material": "MAT10001",
"Plant": "1710",
"Status": "Error",
"Message": "Material Master record could not be processed",
"ErrorMessage": "The Plant field is required."
}
Inventory Details API
Submits inventory stock information for a material at a specific plant and storage location — batch-specific stock quantities, storage-bin information, and stock split across unrestricted-use, quality inspection, and blocked categories. Requests support both single inventory objects and JSON arrays of multiple inventory records for bulk batch uploads.
Sample request payload
[
{
"Material": "MAT10001",
"Batch": "BATCH001",
"Plant": "1710",
"StorageLocation": "171A",
"StorageBin": "BIN-A-001",
"Unrestricted": 1250.000,
"QualInspection": 50.000,
"Blocked": 10.000,
"ManufactureDate": "2026-07-01",
"SLED": "2027-07-01"
},
{
"Material": "MAT10002",
"Batch": "BATCH002",
"Plant": "1710",
"StorageLocation": "171B",
"StorageBin": "BIN-B-001",
"Unrestricted": 500.000,
"QualInspection": 0.000,
"Blocked": 0.000,
"ManufactureDate": "2026-07-05",
"SLED": "2027-07-05"
}
]
{
"Material": "MAT10001",
"Batch": "BATCH001",
"Plant": "1710",
"StorageLocation": "171A",
"StorageBin": "BIN-A-001",
"Unrestricted": 1250.000,
"QualInspection": 50.000,
"Blocked": 10.000,
"ManufactureDate": "2026-07-01",
"SLED": "2027-07-01"
}
Response
[
{
"Material": "MAT10001",
"Batch": "BATCH001",
"Plant": "1710",
"StorageLocation": "171A",
"Status": "Completed",
"Message": "Inventory record processed successfully."
},
{
"Material": "MAT10002",
"Batch": "BATCH002",
"Plant": "1710",
"StorageLocation": "171B",
"Status": "Completed",
"Message": "Inventory record processed successfully."
}
]
{
"Material": "MAT10001",
"Batch": "BATCH001",
"Plant": "1710",
"StorageLocation": "171A",
"Status": "Completed",
"Message": "Inventory record processed successfully."
}
{
"Material": "MAT10001",
"Batch": "BATCH001",
"Plant": "1710",
"StorageLocation": "171A",
"Status": "Error",
"Message": "Inventory record could not be processed.",
"ErrorMessage": "Invalid storage location or material."
}
Integration & Data Mapping
Data obtained from the customer system is extracted, transformed, and mapped to the request payload structure required by the corresponding Cloudmunk endpoint before transmission to Solve.
Delivery data → Delivery Upload API · Material & Batch data → Material Master Upload API · Stock data → Inventory Upload API
Delivery Details Mapping
Provides the delivery information required to populate both the Delivery Header and Delivery Item sections of the Delivery Upload API.
Header mapping
| Payload field | Description |
|---|---|
Plant | Plant number |
Delivery | Delivery number |
ShipPoint | Shipping point |
ShiptoParty | Ship-to party number |
ShiptoPartyName | Ship-to party name |
ShiptoPartyCity | Ship-to party city |
OverallPickStatus | Overall picking status |
OverallPackStatus | Overall packing status |
OverallGMStatus | Overall goods movement status |
Item mapping
| Payload field | Description |
|---|---|
Plant | Plant number |
Delivery | Delivery number |
Item | Delivery item number |
Material | Material number |
Description | Material description |
Batch | Batch number |
DeliveryQty | Delivery quantity |
UOM | Base unit of measure |
Product Master Mapping
Provides the product unit-of-measure and packaging information required to populate the Material Master Upload API.
| Payload field | Description |
|---|---|
Material | Material number |
Description | Material description |
PalletQty | Quantity per pallet |
CaseQty | Quantity per case |
PackagingTypeCategory | Packaging product group |
BaseUOM | Base unit of measure |
Batch Master Mapping
Provides batch dates required for inventory tracking and shelf-life management. Combined with stock information and mapped to the Inventory Upload API.
| Payload field | Description |
|---|---|
Material | Material number |
Batch | Batch number |
ManufactureDate | Date of manufacture |
SLED | Shelf-life expiration date |
Material Stock Mapping
Provides stock quantities by material, batch, plant, storage location, and inventory stock category.
| Payload field | Description |
|---|---|
Material | Material number |
Description | Material description |
Batch | Batch number |
Plant | Plant number |
StorageLocation | Storage location |
Unrestricted | Unrestricted-use stock |
QualInspection | Quality inspection stock |
Blocked | Blocked stock |
Inventory Stock Mapping
The Inventory Upload API combines material, batch, description, and stock information into a single request payload structure.
| Inventory payload field | Description |
|---|---|
Material | Material number |
Description | Material description |
Batch | Batch number |
Plant | Plant number |
StorageLocation | Storage location |
Unrestricted | Unrestricted-use stock |
QualInspection | Quality inspection stock |
Blocked | Blocked stock |
ManufactureDate | Date of manufacture |
SLED | Shelf-life expiration date |
HTTP Status Codes
Standard response codes returned by the Cloudmunk endpoint APIs.