Imports API
Retrieve and manage imported items from the VSCU system for customs compliance.
Select Import Items
Retrieve imported items from VSCU based on the last request date.
POST /api/v1/imports/select-itemsHeaders
Authorization: Bearer YOUR_API_KEY
X-Branch-ID: YOUR_BRANCH_ID
Content-Type: application/jsonRequest Body
{
"last_request_date": "20190524000000"
}Field Descriptions
| Field | Type | Required | Description |
|---|---|---|---|
last_request_date | string | Yes | Last request date in YYYYMMDDHHmmss format |
Response
Status: 200 OK
{
"status": "success",
"data": {
"items": [
{
"task_code": "2231943",
"declaration_date": "20191217",
"item_sequence": 1,
"declaration_number": "C123456",
"hs_code": "1231531231",
"item_name": "Imported Product",
"import_item_status_code": "1",
"origin_nation_code": "CN",
"export_nation_code": "CN",
"package": 10.5,
"package_unit_code": "CT",
"quantity": 100,
"quantity_unit_code": "U",
"gross_weight": 150.5,
"net_weight": 145.0,
"supplier_name": "ABC Imports Ltd",
"agent_name": "XYZ Customs Agent",
"invoice_foreign_currency_amount": 5000.00,
"invoice_foreign_currency": "USD",
"invoice_foreign_currency_exchange_rate": 1.25
}
],
"total_items": 1,
"result_code": "000",
"result_message": "Success",
"result_date": "20250107143000"
},
"meta": {
"timestamp": "2025-01-07T14:30:00Z",
"request_id": "req_123abc"
}
}Response Item Fields
| Field | Type | Description |
|---|---|---|
task_code | string | Customs task code |
declaration_date | string | Declaration date (YYYYMMDD) |
item_sequence | integer | Item sequence number |
declaration_number | string | Customs declaration number |
hs_code | string | Harmonized System code |
item_name | string | Item description |
import_item_status_code | string | Import status code |
origin_nation_code | string | Country of origin code |
export_nation_code | string | Country of export code |
package | number | Package quantity |
package_unit_code | string | Package unit code |
quantity | number | Item quantity |
quantity_unit_code | string | Quantity unit code |
gross_weight | number | Gross weight |
net_weight | number | Net weight |
supplier_name | string | Supplier name |
agent_name | string | Customs agent name |
invoice_foreign_currency_amount | number | Invoice amount in foreign currency |
invoice_foreign_currency | string | Foreign currency code |
invoice_foreign_currency_exchange_rate | number | Exchange rate |
Update Import Item Status
Update the status of an imported item in the VSCU system.
POST /api/v1/imports/update-itemsHeaders
Authorization: Bearer YOUR_API_KEY
X-Branch-ID: YOUR_BRANCH_ID
Content-Type: application/jsonRequest Body
{
"task_code": "2231943",
"declaration_date": "20191217",
"item_sequence": 1,
"hs_code": "1231531231",
"item_class_code": "5022110801",
"item_code": "KE1NTXU0000001",
"import_item_status_code": "1",
"remark": "Item cleared for release",
"modifier_name": "Admin",
"modifier_id": "Admin"
}Field Descriptions
| Field | Type | Required | Description |
|---|---|---|---|
task_code | string | Yes | Customs task code (max 50 chars) |
declaration_date | string | Yes | Declaration date in YYYYMMDD format (8 chars) |
item_sequence | integer | Yes | Item sequence number |
hs_code | string | Yes | Harmonized System code (max 17 chars) |
item_class_code | string | Yes | Item classification code (max 10 chars) |
item_code | string | Yes | Item code (max 20 chars) |
import_item_status_code | string | Yes | Import item status code (max 5 chars) |
remark | string | No | Optional remark (max 400 chars) |
modifier_name | string | Yes | Name of person updating (max 60 chars) |
modifier_id | string | Yes | ID of person updating (max 20 chars) |
Import Item Status Codes
Refer to the VSCU documentation section 4.18 for valid import item status codes.
Response
Status: 200 OK
{
"status": "success",
"message": "Import item status updated successfully",
"data": {
"result_code": "000",
"result_message": "Successful",
"result_date": "20250107143023"
},
"meta": {
"timestamp": "2025-01-07T14:30:23Z",
"request_id": "req_456def"
}
}Error Responses
422 Unprocessable Entity
Validation error:
{
"status": "error",
"message": "Invalid request data",
"errors": {
"task_code": [
"The task code field is required."
],
"declaration_date": [
"The declaration date must be 8 characters."
]
}
}400 Bad Request
VSCU error:
{
"status": "error",
"message": "VSCU processing failed",
"error": "Item not found in VSCU system"
}500 Internal Server Error
Server error:
{
"status": "error",
"message": "An error occurred while retrieving import items",
"error": "Internal server error"
}Code Examples
PHP
// Select import items
$data = [
'last_request_date' => date('YmdHis', strtotime('-30 days')),
];
$response = $client->post('/api/v1/imports/select-items', [
'json' => $data,
'headers' => [
'Authorization' => 'Bearer ' . $apiKey,
'X-Branch-ID' => '01',
],
]);
$items = $response->json()['data']['items'];
// Update import item status
$updateData = [
'task_code' => '2231943',
'declaration_date' => '20191217',
'item_sequence' => 1,
'hs_code' => '1231531231',
'item_class_code' => '5022110801',
'item_code' => 'KE1NTXU0000001',
'import_item_status_code' => '1',
'remark' => 'Item cleared',
'modifier_name' => 'John Doe',
'modifier_id' => 'admin123',
];
$response = $client->post('/api/v1/imports/update-items', [
'json' => $updateData,
'headers' => [
'Authorization' => 'Bearer ' . $apiKey,
'X-Branch-ID' => '01',
],
]);JavaScript
// Select import items
const lastRequestDate = moment().subtract(30, 'days').format('YYYYMMDDHHmmss');
const selectResponse = await axios.post('/api/v1/imports/select-items',
{ last_request_date: lastRequestDate },
{
headers: {
'Authorization': `Bearer ${apiKey}`,
'X-Branch-ID': '01'
}
}
);
const items = selectResponse.data.data.items;
// Update import item status
const updateData = {
task_code: '2231943',
declaration_date: '20191217',
item_sequence: 1,
hs_code: '1231531231',
item_class_code: '5022110801',
item_code: 'KE1NTXU0000001',
import_item_status_code: '1',
remark: 'Item cleared',
modifier_name: 'John Doe',
modifier_id: 'admin123'
};
const updateResponse = await axios.post('/api/v1/imports/update-items',
updateData,
{
headers: {
'Authorization': `Bearer ${apiKey}`,
'X-Branch-ID': '01'
}
}
);cURL
# Select import items
curl -X POST https://c-tax.1809ltd.co.ke/api/v1/imports/select-items \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Branch-ID: 01" \
-H "Content-Type: application/json" \
-d '{
"last_request_date": "20190524000000"
}'
# Update import item status
curl -X POST https://c-tax.1809ltd.co.ke/api/v1/imports/update-items \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Branch-ID: 01" \
-H "Content-Type: application/json" \
-d '{
"task_code": "2231943",
"declaration_date": "20191217",
"item_sequence": 1,
"hs_code": "1231531231",
"item_class_code": "5022110801",
"item_code": "KE1NTXU0000001",
"import_item_status_code": "1",
"remark": "Item cleared for release",
"modifier_name": "Admin",
"modifier_id": "Admin"
}'Best Practices
- Regular Synchronization - Retrieve import items regularly to stay up-to-date with customs data
- Store Last Request Date - Save the last successful request date for incremental updates
- Validate Status Codes - Ensure import item status codes are valid before submission
- Error Handling - Implement proper error handling for VSCU connection issues
- Branch Context - Always specify the correct branch ID in headers
- Audit Trail - Record modifier name and ID for compliance tracking
- Item Matching - Verify item codes exist in your system before updating status
Use Cases
Customs Compliance Workflow
- Retrieve Pending Items: Call
select-itemsto get new imported items - Process Clearance: Review items and obtain customs clearance
- Update Status: Call
update-itemsto update item status in VSCU - Inventory Integration: Add cleared items to inventory system
Periodic Synchronization
// Sync every hour
setInterval(async () => {
const lastSync = await getLastSyncDate();
const response = await syncImportItems(lastSync);
if (response.data.items.length > 0) {
await processNewImports(response.data.items);
await saveLastSyncDate(response.data.result_date);
}
}, 3600000); // 1 hourRelated Endpoints
- Items API - Manage item master data
- Codes API - Get import item status codes
- Branches API - Manage branch information
VSCU Integration
These endpoints integrate with the VSCU (Virtual SDC Unit) system:
- Select Items Endpoint:
/imports/selectImportItems - Update Items Endpoint:
/imports/updateImportItems
All requests are forwarded to VSCU with proper authentication and branch context. Responses include VSCU result codes and messages for troubleshooting.
Notes
- Import items are managed at the branch level; ensure the correct branch ID is specified
- The
last_request_dateshould be stored and used for incremental synchronization - Import item status codes must match VSCU specifications (see section 4.18)
- All dates use YYYYMMDD format, and datetimes use YYYYMMDDHHmmss format
- Exchange rates and amounts are stored for audit and reporting purposes
Last updated on