Item Classifications
The Item Classifications API allows you to retrieve KRA-managed product classification codes used when registering and validating items in the eTIMS OSCU system.
Item classifications define:
- Product hierarchy levels
- Tax applicability
- Major / minor classification flags
- Allowed item grouping rules
Endpoint
POST /selectItemClsList
Purpose
This API:
- Retrieves item classification master data
- Returns classifications created or modified after
lastReqDt - Ensures items are registered using valid KRA classification codes
ℹ️ Item classification data should be cached locally and refreshed periodically.
Request Object: ItemClsSearchReq
Request Fields
| Field | Description | Type | Required | Length |
|---|---|---|---|---|
lastReqDt | Last Request Date (YYYYMMDDHHmmss) | CHAR | ✅ Yes | 14 |
🔎 Only item classifications registered or updated after
lastReqDtare returned.
JSON Request Example
{
"lastReqDt": "20180523000000"
}
Response Object: ItemClsSearchRes
Top-Level Fields
| Field | Description | Type |
|---|---|---|
resultCd | Result code (000 = success) | CHAR(3) |
resultMsg | Result message | CHAR |
resultDt | Response timestamp | CHAR(14) |
Item Classification List (itemClsList)
Each entry represents a single product classification.
| Field | Description | Type | Length |
|---|---|---|---|
itemClsCd | Item Class Code | CHAR | 10 |
itemClsNm | Item Class Name | CHAR | 200 |
itemClsLvl | Item Class Level | NUMBER | — |
taxTyCd | Taxation Type Code | CHAR | 5 |
mjrTgYn | Major Target Indicator (Y/N) | CHAR | 1 |
useYn | Usage Status (Y/N) | CHAR | 1 |
📘
taxTyCdvalues must match Taxation Types retrieved from Code Lists.
JSON Response Example
{
"resultCd": "000",
"resultMsg": "It is succeeded",
"resultDt": "20200226185625",
"data": {
"itemClsList": [
{
"itemClsCd": "14111400",
"itemClsNm": "Paper products nouse",
"itemClsLvl": 3,
"taxTyCd": null,
"mjrTgYn": null,
"useYn": "Y"
},
{
"itemClsCd": "3133130600",
"itemClsNm": "Non metallic sonic welded structural assemblies",
"itemClsLvl": 5,
"taxTyCd": "B",
"mjrTgYn": "N",
"useYn": "Y"
}
]
}
}
✅
resultCd = 000indicates a successful request.
SDK Usage Examples
- PHP
- JavaScript / Typescript
- Python
$itemClasses = $etims->selectItemClasses([
'lastReqDt' => lastReqDt('-30 days')
]);
$itemClsList = $itemClasses['data']['itemClsList'] ?? [];
echo "Item Classes found: " . count($itemClsList) . PHP_EOL;
foreach ($itemClsList as $item) {
echo "- Item Class Code: {$item['itemClsCd']}" . PHP_EOL;
echo " Name: {$item['itemClsNm']}" . PHP_EOL;
echo " Level: {$item['itemClsLvl']}" . PHP_EOL;
echo " Tax Type Code: {$item['taxTyCd']}" . PHP_EOL;
echo " Major Target: {$item['mjrTgYn']}" . PHP_EOL;
echo " Use Status: {$item['useYn']}" . PHP_EOL . PHP_EOL;
}
const response = await client.selectItemClasses({
lastReqDt: formatDateForEtims(-30),
});
const classes = response.data?.itemClsList || [];
console.log(`Found ${classes.length} item classes`);
classes.forEach(cls => {
console.log(`- ${cls.itemClsCd}: ${cls.itemClsNm} (Lvl ${cls.itemClsLvl})`);
});
item_classes = etims.select_item_classes({
'lastReqDt': last_req_dt(-30)
})
item_cls_list = item_classes.get('data', {}).get('itemClsList', [])
print(f"Item Classes found: {len(item_cls_list)}")
for item in item_cls_list:
print(f"- Item Class Code: {item['itemClsCd']}")
print(f" Name: {item['itemClsNm']}")
print(f" Level: {item['itemClsLvl']}")
print(f" Tax Type Code: {item['taxTyCd']}")
print(f" Major Target: {item['mjrTgYn']}")
print(f" Use Status: {item['useYn']}\n")
Best Practices
- Cache item classifications locally
- Refresh periodically (daily or weekly)
- Always validate item registrations against this list
- Never hard-code classification codes