Sellerapi Docs
Sellerapi Docs
TABLE OF CONTENTS
USER GUIDE
Getting started
Overview of the Seller Center API
Process flow
Guide for Creating Products
Instructions on calling APIs
Request and responses
Signing requests
Requests and responses
Response and error messages
Getting support
PRODUCT ENDPOINTS
GetCategoryTree
GetCategoryAttributes
UploadImages
UploadImage
MigrateImage
MigrateImages
GetResponse
GetBrands
CreateProduct
SetImages
GetProducts
UpdateProduct
UpdatePriceQuantity
SALES ORDER ENDPOINTS
GetOrder
GetOrders
GetOrderItems
GetMultipleOrderItems
SetInvoiceNumber
SetStatusToPackedByMarketplace
SetStatusToReadyToShip
GetDocument
GetFailureReasons
SetStatusToCanceled
QUALITY CONTROL ENDPOINTS
GetQcStatus
SELLER ENDPOINTS
GetPayoutStatus
GetTransactionDetails
GetSeller
FAQ
Frequently Asked Questions
USER GUIDE
Getting started
The Daraz Seller Center platform provides a strong tech foundation to help implement impactful features in the future. This is in line with the goal
to provide better services and experience to Daraz sellers.
The Seller Center enables sellers to manage products and orders in their online stores, and the Seller Center API is also available to support
programmatic maintenance of products and orders.
Most of the API endpoints are backward compatible, albeit some changes to the Product API endpoints and the endpoint URLs. Note that some
endpoints are no longer available in the new Seller Center.
The Seller Center enables sellers to manage products and orders in their online stores, and the Seller Center API supports programmatic
maintenance of products, orders, package shipment, and finance.
This guide is targeted at:
Existing integrated sellers (with Seller Center API) for smooth migration.
Sellers who are starting an integration project with Daraz Seller Center API.
API endpoints
Product Endpoints
Sales Order Endpoints
Quality Control Endpoints
Seller Endpoints
Detailed description of all the API calls is provided in the sections below.
Process flow
With the API calls, you can manage products, process orders and shipment, and view metrics and statistics. The detailed process flow is as
follows.
Product listing
The product management flow enables users to use API calls to search for categories, category attributes, and product brand for the SKUs to be
created. With the returned information, sellers fill in the category, category attributes, and other product information to create the product.
Detailed instructions on creating SKUs using the API calls are as follows:
Step 1: Use GetCategoryTree to search for the appropriate category ID for the SKUs to be created.
Step 2: Use GetCategoryAttributes to retrieve the attributes of the specified category. The category ID and category attributes will be used as
reference to create SKUs.
Step 3: Use UploadImage/UploadImage or MigrateImage/MigrateImage to get the URL of images for the SKUs to be created.
Step 4: Based on the selected category, category attributes, image URLs, and other product information, create SKUs. Detailed steps are as
follows:
The image, price and quantity maintenance process and steps are as follows.
Step 1: Use UploadImage/UploadImages to upload an image or images of the product from local device to the Daraz server.
Step 2: Use MigrateImage/MigrateImages to retrieve the image URL from an external site to the Daraz server. Note that only valid image URLs
from Daraz servers can be used for CreateProduct and SetImage.
Step 3: Use SetImage for existing SKUs by associating one or more image URLs within the same request XML.
Step 4: Use GetProducts to retrieve the latest product information under seller center account, which can be filtered by all/active/inactive/deleted
etc.
Step 5: Use UpdatePriceQuantity to update price and quantity of respective products as necessary. The maximum number that can be updated at
once is 20.
Order related API calls are backward compatible, meaning that the call structures and behavior remain the same.
Detailed instructions on order processing with the API calls are as follows:
Step 1: Use GetOrder to retrieve order information. Based on the selected category, category attributes, image URLs, and other product
information, create SKUs. Detailed steps are as follows:
Use the UpdatedAfter timestamp to filter out orders retrieved.
Use Limit and Offset parameters to set the number of orders returned.
Save the order IDs.
Step 3: Use GetShipmentProvider to retrieve 3rd party shipment provider (3PL) list. Ignore this call if 3PL gets automatically assigned to you.
Step 4: Use SetStatustoPackedByMarketplace to update the status of the specific order by providing the order item ID, and shipment provider
(send null in case of automatic assignment). For multiple items in the same package, input item IDs commas separated enclosed by square
brackets. The seller center will respond to single package tracking number.
Step 5: Use GetDocuments to get the template for the air waybill, invoice, and pick list.
Step 6: Use SetStatustoReadyToShip to update the order status to "Ready to Ship" (RTS).
Use the following seller endpoints to retrieve metrics, payout status, statistics, and transaction details of the store.
Step 1: Use GetMetrics to retrieve sales and order metrics for a specified period (one day, week, month, or all
time). Sales and order metrics include the number of total/active SKUs and orders, and the amount of sales
and commission.
Step 2: Use GetPayoutStatus to retrieve payout amount and status for a specified period. Returned payout
information includes opening balance, item revenue, shipping fee, shipping fee credit, refunds, closing balance,
and guarantee deposit. The payout status is 1 (paid) or 0 (not paid).
Step 3: Use GetStatistics to retrieve product and order statistics for a specified period, including:
Products - the number of products in various statuses.
Orders - the number of orders in various statuses and the total order amount.
Order items pending - the number of pending order items in the last 24 hours, 48 hours, and earlier.
Account health - the percentage of orders shipped within 48 hours and percentage of cancelled orders.
Step 4: Use GetTransactionDetails to retrieve transaction or fee details for a specified period. Transaction details include transaction date, type,
number, amount, statement, payment status, order number, order item number, shipment type, shipment provider, and reference ID.
The following diagram shows the process flow and related APIs for creating and updating products.
Process flow
Step 1: Get product model information through the category tree and category attributes, for example, which
attributes (fields) are mandatory for a product, and what content or options should be provided for the
attributes.
Step 2: Retrieve the URL of images that are required for creating or updating a product.
Related APIs
1. Use GetCategoryTree API to read the category tree. Determine the appropriate category for the product to be created. Each category
has its own attributes required for product creation.
2.
2. Use GetCategoryAttributes with the category ID to retrieve the attributes of the category. The category ID and category attributes will be
used as reference to create the product. Note that the "brand" attribute needs to be retrieved separately with the GetBrands API.
3. Use the UploadImage or MigrateImage API to load your product images to Daraz image repository and get the image URL.
4. Based on the selected category, category attributes, image URLs, and other product information, you can create the product through the
CreateProduct API.
Usage demo
Step 1: Get the category tree, and then determine the leaf category for the product.
XML
In the above sample, the field "leaf=true" means that the category is a leaf category, which can be used for creating the product.
Step 2: Retrieve the attributes for the selected category. For example, if the selected category is "Bags and Travel > Kids Bags > Bags", then
"Bags" is the leaf category, with the category ID "10001955". Use "PrimaryCategory=10001955" as the input parameter of the GetCategoryAttribu
tes API. You will get the following response.
XML
"name" represents the name of the attribute that can be recognized by system.
"label" represents the name of the attribute that will be displayed in the product description page.
"isMandatory" represents whether the attribute is mandatory or not.
"isSaleProp" represents whether the attribute is sale property or not. Sale properties are always mandatory.
"inputType" represents the type of input data, including text, richText, multiSelect, singleSelect, numeric, and date. The entered data must
comply with the required data type.
Step 3: Get the brand list by using the GetBrands API, and then select the product brand.
XML
Step 4: Get the URL of product images by using the UploadImage(s) or MigrateImage(s) API. Taking the MigrateImage(s) API as example:
Input:
XML
<Url>https://static.wixstatic.com/media/03aa4c_dee4d88cad6340c7b65f3f320
819f130~mv2.gif</Url>
</Image>
</Request>
Output:
XML
<Url>https://sg-live.slatic.net/original/b731a8098df7d606ab2e56efc650afc
b.jpg</Url>
<Code>b731a8098df7d606ab2e56efc650afcb</Code>
</Image>
</Body>
</SuccessResponse>
Step 5: Use the CreateProduct API to create the product, with the category ID, attributes, and attribute values (including brands and images). The
data structure of the UpdateProduct API is similar with that of the CreateProduct API. See the following sample.
XML
<color_family>Black</color_family>
<special_price>0.0</special_price>
<price>23.0</price>
<package_length>1</package_length>
<package_weight>1</package_weight>
<package_content>test what's in the
box</package_content>
<package_width>1</package_width>
<package_height>1</package_height>
<Images>
<Image>https://sg-live.slatic.net/original/b731a8098df7d606ab2e56efc650a
fcb.jpg</Image>
<Image />
<Image />
<Image />
<Image />
<Image />
<Image />
<Image />
</Images>
</Sku>
</Skus>
</Product>
</Request>
Notes:
Only leaf categories (the deepest level) can be used to create products. Otherwise, the "Category is not leaf" error will be reported.
The category ID must be retrieved with the GetCategoryTree API. If an invalid category ID is used, the "CATEGORY_ID_INVALID" error
will be reported.
The attribute values must comply with the required data format or must be valid options provided by the GetCategoryAttributes API.
Otherwise, the "xxx is not a valid value" error will be reported.
XML
<tag name="a"/>
<tag name="hr"/>
<tag name="h1"/>
<tag name="h3"/>
<tag name="h2"/>
<tag name="h4"/>
<tag name="h5"/>
<tag name="h6"/>
<tag name="font"/>
<tag name="b"/>
<tag name="i"/>
<tag name="u"/>
<tag name="sup"/>
<tag name="sub"/>
<tag name="strike"/>
<tag name="strong"/>
<tag name="em"/>
<tag name="p"/>
<tag name="br"/>
<tag name="ol"/>
<tag name="li"/>
<tag name="ul"/>
<tag name="div"/>
<tag name="span"/>
<tag name="img"/>
<tag name="map"/>
<tag name="area"/>
<tag name="marquee"/>
<tag name="table"/>
<tag name="tr"/>
<tag name="td"/>
<tag name="caption"/>
<tag name="bgsound"/>
<tag name="blockquote"/>
<tag name="cite" />
<tag name="small"/>
<tag name="big"/>
<tag name="nobr"/>
<tag name="center"/>
<tag name="dl"/>
<tag name="dt"/>
<tag name="dd"/>
<tag name="pre"/>
<tag name="listing"/>
<tag name="blink"/>
<tag name="spacer"/>
<tag name="th"/>
<tag name="thead"/>
<tag name="tbody"/>
<tag name="tfoot"/>
<tag name="colgroup"/>
<tag name="col"/>
XML
<tag-attributes>
<attributes name="common">
<attribute name="style" />
<attribute name="align" />
<attribute name="valign" />
<attribute name="bgcolor" />
<attribute name="background">
<regexp-list>
<regexp name="offsiteURL" />
</regexp-list>
</attribute>
<attribute name="title" />
<attribute name="id" />
<attribute name="class" />
</attributes>
<attributes name="style">
<attribute name="type" />
</attributes>
<attributes name="div">
<attribute name="style" />
<attribute name="align" />
<attribute name="valign" />
<attribute name="bgcolor" />
<attribute name="background">
<regexp-list>
<regexp name="offsiteURL" />
</regexp-list>
</attribute>
<attribute name="title" />
</attributes>
<attributes name="img">
<attribute name="style" />
<attribute name="align" />
<attribute name="valign" />
<attribute name="bgcolor" />
<attribute name="background" />
<attribute name="title" />
<attribute name="src">
</attribute>
<attribute name="border" />
<attribute name="width" />
<attribute name="height" />
<attribute name="alt" />
<attribute name="usemap" />
<!-- add -->
<attribute name="hspace" />
<attribute name="ismap" />
<attribute name="vspace" />
</attributes>
<attributes name="font">
<attribute name="style" />
<attribute name="align" />
<attribute name="valign" />
<attribute name="bgcolor" />
<attribute name="background">
<regexp-list>
<regexp name="offsiteURL" />
</regexp-list>
</attribute>
<attribute name="title" />
<attribute name="color" />
<attribute name="size" />
<attribute name="face" />
</attributes>
<attributes name="table">
<attribute name="style" />
<attribute name="align" />
<attribute name="valign" />
<attribute name="bgcolor" />
<attribute name="background">
<regexp-list>
<regexp name="offsiteURL" />
</regexp-list>
</attribute>
<attribute name="title" />
<attribute name="border" />
<attribute name="width" />
<attribute name="height" />
<attribute name="cellpadding" />
<attribute name="cellspacing" />
<attribute name="bordercolor" />
<attribute name="blockquote" />
<!-- add -->
<attribute name="summary" />
<attribute name="rules" />
</attributes>
<attributes name="td">
<attribute name="style" />
<attribute name="align" />
<attribute name="valign" />
<attribute name="bgcolor" />
<attribute name="background">
<regexp-list>
<regexp name="offsiteURL" />
</regexp-list>
</attribute>
<attribute name="title" />
<attribute name="width" />
<attribute name="height" />
<attribute name="colspan" />
<attribute name="rowspan" />
<!-- add -->
<attribute name="headers" />
<attribute name="scope" />
</attributes>
<attributes name="marquee">
<attribute name="style" />
<attribute name="align" />
<attribute name="valign" />
<attribute name="bgcolor" />
<attribute name="background">
<regexp-list>
<regexp name="offsiteURL" />
</regexp-list>
</attribute>
<attribute name="title" />
<attribute name="scrollamount" />
<attribute name="direction" />
<attribute name="behavior" />
<attribute name="width" />
<attribute name="height" />
<attribute name="scrolldelay" />
<!-- add -->
<attribute name="loop" />
</attributes>
<attributes name="a">
<attribute name="style" />
<attribute name="align" />
<attribute name="valign" />
<attribute name="bgcolor" />
<attribute name="background">
<regexp-list>
<regexp name="offsiteURL" />
</regexp-list>
</attribute>
<attribute name="title" />
<attribute name="target" />
<attribute name="name" />
<attribute name="href">
<regexp-list>
<regexp name="offsiteURL" />
</regexp-list>
</attribute>
<!-- add -->
<attribute name="charset" />
<attribute name="hreflang" />
<attribute name="type" />
<attribute name="shape" />
</attributes>
<attributes name="bgsound">
<attribute name="src">
<regexp-list>
<regexp name="offsiteURL" />
</regexp-list>
</attribute>
<attribute name="loop" />
<!-- add -->
<attribute name="autostart" />
</attributes>
<attributes name="map">
<attribute name="name" />
<!-- add -->
<attribute name="title" />
<attribute name="style" />
</attributes>
<attributes name="area">
<attribute name="shape" />
<attribute name="coords" />
<!-- add -->
<attribute name="href">
<regexp-list>
<regexp name="offsiteURL" />
</regexp-list>
</attribute>
<attribute name="title" />
<attribute name="style" />
<attribute name="alt" />
<attribute name="nohref" />
<attribute name="target" />
</attributes>
<attributes name="spacer">
<attribute name="align" />
<attribute name="valign" />
<attribute name="type" />
<attribute name="width" />
<attribute name="height" />
<attribute name="size" />
</attributes>
<attributes name="colgroup">
<attribute name="align" />
<attribute name="char" />
<attribute name="charoff" />
<attribute name="span" />
<attribute name="valign" />
<attribute name="width" />
<attribute name="title" />
<attribute name="style" />
</attributes>
</tag-attributes>
The following HTML tags are NOT supported in the "description" field:
XML
<tag name="script"/>
<tag name="noscript"/>
<tag name="head"/>
<tag name="select"/>
<tag name="form"/>
<tag name="iframe"/>
<tag name="frame"/>
<tag name="frameset"/>
<tag name="object"/>
<tag name="applet"/>
<tag name="link"/>
The Seller Center APIs are called through an HTTP request directed to an endpoint. Partners (ISVs) and sellers can use the official Java SDK dir
ectly or assemble HTTP requests to call the Seller Center APIs.
This section introduces how to assemble HTTP requests to call the Seller Center APIs.
API calls require data for input and return output as the responses. The general steps for calling an API through generating HTTP request are as
follows:
1. Populate parameters and values
2. Generate signature
3. Assemble HTTP request
4. Initiate HTTP request
5. Get HTTP response
6. Interpret JSON/XML results
For each venture, staging environment and live environment are available for calling APIs. The staging environment is provided to facilitate test
phases during the integration project. You must integrate your system with a server correctly. The following table lists the live and staging
environment for each venture.
Staging https://api-staging.sellercenter.daraz.pk
Staging https://api-staging.sellercenter.daraz.com.bd
Sri Lanka Live https://api.sellercenter.daraz.lk
Staging https://api-staging.sellercenter.daraz.pk
Staging https://api-staging.sellercenter.daraz.com.np
Staging https://api-staging.sellercenter.shop.com.mm
Each API call is performed by a specific Seller Center user (specified by the UserID parameter and signed by a matching API key). Take the
following steps to retrieve your API key.
For the live environment: https://sellercenter.daraz.xx/seller/register/registration_open (xx represents the country domain name)
For the staging environment: https://sellercenter-staging.daraz.xx/seller/register/registration_open
For the live environment: https://sellercenter.daraz.xx/(xx represents the country domain name)
For the staging environment: https://sellercenter-staging.daraz.xx/
While most methods are called via GET, some write methods get additional request data sent via POST. However, sometimes the data that
needs to be supplied is more than what can be transported in request parameters. In those cases, additional data is sent to the server using a
POST request. The request body must be in XML format. All data (including parameter names and values) must be UTF-8 encoded.
All methods return a response document, which indicates the status of the operation (either Success or Error) and optionally provides results
and/or details related to the specified action. The response can be in XML or JSON format.
Common parameters
Common parameters are required in the HTTP request of every API call, listed in the following table:
Format string The response format, with XML as the default. Can be XML or JSON. Optional.
Timestamp datetime Time when the request is sent, in ISO 8601 format (e.g., Timestamp=2016-04-01T10:00:00+0200).
Mandatory.
UserID string The ID of the user making the call. The list of authorized users is maintained in the Seller Center
web interface under Settings -> Manage Users. Mandatory.
Version string The API version against which this call is to be executed. The current version is "1.0". Mandatory.
Signature string The cryptographic signature, authenticating the request. You must create this value by computing
the SHA256 hash of the request, using the API key of the user specified in the UserID parameter.
The signature algorithm is described below. Mandatory.
Business parameters
In addition to the common parameters that must be included in the API call request, the business parameters for the request are also required.
Refer to the documentation of each API call for details about the business parameters.
Signature algorithm
Refer to the Signing requests section for detailed information about how to generate signature.
Taking the GetCategoryTree API call as example, the assembled HTTP request call looks like this:
https://api.sellercenter.daraz.pk?Action=GetCategoryTree&Format=json&Tim
estamp=2017-11-25T07%3A00%3A32%2B00%3A00&UserID=xxx&Version=1.0&Signatur
e=xx
Call limitation
You can make at most 10 parallel API calls concurrently.
Signing requests
For the security of data and system, all requests posted to the server must be cryptographically signed.
To ensure that calls to the API cannot be recorded and replayed, one of the parameters getting signed is a timestamp.
More specifically, the signature parameter required on all calls is the HMAC of the request string and your API key with the SHA-256 digest
algorithm.
API key
Each user will have a unique API key when calling an API, which is used to sign the request. The API key for a user is created with the creation of
the user ID and can be provided to the user who is seeking integration with seller API.
Names and values must be URL encoded according to RFC 3986 standard, concatenated with the character '='. Each parameter set
(name=value) must be separated with the character '&'.
PHP
<?php
// The parameters for the GET request. These will get signed.
$parameters = array(
// The ID of the user making the call.
'UserID' => '[email protected]',
// The API key for the user as generated in the Seller Center GUI.
// Must be an API key associated with the UserID parameter.
$api_key = 'b1bdb357ced10fe4e9a69840cdd4f0e9c03d77fe';
If you want to verify the above reference, replace the timestamp with the following value:
PHP
Text
Action=GetBrands
Format=XML
Timestamp=2015-07-01T11:11:11+00:00
[email protected]
Version=1.0
Signature=3ceb8ed91049dfc718b0d2d176fb2ed0e5fd74f76c5971f34cdab484124760
41
Then, to make the GET request in PHP, you would write something like this:
PHP
<?php
If you are more familiar with other programming languages, here are implementations in...
Java
Python
Visual Basic
Cold Fusion
When developing in Java SDK, you do not need to sign every request. The SDK signs them for you. All you need to do is simply initializing the
global client.
Java
//init global default client with venture URL, your email and API key
DarazClient.init("https://api.sellercenter.daraz.pk/","[email protected]",
"3aac65392ce5ebdfa7eadf4933c9316a4810581e");
//Example
//1. query order by ID
//init request with orderId
GetOrder request = new GetOrder(6642038L);
//fire request and handle result Order
try {
GetOrderResponse response = request.execute();
System.out.println(response.getBody());
} catch (DarazException e) {
System.out.println(e.getResponseStr());
}
Java
/*
* Sample Interface for SellerCenter API
*/
package com.rocket.sellercenter;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.text.SimpleDateFormat;
import java.text.DateFormat;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.*;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
><Request><Product><SellerSku>4105382173aaee4</SellerSku><Price>12</Pric
e></Product></Request>";
final String out = getSellercenterApiResponse(params, apiKey,
XML); // provide XML as an empty string
when not needed
System.out.println(out); // print out the XML response
}
/**
* calculates the signature and sends the request
*
* @param params Map - request parameters
* @param apiKey String - user's API Key
* @param XML String - Request Body
*/
public static String getSellercenterApiResponse(Map<String, String>
params, String apiKey, String XML) {
String queryString = "";
String Output = "";
HttpURLConnection connection = null;
URL url = null;
Map<String, String> sortedParams = new TreeMap<String,
String>(params);
queryString = toQueryString(sortedParams);
final String signature = hmacDigest(queryString, apiKey,
HASH_ALGORITHM);
queryString = queryString.concat("&Signature=".concat(signature));
final String request = ScApiHost.concat("?".concat(queryString));
try {
url = new URL(request);
connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setInstanceFollowRedirects(false);
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");
connection.setRequestProperty("charset", CHAR_UTF_8);
connection.setUseCaches(false);
if (!XML.equals("")) {
connection.setRequestProperty("Content-Length", "" +
Integer.toString(XML.getBytes().length));
DataOutputStream wr = new
DataOutputStream(connection.getOutputStream());
wr.writeBytes(XML);
wr.flush();
wr.close();
}
String line;
BufferedReader reader = new BufferedReader(new
InputStreamReader(connection.getInputStream()));
while ((line = reader.readLine()) != null) {
Output += line + "\n";
}
} catch (Exception e) {
e.printStackTrace();
}
return Output;
}
/**
* generates hash key
*
* @param msg
* @param keyString
* @param algo
* @return string
*/
private static String hmacDigest(String msg, String keyString, String
algo) {
String digest = null;
try {
SecretKeySpec key = new
SecretKeySpec((keyString).getBytes(CHAR_UTF_8), algo);
Mac mac = Mac.getInstance(algo);
mac.init(key);
final byte[] bytes = mac.doFinal(msg.getBytes(CHAR_ASCII));
StringBuffer hash = new StringBuffer();
for (int i = 0; i < bytes.length; i++) {
String hex = Integer.toHexString(0xFF & bytes[i]);
if (hex.length() == 1) {
hash.append('0');
}
hash.append(hex);
}
digest = hash.toString();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return digest;
}
/**
* build querystring out of params map
*
* @param data map of params
* @return string
* @throws UnsupportedEncodingException
*/
private static String toQueryString(Map<String, String> data) {
String queryString = "";
try{
StringBuffer params = new StringBuffer();
for (Map.Entry<String, String> pair : data.entrySet()) {
params.append(URLEncoder.encode((String) pair.getKey(),
CHAR_UTF_8) + "=");
params.append(URLEncoder.encode((String) pair.getValue(),
CHAR_UTF_8) + "&");
}
if (params.length() > 0) {
params.deleteCharAt(params.length() - 1);
}
queryString = params.toString();
} catch(UnsupportedEncodingException e){
e.printStackTrace();
}
return queryString;
}
/**
* returns the current timestamp
* @return current timestamp in ISO 8601 format
*/
private static String getCurrentTimestamp(){
final TimeZone tz = TimeZone.getTimeZone("UTC");
final DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mmZ");
df.setTimeZone(tz);
final String nowAsISO = df.format(new Date());
return nowAsISO;
}
}
Python
import urllib
from hashlib import sha256
from hmac import HMAC
from datetime import datetime
parameters = {
'UserID': '[email protected]',
'Version': '1.0',
'Action': 'FeedList',
'Format':'XML',
'Timestamp': datetime.now().isoformat()\n}
api_key = 'b1bdb357ced10fe4e9a69840cdd4f0e9c03d77fe'
concatenated = urllib.urlencode(sorted(parameters.items()))
parameters['Signature'] = HMAC(api_key, concatenated,
sha256).hexdigest()
Visual Basic
Imports System
Public Module modmain
Sub Main()
' add your data here:
Dim userId As String = "" 'login name / your email
Dim password As String = "" 'your API key/password
Dim version As String = "1.0"
Dim action As String = "ProductCreate"
Dim url As String = ""
'e.g.: "https://api.sellercenter.daraz.pk/"
Dim result As String
ColdFusion
<!--- this is a sample Adobe ColdFusion script for sending API request
to SellerCenter --->
<!--- hashing function --->
<cffunction name="HMAC_SHA256" returntype="string" access="private"
output="false">
<cfargument name="Data" type="string" required="true" />
<cfargument name="Key" type="string" required="true" />
<cfargument name="Bits" type="numeric" required="false" default="256"
/>
<cfset var i = 0 />
<cfset var HexData = "" />
<cfset var HexKey = "" />
<cfset var KeyLen = 0 />
<cfset var KeyI = "" />
<cfset var KeyO = "" />
<cfset HexData = BinaryEncode(CharsetDecode(Arguments.data,
"iso-8859-1"), "hex") />
<cfset HexKey = BinaryEncode(CharsetDecode(Arguments.key,
"iso-8859-1"), "hex") />
<cfset KeyLen = Len(HexKey)/2 />
<cfif KeyLen gt 64>
<cfset HexKey = Hash(CharsetEncode(BinaryDecode(HexKey, "hex"),
"iso-8859-1"), "SHA-256", "iso-8859-1") />
<cfset KeyLen = Len(HexKey)/2 />
</cfif>
<cfloop index="i" from="1" to="#KeyLen#">
<cfset KeyI = KeyI &
Right("0"&FormatBaseN(BitXor(InputBaseN(Mid(HexKey,2*i-
1,2),16),InputBaseN("36",16)),16),2) />
<cfset KeyO = KeyO &
Right("0"&FormatBaseN(BitXor(InputBaseN(Mid(HexKey,2*i-
1,2),16),InputBaseN("5c",16)),16),2) />
</cfloop>
<cfset KeyI = KeyI & RepeatString("36",64-KeyLen) />
<cfset KeyO = KeyO & RepeatString("5c",64-KeyLen) />
<cfset HexKey = Hash(CharsetEncode(BinaryDecode(KeyI&HexData, "hex"),
"iso-8859-1"), "SHA-256", "iso-8859-1")
/>
<cfset HexKey = Hash(CharsetEncode(BinaryDecode(KeyO&HexKey, "hex"),
"iso-8859-1"), "SHA-256", "iso-8859-
1") />
<cfreturn Left(HexKey,arguments.Bits/4) />
</cffunction>
<!---/ hashing function --->
<!--- define --->
<cfset send_xml = false><!--- for APIs that need XML request body, like
xxxxProduct APIs --->
<cfset secret_key="562aeae4090d3a62ef171b6646cc2bdac6417473"/>
<cfset sc_api_host="http://sellercenter-api.local/"/>
<!---/ define --->
<!--- request params --->
<cfset params = structNew() />
<cfset params["[email protected]"] = "UserID"/>
<cfset params["GetShipmentProviders"] = "Action"/>
<cfset params["2014-07-24T20:06:33+02:00"] = "Timestamp"/>
<cfset params["1.0"] = "Version"/>
<cfsavecontent variable="strXML">
<?xml version="1.0" encoding="UTF-8" ?>
<Request>
<Product>
<SellerSku>4105382173aaee4</SellerSku>
<Price>12</Price>
</Product>
</Request>
</cfsavecontent>
<!---/ request params --->
<!--- generate signature --->
<cfset strtohash = "" />
<cfloop list="#ArrayToList(StructSort(params, "text", "asc"))#"
index="key" >
<cfset strtohash = strtohash & #params[key]# & "=" &
#URLEncodedFormat(key)# & "&" />
</cfloop>
<cfset strtohash = #RemoveChars(strtohash, len(strtohash), 1)#/>
<cfset strtohash = #Replace(strtohash, "%2D", "-", "All")#/>
<cfset strtohash = #Replace(strtohash, "%2E", ".", "All")#/>
<cfset signature="#LCase(HMAC_SHA256(strtohash, secret_key))#"/>
<!---/ generate signature --->
<!--- issue the request --->
<cfif send_xml>
<cfset http_method = "post" />
<cfelse>
<cfset http_method = "get" />
</cfif>
<cfhttp method="#http_method#" url="#sc_api_host#">
<cfloop list="#ArrayToList( StructSort(params, "text", "asc") )#"
index="key" >
<cfhttpparam type="url" name="#params[key]#"
value="#key#"></cfhttpparam>
</cfloop>
<cfhttpparam type="xml" value="#strXML.Trim()#"></cfhttpparam>
<cfhttpparam type="url" name="Signature"
value="#signature#"></cfhttpparam>
</cfhttp>
<!---/ issue the request --->
<!--- XML response --->
<cfoutput>#cfhttp.filecontent#</cfoutput>
While most methods are called via GET, some write methods get additional request data sent via POST.
All methods return a response document, which indicates the status of the operation (either Success or Error) and optionally provides results
and/or details related to the specified action.
All API methods are called via HTTP, some via GET and some via POST.
All calls always take the Action, Timestamp, UserID, Version and Signature parameters. Some additional parameters can also be specified. For
example, GetProducts takes additional parameters, such as the Search parameter.
However, sometimes the data that needs to be supplied is more than what can be transported in request parameters. In those cases, additional
data is sent to the server using a POST request. The data must be in XML format (even if the Format parameter is set to 'JSON'). All data
(including parameter names and values) must be UTF8-encoded (which should be indicated in the XML preamble) and uploaded as MIME type
application/x-www-form-urlencoded.
The following example shows additional data sent to the ProductUpdate method:
XML
GET or POST
Whether to use GET or POST depends on the method you are calling and is indicated in the Definition section of each API method in
this documentation. Even if no additional data needs to be uploaded for a request, you must use POST if that is the specified HTTP
verb for the method.
Some methods return long XML documents. For example, GetProducts will return a very long XML document, listing each product. The syntax of
these responses is explained in detail on the reference page for the method.
A number of methods return no data. In those cases, a response will also be returned, which is called Success Response. Depending on the
Format parameter that was passed in, it can be in JSON or XML format. See the following examples.
XML
JSON
{
"SuccessResponse": {
"Head": {
"RequestId": "13e55362-3cc4-446b-b3db-c1df0900ae9e",
"RequestAction": "PriceFeed",
"ResponseType": "",
"Timestamp": "2015-07-01T11:11:11+0000"
},
"Body": ""
}
}
The fields in the <Head> section are always the same, regardless of whether a method returns data in the Body section or not. The meaning of
the data in a Success Response is as follows.
RequestAction string The name of the method that was called (i.e., the Action parameter of the request).
ResponseType string The response type contained in the Body, or empty if none.
Timestamp datetime Time when the request was sent, in ISO 8601 format.
XML
JSON
{
"SuccessResponse": {
"Head": {
"RequestId": "13e55362-3cc4-446b-b3db-c1df0900ae9e",
"RequestAction": "PriceFeed",
"ResponseType": "",
"Timestamp": "2015-07-01T11:11:11+0000"
},
"Body": ""
}
}
Similarly, there is an Error Response. It also has a <Body> section, which is often empty, but can be used to provide additional information about
the error. Here is an example error message that has a Body:
XML
JSON
Response:
{
"ErrorResponse": {
"Head": {
"RequestAction": "ProductUpdate",
"ErrorType": "Platform",
"ErrorCode": "1000",
"ErrorMessage": "Could not save product: 0, A exact match of the
document is being processed"
},
"Body": ""
}
}
ErrorDetail subsection The error response may contain these subsections in its body, one per error. It contains fields
specific to the error. At most 50 ErrorDetails can be provided.
The error messages in the following table are common to all the Seller Center API endpoints. For error messages are specific to an API call, refer
to the "Error messages" section of the API call. Error messages are numbered with related message text.
1 E1: Parameter is mandatory One or more mandatory parameters are not provided in the request. Mandatory
parameters for every API call include Action, Timestamp, UserID, and Version.
2 E2: Invalid Version The provided value for the Version parameter is not correct. The current API version is
"1.0".
3 E3: Timestamp has expired The timestamp should be the correct time, not a time in the past or in the future.
4 E4: Invalid Timestamp format The timestamp should be the current time in ISO8601 format (e.g.,
Timestamp=2016-04-01T10:00:00+02:00).
5 E5: Invalid Request Format The input in the request body is not valid. Check the input and try the call again.
6 E6: Unexpected internal error The error might be caused by invalid input or system error. Check the input and try the
call again. If the error persists, submit a support ticket.
7 E7: Login failed. Signature The signature is not updated after some changes to the parameters. Regenerate the
mismatching signature and call the API again.
8 E8: Invalid Action The API call name might be invalid. Check the spelling of the API call name.
9 E9: Access Denied The UserID and the signature do not match. Check the correctness of the UserID and the
corresponding API key.
1000 E1000: Internal Application The API call failed because of invalid request or system error. Check the request body
Error and try the call again. If the error persists, submit a support ticket.
When you get an error, try to investigate and find a fix for the error with the error message and returned information. When your research cannot
resolve the the error, you can get technical support by by following the guide of Getting support.
To help the support team locate the specific instance of your request, provide the RequestID and Timestamp of the failed request.
Getting support
For any questions, contact the support team at API Support and submit the questions.
PRODUCT ENDPOINTS
GetCategoryTree
Definition [GET]
Use this call to retrieve the list of all product categories in the system.
Parameters
Format string The response format, with XML as the default. Can be XML or JSON. Optional.
Timestamp datetime The current time in ISO8601 format (e.g., Timestamp=2016-04-01T10:00:00+02:00 for Berlin).
Mandatory.
Version string The API version against which this call is to be executed. The current version is "1.0". Mandatory.
Signature string The cryptographic signature, authenticating the request. You must create this value by computing the
SHA256 hash of the request, using the API key of the user specified in the UserID parameter.
Mandatory.
Code sample
Java
//you may find that categoryId of leaf node is useful for creating
product
Response
The response body is composed of the Categories collection, recursively containing Category resources, each of which is composed of the
following fields:
options node Valid values for this attribute. Useful for an attribute whose inputType is singleSelect or
multiSelect.
Result sample
A success result sample is as follows.
XML
No specific errors.
GetCategoryAttributes
Definition [GET]
Use this call to get a list of attributes with options for a given category. It will also display attributes for TaxClass, with their possible values listed
as options.
Parameters
Format string The response format, with XML as the default. Can be XML or JSON. Optional.
Timestamp datetime The current time in ISO8601 format (e.g., Timestamp=2016-04-01T10:00:00+02:00 for Berlin).
Mandatory.
Version string The API version against which this call is to be executed. The current version is "1.0".
Mandatory.
Signature string The cryptographic signature, authenticating the request. You must create this value by
computing the SHA256 hash of the request, using the API key of the user specified in the
UserID parameter. Mandatory.
PrimaryCategory integer Identifier of the category for which the caller wants the list of attributes.
Code sample
Response
The tags of the result XML have the following types and meaning.
isMandatory boolean Whether the attribute is mandatory. 1 for mandatory, and 0 for optional.
isSaleProp boolean Whether the attribute is sale property. 1 for sale property, and 0 for non sale property. Sale
property is always mandatory attribute.
inputType string Attribute input type (for example, text, rich text, enumInput, multiEnumInput, and option)
options node List of all option nodes
Eg:
"attributeType": "normal",
"inputType": "singleSelect",
"label": "warranty_type",
"isMandatory": 1
Result sample
XML
Error messages
UploadImages
Definition
Use this call to upload multiple image files and accept binary stream with file content. Allowed image formats are JPG and PNG. The maximum
size of an image file is 1MB.
Parameters
Format string The response format, with XML as the default. Can be XML or JSON. Optional.
Timestamp datetime The current time in ISO8601 format (e.g., Timestamp=2016-04-01T10:00:00+02:00 for Berlin).
Mandatory.
Version string The API version against which this call is to be executed. The current version is "1.0". Mandatory.
Signature string The cryptographic signature, authenticating the request. You must create this value by computing
the SHA256 hash of the request, using the API key of the user specified in the UserID parameter.
Mandatory.
Request body
The code sample, response, and result sample are similar with those of the UploadImage call.
Error messages
Definition [POST]
Use this call to upload a single image file and accept binary stream with file content. Allowed image formats are JPG and PNG. The maximum
size of an image file is 1MB.
Parameters
Format string The response format, with XML as the default. Can be XML or JSON. Optional.
Timestamp datetime The current time in ISO8601 format (e.g., Timestamp=2016-04-01T10:00:00+02:00 for Berlin).
Mandatory.
Version string The API version against which this call is to be executed. The current version is "1.0". Mandatory.
Signature string The cryptographic signature, authenticating the request. You must create this value by computing
the SHA256 hash of the request, using the API key of the user specified in the UserID parameter.
Mandatory.
Request body
Code sample
Text
Response
The response body contains an image resource, which is composed of the following fields:
Result sample
XML
{
"SuccessResponse": {
"Head": {
"RequestId": "",
"RequestAction": "UploadImage",
"ResponseType": "Image",
"Timestamp": "2016-08-25T11:26:32+0000"
},
"Body": {
"Image": {
"Url":
"https//sg.s.alibaba.lzd.co/original/52e91dc864f193c6a096816a0ac1b6d0.jp
g",
"Code": "52e91dc864f193c6a096816a0ac1b6d0"
}
}
}
}
Error messages
Error code Message
MigrateImage
Definition [POST]
Use this call to migrate a single image from an external site to Daraz site. Allowed image formats are JPG and PNG. The maximum size of an
image file is 1MB.
Parameters
Format string The response format, with XML as the default. Can be XML or JSON. Optional.
Timestamp datetime The current time in ISO8601 format (e.g., Timestamp=2016-04-01T10:00:00+02:00 for Berlin).
Mandatory.
Version string The API version against which this call is to be executed. The current version is "1.0". Mandatory.
Signature string The cryptographic signature, authenticating the request. You must create this value by computing
the SHA256 hash of the request, using the API key of the user specified in the UserID parameter.
Mandatory.
Code sample
Text
Java
Response
The response body contains an image resource, which is composed of the following fields.
Result sample
XML
<Url>https//sg.s.alibaba.lzd.co/original/1e8bb2499d38084ffe31f155c68e0d1
f.jpg</Url>
<Code>1e8bb2499d38084ffe31f155c68e0d1f</Code>
</Image>
</Body>
</SuccessResponse>
Java
{
"SuccessResponse": {
"Head": {
"RequestId": "",
"RequestAction": "MigrateImage",
"ResponseType": "Image",
"Timestamp": "2016-08-25T11:23:29+0000"
},
"Body": {
"Image": {
"Url":
"https//sg.s.alibaba.lzd.co/original/1e8bb2499d38084ffe31f155c68e0d1f.jp
g",
"Code": "1e8bb2499d38084ffe31f155c68e0d1f"
}
}
}
}
Error messages
901 E901: The request is too frequent, or the requested functionality is temporarily
disabled.
MigrateImages
Definition [POST]
Use this call to migrate multiple images from an external site to Daraz site. Allowed image formats are JPG and PNG. The maximum size of an
image file is 1MB. A single call can migrate 8 images at most.
Parameters
Field Type Description
Format string The response format, with XML as the default. Can be XML or JSON. Optional.
Timestamp datetime The current time in ISO8601 format (e.g., Timestamp=2016-04-01T10:00:00+02:00 for Berlin).
Mandatory.
Version string The API version against which this call is to be executed. The current version is "1.0". Mandatory.
Signature string The cryptographic signature, authenticating the request. You must create this value by computing
the SHA256 hash of the request, using the API key of the user specified in the UserID parameter.
Mandatory.
The code sample, response, and result sample are similar with those of the MigrateImage call.
Error messages
901 E901: The request is too frequent, or the requested functionality is temporarily
disabled.
GetResponse
Definition [POST]
Use this call to get the returned information from the system for the UploadImages and MigrateImages API.
Request URI: https://api.sellercenter.daraz.pk/?Action=GetResponse
Format string The response format, with XML as the default. Can be XML or JSON. Optional.
Timestamp datetime The current time in ISO8601 format (e.g., Timestamp=2016-04-01T10:00:00+02:00 for Berlin).
Mandatory.
Version string The API version against which this call is to be executed. The current version is "1.0". Mandatory.
Signature string The cryptographic signature, authenticating the request. You must create this value by computing
the SHA256 hash of the request, using the API key of the user specified in the UserID parameter.
Mandatory.
Code sample
Text
Request body
Enter the request ID from the UploadImages or MigrateImages API call in the request body.
XML
Result format
JSON
{
"SuccessResponse": {
"Head": {
"RequestId": "",
"RequestAction": "GetResponse",
"ResponseType": "Images",
"Timestamp": "2016-08-26T06:57:26+0000"
},
"Body": {
"Warnings": []
}
}
}
Error messages
GetBrands
Definition [GET]
Format string The response format, with XML as the default. Can be XML or JSON. Optional.
Timestamp datetime The current time in ISO8601 format (e.g., Timestamp=2016-04-01T10:00:00+02:00 for Berlin).
Mandatory.
Version string The API version against which this call is to be executed. The current version is "1.0". Mandatory.
Signature string The cryptographic signature, authenticating the request. You must create this value by computing
the SHA256 hash of the request, using the API key of the user specified in the UserID parameter.
Mandatory.
Limit integer The maximum number of brands that can be returned. If you omit this parameter, the default of 100
is used. The Maximum is 1,000.
Offset integer Number of brands to skip (i.e., an offset into the result set; together with the Limit parameter,
simple result set paging is possible; if you do page through results, note that the list of brands might
change during paging).
Code sample
Text
Response
GlobalIdentifier string A unique string identifier for the brand across different systems. For example: ADIDAS, NIKE,
APPLE.
Result sample
{
"SuccessResponse": {
"Head": {
"RequestAction": "GetBrands",
"ResponseType": "Brands",
"Timestamp": "2015-07-01T11:11:11+0000"
},
"Body": {
"Brands": [
{
"BrandId": "1",
"Name": "Commodore",
"GlobalIdentifier": "commodore"
},
{
"BrandId": "2",
"Name": "Atari"
}
]
}
}
}
Error messages
No specific errors.
CreateProduct
Before creating a product via API, it is helpful to understand the content data structure.
The highest level of an SKU is SPU. A product inherits attributes from the SPU, and the SKU inherits attributes from the product.
The difference between an SKU and its product is the SKU attributes (which are mandatory) fields when you create your request.
Definition
Use this call to create a new product. One item may contain at lest one SKU which has 8 images. This API does not support creating multiple
products in one request.
Parameters
Please note that SKU attributes are mandatory for all products created.
Format string The response format, with XML as the default. Can be XML or JSON. Optional.
Timestamp datetime The current time in ISO8601 format (e.g., Timestamp=2016-04-01T10:00:00+02:00 for Berlin).
Mandatory.
Version string The API version against which this call is to be executed. The current version is "1.0". Mandatory.
Signature string The cryptographic signature, authenticating the request. You must create this value by computing
the SHA256 hash of the request, using the API key of the user specified in the UserID parameter.
Mandatory.
Code sample
Text
Business parameters
The following tables list the parameters that are required for creating a product.
PrimaryCategory integer The ID of the primary category for the product. To get the ID for each of the system's
categories, call GetCategoryTree. Mandatory. It's optional if 'AssociatedSku' is provided.
AssociatedSku string The unique identifier of a product that is already in the system, with which this product
should be associated. Optional
Attributes subsection All common attributes of products. Mandatory. It's optional if 'AssociatedSku' is provided.
You can use 'AssociatedSku' if you want to add some SKUs to an existing product. For example, an existing product (Maxi dress) with 3 SKUs
(for size S, M, L). SellerSkus are dress-001, dress-002, dress-003.
You can add SKU via the CreateProduct API by specifying dress-001, dress-002, or dress-003 in the <AssociatedSku> tag.
The content of the 'Attributes" fields are dynamic. To view all available attributes, call the GetCategoryAttributes API. The following table provides
some examples.
name string Name of the product as shown to the customers. Mandatory. Must be between 2 to 255
characters. If this attribute in SPU you used, it becomes not required.
description string Description of the product, as shown to the customers (6 to 25000 characters). Certain
HTML tags are supported, but must be escaped as character data (see Guide for
Creating Products for the list of supported HTML tags]). Optional
SellerSku string A unique identifier for the product within the Seller Center instance that is to be added to the
system. This identifier is usually freely assigned. Harmonized identifiers, such as UPC or EAN
can be set via ProductId. Mandatory
price decimal The product price. Not really a Double, but a Decimal. Mandatory
quantity integer The current level of inventory for this product. Optional
special_price decimal The (hopefully reduced) price for the product while it is on sale. If special_price is specified,
either special_from_date or special_to_date must be given; vice versa, if at least one of
special_from_date or special_to_date is specified, special_price is mandatory. Not really a
Double, but a Decimal.
special_from_date datetime Time and date when the product goes on sale. If passed in, special_price becomes mandatory.
The value of 'Time' is accepted in intervals of 15 mins. (For ex: 2017-07-15 18:23 will be
converted to 2017-07-15 18:15)
special_to_date datetime Time and date when the sale of the product ends. If passed in, special_price becomes
mandatory. The value of 'Time' is accepted in intervals of 15 mins. (For ex: 2017-07-15 18:23
will be converted to 2017-07-15 18:15)
Image string The image URL. You can set at most 8 images for an SKU. The first image will be used as Mai
nImage. Optional. Use the UploadImages or MigrateImages call to get the image URLs. This
will ensure the success rate of creating products.
Request body
XML
<Image>http://sg.s.alibaba.lzd.co/original/59046bec4d53e74f8ad38d1939920
5e6.jpg</Image>
<Image>http://sg.s.alibaba.lzd.co/original/179715d3de39a1918b19eec3279dd
482.jpg</Image>
</Images>
</Sku>
<Sku>
<SellerSku>api-create-test-2</SellerSku>
<color_family>Green</color_family>
<size>41</size>
<quantity>2</quantity>
<price>520.88</price>
<package_length>11</package_length>
<package_height>22</package_height>
<package_weight>33</package_weight>
<package_width>44</package_width>
<package_content>this is what's in the
box</package_content>
<Images>
<Image>http://sg.s.alibaba.lzd.co/original/59046bec4d53e74f8ad38d1939920
5e6.jpg</Image>
<Image>http://sg.s.alibaba.lzd.co/original/179715d3de39a1918b19eec3279dd
482.jpg</Image>
</Images>
</Sku>
</Skus>
</Product>
</Request>
Java
//construct SKUs
List<Map<String, Object>> skusList = new ArrayList<>();
Map<String, Object> sku1 = new HashMap<String, Object>();
sku1.put("SellerSku", "yucheng-test-sku-2017020305");
sku1.put("package_height", 11.1);
sku1.put("short_description", "yucheng CreateProduct test");
sku1.put("package_width", 5.9);
sku1.put("tax_class", "default");
sku1.put("package_content", "empty");
sku1.put("package_weight", 11.9);
sku1.put("package_length", 19.3);
sku1.put("color_family", "Blue");
sku1.put("storage_capacity_new", "128G");
skusList.add(sku1);
Result sample
JSON
{
"SuccessResponse": {
"Head": {
"RequestId": "",
"RequestAction": "CreateProduct",
"ResponseType": "Product",
"Timestamp": "2016-08-26T06:57:26+0000"
},
"Body": {
"Warnings": []
}
}
}
JSON
{
"ErrorResponse": {
"Head": {
"RequestAction": "CreateProduct",
"ErrorType": "Platform",
"ErrorCode": 500,
"ErrorMessage": "E500: Create product failed"
},
"Body": {
"Errors": [
{
"Field": "SellerSku",
"Message": "[SELLER_SKU_IS_EXIST]"
}
]
}
}
}
Error messages
901 E901: The request is too frequent, or the requested functionality is temporarily
disabled.
SetImages
Definition [POST]
Use this call to set the images for an existing product by associating one or more image URLs with it. System supports a maximum of 100
SellerSkus in one request. The first image passed in becomes the default image of the product. There is a hard limit of at most 8 images per SKU.
You can also use the UpdateProduct call to set images.
Parameters
Format string The response format, with XML as the default. Can be XML or JSON. Optional.
Timestamp datetime The current time in ISO8601 format (e.g., Timestamp=2016-04-01T10:00:00+02:00 for Berlin).
Mandatory.
Version string The API version against which this call is to be executed. The current version is "1.0". Mandatory.
Signature string The cryptographic signature, authenticating the request. You must create this value by computing
the SHA256 hash of the request, using the API key of the user specified in the UserID parameter.
Mandatory.
Code sample
Text
Java
"http://id-live-03.slatic.net//cms/banners2016/112016/sbd4.jpg"));
sku2Images.put("100024305",
Arrays.asList("http://id-live-03.slatic.net//cms/banners2016/112016/sbd-
banner-2.jpg"));
Request body
XML
If you want to remove some images, remove the <Image> tags with the image URLs. See the following example.
XML
Response
SellerSku string A unique identifier for the product within the Seller Center instance that is to be added to the
system. This identifier is usually freely assigned. Harmonized identifiers, such as UPC or EAN can
be set via ProductId. Mandatory
Result sample
JSON
{
"SuccessResponse": {
"Head": {
"RequestId": "",
"RequestAction": "SetImages",
"ResponseType": "Product",
"Timestamp": "2016-08-26T06:57:26+0000"
},
"Body": {
"Warnings": []
}
}
}
Error messages
Definition [GET]
Parameters
Format string The response format, with XML as the default. Can be XML or JSON. Optional.
Timestamp datetime The current time in ISO8601 format (e.g., Timestamp=2016-04-01T10:00:00+02:00 for Berlin).
Mandatory.
Version string The API version against which this call is to be executed. The current version is "1.0". Mandatory.
Signature string The cryptographic signature, authenticating the request. You must create this value by computing
the SHA256 hash of the request, using the API key of the user specified in the UserID parameter.
Mandatory.
CreatedAfter datetime Limits the returned products to those created after or on the specified date, given in ISO 8601
date format. Optional
CreatedBefore datetime Limits the returned products to those created before or on the specified date, given in ISO 8601
date format. Optional
UpdatedAfter datetime Limits the returned products to those updated after or on the specified date, given in ISO 8601
date format. Optional
UpdatedBefore datetime Limits the returned product list to those updated before or on a specified date, given in ISO 8601
date format. Optional
Search string Returns the products with the search string contained in the product name and/or Seller SKU.
Filter string Returns the products with the status matching this parameter. Possible values are all, live,
inactive, deleted, image-missing, pending, rejected, sold-out. Mandatory
Limit integer The maximum number of products that can be returned. If no value is specified, use 20 as
default. The maximum number of products returned by a single call is 500 (this is the default hard
limit, which can be changed per instance). If you need to retrieve more products than that, you
have to page through the result set using the Offset parameter.
Options integer This value can be used to get more stock information. e.g., Options=1 means contain
ReservedStock, RtsStock, PendingStock, RealTimeStock, FulfillmentBySellable.
Offset integer Number of products to skip (i.e., an offset into the result set; together with the Limit parameter,
simple result set paging is possible; if you do page through results, note that the list of products
might change during paging).
SkuSellerList array of strings Only products that have the Seller SKU in this list will be returned. Input should be a JSON array.
For example, ["Apple 6S Gold", "Apple 6S Black"]. It only matches the whole words.
Code sample
Text
Java
//construct request
//query without filter condition
GetProducts request = new GetProducts();
/*
query with one or more filter conditon(s)
ProductsFilter filter = new ProductsFilter();
filter.createdBefore(new Date(117, 0, 26, 0, 0));
filter.search("ASC Test");
GetProducts request = new GetProducts(filter);
*/
try {
GetProductsResponse response = request.execute();
List<Product> products = response.getBody();
} catch (DarazException e) {
e.printStackTrace();
}
Response
The returned results and their type and description are as follows.
PrimaryCategory integer The ID of the primary category for his product. To get the ID for all categories, call
GetCategoryTree. Optional
Timestamp datetime The current time in ISO8601 format (e.g., Timestamp=2016-04-01T10:00:00+02:00 for
Berlin). Mandatory.
name string The name of the product as shown to the customers. Mandatory. Must be between 2 to 255
characters.
short_description string The description of the product, as shown to the customers (6 to 25000 characters).
Embedding certain HTML tags is allowed, but must be escaped as character data (see
below). Optional
The following table lists some example fields in 'Sku'. You can also get all the attributes by call GetCategoryAttributes.
SellerSku string A unique identifier for the product within the Seller Center instance that is to be added to
the system. This identifier is usually freely assigned. Harmonized identifiers, such as UPC
or EAN can be set via ProductId. Mandatory
ShopSku string The ID of SKU in Shop when product is synchronized to shop. Optional
Status string One of the following values: 'active', 'inactive' or 'deleted'. Optional. The default value is
'active'.
price decimal The product price. Not really a Double, but a Decimal. Optional
quantity integer The current level of inventory for this product. Optional
ReservedStock integer The stock reserved for pending orders in Seller Center. Optional
RealTimeStock integer The stock reserved for pending orders in the Shop not imported in Seller Center yet.
Optional
special_price decimal The (hopefully reduced) price for the product while it is on sale. If SalePrice is specified,
either SaleStartDate or SaleEndDate must be given; Vice versa, if at least one of
SaleStartDate or SaleEndDate is specified, SalePrice is mandatory. Not really a Double, but
a Decimal.
special_from_date date Date when special price will become applicable
special_from_time datetime Date and time when special price will become applicable. The date given under this tag
should be the same as that in 'special_from_date'
special_to_time datetime Date and time till when special price is applicable. The date given under this tag should be
same as in 'special_to_date'
You can set at most 8 images for one SKU. The first image will be used as MainImage.
Result sample
XML
<Url>http://daraz.pk/(Telco-Set)-Apple-iPhone-6s-Plus-16GB-(Space-Gray)-
8250708.html</Url>
<Status>inactive</Status>
<Available>5</Available>
<special_to_date>2018-05-01</special_to_date>
<price>1288.0</price>
<special_from_date>2016-05-13</special_from_date>
<quantity>5</quantity>
<special_price>1173.85</special_price>
<operating_system>iOS</operating_system>
<Images>
<Image/>
<Image>http://sg-live-01.slatic.net//p/telco-set-apple-iphone-6s-plus-16
gb-space-gray-3191-1425247-d10a8dd02929aacc84b03be2317a7175-catalog.jpg<
/Image>
<Image/>
<Image/>
<Image/>
<Image/>
<Image/>
<Image/>
</Images>
</Sku>
</Skus>
</Product>
</Products>
</Body>
</SuccessResponse>
JSON
{
"SuccessResponse": {
"Head": {
"RequestId": "",
"RequestAction": "GetProducts",
"ResponseType": "Product",
"Timestamp": "2016-08-25T11:30:27+0000"
},
"Body": {
"Products": [
{
"PrimaryCategory": 3,
"Attributes": {
"name": "(Telco Set) Apple iPhone 6s Plus 16GB
(Space Gray)",
"short_description": "<div
class=\"prod_content\">\n <div class=\"prod_details\">\n
<ul class=\"prd-attributesList ui-listBulleted\"><li
class=\"\"><b><span>5.5\" Retina HD Display with 3D
Touch </span></b></li><li class=\"\"><b><span>Fingerprint-resistant
oleophobic coating </span></b></li><li class=\"\"><b><span>A9 chip with
64-bit architecture </span></b></li><li class=\"\"><b><span>Ultrafast 4G
LTE Advanced wireless </span></b></li><li class=\"\"><b><span>New
12-megapixel iSight camera </span></b></li><li class=\"\"><b><span>4k
video recording </span></b></li><li class=\"\"><b><span>iOS 9 with Touch
ID and Apple Pay</span></b></li></ul> </div>\n
</div>",
"brand": "Bean Rester",
"model": "iPhone 6s Plus 16GB (Space Gray)",
"condition": "New",
"warranty_type": "Local (Singapore) manufacturer
warranty",
"warranty": "11 Months"
},
"Skus": [
{
"ShopSku": "BE494ELAA4WUACANID-9625124",
"Status": "inactive",
"Url":
"http://alice.sg.alibaba.lzd.co/(Telco-Set)-Apple-iPhone-6s-Plus-16GB-(S
pace-Gray)-8250708.html",
"Available": 5,
"special_to_date": "2018-05-01",
"price": "1288.0",
"special_from_date": "2016-05-13",
"quantity": "5",
"SellerSku": "(Telco Set) Apple iPhone 6s
Plus 16GB Space Gray",
"special_price": "1173.85",
"operating_system": "iOS",
"Images": [
"",
"http://sg-live-01.slatic.net//p/telco-set-apple-iphone-6s-plus-16gb-spa
ce-gray-3191-1425247-d10a8dd02929aacc84b03be2317a7175-catalog.jpg",
"",
"",
"",
"",
"",
""
]
}
]
},
{
"PrimaryCategory": 3,
"ShopSku": "BE494ELAA4WUA2ANID-9625114",
"Status": "inactive",
"Url":
"http://alice.sg.alibaba.lzd.co/(Telco-Set)-Apple-iPhone-6s-Plus-64GB-(G
old)---8250698.html",
"Available": 5,
"Attributes": {
"name": "(Telco Set) Apple iPhone 6s Plus 64GB
(Gold) ",
"short_description": "<div
class=\"prod_content\">\n <div class=\"prod_details\">\n
<ul class=\"prd-attributesList ui-listBulleted\"><li
class=\"\"><b><span>5.5\" Retina HD Display with 3D
Touch </span></b></li><li class=\"\"><b><span>Fingerprint-resistant
oleophobic coating </span></b></li><li class=\"\"><b><span>A9 chip with
64-bit architecture </span></b></li><li class=\"\"><b><span>Ultrafast 4G
LTE Advanced wireless </span></b></li><li class=\"\"><b><span>New
12-megapixel iSight camera </span></b></li><li class=\"\"><b><span>4k
video recording </span></b></li><li class=\"\"><b><span>iOS 9 with Touch
ID and Apple Pay</span></b></li></ul> </div>\n
</div>",
"brand": "Bean Rester",
"model": "iPhone 6s Plus 64GB (Gold) ",
"condition": "New",
"warranty_type": "Local (Singapore) manufacturer
warranty",
"warranty": "11 Months"
},
"Skus": [
{
"special_to_date": "2018-05-01",
"price": "1558.0",
"special_from_date": "2016-05-13",
"quantity": "5",
"SellerSku": "(Telco Set) Apple iPhone 6s
Plus 64GB Gold",
"special_price": "1287.95",
"operating_system": "iOS",
"Images": [
"",
"http://sg-live-01.slatic.net//p/telco-set-apple-iphone-6s-plus-64gb-gol
d-3654-5425247-cc1f1de5663d894bf8e19b95666f832d-catalog.jpg",
"",
"",
"",
"",
"",
""
]
}
]
}
]
}
}
}
Error messages
901 E901: The request is too frequent, or the requested functionality is temporarily
disabled.
Note
The list of products may change while paging through it using multiple calls with a changing Offset parameter.
UpdateProduct
Definition [POST]
Use this call to update attributes or SKUs of an existing product. Note that one request can update only 1 product.
Note: The following fields cannot be updated with the UpdateProduct call:
Parameters
Format string The response format, with XML as the default. Can be XML or JSON. Optional.
Timestamp datetime The current time in ISO8601 format (e.g., Timestamp=2016-04-01T10:00:00+02:00 for Berlin).
Mandatory.
Version string The API version against which this call is to be executed. The current version is "1.0". Mandatory.
Signature string The cryptographic signature, authenticating the request. You must create this value by computing
the SHA256 hash of the request, using the API key of the user specified in the UserID parameter.
Mandatory.
Code sample
Text
//construct SKUs
List<Map<String, Object>> skusList = new ArrayList<>();
Map<String, Object> sku1 = new HashMap<String, Object>();
sku1.put("SellerSku", "yucheng-test-sku-2017020305");
sku1.put("package_height", 11.3);
sku1.put("storage_capacity_new", "128G");
skusList.add(sku1);
Request body
XML
<Image>http://sg.s.alibaba.lzd.co/original/59046bec4d53e74f8ad38d1939920
5e6.jpg</Image>
<Image>http://sg.s.alibaba.lzd.co/original/179715d3de39a1918b19eec3279dd
482.jpg</Image>
<Image>http://sg.s.alibaba.lzd.co/original/e2ae2b41afaf310b51bc5764c1730
6cd.jpg</Image>
</Images>
</Sku>
</Skus>
</Product>
</Request>
Response
PrimaryCategory integer The ID of the primary category for this product. To get the ID of all categories, call
GetCategoryTree. Optional
Attributes subsection All common attributes of products. Mandatory. It's optional if 'AssociatedSku' is provided.
Some example fields in 'Attributes' are as follows. These attributes are dynamic. For the list of all attributes, call API GetCategoryAttributes.
description string Description of the product, as shown to the customers (6 to 25000 characters).
Embedding certain HTML tags is allowed, but must be escaped as character data (see
below). Optional
SellerSku string A unique identifier for the product within the Seller Center instance that is to be added to the
system. This identifier is usually freely assigned. Harmonized identifiers, such as UPC or EAN
can be set via ProductId. Mandatory
price decimal The product price. Not really a Double, but a Decimal. Mandatory
quantity integer The current level of inventory for this product. Optional
special_price decimal The (hopefully reduced) price for the product while it is on sale. If special_price is specified,
either special_from_date or special_to_date must be given; vice versa, if at least one of
special_from_date or special_to_date is specified, special_price is mandatory. Not really a
Double, but a Decimal. Optional
special_from_date datetime Time and date when the product goes on sale. If passed in, special_price becomes mandatory.
The value of 'Time' is accepted in intervals of 15 mins. (For ex: 2017-07-15 18:23 will be
converted to 2017-07-15 18:15)
special_to_date datetime Time and date when the sale of the product ends. If passed in, special_price becomes
mandatory. The value of 'Time' is accepted in intervals of 15 mins. (For ex: 2017-07-15 18:23
will be converted to 2017-07-15 18:15)
Image string The image URL. You can set at most 8 images for an SKU. The first image will be used as Mai
nImage. Optional. Use the UploadImages or MigrateImages call to get the image URLs. This
will ensure the success rate of creating products.
Result sample
A success example is as follows.
XML
JSON
{
"SuccessResponse": {
"Head": {
"RequestId": "",
"RequestAction": "UpdateProduct",
"ResponseType": "Product",
"Timestamp": "2016-07-07T20:12:14+0700"
},
"Body": {
"Warnings": []
}
}
}
Error messages
901 E901: The request is too frequent, or the requested functionality is temporarily
disabled.
UpdatePriceQuantity
Definition [GET]
Use this call to update the price and quantity of one or more existing products. The maximum number of products that can be updated is 50, but
20 is recommended.
Note
A price update of greater than 80% or more of the previous price will result in the product going back to QC.
Parameters
Timestamp datetime The current time in ISO8601 format (e.g., Timestamp=2016-04-01T10:00:00+02:00 for Berlin).
Mandatory.
Version string The API version against which this call is to be executed. The current version is "1.0". Mandatory.
Signature string The cryptographic signature, authenticating the request. You must create this value by computing
the SHA256 hash of the request, using the API key of the user specified in the UserID parameter.
Mandatory.
Code sample
Text
Request body
XML
Business parameters
The request data is composed of the Skus collection, recursively containing Sku resources, each of them contain the following fields.
SellerSku string A unique identifier for the product within the Seller Center instance that is to be added to the
system. This identifier is usually freely assigned. Harmonized identifiers, such as UPC or
EAN can be set via ProductId. Mandatory
Quantity integer The current level of inventory for this product. Optional
Price decimal The product price. Not really a Double, but a Decimal. Optional
SalePrice decimal The (hopefully reduced) price for the product while it is on sale. If SalePrice is specified,
either SaleStartDate or SaleEndDate must be given; vice versa, if at least one of
SaleStartDate or SaleEndDate is specified, SalePrice is mandatory. Not really a Double, but
a Decimal. Optional
SaleStartDate datetime Time and date when the product goes on sale. If passed in, SalePrice becomes mandatory.
The value of 'Time' is accepted in intervals of 15 mins. (For ex: 2017-07-15 18:23 will be
converted to 2017-07-15 18:15)
SaleEndDate datetime Time and date when the product sale ends. If passed in, SalePrice becomes mandatory.
The value of 'Time' is accepted in intervals of 15 mins. (For ex: 2017-07-15 18:23 will be
converted to 2017-07-15 18:15)
Result sample
JSON
{
"SuccessResponse": {
"Head": {
"RequestId": "",
"RequestAction": "UpdatePriceQuantity",
"ResponseType": "Product",
"Timestamp": "2016-07-07T20:12:14+0700"
},
"Body": {
"Warnings": []
}
}
}
Error messages
If you receive internal errors while trying to update the price and quantity, it may be because your product data has not been updated properly and
it has some mandatory fields not updated. Try the UpdateProduct call and then the UpdatePriceQuantity call.
901 E901: The request is too frequent, or the requested functionality is temporarily
disabled.
1000 Internal Application Error
GetOrder
Definition [GET]
Use this call to get the order details for a single order. It is different from GetOrders, which gets the customer details of multiple orders.
Parameters
Format string The response format, with XML as the default. Can be XML or JSON. Optional.
Timestamp datetime The current time in ISO8601 format (e.g., Timestamp=2016-04-01T10:00:00+02:00 for Berlin).
Mandatory.
Version string The API version against which this call is to be executed. The current version is "1.0". Mandatory.
Signature string The cryptographic signature, authenticating the request. You must create this value by computing the
SHA256 hash of the request, using the API key of the user specified in the UserID parameter.
Mandatory.
OrderId long The identifier that was assigned to the order by the Seller Center.
Code sample
Text
Response
CreatedAt datetime Date and time when the order was placed.
UpdatedAt datetime Date and time of the last change to the order.
AddressBilling subsection Node that contains additional nodes, which makes up the billing address:
FirstName, LastName, Phone, Phone2, Address1, Address2, City,
PostCode, and Country.
AddressShipping subsection Node that contains additional nodes, which makes up the shipping address:
FirstName, LastName, Phone, Phone2, Address1, Address2, City,
PostCode, and Country.
ExtraAttributes string Extra attributes which were passed to the Seller Center on
getMarketPlaceOrders call.
Statuses array Unique status of the items in the order (hint: you can find all of the different
status codes in the response example).
TaxCode string (For Thailand and Vietnam only) The customer's VAT tax code, provided by
the customer when placing the order.
BranchNumber string (For Thailand only) The tax branch code for corporate customers, provided
by the customer when placing the order.
Result sample
XML
<CustomerEmail>[email protected]</CustomerEmail>
<City>Configure city</City>
<Ward/>
<Region/>
<PostCode>33333</PostCode>
<Country>Pakistan</Country>
</AddressBilling>
<AddressShipping>
<FirstName>??????? ???????????</FirstName>
<LastName/>
<Phone>0925090880</Phone>
<Phone2/>
<Address1>121 ???? 4 </Address1>
<Address2>?????????????????</Address2>
<Address3/>
<Address4/>
<Address5/>
<CustomerEmail>[email protected]</CustomerEmail>
<City>?????????????-??????-10400</City>
<Ward/>
<Region/>
<PostCode>10400</PostCode>
<Country>Pakistan</Country>
</AddressShipping>
<NationalRegistrationNumber/>
<ItemsCount>12</ItemsCount>
<ExtraAttributes>{"TaxInvoiceRequested":"true"}</ExtraAttributes>
<Statuses>
<Status>shipped</Status>
<Status>returned</Status>
<Status>return_waiting_for_approval</Status>
<Status>return_shipped_by_customer</Status>
<Status>return_rejected</Status>
<Status>ready_to_ship</Status>
<Status>processing</Status>
<Status>pending</Status>
<Status>failed</Status>
<Status>delivered</Status>
<Status>canceled</Status>
</Statuses>
<TaxCode>1234</TaxCode>
<BranchNumber>2222</BranchNumber>
</Order>
</Orders>
</Body>
</SuccessResponse>
Error messages
GetOrders
Definition
Use this call to get the customer details for a range of orders.
Parameters
Format string The response format, with XML as the default. Can be XML or JSON. Optional.
Timestamp datetime The current time in ISO8601 format (e.g., Timestamp=2016-04-01T10:00:00+02:00 for Berlin).
Mandatory.
Version string The API version against which this call is to be executed. The current version is "1.0". Mandatory.
Signature string The cryptographic signature, authenticating the request. You must create this value by computing
the SHA256 hash of the request, using the API key of the user specified in the UserID parameter.
Mandatory.
CreatedAfter datetime Limits the returned orders to those created after or on the specified date, given in ISO 8601 date
format. Either CreatedAfter or UpdatedAfter is mandatory.
CreatedBefore datetime Limits the returned orders to those created before or on the specified date, given in ISO 8601 date
format. Optional
UpdatedAfter datetime Limits the returned orders to those updated after or on the specified date, given in ISO 8601 date
format. Either UpdatedAfter or CreatedAfter is mandatory.
UpdatedBefore datetime Limits the returned orders to those updated before or on the specified date, given in ISO 8601
date format. Optional.
Limit integer The maximum number of orders that can be returned. The supported maximum number is 100.
Offset integer Number of orders to skip at the beginning of the list (i.e., an offset into the result set; together with
the Limit parameter, simple result set paging is possible; if you do page through results, note that
the list of orders might change during paging).
Status string When set, limits the returned set of orders to loose orders, which return only entries which fit the
status provided. Possible values are pending, canceled, ready_to_ship, delivered, returned,
shipped and failed.
SortBy string Allows to choose the sorting column. Possible values are created_at and updated_at.
SortDirection string Specify the sorting type. Possible values are ASC and DESC.
Code sample
Text
Java
Response
CreatedAt datetime Date and time when the order was placed.
UpdatedAt datetime Date and time of the last change to the order.
AddressBilling subsection Node that contains additional nodes, which makes up the billing address:
FirstName, LastName, Phone, Phone2, Address1, Address2, City, PostCode,
and Country.
AddressShipping subsection Node that contains additional nodes, which makes up the shipping address:
FirstName, LastName, Phone, Phone2, Address1, Address2, City, PostCode,
and Country.
Statuses array Unique status of the items in the order. (hint: you can find all of the different
status codes in the response example)
PromisedShippingTimes datetime Target shipping time for the soonest order item if they are available.
ExtraAttributes string Extra attributes which were passed to the Seller Center on
getMarketPlaceOrders call.
TaxCode string The customer's VAT tax code, provided by the customer when placing the
order.
BranchNumber string The tax branch code for corporate customers, provided by the customer
when placing the order.
Result sample
XML
<ExtraAttributes>{"TaxInvoiceRequested":"true"}</ExtraAttributes>
<Statuses>
<Status>shipped</Status>
<Status>returned</Status>
<Status>return_waiting_for_approval</Status>
<Status>return_shipped_by_customer</Status>
<Status>return_rejected</Status>
<Status>ready_to_ship</Status>
<Status>processing</Status>
<Status>pending</Status>
<Status>failed</Status>
<Status>delivered</Status>
<Status>canceled</Status>
</Statuses>
<Voucher>0</Voucher>
<ShippingFee>0</ShippingFee>
<TaxCode>1234</TaxCode>
<BranchNumber>2222</BranchNumber>
</Order>
</Orders>
</Body>
</SuccessResponse>
Error messages
GetOrderItems
Definition
Parameters
Format string The response format, with XML as the default. Can be XML or JSON. Optional.
Timestamp datetime The current time in ISO8601 format (e.g., Timestamp=2016-04-01T10:00:00+02:00 for Berlin).
Mandatory.
Version string The API version against which this call is to be executed. The current version is "1.0". Mandatory.
Signature string The cryptographic signature, authenticating the request. You must create this value by computing the
SHA256 hash of the request, using the API key of the user specified in the UserID parameter.
Mandatory.
OrderId long The identifier that was assigned to the order by the Seller Center.
Code sample
Text
Java
Response
UpdatedAt datetime Time of the feed's last update in ISO 8601 format
Result sample
XML
<SuccessResponse>
<Head>
<RequestId>0a14301714882890309732151e</RequestId>
<RequestAction>GetOrderItems</RequestAction>
<ResponseType>OrderItems</ResponseType>
<Timestamp>2017-02-28T21:37:11+08:00</Timestamp>
</Head>
<Body>
<OrderItems>
<OrderItem>
<OrderItemId>100967189</OrderItemId>
<ShopId>migrationtest2</ShopId>
<OrderId>100663397</OrderId>
<Name>Test please do not shoot a sku</Name>
<Sku>545252329001-3452605530003</Sku>
<ShopSku>OE702FAAA7HM6ASGAMZ-14920937</ShopSku>
<ShippingType>Dropshipping</ShippingType>
<ItemPrice>4.40</ItemPrice>
<PaidPrice>4.40</PaidPrice>
<Currency>SGD</Currency>
<WalletCredits>0.00</WalletCredits>
<TaxAmount>0.00</TaxAmount>
<ShippingAmount>1.00</ShippingAmount>
<ShippingServiceCost>0</ShippingServiceCost>
<VoucherAmount>0.00</VoucherAmount>
<VoucherCode>
</VoucherCode>
<Status>pending</Status>
<ShipmentProvider>LGS-FM50</ShipmentProvider>
<IsDigital>0</IsDigital>
<DigitalDeliveryInfo>
</DigitalDeliveryInfo>
<TrackingCode>LZD5000000000311SG</TrackingCode>
<TrackingCodePre>
</TrackingCodePre>
<Reason>
</Reason>
<ReasonDetail>
</ReasonDetail>
<PurchaseOrderId>1981744</PurchaseOrderId>
<PurchaseOrderNumber>MPDS-M170861324375076219444</PurchaseOrderNumber>
<PackageId>MPDS-303172379-1927</PackageId>
<PromisedShippingTime>
</PromisedShippingTime>
<ExtraAttributes>null</ExtraAttributes>
<ShippingProviderType>standard</ShippingProviderType>
<CreatedAt>2017-02-26 15:52:00</CreatedAt>
<UpdatedAt>2017-02-28 21:35:04</UpdatedAt>
<ReturnStatus>
</ReturnStatus>
<productMainImage>http://sg-live-02.slatic.net/p/7/test-please-do-not-sh
oot-a-sku-3703-20297521-a6ee04ac9d93d572c22b92d3a3a00afa-catalog.jpg</pr
oductMainImage>
<Variation>Not Specified</Variation>
<ProductDetailUrl>http://www.daraz.pk/12579202.html</ProductDetailUrl>
</OrderItem>
<OrderItem>
<OrderItemId>100967191</OrderItemId>
<ShopId>migrationtest2</ShopId>
<OrderId>100663397</OrderId>
<Name>Test please do not shoot a sku</Name>
<Sku>545252329001-3452605530003</Sku>
<ShopSku>OE702FAAA7HM6ASGAMZ-14920937</ShopSku>
<ShippingType>Dropshipping</ShippingType>
<ItemPrice>4.40</ItemPrice>
<PaidPrice>4.40</PaidPrice>
<Currency>SGD</Currency>
<WalletCredits>0.00</WalletCredits>
<TaxAmount>0.00</TaxAmount>
<ShippingAmount>1.00</ShippingAmount>
<ShippingServiceCost>0</ShippingServiceCost>
<VoucherAmount>0.00</VoucherAmount>
<VoucherCode>
</VoucherCode>
<Status>pending</Status>
<ShipmentProvider>LGS-FM50</ShipmentProvider>
<IsDigital>0</IsDigital>
<DigitalDeliveryInfo>
</DigitalDeliveryInfo>
<TrackingCode>LZD5000000000311SG</TrackingCode>
<TrackingCodePre>
</TrackingCodePre>
<Reason>
</Reason>
<ReasonDetail>
</ReasonDetail>
<PurchaseOrderId>1981744</PurchaseOrderId>
<PurchaseOrderNumber>MPDS-M170861324375076219444</PurchaseOrderNumber>
<PackageId>MPDS-303172379-1927</PackageId>
<PromisedShippingTime>
</PromisedShippingTime>
<ExtraAttributes>null</ExtraAttributes>
<ShippingProviderType>standard</ShippingProviderType>
<CreatedAt>2017-02-26 15:52:00</CreatedAt>
<UpdatedAt>2017-02-28 21:35:04</UpdatedAt>
<ReturnStatus>
</ReturnStatus>
<productMainImage>http://sg-live-02.slatic.net/p/7/test-please-do-not-sh
oot-a-sku-3703-20297521-a6ee04ac9d93d572c22b92d3a3a00afa-catalog.jpg</pr
oductMainImage>
<Variation>Not Specified</Variation>
<ProductDetailUrl>http://www.daraz.pk/12579202.html</ProductDetailUrl>
</OrderItem>
<OrderItem>
<OrderItemId>100967192</OrderItemId>
<ShopId>migrationtest2</ShopId>
<OrderId>100663397</OrderId>
<Name>Test please do not shoot a sku</Name>
<Sku>545252329001-3452605530003</Sku>
<ShopSku>OE702FAAA7HM6ASGAMZ-14920937</ShopSku>
<ShippingType>Dropshipping</ShippingType>
<ItemPrice>4.40</ItemPrice>
<PaidPrice>4.40</PaidPrice>
<Currency>SGD</Currency>
<WalletCredits>0.00</WalletCredits>
<TaxAmount>0.00</TaxAmount>
<ShippingAmount>1.00</ShippingAmount>
<ShippingServiceCost>0</ShippingServiceCost>
<VoucherAmount>0.00</VoucherAmount>
<VoucherCode>
</VoucherCode>
<Status>pending</Status>
<ShipmentProvider>LGS-FM50</ShipmentProvider>
<IsDigital>0</IsDigital>
<DigitalDeliveryInfo>
</DigitalDeliveryInfo>
<TrackingCode>LZD5000000000311SG</TrackingCode>
<TrackingCodePre>
</TrackingCodePre>
<Reason>
</Reason>
<ReasonDetail>
</ReasonDetail>
<PurchaseOrderId>1981744</PurchaseOrderId>
<PurchaseOrderNumber>MPDS-M170861324375076219444</PurchaseOrderNumber>
<PackageId>MPDS-303172379-1927</PackageId>
<PromisedShippingTime>
</PromisedShippingTime>
<ExtraAttributes>null</ExtraAttributes>
<ShippingProviderType>standard</ShippingProviderType>
<CreatedAt>2017-02-26 15:52:00</CreatedAt>
<UpdatedAt>2017-02-28 21:35:04</UpdatedAt>
<ReturnStatus>
</ReturnStatus>
<productMainImage>http://sg-live-02.slatic.net/p/7/test-please-do-not-sh
oot-a-sku-3703-20297521-a6ee04ac9d93d572c22b92d3a3a00afa-catalog.jpg</pr
oductMainImage>
<Variation>Not Specified</Variation>
<ProductDetailUrl>http://www.daraz.pk/12579202.html</ProductDetailUrl>
</OrderItem>
</OrderItems>
</Body>
</SuccessResponse>
Error messages
GetMultipleOrderItems
Definition
Use this call to get the item information of one or more orders.
Parameters
Format string The response format, with XML as the default. Can be XML or JSON. Optional.
Timestamp DateTime The current time in ISO8601 format (e.g., Timestamp=2016-04-01T10:00:00+02:00 for Berlin).
Mandatory.
Version string The API version against which this call is to be executed. The current version is "1.0". Mandatory.
Signature string The cryptographic signature, authenticating the request. You must create this value by computing the
SHA256 hash of the request, using the API key of the user specified in the UserID parameter.
Mandatory.
The code sample, response, and result sample are similar with those of the GetOrderItems call.
Error messages
SetInvoiceNumber
Definition [POST]
Parameters
Format string The response format, with XML as the default. Can be XML or JSON. Optional.
Timestamp DateTime The current time in ISO8601 format (e.g., Timestamp=2016-04-01T10:00:00+02:00 for Berlin).
Mandatory.
Version string The API version against which this call is to be executed. The current version is "1.0".
Mandatory.
Signature string The cryptographic signature, authenticating the request. You must create this value by
computing the SHA256 hash of the request, using the API key of the user specified in the
UserID parameter. Mandatory.
Code sample
Text
Result sample
XML
Documentation
Note
Invoice will be changed for all order items in the package.
SetStatusToPackedByMarketplace
Definition [POST]
Format string The response format, with XML as the default. Can be XML or JSON. Optional.
Timestamp DateTime The current time in ISO8601 format (e.g., Timestamp=2016-04-01T10:00:00+02:00 for
Berlin). Mandatory.
Version string The API version against which this call is to be executed. The current version is "1.0".
Mandatory.
Signature string The cryptographic signature, authenticating the request. You must create this value by
computing the SHA256 hash of the request, using the API key of the user specified in the
UserID parameter. Mandatory.
OrderItemIds array of long List of order items to be marked ready to ship. Comma separated list in square brackets.
Mandatory.
ShippingProvider string Valid shipment provider as looked up via GetShipmentProviders. Leave this null (blank) if
shipment provider is assigned to you during order processing.
Code sample
Text
DeliveryType.Dropship, "LEX");
//fire request and handle result
try {
PackedByMarketPlaceResponse response = request.execute();
for(PackageInfo packageInfo: response.getBody()) {
System.out.println(packageInfo);
}
} catch (DarazException e) {
System.out.println(e.getResponseStr());
}
Multiple items
For packing multiple items in the same package, input order items in OrderItemIds parameter as comma separated values enclosed in
brackets. For e.g: OrderItemIds=[102352123451,102352125324]. Order number should be same.
Response
Result sample
XML
Error messages
73 E073: All order items must have status Pending or Ready To Ship. (%s)
91 E091: You are not allowed to set the shipment provider and tracking number and the delivery type is wrong. Please
use sent_to_warehouse
SetStatusToReadyToShip
Definition
Parameters
Format string The response format, with XML as the default. Can be XML or JSON. Optional.
Timestamp DateTime The current time in ISO8601 format (e.g., Timestamp=2016-04-01T10:00:00+02:00 for Berlin).
Mandatory.
Version string The API version against which this call is to be executed. The current version is "1.0".
Mandatory.
Signature string The cryptographic signature, authenticating the request. You must create this value by
computing the SHA256 hash of the request, using the API key of the user specified in the
UserID parameter. Mandatory.
OrderItemIds array of long List of order items to be marked ready to ship. Comma separated list in square brackets.
Mandatory
ShippingProvider string Valid shipment provider as looked up via GetShipmentProviders. Leave this null (blank) if
shipment provider is assigned to you during order processing.
SerialNumber mixed Only applicable if the serial number feature has been enabled for platform and seller. Unique
serial number for tracking order items, which can be specified as comma-separated list of
serials or JSON array, in which case there must be exactly as many serials as there are
OrderItemIds. Can also be specified as a JSON object where keys are order item ids and values
are corresponding serial numbers. In this case the order item ID from OMS will be used as serial
for items where it has not been explicitly specified. Optional.
Code sample
Text
Java
Multiple items
To RTS multiple items in the same package, input order items in OrderItemIds parameter as comma separated values enclosed in
brackets. For e.g: OrderItemIds=[102352123451,102352125324]. Order number should be same.
Response
Optional, please ignore it if your business scenario does not cover it.
PurchaseOrderNumber string Order number in the Seller Center.
Optional, please ignore it if your business scenario does not cover it.
Result sample
XML
Error messages
94 E094: Serial numbers specified incorrectly Serial numbers were not specified according to one of the
accepted formats for the SerialNumber parameter.
95 E095: Invalid serial number format (%s) Serial numbers must be 1 to 26 characters; only latin letters
and digits are allowed.
96 E096: Duplicate serial number among order items (%s) Two or more items in the order would share a serial number.
GetDocument
Definition
Use this call to retrieve order-related documents, including invoices, shipping labels, and shipping parcels.
Parameters
Format string The response format, with XML as the default. Can be XML or JSON. Optional.
Timestamp DateTime The current time in ISO8601 format (e.g., Timestamp=2016-04-01T10:00:00+02:00 for Berlin).
Mandatory.
Version string The API version against which this call is to be executed. The current version is "1.0".
Mandatory.
Signature string The cryptographic signature, authenticating the request. You must create this value by
computing the SHA256 hash of the request, using the API key of the user specified in the
UserID parameter. Mandatory.
OrderItemIds array of long Identifier of the order item for which the caller wants to get a document. Mandatory.
Code sample
Text
Java
Result sample
XML
Documentation
To reconstruct the file, the data from the <File> node needs to be base64 decoded, and
interpreted according to the <MimeType>.
Error messages
GetFailureReasons
Definition
Parameters
Timestamp DateTime The current time in ISO8601 format (e.g., Timestamp=2016-04-01T10:00:00+02:00 for Berlin).
Mandatory.
Version string The API version against which this call is to be executed. The current version is "1.0".
Mandatory.
Signature string The cryptographic signature, authenticating the request. You must create this value by
computing the SHA256 hash of the request, using the API key of the user specified in the
UserID parameter. Mandatory.
Code sample
Text
Java
Response
The reason for each failure is given inside the following elements of the XML response.
Type string Type of failure. Possible values are 'canceled', 'failed' and 'returned'.
ReasonId long ID of the failure reason, which is used by SetStatusToCanceled.
Result sample
XML
</Reasons>
</Body>
</SuccessResponse>
Error messages
No specific errors.
SetStatusToCanceled
Definition [POST]
Parameters
Format string The response format, with XML as the default. Can be XML or JSON. Optional.
Timestamp DateTime The current time in ISO8601 format (e.g., Timestamp=2016-04-01T10:00:00+02:00 for Berlin).
Mandatory.
Version string The API version against which this call is to be executed. The current version is "1.0". Mandatory.
Signature string The cryptographic signature, authenticating the request. You must create this value by computing
the SHA256 hash of the request, using the API key of the user specified in the UserID parameter.
Mandatory.
ReasonId long ID of the cancel reason, which is returned by the GetFailureReasons API. Mandatory.
Code sample
Text
Result sample
Success
Failure
GetQcStatus
Definition [GET]
Use this call to get the quality control status of items being listed.
Parameters
Format string The response format, with XML as the default. Can be XML or JSON. Optional.
Timestamp datetime The current time in ISO8601 format (e.g., Timestamp=2016-04-01T10:00:00+02:00 for Berlin).
Mandatory.
Version string The API version against which this call is to be executed. The current version is "1.0". Mandatory.
Signature string The cryptographic signature, authenticating the request. You must create this value by computing
the SHA256 hash of the request, using the API key of the user specified in the UserID parameter.
Mandatory.
Limit integer The maximum number of QC status entries that can be returned. If you omit this parameter, the
default value of 100 is used.
Offset integer Number of QC status entries to skip (i.e., an offset into the result set; together with the Limit
parameter, simple result set paging is possible; if you do page through results, note that the list of
QC status entries might change during paging).
SkuSellerList array of strings QC status will be returned for SKUs in this list only. Can either be a JSON array (e.g.,
[“E213”,”KI21”,”HT0”]) or a serialized PHP array (e.g.,
a:3:{i:0;s:4:”E213”;i:1;s:4:”KI21”;i:2;s:3:”HT0”;}).
Code sample
Text
Java
Result sample
XML
Documentation
Request parameter restrictions
SkuSellerList- Be aware that the parameter can ONLY be sent as an array so in the case you want to use it with only one element it
should be still an array with one element.
Expected result
The method will not return old QC results, but only recent ones. Provided you have a live product with several variations approved
previously, then you add a new variation and query by all product variation SKUs. Result of such call will consist of 1 entry - a new
variation status.
SELLER ENDPOINTS
GetPayoutStatus
Definition
Use this call to get the payout status for a specified period.
Request URI:https://api.sellercenter.daraz.pk?Action=GetPayoutStatus
Parameters
Format string The response format, with XML as the default. Can be XML or JSON. Optional.
Timestamp datetime The current time in ISO8601 format (e.g., Timestamp=2016-04-01T10:00:00+02:00 for Berlin).
Mandatory.
Version string The API version against which this call is to be executed. The current version is "1.0". Mandatory.
Signature string The cryptographic signature, authenticating the request. You must create this value by computing the
SHA256 hash of the request, using the API key of the user specified in the UserID parameter. Mandatory.
CreatedAfter integer Filter statements created after the provided date. Mandatory.
Code sample
Text
Java
Response
Result sample
XML
Error messages
GetTransactionDetails
Definition
Use this call to get transaction or fee details for a specified period.
Parameters
Format string The response format, with XML as the default. Can be XML or JSON. Optional.
Timestamp datetime The current time in ISO8601 format (e.g., Timestamp=2016-04-01T10:00:00+02:00 for
Berlin). Mandatory.
Version string The API version against which this call is to be executed. The current version is "1.0".
Mandatory.
Signature string The cryptographic signature, authenticating the request. You must create this value by
computing the SHA256 hash of the request, using the API key of the user specified in the
UserID parameter. Mandatory.
startTime & endTime date (YYYY-MM-DD) Starting date and ending date where transactions need to be extracted.
Limit integer The maximum number of QC status entries that can be returned. If you omit this parameter,
the default value of 100 is used.
Offset integer Number of QC status entries to skip (i.e., an offset into the result set; together with the Limit
parameter, simple result set paging is possible; if you do page through results, note that the
list of QC status entries might change during paging).
SkuSellerList array of strings QC status will be returned for SKUs in this list only. Can either be a JSON array (e.g.,
[“E213”,”KI21”,”HT0”]) or a serialized PHP array (e.g.,
a:3:{i:0;s:4:”E213”;i:1;s:4:”KI21”;i:2;s:3:”HT0”;}).
Code sample
Text
Java
Response
Transaction Type Transaction type or fee name (integer) Transaction type or fee name
Transaction Number Unique id of the transaction in the format Seller code- ex - SG103EF-1FF0JVW
YYYYYY (string)
Transaction types
Orders - Item charges - Item Price Credit 13 Item price credit is credit provided to successfully delivered items.
It's triggered automatically when Order Item status moved to
'delivered'.
Orders - Item charges - Item Price Subsidy 59 Item price subsidy is a credit provided to sellers for an order item.
Orders - Claims - Penalty & Payment Claims 60 Claims (credit) provided to sellers for any penalties or payment
related.
Orders - Claims - Other Claims 139 Claims (credit) provided to sellers for other reasons.
Orders - Other Credit - Shipping Fee (Paid By 8 Shipping fee paid by customers are provided as credit to sellers.
Customer)
Orders - Other Credit - Other Credit - Taxable 63 Other credit (taxable) for delivered orders.
Orders - Other Credit - Other Credit - Non 64 Other credit (non-taxable) for delivered orders.
Taxable
Orders - Other Debit - Non Taxable 144 Other debits (non-taxable) for delivered orders.
Orders - Other Debit - Taxable 82 Other debits (taxable) for delivered orders.
Orders - Daraz Fees - Payment Fee 3 Payment fee for delivered orders.
Orders - Daraz fees - Shipping Fee (Charged by 7 Shipping fee (charged by Daraz) for delivered orders.
Daraz )
Orders - Daraz Fees - 67 Adjustments shipping fee is a credit for delivered orders.
Adjustments Shipping Fee
Orders - Daraz Fees - 28 Automatic shipping fee is a debit to claw back shipping fee credits.
Automatic Shipping Fee
Refunds - Item Charges - Reversal Item Price 14 Reversal item price is an automatic debit for returned items.
Refunds - claims - Lost And Damaged Claim 85 Lost and damaged claim is a credit for sellers for loss/damaged due
to 3PL faults.
Refunds - Claims - Other Claims - Returns 125 Other claims (returns) is a credit to sellers for other reasons.
Refunds - Shipping Fee - 142 Reversal shipping fee (paid by customer) is auto clawback of
Reversal shipping Fee (Paid by Customer) shipping fee for returned items.
Refunds - Daraz Fees -Reversal Commission 15 Reversal commission is auto reversal of commission for returned
items.
Refunds - Daraz Fees - Reversal Shipping Fee 143 Reversal shipping fee (charged By Daraz) is manual reversal (credit)
(Charged By Daraz) of shipping fee.
Refunds - penalties - Cancellation Due To OOS 87 Penalties for cancellation of orders due to out of stock items.
Refunds - penalties - Cancellation Due To late 93 Penalties for cancellation due to late shipment.
shipment
Refunds - Other Debits (Returns) 145 Other debits for sellers for returned / cancelled items.
Refunds - Adjustments Others (Returns) 104 Other credits for sellers for returned / cancelled items.
3P services - shipping - Shipping fee (charged 21 Shipping fee (charged by 3PL such as LEL) or direct shipping fee
by 3P) post by 3PL to sellers. It's a debit.
3P services - shipping - Return Delivery Fee 24 Return delivery fee charged by 3PL. Its a debit.
3P services - FBL - FBL Handling Fee 130 FBL handling fee (debits).
3P services - FBL -FBL - Other Fulfillment 133 Other fulfillment service fee posted by FBL (debit).
service Fee
3P services - FBL -Adjustments FBL 134 Adjustments FBL is a credit posted to offset any incorrect posting by
FBL.
Other services - subsidy - Seller Incentive 107 Seller incentive is a credit to sellers (seller level).
Other services - services 112 Fees for sponsored product at seller level.
Sponsored Product Fee
Other services - services 115 Adjustments others is a credit at seller level to offset any debit
Adjustments Others posting.
Other services - Other Debits 116 Other debits is a debit at seller level.
Result sample
JSON
{
"SuccessResponse": {
"Head": {
"RequestId": "",
"RequestAction": "GetTransactionDetails",
"ResponseType": "List",
"Timestamp": "2017-05-04T19:18:06+0800"
},
"Body": {
"TransactionDOs": {
"transactionDOs": [
{
"Transaction Date": "17 May 2016",
"Transaction Type": "Shipping Fee (Item Level)
Credit",
"Transaction Number": "SG103EF-1KV89DI",
"Amount": "10.00",
"WHT included in Amount": "Yes",
"Statement": "11 May 2016 - 17 May 2016",
"Paid Status": "Not paid",
“Order no:”: "123445666666",
“Order Item no:”: "1666666",
“Shipment Type:”: "Dropshipping",
“Shipment provider:”: "DEX",
"Reference": "1340",
"Comment": "",
"PaymentRefId": ""
},
{
"Transaction Date": "17 May 2016",
"Transaction Type": "Payment Fee",
"Transaction Number": "SG103EF-1P9VK1A",
"Daraz SKU": "Item test -123",
"Amount": "-0.62",
"VAT in Amount": "0.0672",
"WHT Amount": "0.0112",
"WHT included in Amount": "Yes",
"Statement": "11 May 2016 - 17 May 2016",
"Paid Status": "Not paid",
“Order no:”: "123445666666",
“Order Item no:”: "1666666",
“Shipment Type:”: "Dropshipping",
“Shipment provider:”: "DEX",
"Reference": "1340",
"Comment": "",
"PaymentRefId": ""
},
{
"Transaction Date": "17 May 2016",
"Transaction Type": "Commission",
"Transaction Number": "SG103EF-1NVC2D6",
"Amount": "-2.86",
"VAT in Amount": "0.3400",
"WHT Amount": "0.2800",
"WHT included in Amount": "Yes",
"Statement": "11 May 2016 - 17 May 2016",
"Paid Status": "Not paid",
“Order no:”: "123445666666",
“Order Item no:”: "1666666",
“Shipment Type:”: "Dropshipping",
“Shipment provider:”: "DEX",
"Reference": "1340",
"Comment": "",
"PaymentRefId": ""
},
{
"Transaction Date": "17 May 2016",
"Transaction Type": "Item Price Credit",
"Transaction Number": "SG103EF-1FF0JVW",
"Amount": "28.00",
"WHT included in Amount": "Yes",
"Statement": "11 May 2016 - 17 May 2016",
"Paid Status": "Not paid",
“Order no:”: "123445666666",
“Order Item no:”: "1666678",
“Shipment Type:”: "Dropshipping",
“Shipment provider:”: "DEX",
"Reference": "1340",
"Comment": "",
"PaymentRefId": ""
}
]
}
}
}
}
GetSeller
Definition
Use this call to get seller information by the current user ID.
Parameters
Format string The response format, with XML as the default. Can be XML or JSON. Optional.
Timestamp datetime The current time in ISO8601 format (e.g., Timestamp=2016-04-01T10:00:00+02:00 for Berlin). Mandatory.
Version string The API version against which this call is to be executed. The current version is "1.0". Mandatory.
Signature string The cryptographic signature, authenticating the request. You must create this value by computing the
SHA256 hash of the request, using the API key of the user specified in the UserID parameter. Mandatory.
Result sample
XML
The product variations must be listed with a single API request. That is, in the request body of the CreateProduct API, list the product variations in
the tags. You can use the "AssociatedSku" tag if you want to add some SKUs to an existing product.
Why is the total number of products shown on the Seller Center portal different from that returned by the GetProduct API?
The total number of products shown on the Seller Center portal is the number of SKUs, but the number of products returned by the GetProduct A
PI is the number of items. That is, SKUs include variations of items.
Please also note that the returned results by API calls are determined by the specified parameters like Filter, Limit, Offset, and time conditions.
The maximum number of products returned by a single GetProduct call is 500. If no limit value is specified, the GetProduct call returns 20
products by default.
Why does the GetDocument API fail to return the needed documents?
Make sure that the status of the specified order item is “RTS” (by calling the SetStatusToReadyToShip API) before calling the GetDocument API.
Otherwise, the error message E034 will be returned.
Check whether the specified parameters filter out some brands. The maximum number of brands that can be returned by a single request is
1,000. If the brand cannot be found in the Seller Center portal either, contact the service team.
What does the “liverejected” QC status (returned by the GetQcStatus API) mean?
The “liverejected” QC status means that online SKUs are made offline by the QC team because of product qualification reasons.