Introduction
This documentation aims to provide all the information you need to work with our API.
<aside>As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile).
You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).</aside>
Authenticating requests
This API is not authenticated.
Account Management
Get Account Statement
Fetch the account statement for a specific customer (kunnr) within an optional date range.
Example request:
curl --request POST \
"https://asianpaints.binaryic.in/api/account-statement" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"kunnr\": \"0001001234\",
\"start_date\": \"2023-01-01\",
\"end_date\": \"2023-12-31\"
}"
const url = new URL(
"https://asianpaints.binaryic.in/api/account-statement"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"kunnr": "0001001234",
"start_date": "2023-01-01",
"end_date": "2023-12-31"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"success": true,
"status_code": 200,
"message": "Account statement fetched successfully",
"data": {
"openingBal": "1500.50",
"details": [
{
"docDate": "2023-05-10",
"docNo": "1800001234",
"docDesc": "Invoice Payment",
"docAmount": "500.00",
"balAmount": "1000.00"
}
],
"itCollection": [],
"itInvoices": []
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Standardized PDF Generation and Retrieval (acstn).
Generate and retrieve a URL for the account statement PDF for a specific customer within an optional date range.
Example request:
curl --request POST \
"https://asianpaints.binaryic.in/api/account-statement-pdf" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"customer\": \"AER10558\",
\"startDate\": \"2024-01-01\",
\"endDate\": \"2026-07-08\"
}"
const url = new URL(
"https://asianpaints.binaryic.in/api/account-statement-pdf"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"customer": "AER10558",
"startDate": "2024-01-01",
"endDate": "2026-07-08"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"success": true,
"status_code": 200,
"message": "PDF generated successfully",
"data": {
"pdf_url": "https://asianpaints-staging.binaryic.in/storage/statements/account_statement_AER10558_1775541059.pdf",
"filename": "account_statement_AER10558_1775541059.pdf"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Authentication
Send OTP
Generates and sends a 4-digit OTP to the provided mobile number via Dialog SMS gateway.
Example request:
curl --request POST \
"https://asianpaints.binaryic.in/api/send-otp" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"mobile\": \"0771234567\"
}"
const url = new URL(
"https://asianpaints.binaryic.in/api/send-otp"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"mobile": "0771234567"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"success": true,
"status_code": 200,
"message": "OTP sent successfully",
"data": {
"status": "success",
"message": "OTP sent successfully"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Verify OTP
Verifies the 4-digit OTP sent to the user's mobile number.
Example request:
curl --request POST \
"https://asianpaints.binaryic.in/api/verify-otp" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"mobile\": \"0771234567\",
\"otp\": \"1234\"
}"
const url = new URL(
"https://asianpaints.binaryic.in/api/verify-otp"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"mobile": "0771234567",
"otp": "1234"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"success": true,
"status_code": 200,
"message": "OTP verified successfully",
"data": {
"status": "success",
"message": "OTP verified successfully"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Cart Management
Retrieve the final price for a set of materials.
Delegates the CPI POST call to CartService, evaluates the result, and returns a standard JSON envelope. On downstream failure, returns a structured 200 error response without exposing upstream details.
Example request:
curl --request POST \
"https://asianpaints.binaryic.in/api/check-final-price" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"customer\": \"AER10558\",
\"stpCustomer\": \"AER10558\",
\"docTyp\": \"ZIRO\",
\"mat\": [
{
\"matnr\": \"AE1-F0006099918T\",
\"kwmeng\": \"10.000\"
}
]
}"
const url = new URL(
"https://asianpaints.binaryic.in/api/check-final-price"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"customer": "AER10558",
"stpCustomer": "AER10558",
"docTyp": "ZIRO",
"mat": [
{
"matnr": "AE1-F0006099918T",
"kwmeng": "10.000"
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"success": true,
"status_code": 200,
"message": "Final price fetched successfully",
"data": {
"ltOut": [
{
"material": "AE1-F0006099918T",
"netValue": "45670.0000",
"discount": "-10960.80",
"tax": "1735.46",
"grossValue": "36444.66",
"currency": "AED"
},
{
"material": "AE1-F05730997025",
"netValue": "1840.0000",
"discount": "-441.60",
"tax": "69.92",
"grossValue": "1468.32",
"currency": "AED"
}
],
"pdfString": "",
"mat": [
{
"matnr": "AE1-F0006099918T",
"kwmeng": "10.000"
},
{
"matnr": "AE1-F05730997025",
"kwmeng": "10.000"
}
],
"return": []
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Retrieve payment terms for a given dealer.
Delegates the CPI call to CartService::getPaymentTerms, extracts unique
payTerm values from the knavvv array in the response body, and returns
a standard JSON envelope. On downstream failure, returns a structured
200 error response without exposing upstream details.
Example request:
curl --request POST \
"https://asianpaints.binaryic.in/api/get-payment-terms" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"customer\": \"AER10558\"
}"
const url = new URL(
"https://asianpaints.binaryic.in/api/get-payment-terms"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"customer": "AER10558"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"success": true,
"status_code": 200,
"message": "Dealer payment terms fetched successfully",
"data": {
"customer": "AER10558",
"payTerms": [
"P180"
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Retrieve the ship-to-party list for a given dealer.
Delegates the CPI POST call to CartService::getSTPList, evaluates the result, and returns a standard JSON envelope. On downstream failure, returns a structured 200 error response without exposing upstream details.
Example request:
curl --request POST \
"https://asianpaints.binaryic.in/api/get-ship-to-party-list" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"vkorg\": \"AE10\",
\"vtweg\": \"10\",
\"spart\": \"01\",
\"kunnr\": \"AER10558\"
}"
const url = new URL(
"https://asianpaints.binaryic.in/api/get-ship-to-party-list"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"vkorg": "AE10",
"vtweg": "10",
"spart": "01",
"kunnr": "AER10558"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"success": true,
"status_code": 200,
"message": "Ship to party fetched successfully",
"data": [
{
"stpRes": [
{
"shipToParty": "AER10558",
"shipToPartyName": "EXTRACO FIBER GLASS & PREFAB"
}
],
"Message": []
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Retrieve FOC (Free of Charge) products for a given order.
Delegates the CPI POST call to CartService::getFOCProducts, evaluates the result, and returns a standard JSON envelope. On downstream failure, returns a structured 200 error response without exposing upstream details.
Example request:
curl --request POST \
"https://asianpaints.binaryic.in/api/get-foc-products" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"order\": [
{
\"matnr\": \"AE1-F0006099918T\",
\"kwmeng\": \"1.000\",
\"vkaus\": \"\\\"\\\"\"
}
]
}"
const url = new URL(
"https://asianpaints.binaryic.in/api/get-foc-products"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"order": [
{
"matnr": "AE1-F0006099918T",
"kwmeng": "1.000",
"vkaus": "\"\""
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"success": true,
"status_code": 200,
"message": "FOC products fetched successfully",
"data": {
"itProdVol": [
{
"prodCode": "AE1-F0006",
"prodDesc": " MANSONARY PRIMER",
"totalQty": "1.000",
"totalVol": "18.000"
},
{
"prodCode": "AE1-F0106",
"prodDesc": "ROYALE PLAY ITALIAN STUCCO.",
"totalQty": "10.000",
"totalVol": "140.000"
}
],
"itZforMatnrs1": [
{
"material": "AE1-F0106H27914K",
"materialDesc": "R/P ITALIAN STUCCO CW L152",
"salesNo": "",
"agreementDesc": "In-bill Qty FOC – 09",
"freeMaterial": "AE1-F00040000098df6"
},
{
"material": "AE1-F00040000180",
"materialDesc": "SUPREME PVA PRIMER WHITE",
"salesNo": "",
"agreementDesc": "In-bill Qty FOC – 09",
"freeMaterial": "AE1-F0006099918T"
}
],
"Return": []
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Dashboard Integration
Get Integrated Customer Dashboard
Fetch financial performance and account statement data for the specified customer. This API integrates with the SAP ODOS endpoint and automatically processes embedded PDF statements.
Example request:
curl --request POST \
"https://asianpaints.binaryic.in/api/dashboard-api" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"customer\": \"AER10558\"
}"
const url = new URL(
"https://asianpaints.binaryic.in/api/dashboard-api"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"customer": "AER10558"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"success": true,
"status_code": 200,
"message": "Dashboard data retrieved successfully",
"data": {
"tab": [...],
"pdf_url": "https://asianpaints.dev/storage/statements/dashboard_statement_AER10558_1775541059.pdf",
"filename": "dashboard_statement_AER10558_1775541059.pdf"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Endpoints
Fetch a new SAP token and persist it.
Example request:
curl --request POST \
"https://asianpaints.binaryic.in/api/sap/token/refresh" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://asianpaints.binaryic.in/api/sap/token/refresh"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Inventory
Check Material Stock
Verifies the availability of a specific material (matnr) for the requested quantity. Returns whether the material is fully available, partially available, or not available.
Example request:
curl --request POST \
"https://asianpaints.binaryic.in/api/stock-check" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"matnr\": \"AE1-F0122K55325K\",
\"quantity\": 100,
\"dealer_code\": \"AER10057\"
}"
const url = new URL(
"https://asianpaints.binaryic.in/api/stock-check"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"matnr": "AE1-F0122K55325K",
"quantity": 100,
"dealer_code": "AER10057"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200, Available):
{
"success": true,
"status_code": 200,
"message": "Stock fetched successfully",
"data": {
"matnr": "AE1-F0122K55325K",
"requested_qty": 100,
"available_qty": 1086,
"api_message": "Available",
"status": "available"
}
}
Example response (200, Partially Available):
{
"success": true,
"status_code": 200,
"message": "Stock fetched successfully",
"data": {
"matnr": "AE1-F0122K55325K",
"requested_qty": 100000,
"available_qty": 1086,
"api_message": "Partially Available",
"status": "partially available"
}
}
Example response (200, Not Available):
{
"success": true,
"status_code": 200,
"message": "Stock fetched successfully",
"data": {
"matnr": "AE1-F0122K55325K 000",
"requested_qty": 100000,
"available_qty": 0,
"api_message": "AE1-F0122K55325K 000Entered material not available",
"status": "not available"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Order Management
Retrieve Order List
Fetch the list of orders for a specific dealer, optionally filtered by date range or order/invoice numbers. This endpoint returns only the order-related parameters and excludes invoice details.
Example request:
curl --request POST \
"https://asianpaints.binaryic.in/api/order-list" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"dealerCode\": \"AER10558\",
\"dateFrom\": \"architecto\",
\"dateTo\": \"architecto\",
\"orderNo\": \"5101631911\",
\"invoiceNo\": \"architecto\",
\"dashboardFlag\": \"architecto\"
}"
const url = new URL(
"https://asianpaints.binaryic.in/api/order-list"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"dealerCode": "AER10558",
"dateFrom": "architecto",
"dateTo": "architecto",
"orderNo": "5101631911",
"invoiceNo": "architecto",
"dashboardFlag": "architecto"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"success": true,
"status_code": 200,
"message": "Order details fetched successfully",
"data": {
"orderList": [
{
"orderNo": "5101631911",
"orderDate": "2026-02-09",
"customerRef": "1234568",
"customerRefDate": "0000-00-00",
"orderValue": "3470.92",
"orderedQty": "1.000",
"billedQty": "1.000",
"soldToAddress": "EXTRACO FIBER GLASS & PREFAB",
"shipToAddress": "EXTRACO FIBER GLASS & PREFAB",
"placedBy": "CC Agent / CFA",
"paymentTerm": "180 days credit",
"billingStatus": "Completely billed",
"orderStatus": "In Process",
"salesOrg": "",
"channel": "",
"division": ""
}
],
"orderItems": [
{
"orderNumber": "5101631911",
"skuDescription": " MANSONARY PRIMER CLR",
"totalOrderedQty": "1.000",
"totalBilledQty": "1.000"
}
],
"headerDetails": [
{
"totalOrders": "0",
"openOrders": " 388"
}
],
"itEpod": [],
"return": []
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Retrieve Order Details
Fetch the full breakdown for a specific order number, including invoice details, order items, header summary, ePOD data, and return entries.
Example request:
curl --request POST \
"https://asianpaints.binaryic.in/api/order-details" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"dealerCode\": \"AER10558\",
\"orderNo\": \"5101632649\",
\"invoiceNo\": \"architecto\",
\"dashboardFlag\": \"architecto\"
}"
const url = new URL(
"https://asianpaints.binaryic.in/api/order-details"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"dealerCode": "AER10558",
"orderNo": "5101632649",
"invoiceNo": "architecto",
"dashboardFlag": "architecto"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"success": true,
"status_code": 200,
"message": "Order details fetched successfully",
"data": {
"orderList": [...],
"orderItems": [...],
"invoiceList": [...],
"headerDetails": [...],
"itEpod": [],
"return": []
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Profile
Get User Profile
Fetch standardized user profile and loyalty details from Shopify via SAP CPI.
Example request:
curl --request GET \
--get "https://asianpaints.binaryic.in/api/profile/user-details" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"customer\": \"AER10057\"
}"
const url = new URL(
"https://asianpaints.binaryic.in/api/profile/user-details"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"customer": "AER10057"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"success": true,
"status_code": 200,
"message": "User profile retrieved successfully.",
"data": {
"kunnr": "AER10057",
"name1": "GOLDEN PALM PAINTS TRADING 123",
"telf1": "25553383",
"vkbur": "AE1A",
"zterm": "P125 125 days credit",
"vwerk": "AE1C",
"adrnr": "",
"salesOrg": "AE10",
"distChan": "10",
"division": "01",
"knavvv": [
{
"customer": "AER10057",
"salesOrg": "AE10",
"distChan": "10",
"division": "02",
"payTerm": "P125",
"plant": "AE1A",
"salesOff": "AE1C"
}
],
"Message": []
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
TSE Management
Get TSE Level Dealers
Fetch TSE level dealers for the given company code and mobile number.
Example request:
curl --request POST \
"https://asianpaints.binaryic.in/api/tse-level-dealers" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"bukrs\": \"IAE1\",
\"mobileNumber\": \"917441104130\",
\"customer_code\": \"AED10063\"
}"
const url = new URL(
"https://asianpaints.binaryic.in/api/tse-level-dealers"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"bukrs": "IAE1",
"mobileNumber": "917441104130",
"customer_code": "AED10063"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"success": true,
"status_code": 200,
"message": "TSE level dealers fetched successfully",
"data": {
"Return": [],
"Knvh": [
{
"kunnr": "AER11076",
"name1": "BYBLOS BUILDING MATERIALS TRAD",
"ort01": " 07-2442196",
"counc": "999",
"bezei": "Dummy",
"hkunnr": "00IAE1C102"
},
{
"kunnr": "AER11173",
"name1": "AL AZEM BUILDING MAT",
"ort01": "AE",
"counc": "999",
"bezei": "Dummy",
"hkunnr": "00IAE1C102"
}
],
"pdf": "JVBERi0xLjYNJeLjz9MNCjI1MTggMCBvYmoKPDwvRmlsd..."
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.