import requests
APP_ID = "3001"
USERNAME = "xxx"
PASSWORD = "xxx"
def post(payload):
r = requests.post(BASE_URL, json=payload, headers={"Content-Type": "application/json"})
return r.json()
# --- 1) Login ---
login_payload = {
"service": "login",
"username": USERNAME,
"password": PASSWORD,
"appId": APP_ID,
}
login_res = post(login_payload)
if not login_res.get("success"):
print("Login failed:", login_res)
exit()
print("[INFO] Login successful.")
client_id = login_res["clientID"]
# --- 2) Authenticate ---
auth_payload = {
"service": "authenticate",
"clientID": client_id,
"COMPANY": login_res["objs"][0]["COMPANY"],
"BRANCH": login_res["objs"][0]["BRANCH"],
"MODULE": "0",
"REFID": "1",
}
auth_res = post(auth_payload)
if not auth_res.get("success"):
print("Auth failed:", auth_res)
exit()
print("[INFO] Authenticated. clientID:", auth_res["clientID"])
# --- 3) Query ITEM by key ---
item_key = 29291 # test ITEM key
payload = {
"service": "getData",
"clientID": auth_res["clientID"],
"appId": APP_ID,
"object": "ITEM",
"form": "",
"key": item_key,
"locateinfo": "ITEM:CODE,NAME,VAT,mtrl"
}
res = post(payload)
print("\nResponse from SoftOne:")
print(res)
if res.get("success") and res["data"].get("ITEM"):
item = res["data"]["ITEM"][0]
print(f"✅ ITEM found: CODE={item['CODE']}, NAME={item['NAME']}, VAT={item['VAT']}")
else:
print(f"❌ ITEM {item_key} not found")