Test Setel API Documentation
Welcome to the Test Setel API documentation! This comprehensive set of APIs has been meticulously crafted to empower seamless order creation and tracking for your e-commerce platforms. The API Collection is a suite of APIs specifically designed to cater to the needs of your businesses. Our APIs offer a robust and efficient solution for integrating order creation and tracking functionality into your platform. With a focus on simplicity, reliability, and real-time updates, our collection aims to elevate your order management capabilities.
- Order Creation API
The Order Creation API within the Merchant API Collection is your gateway to effortless order submissions. Seamlessly integrate this API into your platform to enable the swift and accurate creation of new orders. Simplify the customer experience and streamline the order placement process, all while maintaining data integrity and security.
- Order Tracking API
Stay ahead of the curve with our Order Tracking API, an integral part of the Test Setel API Collection. This API empowers your platform to provide real-time updates on order status, keeping both merchants and customers informed every step of the way. Enhance transparency, build trust, and elevate customer satisfaction with this powerful tracking solution.
- Seamless Integration
The Merchant API Collection has been designed with integration in mind. Our APIs are built to effortlessly integrate into your existing e-commerce platform, reducing development time and minimizing disruption.
- Enhanced Efficiency
By utilizing the Order Creation API, you can optimize the order submission process, enabling faster transactions and improved operational efficiency. Meanwhile, the Order Tracking API ensures timely updates, reducing customer inquiries and enhancing overall satisfaction.
- Streamlined Order Management
Experience a new level of order management efficiency. The Merchant API Collection is your toolkit for refining and streamlining the entire order lifecycle, from creation to tracking.
- Real-Time Insights
With real-time updates provided by the Order Tracking API, you gain valuable insights into order status and delivery progress. Make informed decisions and proactively address any potential issues.
The endpoint serves as a crucial interface between your application and the Test Setel API, facilitating the seamless exchange of data and functionality. In the context of the Test Setel API Collection, there are two distinct endpoints: the Production endpoint, which mirrors the live operational environment for order creation and tracking, and the Sandbox endpoint, designed for controlled testing and refinement of these processes.
The Production endpoint is akin to the operational center of your platform. When your platform is live and ready to facilitate order placement and tracking for your customers, the Production endpoint is the interface you’ll engage with. It functions as the actual storefront where genuine transactions occur and real-time order updates take place:
Production Endpoint URL:
https://api.setel.co/api/merchants
Visualize the Sandbox endpoint as a controlled testing environment, much like a rehearsal space before a grand performance. Prior to exposing your platform to the users, the Sandbox endpoint offers the opportunity to meticulously trial order creation and tracking. Any anomalies or discrepancies can be addressed here, ensuring seamless functionality before deployment to the production environment:
Sandbox Endpoint URL:
https://api-dev.setel.co/api/merchants
It’s crucial to understand that activities performed within the Sandbox environment are isolated from live operations. This compartmentalization allows for thorough testing and troubleshooting without any impact on your actual store. Once your solutions are impeccably refined within the Sandbox, you can confidently transition to the Production endpoint for a flawless experience.
The authentication endpoint is used to authenticate a user and obtain an authorization token.
Send the token response under the Authorization header to authenticate a request.
Method: POST
{{BASE_URL}}/login
| Parameter | Description | Data Type | Mandatory | Example |
|---|---|---|---|---|
| Email address of the user account | string | Y | example@email.com | |
| password | User account password | String | Y | safaFSd2R |
| clientSlug | Client account identifier | String | Y | posMy |
| Property | Description | Data Type | Example |
|---|---|---|---|
| client | Client information | Object | See client object below |
| customerId | ID of the customer | String | “492e1cc0-2f73-11ee-be56-0242ac120002” |
| customerName | Name of the customer | String | “Lorem” |
| Email address | String | “lorem@lorem.com” | |
| name | Name of the user | String | “Lorem” |
| token | Authentication token | String | “123123123123123123123123123123123123213123” |
| userId | ID of the user | String | “492e1cc0-2f73-11ee-be56-0242ac120002” |
| Property | Description | Data Type | Example |
|---|---|---|---|
| id | ID of the client | String | “492e1cc0-2f73-11ee-be56-0242ac120002” |
| logo | Logo of the client | String | “A.com/123123123123.jpg” |
| name | Name of the client | String | “Lorem” |
| slug | Slug of the client | String | “lorem” |
Body (raw)
{
"email": "dummy_email@example.com",
"password": "dummy_password",
"clientSlug": "dummy_clientSlug"
}
Response: 200
{
"client": {
"id": "492e1cc0-2f73-11ee-be56-0242ac120002",
"logo": "",
"name": "Lorem Ipsum",
"slug": "lorem"
},
"customerId": "492e1cc0-2f73-11ee-be56-0242ac120002",
"customerName": "Ipsum Lorem",
"email": "ipsum@ipsum.com",
"name": "Ipsum",
"token": "123455678901233454567689789809123243252436354673567",
"userId": "492e1cc0-2f73-11ee-be56-0242ac120002"
}
This endpoint allows users to retrieve list of orders.
| Parameter | Description | Data Type | Mandatory | Example |
|---|---|---|---|---|
| page | Page number to retrieve | integer | Y | 1 |
| perPage | Number of items to retrieve per page | integer | Y | 300 |
| orderCodes | Order code(s) to filter the orders by | string | N | ordercode0821, ordercode0827 |
| Property | Description | Data Type | Example |
|---|---|---|---|
| page | Current page number | integer | 1 |
| totalPage | Total number of pages | integer | 1 |
| totalCount | Total number of records | integer | 2 |
| data | Collection of uploaded orders | array of object | see below |
| Property | Description | Data Type | Example |
|---|---|---|---|
| id | ID of the uploaded order, use this ID for merchant API Tracking | UUID | 11ebac3c-ff23-4a58-ba05-72cadefbd123 |
| orderCode | Order code provided by the client | string | ordercode0821 |
| clientId | ID of the client | UUID | 0c48140c-f3e2-4bc4-a629-2faeed2a69fc |
| consigneeName | Name of the consignee | string | Don |
| consigneeNumber | Contact number of the consignee | string | 123 |
| consigneeAddress | Address of the consignee | string | 123 |
| consigneePostal | Postal code of the consignee | string | 123 |
| consigneeCountry | Country code of the consignee | string | ID |
| consigneeCity | City of the consignee | string | Don |
| consigneeState | State of the consignee | string | Don |
| consigneeProvince | Province of the consignee | string | Don |
| consigneeEmail | Email address of the consignee | string | don@don.don |
| length | Length of the package in cm | float | 0 |
| width | Width of the package in cm | float | 0 |
| height | Height of the package in cm | float | 0 |
| weight | Weight of the package in kg | float | 1 |
| paymentType | Type of payment | string | |
| pickupContactName | Name of the pickup contact | string | |
| pickupContactNumber | Contact number of the pickup contact | string | 12345 |
| pickupState | State where the package is picked up | string | Singapore |
| pickupCity | City where the package is picked up | string | Singapore |
| pickupProvince | Province where the package is picked up | string | Singapore |
| pickupPostal | Postal code of the pickup location | string | 1 |
| pickupCountry | Country code of the pickup location | string | SG |
| pickupAddress | Address where the package is picked up | string | Singapore St |
| refID | Reference ID | string (nullable) | null |
| labelPath | URL to the label PDF | string | https://url.com/ordercode0821.11ebac3c.pdf |
| requestedServices | Services requested for the order | array of string | [“FIRST_MILE”,“FREIGHT_FORWARDER”,“CUSTOMS”,“LAST_MILE”] |
| batchId | Batch ID | string (nullable) | null |
| batchCode | Batch code | string (nullable) | null |
| senderName | Name of the sender | string | John |
| senderNumber | Contact number of the sender | string | 12345 |
| senderState | State of the sender | string | Singapore |
| senderCity | City of the sender | string | Singapore |
| senderProvince | Province of the sender | string | Singapore |
| senderPostal | Postal code of the sender | string | 1 |
| senderCountry | Country code of the sender | string | SG |
| senderAddress | Address of the sender | string | Singapore St |
| senderEmail | Email address of the sender | string | john@mail.co |
| destPortId | Destination port ID | UUID | d258a8cd-befc-4418-9993-ae28184ed934 |
| senderPortId | Sender port ID | UUID | 1cf83510-c353-4dfa-9b7b-08f4137ead66 |
| createdAt | Timestamp when the order was created | string (ISO 8601) | 2024-08-14T03:02:11.045697Z |
| items | Collection of items within the order | array of object | see items object properties below |
| senderPort | Sender port details | object | {“code”:“SIN”} |
| destPort | Destination port details | object | {“code”:“CGK”} |
| customerId | Customer ID | UUID | dd6facd9-dc6a-4d0f-ae3d-08c058958d8e |
| updates | Status updates related to the order | array of object | see updates object properties below |
| mappedPartnerUpdates | Mapped partner status updates | array of object | see mappedPartnerUpdates object properties below |
| dntCurrency | Currency for duties and taxes | string | |
| dutiesFee | Duties fee | string | 0 |
| taxFee | Tax fee | string | 0 |
| customerOrderCode | Customer’s order code | string (nullable) | null |
| terminalStatusId | Terminal status ID | UUID (nullable) | null |
| insurance | Whether insurance was applied | boolean | false |
| Property | Description | Data Type | Example |
|---|---|---|---|
| id | ID of the item | UUID | 6be6e05e-7f5c-4be8-b51f-1d1e8157d0e3 |
| orderId | ID of the order | UUID | 11ebac3c-ff23-4a58-ba05-72cadefbde31 |
| description | Description of the item | string | shoes |
| quantity | Quantity of the item | integer | 1 |
| productCode | Product code | string | |
| sku | Stock keeping unit (SKU) | string | |
| category | Category of the item | string | Sports & Outdoors |
| price | Price of the item | string | 0.00 |
| currency | Currency of the item | string | IDR |
| convertedDuty | Converted duty | string | 0 |
| convertedTax | Converted tax | string | 0 |
| convertedDntCurrency | Converted DNT currency | string | |
| localDntCurrency | Local DNT currency | string | |
| localTax | Local tax | string | 0 |
| localDuty | Local duty | string | 0 |
| dutiesFee | Duties fee | string | 0 |
| taxFee | Tax fee | string | 0 |
| Property | Description | Data Type | Example |
|---|---|---|---|
| id | ID of the update | UUID | 597ecaf4-cea2-466a-82e7-118460b67857 |
| status | Status of the order | string | Order Information Received |
| updateTimestamp | Timestamp when the status update was received | string (ISO 8601) | 2024-08-14T03:02:11.045697Z |
| comments | Additional comments | string | |
| podReceiverName | Name of the person who received the proof of delivery (POD) | string | |
| podReceiverContact | Contact information of the POD receiver | string | |
| podURI | URI for the proof of delivery | string | |
| rawPayload | Raw payload data | string |
| Property | Description | Data Type | Example |
|---|---|---|---|
| status | Status mapped from partner | string | Order Information Received |
| comments | Additional comments | string | |
| updateTimestamp | Timestamp when the mapped partner status update was received | string (ISO 8601) | 2024-08-14T03:02:11.045697Z |
Method: GET
{{BASE_URL}}/orders?perPage=300&orderCodes=ordercode0821&orderCodes=ordercode0819
Response: 200
{
"page": 1,
"totalPage": 1,
"totalCount": 2,
"data": [
{
"id": "11ebac3c-ff23-4a58-ba05-72cadefbde31",
"orderCode": "ordercode0821",
"clientId": "0c48140c-f3e2-4bc4-a629-2faeed2a69fc",
"consigneeName": "Don",
"consigneeNumber": "123",
"consigneeAddress": "123",
"consigneePostal": "123",
"consigneeCountry": "ID",
"consigneeCity": "Don",
"consigneeState": "Don",
"consigneeProvince": "Don",
"consigneeEmail": "don@don.don",
"length": 0,
"width": 0,
"height": 0,
"weight": 1,
"paymentType": "",
"pickupContactName": "",
"pickupContactNumber": "12345",
"pickupState": "Singapore",
"pickupCity": "Singapore",
"pickupProvince": "Singapore",
"pickupPostal": "1",
"pickupCountry": "SG",
"pickupAddress": "Singapore St",
"refID": null,
"labelPath": "https://url.com/ordercode0821.11ebac3c.pdf",
"requestedServices": [
"FIRST_MILE",
"FREIGHT_FORWARDER",
"CUSTOMS",
"LAST_MILE"
],
"batchId": null,
"batchCode": null,
"senderName": "John",
"senderNumber": "12345",
"senderState": "Singapore",
"senderCity": "Singapore",
"senderProvince": "Singapore",
"senderPostal": "1",
"senderCountry": "SG",
"senderAddress": "Singapore St",
"senderEmail": "john@mail.co",
"destPortId": "d258a8cd-befc-4418-9993-ae28184ed934",
"senderPortId": "1cf83510-c353-4dfa-9b7b-08f4137ead66",
"createdAt": "2024-08-14T03:02:11.045697Z",
"items": [
{
"id": "6be6e05e-7f5c-4be8-b51f-1d1e8157d0e3",
"orderId": "11ebac3c-ff23-4a58-ba05-72cadefbde31",
"description": "shoes",
"quantity": 1,
"productCode": "",
"sku": "",
"category": "Sports & Outdoors",
"price": "0.00",
"currency": "IDR",
"convertedDuty": "0",
"convertedTax": "0",
"convertedDntCurrency": "",
"localDntCurrency": "",
"localTax": "0",
"localDuty": "0",
"dutiesFee": "0",
"taxFee": "0"
}
],
"senderPort": {
"code": "SIN"
},
"destPort": {
"code": "CGK"
},
"customerId": "dd6facd9-dc6a-4d0f-ae3d-08c058958d8e",
"updates": [
{
"id": "597ecaf4-cea2-466a-82e7-118460b67857",
"status": "Order Information Received",
"updateTimestamp": "2024-08-14T03:02:11.045697Z",
"comments": "",
"podReceiverName": "",
"podReceiverContact": "",
"podURI": "",
"rawPayload": ""
}
],
"mappedPartnerUpdates": [
{
"status": "Order Information Received",
"comments": "",
"updateTimestamp": "2024-08-14T03:02:11.045697Z"
}
],
"dntCurrency": "",
"dutiesFee": "0",
"taxFee": "0",
"customerOrderCode": null,
"terminalStatusId": null,
"insurance": false
},
{
"id": "def37eca-b36d-44fa-b150-2c9f3e76f81a",
"orderCode": "ordercode0819",
"clientId": "0c48140c-f3e2-4bc4-a629-2faeed2a69fc",
"consigneeName": "John",
"consigneeNumber": "12345",
"consigneeAddress": "Singapore St",
"consigneePostal": "1",
"consigneeCountry": "SG",
"consigneeCity": "Singapore",
"consigneeState": "Singapore",
"consigneeProvince": "Singapore",
"consigneeEmail": "john@mail.co",
"length": 0,
"width": 0,
"height": 0,
"weight": 400,
"paymentType": "",
"pickupContactName": "",
"pickupContactNumber": "12345",
"pickupState": "",
"pickupCity": "asd",
"pickupProvince": "",
"pickupPostal": "12312",
"pickupCountry": "MY",
"pickupAddress": "asdasd",
"refID": null,
"labelPath": "https://url.com/ordercode0819.def37eca.pdf",
"requestedServices": [
"FIRST_MILE",
"FREIGHT_FORWARDER",
"CUSTOMS",
"LAST_MILE"
],
"batchId": null,
"batchCode": null,
"senderName": "Dong",
"senderNumber": "12345",
"senderState": "",
"senderCity": "asd",
"senderProvince": "",
"senderPostal": "12312",
"senderCountry": "MY",
"senderAddress": "asdasd",
"senderEmail": "dong@mail.co",
"destPortId": null,
"senderPortId": null,
"createdAt": "2024-08-13T10:25:55.462309Z",
"items": [
{
"id": "f6958c0d-eea4-47a9-9434-5872e6a95a3f",
"orderId": "def37eca-b36d-44fa-b150-2c9f3e76f81a",
"description": "Gift Box & Paper Bag",
"quantity": 1,
"productCode": "",
"sku": "",
"category": "Stationery & Craft",
"price": "0.00",
"currency": "SGD",
"convertedDuty": "0",
"convertedTax": "0",
"convertedDntCurrency": "",
"localDntCurrency": "",
"localTax": "0",
"localDuty": "0",
"dutiesFee": "0",
"taxFee": "0"
},
{
"id": "c39dc3e4-61e9-4e81-87ac-50f6ea5a4d6c",
"orderId": "def37eca-b36d-44fa-b150-2c9f3e76f81a",
"description": "Gift Box & Paper Bag",
"quantity": 1,
"productCode": "",
"sku": "",
"category": "Stationery & Craft",
"price": "0.00",
"currency": "SGD",
"convertedDuty": "0",
"convertedTax": "0",
"convertedDntCurrency": "",
"localDntCurrency": "",
"localTax": "0",
"localDuty": "0",
"dutiesFee": "0",
"taxFee": "0"
},
{
"id": "383ebf39-72ce-47d8-93c9-15d7830f2d31",
"orderId": "def37eca-b36d-44fa-b150-2c9f3e76f81a",
"description": "Gift Box & Paper Bag",
"quantity": 1,
"productCode": "",
"sku": "",
"category": "Stationery & Craft",
"price": "0.00",
"currency": "SGD",
"convertedDuty": "0",
"convertedTax": "0",
"convertedDntCurrency": "",
"localDntCurrency": "",
"localTax": "0",
"localDuty": "0",
"dutiesFee": "0",
"taxFee": "0"
},
{
"id": "1b76ebc4-71c9-4f6b-b85d-89fc4378b97c",
"orderId": "def37eca-b36d-44fa-b150-2c9f3e76f81a",
"description": "Gift Box & Paper Bag",
"quantity": 1,
"productCode": "",
"sku": "",
"category": "Stationery & Craft",
"price": "0.00",
"currency": "SGD",
"convertedDuty": "0",
"convertedTax": "0",
"convertedDntCurrency": "",
"localDntCurrency": "",
"localTax": "0",
"localDuty": "0",
"dutiesFee": "0",
"taxFee": "0"
}
],
"senderPort": {
"code": ""
},
"destPort": {
"code": ""
},
"customerId": "dd6facd9-dc6a-4d0f-ae3d-08c058958d8e",
"updates": [
{
"id": "d918c055-de5c-430d-9e33-68934ec8052b",
"status": "Order Information Received",
"updateTimestamp": "2024-08-13T10:25:55.462309Z",
"comments": "",
"podReceiverName": "",
"podReceiverContact": "",
"podURI": "",
"rawPayload": ""
}
],
"mappedPartnerUpdates": [
{
"status": "Order Information Received",
"comments": "",
"updateTimestamp": "2024-08-13T10:25:55.462309Z"
}
],
"dntCurrency": "",
"dutiesFee": "0",
"taxFee": "0",
"customerOrderCode": null,
"terminalStatusId": null,
"insurance": false
}
]
}
This endpoint allows users to retrieve order detail.
| Property | Description | Data Type | Example |
|---|---|---|---|
| id | ID of the shipment | String | “5c2b0136-2f72-11ee-be56-0242ac120002” |
| orderCode | Order code for the shipment | String | “lorm123” |
| clientId | ID of the client | String | “5c2b0136-2f72-11ee-be56-0242ac120002” |
| consigneeName | Name of the consignee | String | “John” |
| consigneeNumber | Contact number of the consignee | String | “1137399575” |
| consigneeAddress | Address of the consignee | String | “123 Main Street, Anytown, USA” |
| consigneePostal | Postal code of the consignee | String | “68000” |
| consigneeCountry | Country code of the consignee | String | “MY” |
| consigneeCity | City of the consignee | String | “JOHOR” |
| consigneeState | State of the consignee (nullable) | String | "" |
| consigneeProvince | Province/State of the consignee | String | “JOHOR” |
| consigneeEmail | Email address of the consignee | String | “lorem@yahoo.com” |
| length | Length of the shipment in centimeters | Number | 17 |
| width | Width of the shipment in centimeters | Number | 22 |
| height | Height of the shipment in centimeters | Number | 6 |
| weight | Weight of the shipment in kilograms | Number | 1 |
| paymentType | Payment type (‘prepaid’ or ‘cod’) | String | “prepaid” |
| pickupContactName | Name of the pickup contact person | String | “Oliver” |
| pickupContactNumber | Contact number of the pickup person | String | “+84990993841” |
| pickupState | State of the pickup location (nullable) | String | "" |
| pickupCity | City of the pickup location | String | “Jakarta” |
| pickupProvince | Province/State of the pickup location | String | “Indonesia” |
| pickupPostal | Postal code of the pickup location | String | “13440” |
| pickupCountry | Country code of the pickup location | String | “ID” |
| pickupAddress | Address of the pickup location | String | “123 Main Street, Anytown, USA” |
| refID | Reference ID (nullable) | String | null |
| labelPath | URL path to the shipment label | String | “lorem.com/bb321.pdf” |
| requestedServices | Array of requested services for the shipment | Array | [“FIRST_MILE”, “LAST_MILE”, “FREIGHT_FORWARDER”, “DOMESTIC”, “B2B”] |
| batchId | ID of the shipment batch | String | “5c2b0136-2f72-11ee-be56-0242ac120002” |
| batchCode | Batch code for the shipment | String | “LUW123” |
| senderName | Name of the sender | String | “Oliver” |
| senderNumber | Contact number of the sender | String | “+849123123” |
| senderState | State of the sender (nullable) | String | "" |
| senderCity | City of the sender | String | “Jakarta” |
| senderProvince | Province/State of the sender | String | “Indonesia” |
| senderPostal | Postal code of the sender | String | “13440” |
| senderCountry | Country code of the sender | String | “ID” |
| senderAddress | Address of the sender | String | “123 Main Street, Anytown, USA” |
| senderEmail | Email address of the sender | String | "" |
| destPortId | ID of the destination port | String | “5c2b0136-2f72-11ee-be56-0242ac120002” |
| senderPortId | ID of the sender port | String | “5c2b0136-2f72-11ee-be56-0242ac120002” |
| createdAt | Timestamp of the shipment creation | String | “2023-06-02T05:25:10.773913Z” |
| items | Array of items in the shipment | Array | Array of item objects (see Item Table below) |
| senderPort | Object containing the sender port information | Object | { “code”: “CGK” } |
| destPort | Object containing the destination port information | Object | { “code”: “KUL” } |
| customerId | ID of the customer | String | “5c2b0136-2f72-11ee-be56-0242ac120002” |
| updates | Array of updates for the shipment (nullable) | Array | null |
| mappedPartnerUpdates | Array of mapped partner updates for the shipment (nullable) | Array | null |
| dntCurrency | Currency code for duties and taxes | String | “USD” |
| dutiesFee | Duties fee in the specified currency | String | “0” |
| taxFee | Tax fee in the specified currency | String | “20.24” |
| customerOrderCode | Customer order code | String | “FCCLM16123123” |
| terminalStatusId | ID of the terminal status (nullable) | String | null |
| insurance | Indicates whether insurance is included | Boolean | false |
| Property | Description | Data Type | Example |
|---|---|---|---|
| id | ID of the item | String | “5c2b0136-2f72-11ee-be56-0242ac120002” |
| orderId | ID of the order containing the item | String | “5c2b0136-2f72-11ee-be56-0242ac120002” |
| description | Description of the item | String | “Logitech MX2 Anywhere Bluetooth mouse” |
| quantity | Quantity of the item | Number | 2 |
| productCode | Product code of the item | String | “446” |
| sku | Stock Keeping Unit (SKU) of the item | String | “PO-918242213418” |
| category | Category of the item | String | “Gadget” |
| price | Price of the item in the specified currency | String | “200.00” |
| currency | Currency code for the item price | String | “USD” |
| convertedDuty | Duties fee for the item in the specified currency | String | “0” |
| convertedTax | Tax fee for the item in the specified currency | String | “20.24” |
| convertedDntCurrency | Currency code for duties and taxes for the item | String | “USD” |
| localDntCurrency | Local currency code for duties and taxes for the item | String | “MYR” |
| localTax | Local tax fee for the item in the local currency | String | “92” |
| localDuty | Local duties fee for the item in the local currency | String | “0” |
| dutiesFee | Duties fee for the item in the specified currency | String | “0” |
| taxFee | Tax fee for the item in the specified currency | String | “20.24” |
Method: GET
{{BASE_URL}}/orders/:orderID
Response: 200
{
"id": "5c2b0136-2f72-11ee-be56-0242ac120002",
"orderCode": "NEWORDER1234567890",
"clientId": "12345678-abcd-efgh-ijkl-9876543210ab",
"consigneeName": "John Doe",
"consigneeNumber": "555-123-4567",
"consigneeAddress": "123 Main Street, Anytown, USA",
"consigneePostal": "12345",
"consigneeCountry": "US",
"consigneeCity": "Anytown",
"consigneeState": "CA",
"consigneeProvince": "California",
"consigneeEmail": "john.doe@example.com",
"length": 25,
"width": 30,
"height": 10,
"weight": 3,
"paymentType": "credit_card",
"pickupContactName": "Jane Smith",
"pickupContactNumber": "+15551234567",
"pickupState": "NY",
"pickupCity": "New York City",
"pickupProvince": "New York",
"pickupPostal": "10001",
"pickupCountry": "US",
"pickupAddress": "456 Oak Avenue, New York City, NY 10001, USA",
"refID": null,
"labelPath": "https://example-labels.s3.amazonaws.com/abcdef12-3456-7890-efgh-ijklmnopqrst.pdf",
"requestedServices": [
"LAST_MILE",
"AIR_FREIGHT",
"INSURANCE"
],
"batchId": "batch1234-abcd-efgh-5678-ijklmnopqrst",
"batchCode": "BATCH9876543210",
"senderName": "Jane Smith",
"senderNumber": "+15551234567",
"senderState": "NY",
"senderCity": "New York City",
"senderProvince": "New York",
"senderPostal": "10001",
"senderCountry": "US",
"senderAddress": "456 Oak Avenue, New York City, NY 10001, USA",
"senderEmail": "jane.smith@example.com",
"destPortId": "port5678-efgh-abcd-ijkl-9012mnopqrst",
"senderPortId": "port9012-ijkl-5678-efgh-abcdmnopqrst",
"createdAt": "2023-07-31T12:34:56.789Z",
"items": [
{
"id": "item1234-5678-efgh-abcd-ijklmnopqrst",
"orderId": "abcdef12-3456-7890-efgh-ijklmnopqrst",
"description": "Widget X1",
"quantity": 5,
"productCode": "WIDGET_X1",
"sku": "WX1-987654321",
"category": "Widgets",
"price": "19.99",
"currency": "USD",
"convertedDuty": "0",
"convertedTax": "2.50",
"convertedDntCurrency": "USD",
"localDntCurrency": "EUR",
"localTax": "2.12",
"localDuty": "0",
"dutiesFee": "0",
"taxFee": "2.50"
}
],
"senderPort": {
"code": "JFK"
},
"destPort": {
"code": "LAX"
},
"customerId": "customer9876-abcd-1234-5678-efghijklmnopqrst",
"updates": null,
"mappedPartnerUpdates": null,
"dntCurrency": "USD",
"dutiesFee": "0",
"taxFee": "2.50",
"customerOrderCode": "ORDER9876543210",
"terminalStatusId": null,
"insurance": true
}
This endpoint is used to query for the label of a given order.
Method: GET
{{BASE_URL}}/orders/:orderID/label
| Property | Description | Data Type | Example |
|---|---|---|---|
| id | ID of the shipment | String | “5c2b0136-2f72-11ee-be56-0242ac120002” |
| orderCode | Order code | String | “ABC123” |
| orderCode | CUstomer provided order code | String | “ABC123” |
| labelUrl | URL to the label | String or null | “https://www.example.com/abc123.pdf" |
| createdAt | Order creation timestamp | Timestamp | “2023-11-17T12:20:00.025367+02:00” |
Response: 200
{
"id": "0cb5edb2-9f82-4b83-84b2-b34b48f03047",
"orderCode": "RED001SIN1116202300000003KUL",
"customerOrderCode": "ABC123",
"labelUrl": "http://example.io/label.pdf",
"createdAt": "2023-11-17T12:20:00.025367+02:00"
}
This endpoint allows users to retrieve the statuses of their order, both Test Setel Status (Partner Update) & Client Mapped Status (Mapped Partner Update).
| Property | Description | Data Type | Example |
|---|---|---|---|
| data | List of data objects | Array of objects | - |
| â”” id | Unique identifier for the entry | String | “b44b0178-c544-4cd5-805f-26946dcc5864” |
| â”” statusCode | Status code | String | “10002” |
| â”” status | Status description | String | “Pickup Requested” |
| â”” internalStatus | Internal status description | String | “Pickup Requested” |
| â”” updatedAt | Date and time of last update | String (ISO 8601 format) | “2023-11-20T08:24:16.731187+02:00” |
| â”” createdAt | Date and time of creation | String (ISO 8601 format) | “2023-11-20T13:24:16.738594+02:00” |
| â”” podReceiverName | Name of the Proof of Delivery receiver | String | “John” (Can be empty string) |
| â”” podUri | URI for Proof of Delivery document | String | “http://luwjistik.io/pod.pdf" (Can be empty) |
Method: GET
{{BASE_URL}}/orders/:orderID/status
Response: 200
{
"data": [
{
"id": "b44b0178-c544-4cd5-805f-26946dcc5864",
"statusCode": "10002",
"status": "Pickup Requested",
"internalStatus": "Pickup Requested",
"updatedAt": "2023-11-20T08:24:16.731187+02:00",
"createdAt": "2023-11-20T13:24:16.738594+02:00",
"podReceiverName": "",
"podUri": ""
},
{
"id": "8ac269f3-455c-4cd1-9f7d-f2243aba8096",
"statusCode": "10001",
"status": "Test Client Mapping",
"internalStatus": "Order Information Received",
"updatedAt": "2023-11-20T13:24:16.731186+02:00",
"createdAt": "2023-11-20T13:24:16.738594+02:00",
"podReceiverName": "John Doe",
"podUri": "http://luwjistik.io/pod.pdf"
}
]
}
This endpoint allows users to retrieve the statuses of their order, both Test Setel Status (Partner Update) & Client Mapped Status (Mapped Partner Update). THe query is done by order code instead of the id.
| Property | Description | Data Type | Example |
|---|---|---|---|
| data | List of data objects | Array of objects | - |
| â”” id | Unique identifier for the entry | String | “b44b0178-c544-4cd5-805f-26946dcc5864” |
| â”” statusCode | Status code | String | “10002” |
| â”” status | Status description | String | “Pickup Requested” |
| â”” internalStatus | Internal status description | String | “Pickup Requested” |
| â”” updatedAt | Date and time of last update | String (ISO 8601 format) | “2023-11-20T08:24:16.731187+02:00” |
| â”” createdAt | Date and time of creation | String (ISO 8601 format) | “2023-11-20T13:24:16.738594+02:00” |
| â”” podReceiverName | Name of the Proof of Delivery receiver | String | “John” (Can be empty string) |
| â”” podUri | URI for Proof of Delivery document | String | “http://luwjistik.io/pod.pdf" (Can be empty) |
Method: GET
{{BASE_URL}}/orders/:orderCode/statusByOrderCode
Response: 200
{
"data": [
{
"id": "b44b0178-c544-4cd5-805f-26946dcc5864",
"statusCode": "10002",
"status": "Pickup Requested",
"internalStatus": "Pickup Requested",
"updatedAt": "2023-11-20T08:24:16.731187+02:00",
"createdAt": "2023-11-20T13:24:16.738594+02:00",
"podReceiverName": "",
"podUri": ""
},
{
"id": "8ac269f3-455c-4cd1-9f7d-f2243aba8096",
"statusCode": "10001",
"status": "Test Client Mapping",
"internalStatus": "Order Information Received",
"updatedAt": "2023-11-20T13:24:16.731186+02:00",
"createdAt": "2023-11-20T13:24:16.738594+02:00",
"podReceiverName": "John Doe",
"podUri": "http://luwjistik.io/pod.pdf"
}
]
}
This endpoint allows users to retrieve the updates of their order, both Test Setel Status (Partner Update) & Client Mapped Status (Mapped Partner Update).
| Property | Description | Data Type | Example |
|---|---|---|---|
| data | Array of shipment data | Array | Array of shipment objects (see Shipment Table below) |
| Property | Description | Data Type | Example |
|---|---|---|---|
| id | ID of the shipment | String | “5c2b0136-2f72-11ee-be56-0242ac120002” |
| orderID | ID of the order | String | “c157238e-af74-48c3-8f2b-3642c93ab7c9” |
| orderCode | Order code | String | "” |
| partnerID | ID of the partner | String | “5c2b0136-2f72-11ee-be56-0242ac120002” |
| partnerName | Name of the partner | String | “Pos Laju” |
| serviceType | Type of service | String | “LAST_MILE” |
| externalTrackingNumber | External tracking number | String | “lorm123” |
| externalTracking | Object containing external tracking data | Object | External Tracking Object (see below) |
| Property | Description | Data Type | Example |
|---|---|---|---|
| id | ID of the external tracking | String | “5c2b0136-2f72-11ee-be56-0242ac120002” |
| partnerUpdates | Array of partner updates | Array | Array of partner update objects (see below) |
| mappedPartnerUpdates | Array of mapped partner updates | Array | Array of mapped partner update objects (see below) |
| Property | Description | Data Type | Example |
|---|---|---|---|
| id | ID of the partner update | String | “5c2b0136-2f72-11ee-be56-0242ac120002” |
| status | Status of the partner update | String | “Shipment Delivered” |
| updateTimestamp | Timestamp of the partner update | String | “2023-06-06T07:19:00Z” |
| comments | Comments about the partner update | String | "” |
| podReceiverName | Name of the Proof of Delivery receiver | String | "” |
| podReceiverContact | Contact of the Proof of Delivery receiver | String | "" |
| podURI | URI of the Proof of Delivery | String | "" |
| rawPayload | Raw payload of the partner update | String | "" |
| Property | Description | Data Type | Example |
|---|---|---|---|
| status | Status of the mapped partner update | String | “Successfully Delivered” |
| comments | Comments about the mapped partner update | String | "" |
| updateTimestamp | Timestamp of the mapped partner update | String | “2023-06-06T07:19:00Z” |
| comments | Comments about the mapped partner update | String | "" |
Method: GET
{{BASE_URL}}/orders/:orderID/updates
Response: 200
{
"data": [
{
"id": "5c2b0136-2f72-11ee-be56-0242ac120002",
"orderID": "5c2b0136-2f72-11ee-be56-0242ac120002",
"orderCode": "ORD20230731",
"partnerID": "5c2b0136-2f72-11ee-be56-0242ac120002",
"partnerName": "SwiftPost",
"serviceType": "LAST_MILE",
"externalTrackingNumber": "SWF12345EXP20230731",
"externalTracking": {
"id": "5c2b0136-2f72-11ee-be56-0242ac120002",
"partnerUpdates": [
{
"id": "5c2b0136-2f72-11ee-be56-0242ac120002",
"status": "Shipment Delivered",
"updateTimestamp": "2023-07-31T14:30:00Z",
"comments": "",
"podReceiverName": "John Doe",
"podReceiverContact": "+123456789",
"podURI": "https://example.com/pod/123",
"rawPayload": ""
},
{
"id": "5c2b0136-2f72-11ee-be56-0242ac120002",
"status": "Out for Delivery",
"updateTimestamp": "2023-07-31T08:45:00Z",
"comments": "Please deliver to front door.",
"podReceiverName": "Jane Smith",
"podReceiverContact": "+987654321",
"podURI": "https://example.com/pod/456",
"rawPayload": ""
},
{
"id": "5c2b0136-2f72-11ee-be56-0242ac120002",
"status": "Arrived at Local Hub",
"updateTimestamp": "2023-07-31T04:20:00Z",
"comments": "",
"podReceiverName": "",
"podReceiverContact": "",
"podURI": "",
"rawPayload": ""
}
],
"mappedPartnerUpdates": [
{
"status": "Successfully Delivered :checkered_flag:",
"comments": "",
"updateTimestamp": "2023-07-31T14:30:00Z"
},
{
"status": "Out for Delivery",
"comments": "Please deliver to back door.",
"updateTimestamp": "2023-07-31T08:45:00Z"
},
{
"status": "Arrival at Local Distribution Center",
"comments": "",
"updateTimestamp": "2023-07-31T04:20:00Z"
}
]
}
},
{
"id": "7a9f4a16-7a44-49c1-92d2-67f566dc40c8",
"orderID": "f4b699fc-9d45-4e69-aeea-cc0f868c6b37",
"orderCode": "ORD20230731",
"partnerID": "33d41f2a-c2cd-407f-80e4-0a4e90c61e1a",
"partnerName": "FastCargo",
"serviceType": "FREIGHT_FORWARDER",
"externalTrackingNumber": "FC20230731001",
"externalTracking": {
"id": "9190bfb5-ccee-4711-82e2-34569a64ef11",
"partnerUpdates": [
{
"id": "2b3d82af-b8f5-41e7-b9f5-4c46e7e1c946",
"status": "In Transit",
"updateTimestamp": "2023-07-31T11:00:00Z",
"comments": "",
"podReceiverName": "",
"podReceiverContact": "",
"podURI": "",
"rawPayload": ""
},
{
"id": "77a87b1d-1a45-4726-9b1e-85e39f1a3667",
"status": "Arrived at Destination Airport",
"updateTimestamp": "2023-07-31T05:40:00Z",
"comments": "",
"podReceiverName": "",
"podReceiverContact": "",
"podURI": "",
"rawPayload": ""
},
{
"id": "e68a2d71-34da-4776-95e0-50be5aa8500c",
"status": "Departed from Origin Airport",
"updateTimestamp": "2023-07-30T22:15:00Z",
"comments": "",
"podReceiverName": "",
"podReceiverContact": "",
"podURI": "",
"rawPayload": ""
}
],
"mappedPartnerUpdates": [
{
"status": "In Transit",
"comments": "",
"updateTimestamp": "2023-07-31T11:00:00Z"
},
{
"status": "Arrival at Destination Airport",
"comments": "",
"updateTimestamp": "2023-07-31T05:40:00Z"
},
{
"status": "Departure from Origin Airport",
"comments": "",
"updateTimestamp": "2023-07-30T22:15:00Z"
}
]
}
},
{
"id": "c63a8e97-5ca2-43d3-b45b-d570159b29c6",
"orderID": "4d39d12c-5114-4eb5-8b74-1706ef358cb3",
"orderCode": "ORD20230731",
"partnerID": "eefc09b8-74f5-427f-99f9-2d1583a389f2",
"partnerName": "TransGlobal",
"serviceType": "FIRST_MILE",
"externalTrackingNumber": "TGOCEAN20230731002",
"externalTracking": {
"id": "2bf825b9-2b32-4f03-8354-06aa6eab73d0",
"partnerUpdates": [
{
"id": "b72ad510-59f8-4537-bc3a-616db0e1c613",
"status": "Shipment Loaded onto Vessel",
"updateTimestamp": "2023-07-30T18:45:00Z",
"comments": "",
"podReceiverName": "",
"podReceiverContact": "",
"podURI": "",
"rawPayload": ""
},
{
"id": "651bb6f5-0a1a-426f-905f-798dedb524a3",
"status": "Departure from Port",
"updateTimestamp": "2023-07-30T12:30:00Z",
"comments": "",
"podReceiverName": "",
"podReceiverContact": "",
"podURI": "",
"rawPayload": ""
},
{
"id": "25b892eb-4b52-49b6-a8b1-b096b26f33ea",
"status": "Arrival at Destination Port",
"updateTimestamp": "2023-07-28T23:59:00Z",
"comments": "",
"podReceiverName": "",
"podReceiverContact": "",
"podURI": "",
"rawPayload": ""
}
],
"mappedPartnerUpdates": [
{
"status": "Shipment Loaded onto Vessel",
"comments": "",
"updateTimestamp": "2023-07-30T18:45:00Z"
},
{
"status": "Departure from Port",
"comments": "",
"updateTimestamp": "2023-07-30T12:30:00Z"
},
{
"status": "Arrival at Destination Port",
"comments": "",
"updateTimestamp": "2023-07-28T23:59:00Z"
}
]
}
}
]
}
Size limit: 10 orders per API-call
Method: POST
{{BASE_URL}}/orders/crossBorder
| Property | Description | Data Type | Mandatory | Example |
|---|---|---|---|---|
| orderCode | Order code | String | Y | “ORD123456” |
| consigneeName | Consignee’s name | String | Y | “Alice Johnson” |
| consigneeNumber | Consignee’s contact number | String | Y | “+1 (555) 123-4567” |
| consigneeEmail | Consignee’s email | String | Y | “alice@example.com” |
| consigneeAddress | Consignee’s address | String | Y | “123 Main Street” |
| consigneePostal | Consignee’s postal code | String | Y | “12345” |
| consigneeCity | Consignee’s city | String | Y | “New York” |
| consigneeCountry | Consignee’s country | String | Y | “US” |
| consigneeProvince | Consignee’s province/state | String | Y | “NY” |
| destinationPort | Destination port | String | Y | “NYC” |
| consigneeTaxId | Consignee’s tax ID | String | N | “ID12345” |
| length | Length of the package in CM | Integer | Y | 100 |
| width | Width of the package in CM | Integer | Y | 50 |
| height | Height of the package in CM | Integer | Y | 80 |
| weight | Weight of the package in KG | Float | Y | 25 |
| paymentType | Payment type | String(“prepaid” or “cod”) | Y | “prepaid” |
| codValue | Cash on delivery value | Float (null if paymentType “prepaid”) | Yes if COD | null |
| codCurrency | Cash on delivery currency | String (null if paymentType “prepaid”) | Yes if COD | “USD” |
| senderContactName | Sender’s contact name | String | Y | “John Smith” |
| senderContactNumber | Sender’s contact number | String | Y | “+1 (555) 987-6543” |
| senderCity | Sender’s city | String | Y | “Los Angeles” |
| senderCountry | Sender’s country | String | Y | “US” |
| senderProvince | Sender’s province/state | String | Y | “CA” |
| senderPort | Sender’s port | String | Y | “LAX” |
| senderPostal | Sender’s postal code | String | Y | “54321” |
| senderAddress | Sender’s address | String | Y | “456 Oak Avenue” |
| note | Additional note | Null | N | null |
| incoterm | Incoterm | String (“DDU”, “DDP”) | Y | “DDU” |
| items | Array of items | Array | Y | Array of item objects (see Item Table below) |
| pickupDate | Pickup date in the format of DD/MM/YYYY | String | N | 06/12/2024 |
| serviceLevel | service level | string | Y | “ECONOMY” |
| Property | Description | Data Type | Mandatory | Example |
|---|---|---|---|---|
| description | Description of the item | String | N | “Premium Quality Leather Backpack” |
| quantity | Quantity of the item | Integer | Y | 2 |
| productCode | Product code | String | N | “SKU123456” |
| sku | SKU of the item | String | N | “PD-98765” |
| category | Category of the item | String | Y | “Fashion Accessories” |
| price | Price of the item | Float | Y | 79.99 |
| currency | Currency of the item | String | Y | “USD” |
| Property | Description | Data Type | Example |
|---|---|---|---|
| data | collection of uploaded order code, tracking number, and id | array of object | see below |
| Property | Description | Data Type | Example |
|---|---|---|---|
| id | ID of the Uploaded Order , use this ID for merchant API Tracking | UUID | 24e4b796-5947-4312-b9c3-76f6c410b41f |
| trackingNumber | Code that is used for tracking, use this code for Public Tracking Endpoint | string | ASDKRIID0914202300000002ID |
| customerOrderCode | Order code that’s inputted by user | string | ORDER123 |
Body (raw)
[
{
"orderCode": "TESTOMSABC00001",
"consigneeName": "Alice Johnson",
"consigneeNumber": "+1 (555) 123-4567",
"consigneeEmail": "alice@example.com",
"consigneeAddress": "123 Main Street",
"consigneePostal": "12345",
"consigneeCity": "Shah ALam",
"consigneeCountry": "MY",
"consigneeProvince": "Selangor",
"destinationPort": "KUL",
"length": 100,
"width": 50,
"height": 80,
"weight": 25,
"paymentType": "prepaid",
"codValue": null,
"codCurrency": null,
"senderContactName": "John Smith",
"senderContactNumber": "+1 (555) 987-6543",
"senderCity": "Singapore",
"senderCountry": "SG",
"senderProvince": "Singapore",
"senderPort": "SIN",
"senderPostal": "54321",
"senderAddress": "456 Oak Avenue",
"note": null,
"incoterm": "DDP",
"items": [
{
"description": "Premium Quality Leather Backpack",
"quantity": 2,
"productCode": "SKU123456",
"sku": "PD-98765",
"category": "Fashion Accessories",
"price": 79.99,
"currency": "USD"
}
]
}
]
Response: 200
{
"data": [
{
"id": "4104a1de-9038-4d65-9a74-4cc1a45a48d5",
"customerOrderCode": "TESTOMSABC00001",
"trackingNumber": "RED001SIN1116202300000003KUL"
}
]
}
Batch size limit: 10 orders per API call
Method: POST
{{BASE_URL}}/orders/domestic
| Property | Description | Data Type | Mandatory | Example |
|---|---|---|---|---|
| orderCode | Order code | String | Y | “ORD20231234” |
| consigneeName | Consignee’s name | String | Y | “John Doe” |
| consigneeNumber | Consignee’s contact number | String | Y | “+1 (555) 123-4567” |
| consigneeAddress | Consignee’s address | String | Y | “456 Elm Street” |
| consigneePostal | Consignee’s postal code | String | Y | “98765” |
| consigneeCountry | Consignee’s country | String | Y | “US” |
| consigneeProvince | Consignee’s province/state | String | Y | “California” |
| consigneeCity | Consignee’s city | String | Y | “Los Angeles” |
| consigneeDistrict | Consignee’s district | String | Y | “Downtown” |
| consigneeEmail | Consignee’s email | String | Y | “john.doe@example.com” |
| length | Length of the package in CM | Float | Y | 15.0 |
| width | Width of the package in CM | Float | Y | 20.0 |
| height | Height of the package in CM | Float | Y | 10.0 |
| weight | Weight of the package in KG | Float | Y | 5.0 |
| paymentType | Payment type | String | Y | “prepaid”, “cod” |
| codValue | Cash on delivery value | Float (null if payment “prepaid”) | Y if COD | 1.5 |
| codCurrency | Cash on delivery currency | String (null if payment “prepaid”) | Y if COD | “USD” |
| senderContactName | Sender’s contact name | String | Y | “Jane Smith” |
| senderContactNumber | Sender’s contact number | String | Y | “+1 (555) 987-6543” |
| senderPostal | Sender’s postal code | String | Y | “54321” |
| senderCountry | Sender’s country | String | Y | “US” |
| senderProvince | Sender’s province/state | String | Y | “New York” |
| senderCity | Sender’s city | String | Y | “New York City” |
| senderDistrict | Sender’s district | String | N | “Midtown” |
| senderAddress | Sender’s address | String | Y | “123 Oak Avenue” |
| note | Additional note | String | N | “Handle with care” |
| pickupDate | pickup date | String | N | “20/01/2024” |
| items | Array of items | Array | Y | Array of item objects (see Item Table below) |
| serviceLevel | service level | string | Y | “REGULAR” |
| Property | Description | Data Type | Mandatory | Example |
|---|---|---|---|---|
| description | Description of the item | String | N | “Classic Leather Watch” |
| quantity | Quantity of the item | Integer | Y | 3 |
| productCode | Product code | String | N | “PROD9876” |
| sku | SKU of the item | String | N | “SKU-123456” |
| category | Category of the item | String | Y | “Fashion & Accessories” |
| price | Price of the item | Float | Y | 99.99 |
| currency | Currency of the item | String | Y | “USD” |
| Property | Description | Data Type | Example |
|---|---|---|---|
| data | collection of uploaded order code, tracking number, and id | array of object | see below |
| Property | Description | Data Type | Example |
|---|---|---|---|
| id | ID of the Uploaded Order , use this ID for merchant API Tracking | UUID | 24e4b796-5947-4312-b9c3-76f6c410b41f |
| trackingNumber | Code that is used for tracking, use this code for Public Tracking Endpoint | string | ASDKRIID0914202300000002ID |
| customerOrderCode | Order code that’s inputted by user | string | ORDER123 |
Body (raw)
[
{
"orderCode": "Luw20211101-501",
"consigneeName": "Nam",
"consigneeNumber": "+8490999878",
"consigneeAddress": "Ho Chi Minh City",
"consigneePostal": "10000.0",
"consigneeCountry": "SG",
"consigneeProvince": "Singapore",
"consigneeCity": "Singapore",
"consigneeDistrict": "Tanjong Pagar",
"consigneeEmail": "smith@mailinator.com",
"length": 10,
"width": 50,
"height": 40,
"weight": 30,
"paymentType": "prepaid",
"codValue": null,
"codCurrency": null,
"senderContactName": "Oliver Nguyen",
"senderContactNumber": "+84990993841",
"senderPostal": "5753.0",
"senderCountry": "SG",
"senderProvince": "Singapore",
"senderCity": "Singapore",
"senderDistrict": null,
"senderAddress": "Ho Chi Minh City",
"note": null,
"partnerCode": null,
"items": [
{
"description": "Logitech MX2 Anywhere Bluetooth mouse",
"quantity": 5,
"productCode": "446.0",
"sku": "PO-918242213418",
"category": "Fashion & Accessories",
"price": 65.5,
"currency": "SGD"
},
{
"description": "High Quality 1.6L Removable Water Tank 20Bar Semi-Automatic Espresso Coffee Machine With Milk Frother",
"quantity": 2,
"productCode": "558.0",
"sku": "PO-918242213417",
"category": "Fashion & Accessories",
"price": 750,
"currency": "SGD"
}
]
}
]
Response: 200
{
"data": [
{
"id": "24e4b796-5947-4312-b9c3-76f6c410b41f",
"customerOrderCode": "ORDER123",
"trackingNumber": "ASDKRIID0914202300000002ID"
}
]
}
This endpoint will register url and its event type
Method: POST
URL: {{BASE_URL}}/event-subscriptions
| Parameter | Description | Data Type | Mandatory | Example |
|---|---|---|---|---|
| url | The endpoint to receive the events | string | Y | https://google.com |
| eventType | The type of event to subscribe to | string | Y | CUSTOMER_STATUS |
{
"url": "https://google.com",
"eventType": "CUSTOMER_STATUS"
}
| Status Code | Description |
|---|---|
| 200 | Success, no response body |
This endpoint will retrieves event subscriptions
Method: GET
URL: {{BASE_URL}}/event-subscriptions
| Parameter | Description | Data Type | Mandatory | Example |
|---|---|---|---|---|
| page | Page number to retrieve | integer | Y | 1 |
| perPage | Number of items to retrieve per page | integer | Y | 100 |
| Field | Description | Data Type | Example |
|---|---|---|---|
| page | The current page number | integer | 1 |
| totalPage | The total number of pages available | integer | 1 |
| totalCount | The total number of event subscriptions | integer | 3 |
| data | List of event subscriptions | array | See below for details |
| Field | Description | Data Type | Example |
|---|---|---|---|
| id | Unique identifier for the subscription | string | dcf0fb0c-2300-44a7-8ccf-a2b3b1627a44 |
| clientId | Unique identifier for the client | string | 0c48140c-f3e2-4bc4-a629-2faeed2a69fc |
| customerId | Unique identifier for the customer | string | dd6facd9-dc6a-4d0f-ae3d-08c058958d8e |
| eventType | Type of event the subscription is for | string | CUSTOMER_STATUS |
| endpoint | URL where the event is sent | string | https://google.com |
| appKey | Unique application key associated with the subscription | string | 55e37c03-177d-4f10-87dd-1097a5ac98d0 |
| createdAt | Timestamp of when the subscription was created | string | 2024-08-14T09:38:14.862219Z |
| updatedAt | Timestamp of the last update to the subscription | string | 2024-08-14T09:38:14.862219Z |
{
"page": 1,
"totalPage": 1,
"totalCount": 3,
"data": [
{
"id": "dcf0fb0c-2300-44a7-8ccf-a2b3b1627a44",
"clientId": "0c48140c-f3e2-4bc4-a629-2faeed2a69fc",
"customerId": "dd6facd9-dc6a-4d0f-ae3d-08c058958d8e",
"eventType": "",
"endpoint": "",
"appKey": "55e37c03-177d-4f10-87dd-1097a5ac98d0",
"createdAt": "2024-08-14T09:38:14.862219Z",
"updatedAt": "2024-08-14T09:38:14.862219Z"
},
{
"id": "67125d4c-d5b1-4c3e-bd9a-018ca0ad4dc5",
"clientId": "0c48140c-f3e2-4bc4-a629-2faeed2a69fc",
"customerId": "dd6facd9-dc6a-4d0f-ae3d-08c058958d8e",
"eventType": "CUSTOMER_STATUS",
"endpoint": "https://google.com",
"appKey": "62398fc6-7682-49b7-aefc-3c6eb84503c7",
"createdAt": "2024-08-14T09:21:57.661728Z",
"updatedAt": "2024-08-14T09:21:57.661728Z"
},
{
"id": "1c0b0e7b-361f-4c6c-aab6-978bbb28f43f",
"clientId": "0c48140c-f3e2-4bc4-a629-2faeed2a69fc",
"customerId": "dd6facd9-dc6a-4d0f-ae3d-08c058958d8e",
"eventType": "CUSTOMER_STATUS",
"endpoint": "https://webhook.site/d5e67bb2-5272-40b9-9b09-24744cb32326",
"appKey": "e14b3f3f-35c7-4493-a5ff-52d5b87c9098",
"createdAt": "2024-02-15T09:58:58.310983Z",
"updatedAt": "2024-02-15T09:58:58.310983Z"
}
]
}
This endpoint will delete the event subscription
Method: DELETE
URL: {{BASE_URL}}/event-subscriptions/:eventSubscriptionID
| Parameter | Description | Data Type | Mandatory | Example |
|---|---|---|---|---|
| eventSubscriptionID | The unique ID of the event subscription to delete | string | Y | 477cb4bb-3cca-4e7b-8d5a-5fcdb34f6c5d |
The API call returns a 200 OK response, indicating that the event subscription was successfully deleted. There is no response body.
This endpoint retrieves service level mappings for a given shipment type, origin country, and destination country.
Method: GET
URL: {{BASE_URL}}/service-level-mappings
Query Parameters:
shipmentType(string, required): The type of shipment, eitherCROSSBORDERorDOMESTICoriginCountry(string): The origin country code (e.g. SG), this param is required when the shipment type isCROSSBORDERdestinationCountry(string): The destination country code (e.g. AZ), this param is required when the shipment type isCROSSBORDER
The response is in JSON format and follows the schema below:
{
"data": [
{
"serviceLevel": "ECONOMY",
"customName": "Basic",
"shipmentType": "CROSSBORDER"
},
{
"serviceLevel": "EXPRESS",
"customName": "Premium",
"shipmentType": "CROSSBORDER"
}
]
}
The response body contains an array of objects, where each object represents a service level mapping with the following properties:
serviceLevel(string): The service level associated with the mapping.customName(string): A custom name for the mapping.shipmentType(string): The type of shipment associated with the mapping.
In addition to the endpoints above that can be used to pull the status updates on an order, we also provide the ability to subscribe to a webhook when certain events happens on our systems.
To subscribe to be notified to when an event happens, go to the Profile -> Settings page of the portal, and find the Event Subscriptions section.

