Introduction
Graas Developer Experience
Manage multiple channel sales with Graas' robust APIs and open the door to multiple marketplaces such as eBay, Amazon, Lazada, Qoo10...
Welcome to the Graas API! You can use our API to access information about inventory and orders in our system using Graas API Endpoints
We offer language bindings in Shell, Ruby, and Python. You can find code examples in the dark area on the right and switch the programming language of the examples using the tabs in the top right corner.
This API documentation page was created by Graas Team. Feel free to send feedback to developer@graas.ai for any query.
Authentication
To authorize, use this code:
require 'kittn'
api = Kittn::APIClient.authorize!('meowmeowmeow')
import kittn
api = kittn.authorize('meowmeowmeow')
# With shell, you can just pass the correct header with each request
curl "api_endpoint_here"
-H "accountNumber: 12121212121212121"
-H "appKey: 2121212121"
Make sure to replace
secret
with your APP key.
Graas uses APP keys to allow access to the developer APIs. To register your applicaion with us, please send an email to developer@graas.ai .
Graas requires inclusion of APP key and seller account number in API requests' headers, as follows:
accountNumber: <seller account number >
appKey: <Application key given to you >
Authorization
Authorization flow digram
Developer Key
To get a developer key, please email developer@graas.ai and include a request for the key.
Create account (Step 1)
Get authorization url:
curl "https://api./services/account/auth"
-H "Content-Type: application/json"
-H "appKey: <App Key>"
Request payload:
{
"email": "partner-xyz@graas.i",
"businessName": "GRAAS COMPANY",
"phoneNumber": "+99678300810",
"state":""
"redirectURL": "<Authorization completed redirect URL>"
"countryCode": "SG",
"currencyCode": "SGD",
"defaultLocale":"en_US"
}
Response payload:
{
"status": "success",
"url": "https://stage.graas.work/signup?email=badoh7459220%40pbridal.com&code=fdc8215d-c6a3-44cc-95f6-4d85d2c6e92c"
}
You can either create a new account for Turbocharger or connect an existing one
HTTP Request
POST https://api./services/account/auth
Error message
Error message | Meaning |
---|---|
failure | The request might not be in correct format. |
Request parameters
Field | Type | Required | Description |
---|---|---|---|
String | Yes | User email ID (User ID is checked for uniqueness). | |
businessName | String | Yes | Business name |
phoneNumber | int | No | Phone number |
redirectURL | String | Yes | Determines where the API server redirects the user after the user completes the authorization flow. |
state | String | No | Specifies any string value that your application uses to maintain state between your authorization request and the authorization server's response. The server returns the exact value that you send as a name=value pair in the URL query component (?) of the redirectURL after the user consents to or denies your application's access request. |
countryCode | String | No | Business country ISO 3166-1 alpha-2 code Refer : https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 |
currencyCode | String | No | Business currency code Refer : https://en.wikipedia.org/wiki/ISO_4217#Types_of_codes |
defaultLocale | String | No | language supported based on request country code
|
Response parameters
Field | Type | Description |
---|---|---|
status | String | It denotes the status of your request being processed, indicating either success or failure. |
url | String | This is a URL for password verification or creating a new password based on the provided email ID |
Account Verification (Step 2)
- When Step account create response is received, open the returned URL in a new tab or popup window.
- To create a new account, the user is required to enter a password
- To log into an existing account, the user will need to enter their password.
- After verifying the password, the system will redirect to the URL provided in account create request 'redirectURL' with Auth grant code and state parameter.
Example:
<Authorization completed redirect URL>?code={Auth grant code}&state=<value>
Get Api Access token (Step 3)
Get long live Api token:
curl "https://api./services/account/longToken?code=<Auth grant code>"
-H "Content-Type: application/json"
-H "appKey: <App Key>"
Response payload:
{
"longToken": "<long token>"
}
Include your app key as a ' `appKey : <appKey>' header
HTTP Request
GET https://api.services/account/longToken?code=<Auth grant code>
URL Parameters
Query Parameter | Description |
---|---|
code | Authorization grant code for account verification return code. valid for 10 min |
Response parameters
Field | Type | Description |
---|---|---|
longToken | Include your token as a 'Authorization : Bearer <longToken>' header on all API queries |
Get Short live token (Step 4)
Get dashboard embedded token:
curl "https://api./services/account/shortToken"
-H "Content-Type: application/json"
-H "Authorization: Bearer <longToken>"
Response payload:
{
"status": "success",
"accessToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2OTk1MDc4MDQsImp0aSI6IjIyOGRhZTc0LTI4MjEtNGUwOC05YTE1LWFmMTM0ZjYzZmViNSIsInVzZXJOYW1lIjoidGMxQGdyYWFzLndvcmsiLCJhY2NvdW50TnVtYmVyIjoiNjNmZGM5ODNiMzc4NjFkMzBhZjg5MTlmIiwibWVyY2hhbnRJRCI6IlRDMSIsInVzZXJJZCI6IjY0NmFkOTIyY2M4MDhkNmE4ZDg5NjA2NyIsImxvY2FsZSI6ImVuX1VTIiwiYWNjb3VudFRpbWV6b25lIjoiQXNpYS9TaW5nYXBvcmUifQ.Pf1FBF_aYiGxnyFaOu-Nyv2nVcIMqv2cUBlp9S-BqHE"
}
This token is used to access an embedded dashboard.
HTTP Request
GET https://api.services/account/shortToken
Header parameters
Field | Type | Description |
---|---|---|
Authorization | String | Authorization : Bearer <longToken> |
Response parameters
Field | Type | Description |
---|---|---|
status | String | It denotes the status of your request being processed, indicating either success or failure. |
accessToken | String | This token is used to access an embedded dashboard (valid for 1 hour). |
Embedded Dashboard URL(Step 5)
-
Display the dashboard below in an embedded tag using the accessToken and refreshToken.
Example:
<embed type="text/html" src="https://lite.graas.work?accessToken=<accessToken>" >
Fields
Amount
All amount fields in SiA is using the below format amount
Field | Meaning |
---|---|
amount | Example if the amount is 10.99 it will be demoted as 1099 |
Currency code | Example SGD, IDR, INR, USD ... |
Create account
Kartrocket
require 'kittn'
api = Kittn::APIClient.authorize!('meowmeowmeow')
api.inventory.get(2)
import kittn
api = kittn.authorize('meowmeowmeow')
api.inventory.get(2)
curl "https://api./v1/accounts/channels/kartrocket"
-H "Content-Type: application/json"
-H "appKey: <App Key>"
Request payload:
{
"SELLinALLId": "testkartrocket@gmail.com",
"name": "user name",
"phoneNumber": "+915464645423",
"kartrocket": {
"kartrocketApiKey": "1f0e3dad99908345f7439f8ffabdffc4",
"kartrocketWebUrl": "http://testaccount.kartrocket.co"
}
}
Response payload:
{
"accountNumber": "5a4e44b3a67a6d000489e5a8",
"status": "success",
"url": "https://dev.sellonall.com/Dashboard/signup/index.html?userId=5a4e44b4e4b0b058034e7975&accountNumber=5a4e44b3a67a6d000489e5a8&isTrusted=true",
"responseMessage": "Your account creation request has been successful. Fill the password and complete the registration."
}
Create Graas account and add kartrocket account
HTTP Request
POST https://api./v1/accounts/channels/kartrocket
Error message
Error message | Meaning |
---|---|
failure | The request might not be in correct format. |
Request parameters
Field | Type | Description |
---|---|---|
SELLinALLId | String | User email ID |
name | String | User name |
phoneNumber | int | Phone number |
pricingCategory | String | T - Trial account, P - Premium account |
kartrocket | Object |
"kartrocket": { "kartrocketApiKey": "1f0e3dad99908345f7439f8ffabdffc4", "kartrocketWebUrl": "http://testaccount.kartrocket.co" }
|
Lazada
require 'kittn'
api = Kittn::APIClient.authorize!('meowmeowmeow')
api.inventory.get(2)
import kittn
api = kittn.authorize('meowmeowmeow')
api.inventory.get(2)
curl "https://api./v1/accounts/channels/lazada"
-H "Content-Type: application/json"
-H "appKey: <App Key>"
Request payload:
{
"GraasId": "testlazada@gmail.com",
"name": "new account112",
"phoneNumber": "+915464645423",
"pricingCategory":"T",
"lazada": {
"userID": "abc",
"apikey": "abcdef",
"countryCode":"SG"
}
}
Response payload:
{
"accountNumber": "5a4e46e7a67a6d000489e5ae",
"status": "success",
"url": "https://dev.sellonall.com/Dashboard/signup/index.html?userId=5a4e46e7e4b0b058034e7978&accountNumber=5a4e46e7a67a6d000489e5ae&isTrusted=true",
"responseMessage": "Your account creation request has been successful. Fill the password and complete the registration."
}
Create Graas account and add lazada account
HTTP Request
POST https://api./v1/accounts/channels/lazada
Error message
Error message | Meaning |
---|---|
failure | The request might not be in correct format. |
Request parameters
Field | Type | Description |
---|---|---|
SELLinALLId | String | User email ID |
name | String | User name |
phoneNumber | int | Phone number |
pricingCategory | String | T - Trial account, P - Premium account |
lazada | Object |
"lazada": { "userID": "abc", "apikey": "abcdef" "countryCode": "SG" }
|
Product Master
Create
require 'kittn'
api = Kittn::APIClient.authorize!('meowmeowmeow')
api.inventory.get(2)
import kittn
api = kittn.authorize('meowmeowmeow')
api.inventory.get(2)
curl "https://api./v1/productMaster/item"
-H "Content-Type: application/json"
-H "appKey: <App Key>"
-H "accountNumber: <accountNumber>"
Request payload:
{
"sellerSKU": "abcd",
"productID": "Inventory01",
"itemTitle": "100% Pure Cotton Baby Boy Girl Romper Summer Short Sleeved Cartoon Jumpsuit",
"shortDescription": "short description",
"itemDescription": "item description",
"itemTitle_thTH": "ผ้าฝ้ายแท้ 100% เด็กทารกสาว Romper ฤดูร้อนการ์ตูน Jumpsuit แขนสั้น",
"shortDescription_thTH": "คำอธิบายสั้น",
"itemDescription_thTH": "รายละเอียดสินค้า",
"imageURLs": [
"https://images.grass.ai/uploads/FMT/Shinmudra-U-FMT0002470/3.jpeg",
"https://images.graas.ai/uploads/FMT/Shinmudra-U-FMT0002470/3.jpeg"
],
"sizeChartImageURL": "https://images.graas.ai/uploads/FMT/Shinmudra-U-FMT0002470/3.jpeg",
"quantities": [
{
"warehouseID": "satsaco-1",
"quantity": 30
},
{
"warehouseID": "infor-1",
"quantity": 25
}
],
"price": [
{
"currencyCode": "SGD",
"retailPrice": {
"amount": 12000,
"currencyCode": "SGD"
},
"salePrice": {
"amount": 10000,
"currencyCode": "SGD"
}
},
{
"currencyCode": "USD",
"retailPrice": {
"amount": 12000,
"currencyCode": "USD"
},
"salePrice": {
"amount": 11000,
"currencyCode": "USD"
}
},
{
"currencyCode": "MYR",
"retailPrice": {
"amount": 12000,
"currencyCode": "MYR"
},
"salePrice": {
"amount": 11000,
"currencyCode": "MYR"
}
}
],
"variantAttributes": [
{
"key": "color-family",
"value": "blue"
},
{
"key": "Size",
"value": "XL"
},
{
"key_thTH": "สีของครอบครัว",
"value_thTH": "สีน้ำเงิน"
},
{
"key_thTH": "ขนาด",
"value_thTH": "XL"
}
],
"otherAttributes": [
{
"key": "gender",
"values": [
"Male"
]
},
{
"key": "brand",
"values": [
"PUMA"
]
},
{
"key": "tags",
"values": [
"mobile",
"back case"
]
},
{
"key_thTH": "เพศ",
"values_thTH": [
"ชาย"
]
},
{
"key_thTH": "ยี่ห้อ",
"values_thTH": [
"PUMA"
]
},
{
"key_thTH": "แท็ก",
"values_thTH": [
"โทรศัพท์มือถือ",
"กรณีหลัง"
]
}
],
"packageLengthInCM": 10,
"packageWidthInCM": 10,
"packageHeightInCM": 10,
"packageWeightInKG": 1
}
Response payload:
SUCCESS:
HTTP status: 201 CREATED
FAILURE:
HTTP status: 400
{
"errorMessage": "sellerSku : fxlm already exists"
}
Create product master
HTTP Request
POST https://api./v1/productMaster/item
Request parameters
Field | Type | Required | Description |
---|---|---|---|
sellerSKU | String | Yes | The product SKU (stock keeping unit) is an identifier defined by a seller. This will be assigned to the product while listing to marketplaces |
productID | String | Yes | A productID defined by seller for the group for related skus. It is used to group the products while listing as variants. |
itemTitle | String | Yes | The title of the product |
shortDescription | String | No | Highlights of the product. |
itemDescription | String | Yes | Description of the product |
itemTitle_thTH | String | No | The title of the product in thai language
|
shortDescription_thTH | String | No | Highlights of the product in thai language |
itemDescription_thTH | String | No | Description of the product in thai language |
imageURLs | Array | Yes | The image URLs of the product |
sizeChartImageURL | String | No | The SizeChartImage URL of the product |
quantities | Array | Yes |
quantities": [ { "warehouseID": "satsaco-1", "quantity": 30 }, { "warehouseID": "infor-1", "quantity": 25 } ]Quantities based on warehouse
|
price | Array | Yes |
"price": [ { "currencyCode": "SGD", "retailPrice": { "amount": 12000, "currencyCode": "SGD" }, "salePrice": { "amount": 10000, "currencyCode": "SGD" } }, { "currencyCode": "USD", "retailPrice": { "amount": 12000, "currencyCode": "USD" }, "salePrice": { "amount": 11000, "currencyCode": "USD" } } ]The price of the product in different currencies.
|
variantAttributes | Array | no |
"variantAttributes": [ { "key": "color-family", "value": "blue" }, { "key": "Size", "value": "XL" }, { "key_thTH": "สีของครอบครัว", "value_thTH": "สีน้ำเงิน" }, { "key_thTH": "ขนาด", "value_thTH": "XL" } ]The variant details of the product, this field is required, if the item belongs to variation.
|
otherAttributes | Array | no |
"otherAttributes": [ { "key": "gender", "values": [ "Male" ] }, { "key": "brand", "values": [ "PUMA" ] }, { "key": "tags", "values": [ "mobile", "back case" ] }, { "key_thTH": "เพศ", "values_thTH": [ "ชาย" ] }, { "key_thTH": "ยี่ห้อ", "values_thTH": [ "PUMA" ] }, { "key_thTH": "แท็ก", "values_thTH": [ "โทรศัพท์มือถือ", "กรณีหลัง" ] } ]All common attributes of products.
|
packageLenthInCM | String | Yes | Package length. The unit is cm |
packageWidthInCM | String | Yes | Package width. The unit is cm |
packageHeightInCM | String | Yes | Package height. The unit is cm |
packageWeightInKG | String | Yes | Package weight. The unit is kg |
Update
require 'kittn'
api = Kittn::APIClient.authorize!('meowmeowmeow')
api.inventory.get(2)
import kittn
api = kittn.authorize('meowmeowmeow')
api.inventory.get(2)
curl "https://api./v1/productMaster/item"
-H "Content-Type: application/json"
-H "appKey: 4c6a4356-345c-4d85-b0cf-ba74ba6hg9d4a"
-H "accountNumber: 12121212121212121"
Request payload:
Example payload 1:
{
"sellerSKU": "abcd",
"itemTitle": "100% Pure Cotton Sleeved Cartoon Jumpsuit",
"shortDescription": "new short description"
}
Example payload 2:
{
"sellerSKU": "abcd",
"quantities": [
{
"warehouseID": "satsaco-1",
"quantity": 5
},
{
"warehouseID": "infor-1",
"quantity": 4
}
]
}
Example payload 3:
{
"sellerSKU": "abcd",
"productID": "Inventory01",
"itemTitle": "100% Pure Cotton Baby Boy Girl Romper Summer Short Sleeved Cartoon Jumpsuit",
"shortDescription": "short description",
"itemDescription": "Test product",
"imageURLs": [
"https://images.graas.ai/uploads/FMT/Shinmudra-U-FMT0002470/3.jpeg",
"https://images.graas.ai/uploads/FMT/Shinmudra-U-FMT0002470/3.jpeg"
],
"quantities": [
{
"warehouseID": "satsaco-1",
"quantity": 30
},
{
"warehouseID": "infor-1",
"quantity": 25
}
],
"price": [
{
"currencyCode": "SGD",
"retailPrice": {
"amount": 12000,
"currencyCode": "SGD"
},
"salePrice": {
"amount": 10000,
"currencyCode": "SGD"
}
},
{
"currencyCode": "USD",
"retailPrice": {
"amount": 12000,
"currencyCode": "USD"
},
"salePrice": {
"amount": 11000,
"currencyCode": "USD"
}
},
{
"currencyCode": "MYR",
"retailPrice": {
"amount": 12000,
"currencyCode": "MYR"
},
"salePrice": {
"amount": 11000,
"currencyCode": "MYR"
}
}
],
"variantAttributes": [
{
"key": "color-family",
"value": "blue"
},
{
"key": "Size",
"value": "XL"
}
],
"otherAttributes": [
{
"key": "gender",
"values": [
"Male"
]
},
{
"key": "brand",
"values": [
"PUMA"
]
},
{
"key": "tags",
"values": [
"mobile",
"back case"
]
},
{
"key": "sizeChartImage",
"values": [
"https://images.graas.ai/uploads/FMT/Shinmudra-U-FMT0002470/3.jpeg"
]
}
],
"packageLengthInCM": 10,
"packageWidthInCM": 10,
"packageHeightInCM": 10,
"packageWeightInKG": 1
}
Response payload:
SUCCESS:
HTTP status: 200 OK
FAILURE:
HTTP status: 404
{
"errorMessage": "sellerSku : fxlm not found"
}
Update product master
HTTP Request
PUT https://api./v1/productMaster/item
Request parameters
Field | Type | Required | Description |
---|---|---|---|
sellerSKU | String | Yes | The sellerSKU of product master needs to be updated |
Send atleast one of the remaining field while updating product master. Rest of the fields are optional. Please refer example payload. |
Bulk quantity update
require 'kittn'
api = Kittn::APIClient.authorize!('meowmeowmeow')
api.inventory.get(2)
import kittn
api = kittn.authorize('meowmeowmeow')
api.inventory.get(2)
curl "https://api./v1/productMaster/quantitiesList"
-H "Content-Type: application/json"
-H "appKey: 4c6a4356-345c-4d85-b0cf-ba74ba6hg9d4a"
-H "accountNumber: 5dd3dad95c11180004117c4d1"
Request payload:
Example payload:
{
"data": [
{
"sellerSKU": "productmasterA",
"quantities": [
{
"quantity": 30,
"warehouseID": "satsaco-1"
},
{
"quantity": 31,
"warehouseID": "MyStock-1"
}
]
},
{
"sellerSKU": "productmasterB",
"quantities": [
{
"quantity": 32,
"warehouseID": "satsaco-1"
},
{
"quantity": 33,
"warehouseID": "infor-1"
}
]
},
{
"sellerSKU": "productmasterC",
"quantities": [
{
"quantity": 32,
"warehouseID": "MyStock-1"
}
]
}
]
}
Response payload:
{
"result": [
{
"sellerSKU": "productmasterA",
"status": "success",
"updatedQuantity": [
{
"warehouseID": "satsaco-1",
"quantity": 30
},
{
"warehouseID": "MyStock-1",
"quantity": 31
}
],
"httpCode": 200
},
{
"sellerSKU": "productmasterB",
"status": "failure",
"httpCode": 400
},
{
"sellerSKU": "productmasterC",
"updatedQuantity": [
{
"quantity": 32,
"warehouseID": "MyStock-1"
}
],
"httpCode": 200
}
]
}
Bulk quantity update
HTTP Request
PUT https://api./v1/productMaster/quantitiesList
Request parameters
Field | Type | Required | Description |
---|---|---|---|
sellerSKU | String | Yes | The sellerSKU of product master needs to be updated |
quantities | Array | Yes |
quantities": [ { "warehouseID": "satsaco-1", "quantity": 30 }, { "warehouseID": "infor-1", "quantity": 25 } ]Quantities based on warehouse
|
Bulk quantityDiff update
require 'kittn'
api = Kittn::APIClient.authorize!('meowmeowmeow')
api.inventory.get(2)
import kittn
api = kittn.authorize('meowmeowmeow')
api.inventory.get(2)
curl "https://api./v1/productMaster/quantityDiffList"
-H "Content-Type: application/json"
-H "appKey: 4c6a4356-345c-4d85-b0cf-ba74ba6hg9d4a"
-H "accountNumber: 5dd3dad95c11180004117c4d1"
Request payload:
Example payload:
{
"data": [
{
"sellerSKU": "productmasterA",
"quantityDiffs": [
{
"quantityDiff": 3,
"warehouseID": "satsaco-1"
},
{
"quantityDiff": 1,
"warehouseID": "MyStock-1"
}
]
},
{
"sellerSKU": "productmasterB",
"quantityDiffs": [
{
"quantityDiff": 3,
"warehouseID": "satsaco-1"
},
{
"quantityDiff": 3,
"warehouseID": "infor-1"
}
]
},
{
"sellerSKU": "productmasterC",
"quantityDiffs": [
{
"quantityDiff": 2,
"warehouseID": "MyStock-1"
}
]
}
]
}
Response payload:
{
"result": [
{
"sellerSKU": "productmasterA",
"status": "success",
"updatedQuantity": [
{
"warehouseID": "satsaco-1",
"quantity": 33
},
{
"warehouseID": "MyStock-1",
"quantity": 32
}
],
"httpCode": 200
},
{
"sellerSKU": "productmasterB",
"status": "failure",
"httpCode": 400
},
{
"sellerSKU": "productmasterC",
"updatedQuantity": [
{
"quantity": 35,
"warehouseID": "MyStock-1"
}
],
"httpCode": 200
}
]
}
Bulk quantity update
HTTP Request
PUT https://api./v1/productMaster/quantityDiffList
Request parameters
Field | Type | Required | Description |
---|---|---|---|
sellerSKU | String | Yes | The sellerSKU of product master needs to be updated |
quantityDiff | Array | Yes |
quantityDiffs": [ { "quantityDiff": 3, "warehouseID": "satsaco-1" }, { "quantityDiff": 1, "warehouseID": "MyStock-1" } ]Quantities based on warehouse
|
Sales Order
Get Orders
require 'kittn'
api = Kittn::APIClient.authorize!('meowmeowmeow')
api.orders.get(2)
import kittn
api = kittn.authorize('meowmeowmeow')
api.orders.get(2)
curl "https://api./v1/orders?updatedAfter=1433390894&updatedBefore=1433563694&basicUnitCustomSKU=false&groupByCart=true&pageNumber=1&pageSize=200"
-H "Content-Type: application/json"
-H "accountNumber: 12121212121212121"
-H "appKey: 2121212121"
Response payload:
{
"numberOfPages": 1,
"numberOfRecords": 3,
"history": [
{
"site": {
"name": "qoo10",
"nickNameID": "qoo10-1"
},
"orderID": "227973300",
"buyerDetails": {
"name": "Hui",
"email": "ram@graas.ai"
},
"orderNumber": "227973300",
"orderItems": [
{
"orderItemID": "227973300",
"SKU": "AIL0006416-01",
"quantity": 12,
"itemAmount": {
"amount": 355,
"currencyCode": "SGD"
},
"shippingAmount": {
"amount": 390,
"currencyCode": "SGD"
},
"orderType": "Delivery",
"itemTitle": "[FNN] CARTON SALES COCOLIFE 100% COCONUT WATER 1L x 12",
"settlementAmount": {
"amount": 3962,
"currencyCode": "SGD"
},
"imageURL": "http://images.graas.ai/uploads/AIL/Shinmudra-U-AIL0004892-01/thumbnail/1.jpg",
"variantDetails": [
{
"title": "Type",
"name": "Cocolife Coconut Water 1L x 12"
}
],
"customSKU": "8888200702977",
"isOption": false,
"categoryName": "Drinks & Sweets/Others/Others ## 300000931",
"categoryID": "300000931"
}
],
"orderStatus": "INITIATED",
"paymentStatus": "NOT_INITIATED",
"shippingStatus": "NOT_SHIPPED",
"orderAmount": {
"amount": 4260,
"currencyCode": "SGD"
},
"shippingDetails": {
"address": {
"name": "Hui",
"street1": "*******airN*******",
"street2": "Boon Keng",
"phone": "+65*******1872",
"postalCode": "32***60",
"country": "SG"
},
"shippingTrackingDetails": {
"airwayBill": "SGP95722039",
"courierName": "Store Pickup",
"remarks": "Get the order between 9 am and 12 pm.",
"pickupVoucherCode": "1234567891***"
}
},
"timeCreated": 1504588069,
"timeLastUpdated": 1504588069,
"timeOrderCreated": 1504587886,
"shippingAmount": {
"amount": 390,
"currencyCode": "SGD"
},
"sellerDiscountAmount": {
"amount": 900,
"currencyCode": "SGD"
},
"channelDiscountAmount": {
"amount": 0,
"currencyCode": "SGD"
},
"cartNumber": "113054733",
"invoiceNumber": "INV0000001",
"documents": {
"shippingLabelUrl": "https://docs.graas.ai/uploads/shippingLabels/AIL/qoo10-1/20033078YKWU3K.pdf"
}
},
{
"orderID": "34550403686697",
"site": {
"name": "lazada",
"nickNameID": "lazada-1"
},
"buyerDetails": {
"name": "Mark "
},
"channelDiscountAmount": {
"amount": 0,
"currencyCode": "SGD"
},
"invoiceNumber": "INV00012630",
"orderAmount": {
"amount": 5040,
"currencyCode": "SGD"
},
"orderAmountInUSD": {
"amount": 3622,
"currencyCode": "USD"
},
"orderItems": [
{
"orderItemID": "34550403786697",
"shopId": "Graas Store",
"SKU": "AIL0000755",
"shippingAmount": {
"amount": 75,
"currencyCode": "SGD"
},
"customSKU": "248HT-970S",
"shopSKU": "OE702HLAA9L5OUSGAMZ-19159282",
"quantity": 1,
"itemAmount": {
"amount": 2520,
"currencyCode": "SGD"
},
"itemTitle": "Hotery Professional Chef's Torch",
"sellerDiscountAmount": {
"amount": 0,
"currencyCode": "SGD"
},
"deliveryType": "Dropshipping",
"shippingProviderType": "standard",
"timeOrderCreated": 1594212698,
"paymentStatus": "REFUNDED",
"orderStatus": "CANCELLED",
"shippingStatus": "NOT_SHIPPED",
"imageURL": "http://images.graas.ai/uploads/AIL/Shinmudra-AIL0000755/thumbnail/1.jpeg",
"isOption": false,
"categoryName": "Outdoor & Garden:Outdoor:BBQ & Outdoor Dining:BBQ Accessories ## 10000792",
"categoryID": "10000792",
"itemSoldAmount": {
"amount": 2520,
"currencyCode": "SGD"
}
},
{
"orderItemID": "34550403886697",
"shopId": "Graas Store",
"SKU": "AIL0000755",
"shippingAmount": {
"amount": 74,
"currencyCode": "SGD"
},
"customSKU": "248HT-970S",
"shopSKU": "OE702HLAA9L5OUSGAMZ-19159282",
"quantity": 1,
"itemAmount": {
"amount": 2520,
"currencyCode": "SGD"
},
"itemTitle": "Hotery Professional Chef's Torch",
"sellerDiscountAmount": {
"amount": 0,
"currencyCode": "SGD"
},
"deliveryType": "Dropshipping",
"shippingProviderType": "standard",
"timeOrderCreated": 1594212698,
"paymentStatus": "COMPLETED",
"orderStatus": "PROCESSING",
"shippingStatus": "READY_TO_SHIP",
"shippingTrackingDetails": {
"airwayBill": "NLSGD10778330",
"courierName": "Pickup: NinjaVanSG, Delivery: NinjaVan"
},
"imageURL": "http://images.graas.ai/uploads/AIL/Shinmudra-AIL0000755/thumbnail/1.jpeg",
"isOption": false,
"categoryName": "Outdoor & Garden:Outdoor:BBQ & Outdoor Dining:BBQ Accessories ## 10000792",
"categoryID": "10000792",
"itemSoldAmount": {
"amount": 2520,
"currencyCode": "SGD"
}
}
],
"orderNumber": "34550403686697",
"orderSoldAmount": {
"amount": 5040,
"currencyCode": "SGD"
},
"orderSoldAmountInUSD": {
"amount": 3622,
"currencyCode": "USD"
},
"orderStatus": "PROCESSING",
"orderStatuses": [
"CANCELLED",
"PROCESSING"
],
"paymentMethods": [
"MIXEDCARD"
],
"paymentStatus": "COMPLETED",
"paymentStatuses": [
"REFUNDED"
],
"sellerDiscountAmount": {
"amount": 0,
"currencyCode": "SGD"
},
"shippingAmount": {
"amount": 149,
"currencyCode": "SGD"
},
"shippingDetails": {
"address": {
"name": "Mark",
"street1": "****cNair********",
"street2": "Boon Keng",
"state": "Singapore",
"city": "Singapore",
"country": "Singapore",
"phone": "***15818***",
"postalCode": "32***60"
},
"shippingTrackingDetails": {
"airwayBill": "NLSGD10778330",
"courierName": "Pickup: NinjaVanSG, Delivery: NinjaVan"
},
"shippingTrackingDetailsList": [
{
"courierName": "Pickup: NinjaVanSG, Delivery: NinjaVan",
"airwayBill": "NLSGD10778330"
}
]
},
"shippingStatus": "READY_TO_SHIP",
"shippingStatuses": [
"READY_TO_SHIP",
"NOT_SHIPPED"
],
"documents": {
"shippingLabelUrl": "https://docs.graas.ai/uploads/shippingLabels/AIL/lazada-1/34550403686697.pdf"
},
"timeCancelled": 1594212835,
"timeCreated": 1594212836,
"timeLastUpdated": 1594258354,
"timeOrderCreated": 1594212698,
"updateStatus": "COMPLETE",
"updateStartTime": 1594258054
},
{
"orderID": "7446703243474",
"site": {
"name": "lazada",
"nickNameID": "lazada-1"
},
"buyerDetails": {
"name": "Teena Sehgal Chadha"
},
"channelDiscountAmount": {
"amount": 412,
"currencyCode": "SGD"
},
"orderAmount": {
"amount": 6280,
"currencyCode": "SGD"
},
"orderAmountInUSD": {
"amount": 4559,
"currencyCode": "USD"
},
"orderItems": [
{
"orderItemID": "7446703643474",
"shopId": "Graas Store",
"shippingAmount": {
"amount": 0,
"currencyCode": "SGD"
},
"customSKU": "553256",
"quantity": 1,
"itemAmount": {
"amount": 3490,
"currencyCode": "SGD"
},
"itemTitle": "Jamie Oliver Round Baking Dish (Rustic Red)",
"sellerDiscountAmount": {
"amount": 0,
"currencyCode": "SGD"
},
"deliveryType": "Own Warehouse",
"shippingProviderType": "standard",
"timeOrderCreated": 1540015389,
"itemSoldAmount": {
"amount": 3490,
"currencyCode": "SGD"
},
"orderStatus": "RETURNED",
"paymentStatus": "REFUNDED",
"shippingStatus": "RETURNED",
"shippingTrackingDetails": {
"airwayBill": "NLRSG-10-9D981E6C6BD"
}
},
{
"orderItemID": "7446704343474",
"shopId": "Graas Store",
"shippingAmount": {
"amount": 0,
"currencyCode": "SGD"
},
"customSKU": "553228",
"quantity": 1,
"itemAmount": {
"amount": 2790,
"currencyCode": "SGD"
},
"itemTitle": "Jamie Oliver Terracotta Bowl (Rustic Red)",
"sellerDiscountAmount": {
"amount": 0,
"currencyCode": "SGD"
},
"deliveryType": "Dropshipping",
"shippingProviderType": "economy",
"timeOrderCreated": 1540015389,
"itemSoldAmount": {
"amount": 2790,
"currencyCode": "SGD"
},
"orderStatus": "DELIVERED",
"paymentStatus": "COMPLETED",
"shippingStatus": "DELIVERED",
"shippingTrackingDetails": {
"airwayBill": "NLSGD00782761",
"courierName": "Pickup: SpeedPost, Delivery: NinjaVan"
}
}
],
"orderNumber": "7446703243474",
"orderSoldAmount": {
"amount": 6280,
"currencyCode": "SGD"
},
"orderSoldAmountInUSD": {
"amount": 4559,
"currencyCode": "USD"
},
"orderStatus": "DELIVERED",
"paymentMethods": [
"MIXEDCARD"
],
"paymentStatus": "COMPLETED",
"sellerDiscountAmount": {
"amount": 0,
"currencyCode": "SGD"
},
"shippingAmount": {
"amount": 0,
"currencyCode": "SGD"
},
"shippingDetails": {
"address": {
"name": "Teena Sehgal Chadha",
"street1": "************ Nakhoda, Holland G***********",
"street2": "",
"city": "Singapore",
"country": "Singapore",
"phone": "65******3702",
"postalCode": "25****2"
},
"shippingTrackingDetails": {
"airwayBill": "NLSGD00782761",
"courierName": "Pickup: SpeedPost, Delivery: NinjaVan"
},
"shippingTrackingDetailsList": [
{
"airwayBill": "NLSGD00782761",
"courierName": "Pickup: SpeedPost, Delivery: NinjaVan"
},
{
"airwayBill": "NLRSG-10-9D981E6C6BD"
}
]
},
"documents": {
"shippingLabelUrl": "https://docs.graas.ai/uploads/shippingLabels/AIL/lazada-1/34550403686697.pdf"
},
"shippingStatus": "DELIVERED",
"timeCreated": 1564724322,
"timeDelivered": 1564724322,
"timeLastUpdated": 1564724322,
"timeOrderCreated": 1540015389,
"orderStatuses": [
"DELIVERED",
"RETURNED"
],
"paymentStatuses": [
"COMPLETED",
"REFUNDED"
],
"shippingStatuses": [
"DELIVERED",
"RETURNED"
]
}
],
"status": "success"
}
This endpoint retrieves orders, updated between the defined time intervals.
HTTP Request
GET https://api./v1/orders?updatedAfter=1433390894&updatedBefore=1433563694&basicUnitCustomSKU=false&groupByCart=true&pageNumber=1&pageSize=200
URL Parameters
Query Parameter | Description |
---|---|
updatedAfter | The start time(Unix time) for fetching updated orders |
updatedBefore | The end time(Unix time) to stop fetching updated orders |
basicUnitCustomSKU | (optional) True if you want the quantity of the items to be in basic unit. |
groupByCart | (optional) Group the orders based on cartNumber. |
pageNumber | (optional) The page number to return. |
pageSize | (optional) The number of orders to be returned per page. |
Error message
Error message | Meaning |
---|---|
Time Range is mandatory | The time range, updatedAfter and updatedBefore might not be given in the request. |
Order properties
Field | Type | Description |
---|---|---|
numberOfPages | Integer |
Total number of pages
|
numberOfRecords | Integer |
Total number of order records
|
history | Array |
List of orders
|
site | Object |
"site":{
"name":"qoo10",
"nickNameID":"qoo10-1"
}
|
orderID | String |
"orderID": "227973300"
Unique identifier of an order
|
orderNumber | String |
"orderNumber": "227973300"
Unique identifier of an order
|
buyerDetails | Object |
"buyerDetails":{
"name": "Victoria",
"email": "victoryas7@live.com.sg"
}
|
orderItems | Array |
"orderItems": [
{
"orderItemID": "227973300",
"SKU": "BBB0006416-01",
"quantity": 12,
"itemAmount": {
"amount": 355,
"currencyCode": "SGD"
},
"shippingAmount": {
"amount": 390,
"currencyCode": "SGD"
},
"orderType": "Delivery",
"itemTitle": "[FNN] CARTON SALES COCOLIFE 100% COCONUT WATER 1L x 12",
"settlementAmount": {
"amount": 3962,
"currencyCode": "SGD"
},
"imageURL": "http://images.graas.ai/uploads/BBB/Shinmudra-U-BBB0004892-01/thumbnail/1.jpg",
"variantDetails": [
{
"title": "Type",
"name": "Cocolife Coconut Water 1L x 12"
}
],
"customSKU": "8888200702977",
"isOption": false,
"categoryName": "Drinks & Sweets/Others/Others ## 300000931",
"categoryID": "300000931"
}
]
|
orderStatus | String |
"orderStatus": "PROCESSING" Valid values are:
|
paymentStatus | String |
"paymentStatus": "NOT_INITIATED" Valid values are:
|
shippingStatus | String |
"shippingStatus": "NOT_SHIPPED" Valid values are:
|
orderAmount | Object |
"orderAmount": {
"amount": 4260,
"currencyCode": "SGD"
} Total price of an order
|
shippingAmount | Object |
"shippingAmount": {
"amount": 390,
"currencyCode": "SGD"
} Total shipping amount of an order.
|
sellerDiscountAmount | Object |
"sellerDiscountAmount": {
"amount": 900,
"currencyCode": "SGD"
} Discount price offered by the seller for the buyer.
|
channelDiscountAmount | Object |
"channelDiscountAmount": {
"amount": 0,
"currencyCode": "SGD"
} Discount price offered by the marketplace for the buyer.
|
cartNumber | String |
"cartNumber": "113054733" id of combined ordersNote: qoo10 and 11street only has cartNumber |
invoiceNumber | String |
"invoiceNumber": "INV0000001" Unique invoice sequence number generated by Graas
|
shippingDetails | Object |
"shippingDetails": {
"address": {
"name": "Hui",
"street1": "BISHAN VIEW 105 BISHAN STREET 12",
"street2": "Block 105, Unit 06-234, Lift Lobby",
"phone": "+6590287540",
"postalCode": "570105",
"country": "SG"
},
"shippingTrackingDetails": {
"airwayBill": "SGP95722039",
"courierName": "Store Pickup",
"remarks": "Get the order between 9 am and 12 pm.",
"pickupVoucherCode": "1234567891***"
}
}
|
documents | Object |
"documents" : {
"shippingLabelUrl" : "https://docs.graas.ai/uploads/shippingLabels/AIL/qoo10-1/20033078YKWU3K.pdf"
}
|
timeCreated | long |
The unix time when the order synced in Graas
|
timeLastUpdated | long |
The unix time when the order was last updated in Graas
|
timeOrderCreated | long |
The unix time when the order was created in marketplace.
|
Get a Specific Order
require 'kittn'
api = Kittn::APIClient.authorize!('meowmeowmeow')
api.orders.get(2)
import kittn
api = kittn.authorize('meowmeowmeow')
api.orders.get(2)
curl "https://api./v1/order/lazada-1/1514262635"
-H "accountNumber: 12121212121212121"
-H "appKey: 2121212121"
Response payload:
{
"site": {
"name": "lazada",
"nickNameID": "lazada-1"
},
"orderID": "1514262635",
"orderNumber": "1514262635",
"buyerDetails": {
"name": "abs",
"email": "abc@gmail.com"
},
"paymentMethods": "VISA/MasterCard",
"orderStatus": "INITIATED",
"paymentStatus": "COMPLETED",
"shippingStatus": "NOT_SHIPPED",
"shippingDetails": {
"address": {
"name": "abc",
"street1": "abc",
"street2": "abcd",
"phone": 213123,
"postalCode": 1212,
"country": "Singapore"
},
"shippingTrackingDetails": {
"airwayBill": "WNTTABZWECABYRXKXH28",
"courierName": "Delivery"
}
},
"shippingAmount": {
"amount": 1521,
"currencyCode": "SGD"
},
"sellerDiscountAmount": {
"amount": 900,
"currencyCode": "SGD"
},
"channelDiscountAmount": {
"amount": 0,
"currencyCode": "SGD"
},
"timeCreated": 1505889671,
"timeLastUpdated": 1505889671,
"timeOrderCreated": 1505889671,
"orderItems": [
{
"itemTitle": "Export Drones Drones DJI DJI Spark FLY More Combo (UK)",
"itemAmount": {
"amount": 18000,
"currencyCode": "SGD"
},
"customSKU": "EXPDRONE",
"variantDetails": [
{
"title": "Colour",
"name": "Sunrise Yellow"
}
],
"quantity": 1,
"settlementAmount": {
"amount": 0,
"currencyCode": "SGD"
},
"imageURL": ""
}
],
"orderAmount": {
"amount": 18000,
"currencyCode": "SGD"
},
"documents" : {
"shippingLabelUrl" : "https://docs.graas.ai/uploads/shippingLabels/AIL/lazada-1/20033078YKWU3K.pdf"
},
"status": "success"
}
This endpoint retrieves a specific request.
HTTP Request
GET https://api./v1/order/<nickNameID>/<orderID>
URL Parameters
Parameter | Description |
---|---|
orderID | Unique identifier of an order |
nickNameID | Channel specific ID |
Accept Order
require 'kittn'
api = Kittn::APIClient.authorize!('meowmeowmeow')
api.orders.get(2)
import kittn
api = kittn.authorize('meowmeowmeow')
api.orders.get(2)
curl "https://api./v1/orders"
-H "Content-Type: application/json"
-H "accountNumber: 12121212121212121"
-H "appKey: 2121212121"
Request payload :
{
"data": [
{
"orderID": "31659500092762",
"orderStatus": "ACCEPTED",
"site": {
"name": "lazada",
"nickNameID": "lazada-1"
},
"orderItems": [
{
"orderItemID": "31685600492762",
"sellerSKU": "testSKU1"
},
{
"orderItemID": "31685600592734",
"sellerSKU": "testSKU2"
}
]
},
{
"orderID": "152121",
"orderStatus": "ACCEPTED",
"site": {
"name": "lazada",
"nickNameID": "lazada-1"
},
"shippingTrackingDetails": {
"courierName": "Singpost Registered Mail",
"airwayBill": "22"
}
}
]
}
Response payload:
{
"result": [
{
"response": {
"orderID": "31659500092762",
"orderStatus": "ACCEPTED",
"site": {
"name": "lazada",
"nickNameID": "lazada-1"
},
"orderItems": [
{
"orderItemID": "31685600492762",
"sellerSKU": "testSKU1"
},
{
"orderItemID": "31685600592734",
"sellerSKU": "testSKU2"
}
]
},
"httpCode": 202
},
{
"errorMessage": "Record Not Found",
"response": {
"orderID": "152121",
"orderStatus": "ACCEPTED",
"site": {
"name": "lazada",
"nickNameID": "lazada-1"
},
"shippingTrackingDetails": {
"courierName": "Singpost Registered Mail",
"airwayBill": "22"
}
},
"httpCode": 404
}
]
}
This endpoint updates, shipping tracking details of orders.
HTTP Request
PUT https://api./v1/orders
Error message
Error message | Meaning |
---|---|
Record Not Found | The requested orderId does not exist. |
Field | Type | Description |
---|---|---|
orderID | String | The shipping details will be updated to this orderId.This API will fail, if the orderId does not exist. |
orderStatus | String | status of the order. |
site | Object |
"site":{ "name": "lazada", "nickNameID": "lazada-1" }
|
shippingTrackingDetails | Object |
"shippingTrackingDetails": { "courierName": "Singpost Registered Mail", "airwayBill": "22" }
|
orderItems | List |
"orderItems": [ { "orderItemID": "31685600492762", "sellerSKU": "testSKU1" }, { "orderItemID": "31685600592734", "sellerSKU": "testSKU2" } ]
|
Cancel order
require 'kittn'
api = Kittn::APIClient.authorize!('meowmeowmeow')
api.orders.get(2)
import kittn
api = kittn.authorize('meowmeowmeow')
api.orders.get(2)
curl "https://api./v1/orders"
-H "Content-Type: application/json"
-H "accountNumber: 12121212121212121"
-H "appKey: 2121212121"
Request payload :
{
"data": [
{
"orderID": "33615180083893",
"orderStatus": "CANCELLED",
"site": {
"name": "lazada",
"nickNameID": "lazada-1"
},
"needToUpdateOrder": true,
"cancelDetails": {
"cancelReason": "OUT_OF_STOCK"
},
"orderItems": [
{
"orderItemID": "3168533454934",
"sellerSKU": "testSKU3"
}
]
}
]
}
Response payload:
{
"result": [
{
"response": {
"orderID": "33615180083893",
"orderStatus": "CANCELLED",
"site": {
"name": "lazada",
"nickNameID": "lazada-1"
},
"needToUpdateOrder": true,
"cancelDetails": {
"cancelReason": "OUT_OF_STOCK"
},
"orderItems": [
{
"orderItemID": "3168533454934",
"sellerSKU": "testSKU3"
}
]
},
"httpCode": 202
}
]
}
This endpoint used to cancel the orders.
HTTP Request
PUT https://api./v1/orders
Error message
Error message | Meaning |
---|---|
Record Not Found | The requested orderId does not exist. |
Field | Type | Description |
---|---|---|
orderID | String | OrderID for the order that needs to be cancelled. |
orderStatus | String | The order status. It should be CANCELLED |
site | Object |
"site":{ "name": "lazada", "nickNameID": "lazada-1" }
|
cancelDetails | Object |
"cancelDetails": { "cancelReason": "OUT_OF_STOCK", }
|
orderItems | List |
"orderItems": [ { "orderItemID": "3168533454934", "sellerSKU": "testSKU3" } ]
|
Purchase Order
Create ASN
require 'kittn'
api = Kittn::APIClient.authorize!('meowmeowmeow')
api.orders.get(2)
import kittn
api = kittn.authorize('meowmeowmeow')
api.orders.get(2)
curl "https://api./v1/asn"
-H "Content-Type: application/json"
-H "accountNumber: 12121212121212121"
-H "appKey: 2121212121"
Request payload :
{
"warehouseID":"odoo-1",
"supplierID":1,
"supplierRef":"123456789",
"date":1627309834,
"orderItems": [
{
"sellerSKU": "testSKU1",
"description": "Milk powder brand name",
"quantity": 2,
"uom": 1,
"itemAmount": {
"amount" : 1200,
"currencyCode" : "SGD"
}
},
{
"sellerSKU": "testSKU2",
"description": "Hybrid apple watch",
"quantity": 1,
"uom": 1,
"itemAmount": {
"amount" : 1550,
"currencyCode" : "SGD"
}
}
]
}
Response payload:
SUCCESS:
HTTP status: 200 OK
{
"asnID": 24
}
FAILURE:
HTTP status: 400
{
"errorMessage": "supplierID is missing"
}
This endpoint used to create ASN.
HTTP Request
POST https://api./v1/asn
Field | Type | Description |
---|---|---|
warehouseID | String | Unique identifier of a wms account. |
supplierID | Int | Unique identification for the supplier in the SiAWMS; a list of supplierIDs will be provided by the team. |
supplierRef | String | This information can be used to refer a supplier. |
date | Int | The unix time when the order synced. |
sellerSKU | String | The product SKU (stock keeping unit) is an identifier assigned to a product by a Seller. |
description | String | Description of the product. |
quantity | Int | Quantities based on warehouse. |
itemAmount | Object |
"itemAmount": { "amount": 2300, "currencyCode": "SGD" }
|
uom | Int | Unit of Measure (UoM) is an alternative unit that is defined by default as 1 (units). It will be updated as required. |
Get a Specific ASN
require 'kittn'
api = Kittn::APIClient.authorize!('meowmeowmeow')
api.orders.get(2)
import kittn
api = kittn.authorize('meowmeowmeow')
api.orders.get(2)
curl https://api./v1/asn/15?warehouseID=odoo-1
-H "accountNumber: 12121212121212121"
-H "appKey: 2121212121"
Response payload:
SUCCESS:
HTTP status: 200 OK
{
"asnID":15,
"supplierID":1,
"supplierRef":"123456789",
"date":1627309834,
"status":"draft",
"orderItems": [
{
"sellerSKU": "testSKU1",
"description": "Milk powder brand name",
"quantity": 2,
"receivedQuantity": 2,
"uom": 1,
"itemAmount": {
"amount" : 1200,
"currencyCode" : "SGD"
},
"status":"draft"
},
{
"sellerSKU": "testSKU2",
"description": "Hybrid apple watch",
"quantity": 1,
"receivedQuantity": 1,
"uom": 1,
"itemAmount": {
"amount" : 1550,
"currencyCode" : "SGD"
},
"status":"draft"
}
]
}
FAILURE:
HTTP status: 400
{
"errorMessage": "asnID is missing"
}
This endpoint retrieves a specific request.
HTTP Request
GET https://api./v1/asn/<asnID>?warehouseID=<warehouseID>
URL Parameters
Parameter | Description |
---|---|
warehouseID | Unique identifier of a wms account |
asnID | Unique identifier of an purchase order |
Get ASN IDs
require 'kittn'
api = Kittn::APIClient.authorize!('meowmeowmeow')
api.orders.get(2)
import kittn
api = kittn.authorize('meowmeowmeow')
api.orders.get(2)
curl "https://api./v1/asn?warehouseID=odoo-1&supplierID=1&supplierRef=abc12345"
-H "Content-Type: application/json"
-H "accountNumber: 12121212121212121"
-H "appKey: 2121212121"
Response payload:
SUCCESS:
HTTP status: 200 OK
{
"asnIDs":[2, 15]
}
FAILURE:
HTTP status: 400
{
"errorMessage": "supplierID and supplierRef is missing"
}
This endpoint retrieves orders, updated between the defined time intervals.
HTTP Request
GET https://api./v1/asn?warehouseID=<warehouseID>&supplierID=<supplierID>&supplierRef=<supplierRef>
URL Parameters
Query Parameter | Description |
---|---|
warehouseID | (mandatory) Unique identifier of a wms account. |
supplierID | (mandatory) Unique identification for the supplier in the SiAWMS. |
supplierRef | (mandatory) This information can be used to refer a supplier. |
Errors
The Kittn API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Bad Request – Your request sucks |
401 | Unauthorized – Your API key is wrong |
403 | Forbidden – The request requested is hidden for administrators only |
404 | Not Found – The specified request could not be found |
405 | Method Not Allowed – You tried to access a request with an invalid method |
406 | Not Acceptable – You requested a format that isn’t json |
410 | Gone – The request requested has been removed from our servers |
418 | I’m a teapot |
429 | Too Many Requests – You’re requesting too many orders! Slow down! |
500 | Internal Server Error – We had a problem with our server. Try again later. |
503 | Service Unavailable – We’re temporarially offline for maintanance. Please try again later. |