On your profile page, you will find a section for Event Subscriptions where you can see your existing subscription and add new ones. To create a new subscription, click on the “Assign New Subscription” button.

Enter the webhook endpoint to handle the subscription and select the type of the event to subscribe to, and click “Subscribe” to create the subscription.
From now on, when an event happens that match the subscribed event type, a notification will be sent to the provided URL endpoint. Refer to the section below on how to process the information that is sent with the notification.
The system will send a POST request to the registered endpoint with a JSON payload containing the following information:
{
"eventType": "TYPE OF EVENT",
"eventPayload": { // event-type specific information // }
}
The endpoint should return a 200 status code to signify a successful response. We highly recommend to return a response as soon as possible and offload the heavier processing to a background process. The header of the request will include a clientId header that correspond to the subscription key that you have created on the client portal. This can be used to verify that the request is coming from Luwjistik. If the endpoint does not return a 200 status code in time, the system will retry up-to 5 times with exponential backoff.
Currently there are the following event types that can be subscribed to:
CUSTOMER_STATUS. Happens when a status update is created on an order.
The event will be fired when an update is created on an order your account.
{
"eventType": "CUSTOMER_STATUS",
"eventPayload": {
"orderCode": "ABC123",
"update": {
"status": "Pickup Scheduled",
"statusCode": "10003",
"updateTimestamp": "2020-12-09T16:09:53+00:00",
"location": "Warehouse X",
"comments": ""
},
"serviceType": "LAST_MILE"
}
}
eof